@openclaw/diffs 2026.8.1-beta.2 → 2026.9.1-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1239) hide show
  1. package/README.md +7 -7
  2. package/dist/assets/viewer-runtime.js +134 -161
  3. package/dist/browser.runtime-DTKAejqd.js +406 -0
  4. package/dist/index.js +24 -581
  5. package/dist/viewer-assets-D3qrnaxI.js +106 -0
  6. package/node_modules/@pierre/diffs/README.md +9 -0
  7. package/node_modules/@pierre/diffs/dist/components/CodeView.d.ts +94 -7
  8. package/node_modules/@pierre/diffs/dist/components/CodeView.d.ts.map +1 -1
  9. package/node_modules/@pierre/diffs/dist/components/CodeView.js +333 -47
  10. package/node_modules/@pierre/diffs/dist/components/CodeView.js.map +1 -1
  11. package/node_modules/@pierre/diffs/dist/components/File.d.ts +22 -4
  12. package/node_modules/@pierre/diffs/dist/components/File.d.ts.map +1 -1
  13. package/node_modules/@pierre/diffs/dist/components/File.js +143 -23
  14. package/node_modules/@pierre/diffs/dist/components/File.js.map +1 -1
  15. package/node_modules/@pierre/diffs/dist/components/FileDiff.d.ts +83 -19
  16. package/node_modules/@pierre/diffs/dist/components/FileDiff.d.ts.map +1 -1
  17. package/node_modules/@pierre/diffs/dist/components/FileDiff.js +461 -46
  18. package/node_modules/@pierre/diffs/dist/components/FileDiff.js.map +1 -1
  19. package/node_modules/@pierre/diffs/dist/components/FileStream.d.ts.map +1 -1
  20. package/node_modules/@pierre/diffs/dist/components/FileStream.js +2 -1
  21. package/node_modules/@pierre/diffs/dist/components/FileStream.js.map +1 -1
  22. package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.d.ts +2 -2
  23. package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.d.ts.map +1 -1
  24. package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.js +9 -4
  25. package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.js.map +1 -1
  26. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.d.ts +7 -3
  27. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.d.ts.map +1 -1
  28. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.js +87 -60
  29. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.js.map +1 -1
  30. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.d.ts +30 -5
  31. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  32. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js +277 -56
  33. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js.map +1 -1
  34. package/node_modules/@pierre/diffs/dist/components/Virtualizer.d.ts +17 -3
  35. package/node_modules/@pierre/diffs/dist/components/Virtualizer.d.ts.map +1 -1
  36. package/node_modules/@pierre/diffs/dist/components/Virtualizer.js +44 -5
  37. package/node_modules/@pierre/diffs/dist/components/Virtualizer.js.map +1 -1
  38. package/node_modules/@pierre/diffs/dist/constants.d.ts +4 -1
  39. package/node_modules/@pierre/diffs/dist/constants.d.ts.map +1 -1
  40. package/node_modules/@pierre/diffs/dist/constants.js +4 -1
  41. package/node_modules/@pierre/diffs/dist/constants.js.map +1 -1
  42. package/node_modules/@pierre/diffs/dist/edit/index.d.ts +6 -0
  43. package/node_modules/@pierre/diffs/dist/edit/index.js +3 -0
  44. package/node_modules/@pierre/diffs/dist/editor/command.d.ts +15 -0
  45. package/node_modules/@pierre/diffs/dist/editor/command.d.ts.map +1 -0
  46. package/node_modules/@pierre/diffs/dist/editor/command.js +128 -0
  47. package/node_modules/@pierre/diffs/dist/editor/command.js.map +1 -0
  48. package/node_modules/@pierre/diffs/dist/editor/editStack.d.ts +76 -0
  49. package/node_modules/@pierre/diffs/dist/editor/editStack.d.ts.map +1 -0
  50. package/node_modules/@pierre/diffs/dist/editor/editStack.js +259 -0
  51. package/node_modules/@pierre/diffs/dist/editor/editStack.js.map +1 -0
  52. package/node_modules/@pierre/diffs/dist/editor/editor.d.ts +118 -0
  53. package/node_modules/@pierre/diffs/dist/editor/editor.d.ts.map +1 -0
  54. package/node_modules/@pierre/diffs/dist/editor/editor.js +2880 -0
  55. package/node_modules/@pierre/diffs/dist/editor/editor.js.map +1 -0
  56. package/node_modules/@pierre/diffs/dist/editor/editor2.js +6 -0
  57. package/node_modules/@pierre/diffs/dist/editor/editor2.js.map +1 -0
  58. package/node_modules/@pierre/diffs/dist/editor/languages.d.ts +26 -0
  59. package/node_modules/@pierre/diffs/dist/editor/languages.d.ts.map +1 -0
  60. package/node_modules/@pierre/diffs/dist/editor/languages.js +363 -0
  61. package/node_modules/@pierre/diffs/dist/editor/languages.js.map +1 -0
  62. package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.d.ts +9 -0
  63. package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.d.ts.map +1 -0
  64. package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.js +212 -0
  65. package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.js.map +1 -0
  66. package/node_modules/@pierre/diffs/dist/editor/marker.d.ts +38 -0
  67. package/node_modules/@pierre/diffs/dist/editor/marker.d.ts.map +1 -0
  68. package/node_modules/@pierre/diffs/dist/editor/marker.js +245 -0
  69. package/node_modules/@pierre/diffs/dist/editor/marker.js.map +1 -0
  70. package/node_modules/@pierre/diffs/dist/editor/matchBrackets.d.ts +9 -0
  71. package/node_modules/@pierre/diffs/dist/editor/matchBrackets.d.ts.map +1 -0
  72. package/node_modules/@pierre/diffs/dist/editor/matchBrackets.js +138 -0
  73. package/node_modules/@pierre/diffs/dist/editor/matchBrackets.js.map +1 -0
  74. package/node_modules/@pierre/diffs/dist/editor/pieceTable.d.ts +40 -0
  75. package/node_modules/@pierre/diffs/dist/editor/pieceTable.d.ts.map +1 -0
  76. package/node_modules/@pierre/diffs/dist/editor/pieceTable.js +706 -0
  77. package/node_modules/@pierre/diffs/dist/editor/pieceTable.js.map +1 -0
  78. package/node_modules/@pierre/diffs/dist/editor/platform.d.ts +11 -0
  79. package/node_modules/@pierre/diffs/dist/editor/platform.d.ts.map +1 -0
  80. package/node_modules/@pierre/diffs/dist/editor/platform.js +31 -0
  81. package/node_modules/@pierre/diffs/dist/editor/platform.js.map +1 -0
  82. package/node_modules/@pierre/diffs/dist/editor/popover.d.ts +65 -0
  83. package/node_modules/@pierre/diffs/dist/editor/popover.d.ts.map +1 -0
  84. package/node_modules/@pierre/diffs/dist/editor/popover.js +191 -0
  85. package/node_modules/@pierre/diffs/dist/editor/popover.js.map +1 -0
  86. package/node_modules/@pierre/diffs/dist/editor/searchPanel.d.ts +41 -0
  87. package/node_modules/@pierre/diffs/dist/editor/searchPanel.d.ts.map +1 -0
  88. package/node_modules/@pierre/diffs/dist/editor/searchPanel.js +318 -0
  89. package/node_modules/@pierre/diffs/dist/editor/searchPanel.js.map +1 -0
  90. package/node_modules/@pierre/diffs/dist/editor/selection.d.ts +211 -0
  91. package/node_modules/@pierre/diffs/dist/editor/selection.d.ts.map +1 -0
  92. package/node_modules/@pierre/diffs/dist/editor/selection.js +1626 -0
  93. package/node_modules/@pierre/diffs/dist/editor/selection.js.map +1 -0
  94. package/node_modules/@pierre/diffs/dist/editor/selectionAction.d.ts +47 -0
  95. package/node_modules/@pierre/diffs/dist/editor/selectionAction.d.ts.map +1 -0
  96. package/node_modules/@pierre/diffs/dist/editor/selectionAction.js +66 -0
  97. package/node_modules/@pierre/diffs/dist/editor/selectionAction.js.map +1 -0
  98. package/node_modules/@pierre/diffs/dist/editor/sprite.d.ts +8 -0
  99. package/node_modules/@pierre/diffs/dist/editor/sprite.d.ts.map +1 -0
  100. package/node_modules/@pierre/diffs/dist/editor/sprite.js +45 -0
  101. package/node_modules/@pierre/diffs/dist/editor/sprite.js.map +1 -0
  102. package/node_modules/@pierre/diffs/dist/editor/stateStorage.d.ts +15 -0
  103. package/node_modules/@pierre/diffs/dist/editor/stateStorage.d.ts.map +1 -0
  104. package/node_modules/@pierre/diffs/dist/editor/stateStorage.js +65 -0
  105. package/node_modules/@pierre/diffs/dist/editor/stateStorage.js.map +1 -0
  106. package/node_modules/@pierre/diffs/dist/editor/textDocument.d.ts +67 -0
  107. package/node_modules/@pierre/diffs/dist/editor/textDocument.d.ts.map +1 -0
  108. package/node_modules/@pierre/diffs/dist/editor/textDocument.js +278 -0
  109. package/node_modules/@pierre/diffs/dist/editor/textDocument.js.map +1 -0
  110. package/node_modules/@pierre/diffs/dist/editor/textMeasure.d.ts +61 -0
  111. package/node_modules/@pierre/diffs/dist/editor/textMeasure.d.ts.map +1 -0
  112. package/node_modules/@pierre/diffs/dist/editor/textMeasure.js +209 -0
  113. package/node_modules/@pierre/diffs/dist/editor/textMeasure.js.map +1 -0
  114. package/node_modules/@pierre/diffs/dist/editor/tokenizer.d.ts +41 -0
  115. package/node_modules/@pierre/diffs/dist/editor/tokenizer.d.ts.map +1 -0
  116. package/node_modules/@pierre/diffs/dist/editor/tokenizer.js +596 -0
  117. package/node_modules/@pierre/diffs/dist/editor/tokenizer.js.map +1 -0
  118. package/node_modules/@pierre/diffs/dist/editor/utils.d.ts +22 -0
  119. package/node_modules/@pierre/diffs/dist/editor/utils.d.ts.map +1 -0
  120. package/node_modules/@pierre/diffs/dist/editor/utils.js +78 -0
  121. package/node_modules/@pierre/diffs/dist/editor/utils.js.map +1 -0
  122. package/node_modules/@pierre/diffs/dist/index.d.ts +12 -9
  123. package/node_modules/@pierre/diffs/dist/index.js +13 -10
  124. package/node_modules/@pierre/diffs/dist/managers/InteractionManager.d.ts +20 -2
  125. package/node_modules/@pierre/diffs/dist/managers/InteractionManager.d.ts.map +1 -1
  126. package/node_modules/@pierre/diffs/dist/managers/InteractionManager.js +155 -79
  127. package/node_modules/@pierre/diffs/dist/managers/InteractionManager.js.map +1 -1
  128. package/node_modules/@pierre/diffs/dist/managers/ResizeManager.d.ts +10 -2
  129. package/node_modules/@pierre/diffs/dist/managers/ResizeManager.d.ts.map +1 -1
  130. package/node_modules/@pierre/diffs/dist/managers/ResizeManager.js +33 -13
  131. package/node_modules/@pierre/diffs/dist/managers/ResizeManager.js.map +1 -1
  132. package/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.d.ts +2 -1
  133. package/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.d.ts.map +1 -1
  134. package/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.js +7 -3
  135. package/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.js.map +1 -1
  136. package/node_modules/@pierre/diffs/dist/react/CodeView.d.ts +29 -3
  137. package/node_modules/@pierre/diffs/dist/react/CodeView.d.ts.map +1 -1
  138. package/node_modules/@pierre/diffs/dist/react/CodeView.js +111 -30
  139. package/node_modules/@pierre/diffs/dist/react/CodeView.js.map +1 -1
  140. package/node_modules/@pierre/diffs/dist/react/EditContext.d.ts +20 -0
  141. package/node_modules/@pierre/diffs/dist/react/EditContext.d.ts.map +1 -0
  142. package/node_modules/@pierre/diffs/dist/react/EditContext.js +27 -0
  143. package/node_modules/@pierre/diffs/dist/react/EditContext.js.map +1 -0
  144. package/node_modules/@pierre/diffs/dist/react/File.d.ts +4 -1
  145. package/node_modules/@pierre/diffs/dist/react/File.d.ts.map +1 -1
  146. package/node_modules/@pierre/diffs/dist/react/File.js +5 -2
  147. package/node_modules/@pierre/diffs/dist/react/File.js.map +1 -1
  148. package/node_modules/@pierre/diffs/dist/react/FileDiff.d.ts +4 -1
  149. package/node_modules/@pierre/diffs/dist/react/FileDiff.d.ts.map +1 -1
  150. package/node_modules/@pierre/diffs/dist/react/FileDiff.js +5 -2
  151. package/node_modules/@pierre/diffs/dist/react/FileDiff.js.map +1 -1
  152. package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.d.ts +7 -5
  153. package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.d.ts.map +1 -1
  154. package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.js +5 -2
  155. package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.js.map +1 -1
  156. package/node_modules/@pierre/diffs/dist/react/PatchDiff.d.ts +4 -1
  157. package/node_modules/@pierre/diffs/dist/react/PatchDiff.d.ts.map +1 -1
  158. package/node_modules/@pierre/diffs/dist/react/PatchDiff.js +5 -2
  159. package/node_modules/@pierre/diffs/dist/react/PatchDiff.js.map +1 -1
  160. package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.d.ts +2 -1
  161. package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.d.ts.map +1 -1
  162. package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.js +2 -1
  163. package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.js.map +1 -1
  164. package/node_modules/@pierre/diffs/dist/react/index.d.ts +4 -3
  165. package/node_modules/@pierre/diffs/dist/react/index.js +3 -2
  166. package/node_modules/@pierre/diffs/dist/react/types.d.ts +11 -0
  167. package/node_modules/@pierre/diffs/dist/react/types.d.ts.map +1 -1
  168. package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.d.ts +2 -0
  169. package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
  170. package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.js +16 -8
  171. package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.js.map +1 -1
  172. package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.d.ts +2 -0
  173. package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.d.ts.map +1 -1
  174. package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.js +16 -8
  175. package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.js.map +1 -1
  176. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.d.ts +6 -2
  177. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
  178. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.js +21 -6
  179. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.js.map +1 -1
  180. package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.d.ts +7 -2
  181. package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.d.ts.map +1 -1
  182. package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.js +21 -6
  183. package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.js.map +1 -1
  184. package/node_modules/@pierre/diffs/dist/react/utils/useUnresolvedFileInstance.js +4 -4
  185. package/node_modules/@pierre/diffs/dist/react/utils/useUnresolvedFileInstance.js.map +1 -1
  186. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.d.ts +47 -2
  187. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
  188. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js +361 -37
  189. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js.map +1 -1
  190. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.d.ts +26 -1
  191. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.d.ts.map +1 -1
  192. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js +240 -55
  193. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js.map +1 -1
  194. package/node_modules/@pierre/diffs/dist/ssr/index.d.ts +2 -2
  195. package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.d.ts +11 -10
  196. package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.d.ts.map +1 -1
  197. package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.js +17 -7
  198. package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.js.map +1 -1
  199. package/node_modules/@pierre/diffs/dist/ssr/preloadFile.d.ts.map +1 -1
  200. package/node_modules/@pierre/diffs/dist/ssr/preloadFile.js +2 -0
  201. package/node_modules/@pierre/diffs/dist/ssr/preloadFile.js.map +1 -1
  202. package/node_modules/@pierre/diffs/dist/style.js +1 -1
  203. package/node_modules/@pierre/diffs/dist/types.d.ts +336 -5
  204. package/node_modules/@pierre/diffs/dist/types.d.ts.map +1 -1
  205. package/node_modules/@pierre/diffs/dist/utils/annotationHelpers.d.ts +20 -0
  206. package/node_modules/@pierre/diffs/dist/utils/annotationHelpers.d.ts.map +1 -0
  207. package/node_modules/@pierre/diffs/dist/utils/annotationHelpers.js +29 -0
  208. package/node_modules/@pierre/diffs/dist/utils/annotationHelpers.js.map +1 -0
  209. package/node_modules/@pierre/diffs/dist/utils/applyLineTextWithNewline.d.ts +5 -0
  210. package/node_modules/@pierre/diffs/dist/utils/applyLineTextWithNewline.d.ts.map +1 -0
  211. package/node_modules/@pierre/diffs/dist/utils/applyLineTextWithNewline.js +11 -0
  212. package/node_modules/@pierre/diffs/dist/utils/applyLineTextWithNewline.js.map +1 -0
  213. package/node_modules/@pierre/diffs/dist/utils/areHunkDataEqual.js +1 -1
  214. package/node_modules/@pierre/diffs/dist/utils/areHunkDataEqual.js.map +1 -1
  215. package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.d.ts +2 -2
  216. package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.d.ts.map +1 -1
  217. package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.js +6 -1
  218. package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.js.map +1 -1
  219. package/node_modules/@pierre/diffs/dist/utils/awaitWithTimeout.d.ts +5 -0
  220. package/node_modules/@pierre/diffs/dist/utils/awaitWithTimeout.d.ts.map +1 -0
  221. package/node_modules/@pierre/diffs/dist/utils/awaitWithTimeout.js +15 -0
  222. package/node_modules/@pierre/diffs/dist/utils/awaitWithTimeout.js.map +1 -0
  223. package/node_modules/@pierre/diffs/dist/utils/cleanLastNewline.js +6 -1
  224. package/node_modules/@pierre/diffs/dist/utils/cleanLastNewline.js.map +1 -1
  225. package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.d.ts +7 -0
  226. package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.d.ts.map +1 -0
  227. package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.js +16 -0
  228. package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.js.map +1 -0
  229. package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.d.ts +3 -1
  230. package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.d.ts.map +1 -1
  231. package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.js +8 -1
  232. package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.js.map +1 -1
  233. package/node_modules/@pierre/diffs/dist/utils/computeFileOffsets.d.ts +21 -0
  234. package/node_modules/@pierre/diffs/dist/utils/computeFileOffsets.d.ts.map +1 -0
  235. package/node_modules/@pierre/diffs/dist/utils/computeFileOffsets.js +80 -0
  236. package/node_modules/@pierre/diffs/dist/utils/computeFileOffsets.js.map +1 -0
  237. package/node_modules/@pierre/diffs/dist/utils/createCodeViewHeaderFooterHostElement.d.ts +5 -0
  238. package/node_modules/@pierre/diffs/dist/utils/createCodeViewHeaderFooterHostElement.d.ts.map +1 -0
  239. package/node_modules/@pierre/diffs/dist/utils/createCodeViewHeaderFooterHostElement.js +19 -0
  240. package/node_modules/@pierre/diffs/dist/utils/createCodeViewHeaderFooterHostElement.js.map +1 -0
  241. package/node_modules/@pierre/diffs/dist/utils/createFileHeaderElement.d.ts.map +1 -1
  242. package/node_modules/@pierre/diffs/dist/utils/createFileHeaderElement.js +5 -1
  243. package/node_modules/@pierre/diffs/dist/utils/createFileHeaderElement.js.map +1 -1
  244. package/node_modules/@pierre/diffs/dist/utils/createTransformerWithState.js +9 -0
  245. package/node_modules/@pierre/diffs/dist/utils/createTransformerWithState.js.map +1 -1
  246. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.d.ts +66 -0
  247. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.d.ts.map +1 -0
  248. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.js +437 -0
  249. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.js.map +1 -0
  250. package/node_modules/@pierre/diffs/dist/utils/getDiffFileInput.d.ts +14 -0
  251. package/node_modules/@pierre/diffs/dist/utils/getDiffFileInput.d.ts.map +1 -0
  252. package/node_modules/@pierre/diffs/dist/utils/getDiffFileInput.js +24 -0
  253. package/node_modules/@pierre/diffs/dist/utils/getDiffFileInput.js.map +1 -0
  254. package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.d.ts.map +1 -1
  255. package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.js +3 -1
  256. package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.js.map +1 -1
  257. package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.d.ts.map +1 -1
  258. package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.js +2 -1
  259. package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.js.map +1 -1
  260. package/node_modules/@pierre/diffs/dist/utils/getFiletypeFromFileName.d.ts.map +1 -1
  261. package/node_modules/@pierre/diffs/dist/utils/getFiletypeFromFileName.js +2 -0
  262. package/node_modules/@pierre/diffs/dist/utils/getFiletypeFromFileName.js.map +1 -1
  263. package/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.d.ts +7 -0
  264. package/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.d.ts.map +1 -0
  265. package/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.js +12 -0
  266. package/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.js.map +1 -0
  267. package/node_modules/@pierre/diffs/dist/utils/getTotalLineCountFromHunks.d.ts.map +1 -1
  268. package/node_modules/@pierre/diffs/dist/utils/getTotalLineCountFromHunks.js +2 -1
  269. package/node_modules/@pierre/diffs/dist/utils/getTotalLineCountFromHunks.js.map +1 -1
  270. package/node_modules/@pierre/diffs/dist/utils/guardWebKitScrollDuringRebuild.d.ts +20 -0
  271. package/node_modules/@pierre/diffs/dist/utils/guardWebKitScrollDuringRebuild.d.ts.map +1 -0
  272. package/node_modules/@pierre/diffs/dist/utils/guardWebKitScrollDuringRebuild.js +34 -0
  273. package/node_modules/@pierre/diffs/dist/utils/guardWebKitScrollDuringRebuild.js.map +1 -0
  274. package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.d.ts +10 -0
  275. package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.d.ts.map +1 -0
  276. package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.js +141 -0
  277. package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.js.map +1 -0
  278. package/node_modules/@pierre/diffs/dist/utils/isGutterUtilityPath.d.ts +5 -0
  279. package/node_modules/@pierre/diffs/dist/utils/isGutterUtilityPath.d.ts.map +1 -0
  280. package/node_modules/@pierre/diffs/dist/utils/isGutterUtilityPath.js +12 -0
  281. package/node_modules/@pierre/diffs/dist/utils/isGutterUtilityPath.js.map +1 -0
  282. package/node_modules/@pierre/diffs/dist/utils/iterateOverDiff.d.ts.map +1 -1
  283. package/node_modules/@pierre/diffs/dist/utils/iterateOverDiff.js +20 -15
  284. package/node_modules/@pierre/diffs/dist/utils/iterateOverDiff.js.map +1 -1
  285. package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.d.ts +1 -1
  286. package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.d.ts.map +1 -1
  287. package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js +26 -5
  288. package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js.map +1 -1
  289. package/node_modules/@pierre/diffs/dist/utils/parseMergeConflictDiffFromFile.d.ts.map +1 -1
  290. package/node_modules/@pierre/diffs/dist/utils/parseMergeConflictDiffFromFile.js +9 -6
  291. package/node_modules/@pierre/diffs/dist/utils/parseMergeConflictDiffFromFile.js.map +1 -1
  292. package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.d.ts.map +1 -1
  293. package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js +6 -3
  294. package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js.map +1 -1
  295. package/node_modules/@pierre/diffs/dist/utils/platform.d.ts +14 -0
  296. package/node_modules/@pierre/diffs/dist/utils/platform.d.ts.map +1 -0
  297. package/node_modules/@pierre/diffs/dist/utils/platform.js +32 -0
  298. package/node_modules/@pierre/diffs/dist/utils/platform.js.map +1 -0
  299. package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.d.ts +33 -0
  300. package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.d.ts.map +1 -0
  301. package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.js +148 -0
  302. package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.js.map +1 -0
  303. package/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.js +1 -1
  304. package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
  305. package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.js +5 -14
  306. package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.js.map +1 -1
  307. package/node_modules/@pierre/diffs/dist/utils/resolveRegion.d.ts.map +1 -1
  308. package/node_modules/@pierre/diffs/dist/utils/resolveRegion.js +18 -2
  309. package/node_modules/@pierre/diffs/dist/utils/resolveRegion.js.map +1 -1
  310. package/node_modules/@pierre/diffs/dist/utils/shouldUseTokenTransformer.d.ts +7 -3
  311. package/node_modules/@pierre/diffs/dist/utils/shouldUseTokenTransformer.d.ts.map +1 -1
  312. package/node_modules/@pierre/diffs/dist/utils/shouldUseTokenTransformer.js +1 -1
  313. package/node_modules/@pierre/diffs/dist/utils/shouldUseTokenTransformer.js.map +1 -1
  314. package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.d.ts +24 -0
  315. package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.d.ts.map +1 -0
  316. package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.js +236 -0
  317. package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.js.map +1 -0
  318. package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.d.ts +43 -2
  319. package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.d.ts.map +1 -1
  320. package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.js +107 -5
  321. package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.js.map +1 -1
  322. package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.d.ts +9 -3
  323. package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.d.ts.map +1 -1
  324. package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.js +86 -18
  325. package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.js.map +1 -1
  326. package/node_modules/@pierre/diffs/dist/worker/index.d.ts +2 -2
  327. package/node_modules/@pierre/diffs/dist/worker/types.d.ts +11 -1
  328. package/node_modules/@pierre/diffs/dist/worker/types.d.ts.map +1 -1
  329. package/node_modules/@pierre/diffs/dist/worker/wasm-B9ZqxnKj.js.map +1 -1
  330. package/node_modules/@pierre/diffs/dist/worker/worker-portable.js +116 -95
  331. package/node_modules/@pierre/diffs/dist/worker/worker-portable.js.map +1 -1
  332. package/node_modules/@pierre/diffs/dist/worker/worker.js +102 -80
  333. package/node_modules/@pierre/diffs/dist/worker/worker.js.map +1 -1
  334. package/node_modules/@pierre/diffs/node_modules/@pierre/theme/LICENSE +189 -21
  335. package/node_modules/@pierre/diffs/node_modules/@pierre/theme/NOTICE.md +32 -0
  336. package/node_modules/@pierre/diffs/node_modules/@pierre/theme/package.json +3 -2
  337. package/node_modules/@pierre/diffs/node_modules/@pierre/theming/LICENSE.md +189 -0
  338. package/node_modules/@pierre/diffs/node_modules/@pierre/theming/README.md +9 -0
  339. package/node_modules/@pierre/diffs/node_modules/@pierre/theming/package.json +5 -5
  340. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/LICENSE +22 -0
  341. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/README.md +7 -0
  342. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/1c-query.d.mts +3 -0
  343. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/1c-query.mjs +2 -0
  344. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/1c.d.mts +3 -0
  345. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/1c.mjs +2 -0
  346. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/abap.d.mts +3 -0
  347. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/abap.mjs +5 -0
  348. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/actionscript-3.d.mts +3 -0
  349. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/actionscript-3.mjs +5 -0
  350. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ada.d.mts +3 -0
  351. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ada.mjs +5 -0
  352. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/adoc.d.mts +3 -0
  353. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/adoc.mjs +2 -0
  354. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-expression.d.mts +3 -0
  355. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-expression.mjs +5 -0
  356. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-html.d.mts +3 -0
  357. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-html.mjs +16 -0
  358. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-inline-style.d.mts +3 -0
  359. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-inline-style.mjs +8 -0
  360. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-inline-template.d.mts +3 -0
  361. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-inline-template.mjs +10 -0
  362. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-let-declaration.d.mts +3 -0
  363. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-let-declaration.mjs +8 -0
  364. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-template-blocks.d.mts +3 -0
  365. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-template-blocks.mjs +10 -0
  366. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-template.d.mts +3 -0
  367. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-template.mjs +8 -0
  368. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-ts.d.mts +3 -0
  369. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-ts.mjs +18 -0
  370. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/apache.d.mts +3 -0
  371. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/apache.mjs +5 -0
  372. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/apex.d.mts +3 -0
  373. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/apex.mjs +5 -0
  374. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/apl.d.mts +3 -0
  375. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/apl.mjs +16 -0
  376. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/applescript.d.mts +3 -0
  377. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/applescript.mjs +5 -0
  378. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ara.d.mts +3 -0
  379. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ara.mjs +5 -0
  380. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/asciidoc.d.mts +3 -0
  381. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/asciidoc.mjs +5 -0
  382. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/asm.d.mts +3 -0
  383. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/asm.mjs +5 -0
  384. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/astro.d.mts +3 -0
  385. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/astro.mjs +18 -0
  386. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/awk.d.mts +3 -0
  387. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/awk.mjs +5 -0
  388. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ballerina.d.mts +3 -0
  389. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ballerina.mjs +5 -0
  390. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bash.d.mts +3 -0
  391. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bash.mjs +2 -0
  392. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bat.d.mts +3 -0
  393. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bat.mjs +5 -0
  394. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/batch.d.mts +3 -0
  395. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/batch.mjs +2 -0
  396. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/be.d.mts +3 -0
  397. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/be.mjs +2 -0
  398. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/beancount.d.mts +3 -0
  399. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/beancount.mjs +5 -0
  400. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/berry.d.mts +3 -0
  401. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/berry.mjs +5 -0
  402. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bibtex.d.mts +3 -0
  403. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bibtex.mjs +5 -0
  404. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bicep.d.mts +3 -0
  405. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bicep.mjs +5 -0
  406. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bird.d.mts +3 -0
  407. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bird.mjs +2 -0
  408. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bird2.d.mts +3 -0
  409. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bird2.mjs +5 -0
  410. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/blade.d.mts +3 -0
  411. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/blade.mjs +20 -0
  412. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bsl.d.mts +3 -0
  413. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bsl.mjs +8 -0
  414. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/c.d.mts +3 -0
  415. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/c.mjs +5 -0
  416. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/c3.d.mts +3 -0
  417. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/c3.mjs +5 -0
  418. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cadence.d.mts +3 -0
  419. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cadence.mjs +5 -0
  420. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cairo.d.mts +3 -0
  421. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cairo.mjs +8 -0
  422. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cdc.d.mts +3 -0
  423. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cdc.mjs +2 -0
  424. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cjs.d.mts +3 -0
  425. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cjs.mjs +2 -0
  426. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/clarity.d.mts +3 -0
  427. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/clarity.mjs +5 -0
  428. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/clj.d.mts +3 -0
  429. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/clj.mjs +2 -0
  430. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/clojure.d.mts +3 -0
  431. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/clojure.mjs +5 -0
  432. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/closure-templates.d.mts +3 -0
  433. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/closure-templates.mjs +2 -0
  434. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cmake.d.mts +3 -0
  435. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cmake.mjs +5 -0
  436. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cmd.d.mts +3 -0
  437. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cmd.mjs +2 -0
  438. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cobol.d.mts +3 -0
  439. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cobol.mjs +10 -0
  440. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/codeowners.d.mts +3 -0
  441. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/codeowners.mjs +5 -0
  442. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/codeql.d.mts +3 -0
  443. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/codeql.mjs +5 -0
  444. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/coffee.d.mts +3 -0
  445. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/coffee.mjs +8 -0
  446. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/coffeescript.d.mts +3 -0
  447. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/coffeescript.mjs +2 -0
  448. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/common-lisp.d.mts +3 -0
  449. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/common-lisp.mjs +5 -0
  450. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/console.d.mts +3 -0
  451. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/console.mjs +2 -0
  452. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/coq.d.mts +3 -0
  453. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/coq.mjs +5 -0
  454. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cpp-macro.d.mts +3 -0
  455. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cpp-macro.mjs +12 -0
  456. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cpp.d.mts +3 -0
  457. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cpp.mjs +14 -0
  458. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cql.d.mts +3 -0
  459. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cql.mjs +2 -0
  460. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/crystal.d.mts +3 -0
  461. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/crystal.mjs +18 -0
  462. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cs.d.mts +3 -0
  463. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cs.mjs +2 -0
  464. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/csharp.d.mts +3 -0
  465. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/csharp.mjs +5 -0
  466. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/css.d.mts +3 -0
  467. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/css.mjs +5 -0
  468. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/csv.d.mts +3 -0
  469. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/csv.mjs +5 -0
  470. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cts.d.mts +3 -0
  471. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cts.mjs +2 -0
  472. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cue.d.mts +3 -0
  473. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cue.mjs +5 -0
  474. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cypher.d.mts +3 -0
  475. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cypher.mjs +5 -0
  476. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/d.d.mts +3 -0
  477. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/d.mjs +5 -0
  478. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dart.d.mts +3 -0
  479. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dart.mjs +5 -0
  480. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dax.d.mts +3 -0
  481. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dax.mjs +5 -0
  482. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/desktop.d.mts +3 -0
  483. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/desktop.mjs +5 -0
  484. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/diff.d.mts +3 -0
  485. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/diff.mjs +5 -0
  486. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/docker.d.mts +3 -0
  487. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/docker.mjs +5 -0
  488. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dockerfile.d.mts +3 -0
  489. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dockerfile.mjs +2 -0
  490. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dotenv.d.mts +3 -0
  491. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dotenv.mjs +5 -0
  492. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dream-maker.d.mts +3 -0
  493. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dream-maker.mjs +5 -0
  494. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/edge.d.mts +3 -0
  495. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/edge.mjs +12 -0
  496. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/elisp.d.mts +3 -0
  497. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/elisp.mjs +2 -0
  498. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/elixir.d.mts +3 -0
  499. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/elixir.mjs +8 -0
  500. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/elm.d.mts +3 -0
  501. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/elm.mjs +8 -0
  502. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/emacs-lisp.d.mts +3 -0
  503. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/emacs-lisp.mjs +5 -0
  504. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/erb.d.mts +3 -0
  505. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/erb.mjs +10 -0
  506. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/erl.d.mts +3 -0
  507. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/erl.mjs +2 -0
  508. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/erlang.d.mts +3 -0
  509. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/erlang.mjs +8 -0
  510. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-css.d.mts +3 -0
  511. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-css.mjs +12 -0
  512. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-glsl.d.mts +3 -0
  513. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-glsl.mjs +12 -0
  514. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-html.d.mts +3 -0
  515. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-html.mjs +12 -0
  516. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-sql.d.mts +3 -0
  517. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-sql.mjs +10 -0
  518. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-xml.d.mts +3 -0
  519. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-xml.mjs +8 -0
  520. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f.d.mts +3 -0
  521. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f.mjs +2 -0
  522. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f03.d.mts +3 -0
  523. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f03.mjs +2 -0
  524. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f08.d.mts +3 -0
  525. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f08.mjs +2 -0
  526. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f18.d.mts +3 -0
  527. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f18.mjs +2 -0
  528. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f77.d.mts +3 -0
  529. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f77.mjs +2 -0
  530. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f90.d.mts +3 -0
  531. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f90.mjs +2 -0
  532. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f95.d.mts +3 -0
  533. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f95.mjs +2 -0
  534. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fennel.d.mts +3 -0
  535. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fennel.mjs +5 -0
  536. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fish.d.mts +3 -0
  537. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fish.mjs +5 -0
  538. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fluent.d.mts +3 -0
  539. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fluent.mjs +5 -0
  540. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/for.d.mts +3 -0
  541. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/for.mjs +2 -0
  542. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fortran-fixed-form.d.mts +3 -0
  543. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fortran-fixed-form.mjs +8 -0
  544. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fortran-free-form.d.mts +3 -0
  545. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fortran-free-form.mjs +5 -0
  546. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fs.d.mts +3 -0
  547. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fs.mjs +2 -0
  548. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fsharp.d.mts +3 -0
  549. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fsharp.mjs +8 -0
  550. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fsl.d.mts +3 -0
  551. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fsl.mjs +2 -0
  552. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ftl.d.mts +3 -0
  553. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ftl.mjs +2 -0
  554. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gd.d.mts +3 -0
  555. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gd.mjs +2 -0
  556. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gdresource.d.mts +3 -0
  557. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gdresource.mjs +10 -0
  558. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gdscript.d.mts +3 -0
  559. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gdscript.mjs +5 -0
  560. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gdshader.d.mts +3 -0
  561. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gdshader.mjs +5 -0
  562. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/genie.d.mts +3 -0
  563. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/genie.mjs +5 -0
  564. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gherkin.d.mts +3 -0
  565. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gherkin.mjs +5 -0
  566. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/git-commit.d.mts +3 -0
  567. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/git-commit.mjs +8 -0
  568. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/git-rebase.d.mts +3 -0
  569. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/git-rebase.mjs +8 -0
  570. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gjs.d.mts +3 -0
  571. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gjs.mjs +2 -0
  572. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gleam.d.mts +3 -0
  573. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gleam.mjs +5 -0
  574. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/glimmer-js.d.mts +3 -0
  575. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/glimmer-js.mjs +14 -0
  576. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/glimmer-ts.d.mts +3 -0
  577. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/glimmer-ts.mjs +14 -0
  578. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/glsl.d.mts +3 -0
  579. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/glsl.mjs +8 -0
  580. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gn.d.mts +3 -0
  581. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gn.mjs +5 -0
  582. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gnuplot.d.mts +3 -0
  583. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gnuplot.mjs +5 -0
  584. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/go.d.mts +3 -0
  585. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/go.mjs +5 -0
  586. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gql.d.mts +3 -0
  587. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gql.mjs +2 -0
  588. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/graphql.d.mts +3 -0
  589. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/graphql.mjs +14 -0
  590. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/groovy.d.mts +3 -0
  591. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/groovy.mjs +5 -0
  592. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gts.d.mts +3 -0
  593. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gts.mjs +2 -0
  594. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hack.d.mts +3 -0
  595. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hack.mjs +10 -0
  596. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/haml.d.mts +3 -0
  597. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/haml.mjs +10 -0
  598. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/handlebars.d.mts +3 -0
  599. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/handlebars.mjs +14 -0
  600. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/haskell.d.mts +3 -0
  601. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/haskell.mjs +5 -0
  602. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/haxe.d.mts +3 -0
  603. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/haxe.mjs +5 -0
  604. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hbs.d.mts +3 -0
  605. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hbs.mjs +2 -0
  606. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hcl.d.mts +3 -0
  607. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hcl.mjs +5 -0
  608. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hjson.d.mts +3 -0
  609. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hjson.mjs +5 -0
  610. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hlsl.d.mts +3 -0
  611. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hlsl.mjs +5 -0
  612. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hs.d.mts +3 -0
  613. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hs.mjs +2 -0
  614. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/html-derivative.d.mts +3 -0
  615. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/html-derivative.mjs +8 -0
  616. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/html.d.mts +3 -0
  617. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/html.mjs +10 -0
  618. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/http.d.mts +3 -0
  619. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/http.mjs +14 -0
  620. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hurl.d.mts +3 -0
  621. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hurl.mjs +12 -0
  622. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hxml.d.mts +3 -0
  623. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hxml.mjs +8 -0
  624. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hy.d.mts +3 -0
  625. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hy.mjs +5 -0
  626. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/imba.d.mts +3 -0
  627. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/imba.mjs +5 -0
  628. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/index.d.mts +3 -0
  629. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/index.mjs +353 -0
  630. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ini.d.mts +3 -0
  631. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ini.mjs +5 -0
  632. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jade.d.mts +3 -0
  633. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jade.mjs +2 -0
  634. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/java.d.mts +3 -0
  635. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/java.mjs +5 -0
  636. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/javascript.d.mts +3 -0
  637. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/javascript.mjs +5 -0
  638. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jinja-html.d.mts +3 -0
  639. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jinja-html.mjs +8 -0
  640. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jinja.d.mts +3 -0
  641. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jinja.mjs +8 -0
  642. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jison.d.mts +3 -0
  643. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jison.mjs +8 -0
  644. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jl.d.mts +3 -0
  645. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jl.mjs +2 -0
  646. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/js.d.mts +3 -0
  647. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/js.mjs +2 -0
  648. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/json.d.mts +3 -0
  649. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/json.mjs +5 -0
  650. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/json5.d.mts +3 -0
  651. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/json5.mjs +5 -0
  652. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsonc.d.mts +3 -0
  653. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsonc.mjs +5 -0
  654. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsonl.d.mts +3 -0
  655. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsonl.mjs +5 -0
  656. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsonnet.d.mts +3 -0
  657. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsonnet.mjs +5 -0
  658. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jssm.d.mts +3 -0
  659. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jssm.mjs +5 -0
  660. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsx.d.mts +3 -0
  661. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsx.mjs +5 -0
  662. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/julia.d.mts +3 -0
  663. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/julia.mjs +16 -0
  664. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/just.d.mts +3 -0
  665. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/just.mjs +18 -0
  666. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kdl.d.mts +3 -0
  667. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kdl.mjs +5 -0
  668. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kotlin.d.mts +3 -0
  669. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kotlin.mjs +5 -0
  670. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kql.d.mts +3 -0
  671. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kql.mjs +2 -0
  672. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kt.d.mts +3 -0
  673. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kt.mjs +2 -0
  674. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kts.d.mts +3 -0
  675. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kts.mjs +2 -0
  676. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kusto.d.mts +3 -0
  677. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kusto.mjs +5 -0
  678. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/latex.d.mts +3 -0
  679. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/latex.mjs +8 -0
  680. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lean.d.mts +3 -0
  681. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lean.mjs +5 -0
  682. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lean4.d.mts +3 -0
  683. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lean4.mjs +2 -0
  684. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/less.d.mts +3 -0
  685. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/less.mjs +5 -0
  686. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/liquid.d.mts +3 -0
  687. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/liquid.mjs +14 -0
  688. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lisp.d.mts +3 -0
  689. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lisp.mjs +2 -0
  690. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lit.d.mts +3 -0
  691. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lit.mjs +2 -0
  692. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/llvm.d.mts +3 -0
  693. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/llvm.mjs +5 -0
  694. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/log.d.mts +3 -0
  695. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/log.mjs +5 -0
  696. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/logo.d.mts +3 -0
  697. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/logo.mjs +5 -0
  698. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lua.d.mts +3 -0
  699. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lua.mjs +8 -0
  700. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/luau.d.mts +3 -0
  701. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/luau.mjs +5 -0
  702. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/make.d.mts +3 -0
  703. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/make.mjs +5 -0
  704. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/makefile.d.mts +3 -0
  705. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/makefile.mjs +2 -0
  706. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/markdown-nix.d.mts +3 -0
  707. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/markdown-nix.mjs +5 -0
  708. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/markdown-vue.d.mts +3 -0
  709. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/markdown-vue.mjs +5 -0
  710. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/markdown.d.mts +3 -0
  711. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/markdown.mjs +5 -0
  712. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/marko.d.mts +3 -0
  713. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/marko.mjs +14 -0
  714. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/matlab.d.mts +3 -0
  715. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/matlab.mjs +5 -0
  716. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mbt.d.mts +3 -0
  717. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mbt.mjs +2 -0
  718. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mbti.d.mts +3 -0
  719. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mbti.mjs +2 -0
  720. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/md.d.mts +3 -0
  721. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/md.mjs +2 -0
  722. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mdc.d.mts +3 -0
  723. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mdc.mjs +12 -0
  724. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mdx.d.mts +3 -0
  725. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mdx.mjs +5 -0
  726. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mediawiki.d.mts +3 -0
  727. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mediawiki.mjs +2 -0
  728. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mermaid.d.mts +3 -0
  729. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mermaid.mjs +5 -0
  730. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mips.d.mts +3 -0
  731. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mips.mjs +2 -0
  732. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mipsasm.d.mts +3 -0
  733. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mipsasm.mjs +5 -0
  734. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mjs.d.mts +3 -0
  735. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mjs.mjs +2 -0
  736. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mmd.d.mts +3 -0
  737. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mmd.mjs +2 -0
  738. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mojo.d.mts +3 -0
  739. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mojo.mjs +5 -0
  740. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/moonbit.d.mts +3 -0
  741. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/moonbit.mjs +5 -0
  742. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/move.d.mts +3 -0
  743. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/move.mjs +5 -0
  744. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mts.d.mts +3 -0
  745. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mts.mjs +2 -0
  746. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nar.d.mts +3 -0
  747. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nar.mjs +2 -0
  748. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/narrat.d.mts +3 -0
  749. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/narrat.mjs +5 -0
  750. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nextflow-groovy.d.mts +3 -0
  751. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nextflow-groovy.mjs +5 -0
  752. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nextflow.d.mts +3 -0
  753. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nextflow.mjs +8 -0
  754. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nf.d.mts +3 -0
  755. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nf.mjs +2 -0
  756. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nginx.d.mts +3 -0
  757. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nginx.mjs +8 -0
  758. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nim.d.mts +3 -0
  759. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nim.mjs +20 -0
  760. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nix.d.mts +3 -0
  761. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nix.mjs +8 -0
  762. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nu.d.mts +3 -0
  763. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nu.mjs +2 -0
  764. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nushell.d.mts +3 -0
  765. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nushell.mjs +5 -0
  766. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/objc.d.mts +3 -0
  767. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/objc.mjs +2 -0
  768. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/objective-c.d.mts +3 -0
  769. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/objective-c.mjs +5 -0
  770. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/objective-cpp.d.mts +3 -0
  771. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/objective-cpp.mjs +5 -0
  772. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ocaml.d.mts +3 -0
  773. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ocaml.mjs +5 -0
  774. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/odin.d.mts +3 -0
  775. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/odin.mjs +5 -0
  776. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/openscad.d.mts +3 -0
  777. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/openscad.mjs +5 -0
  778. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pascal.d.mts +3 -0
  779. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pascal.mjs +5 -0
  780. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/perl.d.mts +3 -0
  781. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/perl.mjs +16 -0
  782. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/perl6.d.mts +3 -0
  783. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/perl6.mjs +2 -0
  784. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/php.d.mts +3 -0
  785. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/php.mjs +18 -0
  786. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pkl.d.mts +3 -0
  787. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pkl.mjs +5 -0
  788. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/plsql.d.mts +3 -0
  789. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/plsql.mjs +5 -0
  790. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/po.d.mts +3 -0
  791. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/po.mjs +5 -0
  792. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/polar.d.mts +3 -0
  793. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/polar.mjs +5 -0
  794. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/postcss.d.mts +3 -0
  795. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/postcss.mjs +5 -0
  796. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pot.d.mts +3 -0
  797. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pot.mjs +2 -0
  798. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/potx.d.mts +3 -0
  799. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/potx.mjs +2 -0
  800. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/powerquery.d.mts +3 -0
  801. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/powerquery.mjs +5 -0
  802. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/powershell.d.mts +3 -0
  803. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/powershell.mjs +5 -0
  804. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/prisma.d.mts +3 -0
  805. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/prisma.mjs +5 -0
  806. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/prolog.d.mts +3 -0
  807. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/prolog.mjs +5 -0
  808. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/properties.d.mts +3 -0
  809. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/properties.mjs +2 -0
  810. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/proto.d.mts +3 -0
  811. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/proto.mjs +5 -0
  812. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/protobuf.d.mts +3 -0
  813. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/protobuf.mjs +2 -0
  814. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ps.d.mts +3 -0
  815. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ps.mjs +2 -0
  816. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ps1.d.mts +3 -0
  817. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ps1.mjs +2 -0
  818. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pug.d.mts +3 -0
  819. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pug.mjs +12 -0
  820. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/puppet.d.mts +3 -0
  821. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/puppet.mjs +5 -0
  822. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/purescript.d.mts +3 -0
  823. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/purescript.mjs +5 -0
  824. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/py.d.mts +3 -0
  825. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/py.mjs +2 -0
  826. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/python.d.mts +3 -0
  827. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/python.mjs +5 -0
  828. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ql.d.mts +3 -0
  829. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ql.mjs +2 -0
  830. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/qml.d.mts +3 -0
  831. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/qml.mjs +8 -0
  832. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/qmldir.d.mts +3 -0
  833. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/qmldir.mjs +5 -0
  834. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/qss.d.mts +3 -0
  835. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/qss.mjs +5 -0
  836. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/r.d.mts +3 -0
  837. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/r.mjs +5 -0
  838. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/racket.d.mts +3 -0
  839. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/racket.mjs +5 -0
  840. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/raku.d.mts +3 -0
  841. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/raku.mjs +5 -0
  842. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/razor.d.mts +3 -0
  843. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/razor.mjs +10 -0
  844. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rb.d.mts +3 -0
  845. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rb.mjs +2 -0
  846. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/reg.d.mts +3 -0
  847. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/reg.mjs +5 -0
  848. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/regex.d.mts +3 -0
  849. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/regex.mjs +2 -0
  850. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/regexp.d.mts +3 -0
  851. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/regexp.mjs +5 -0
  852. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rel.d.mts +3 -0
  853. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rel.mjs +5 -0
  854. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/riscv.d.mts +3 -0
  855. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/riscv.mjs +5 -0
  856. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ron.d.mts +3 -0
  857. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ron.mjs +5 -0
  858. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rosmsg.d.mts +3 -0
  859. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rosmsg.mjs +5 -0
  860. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rs.d.mts +3 -0
  861. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rs.mjs +2 -0
  862. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rst.d.mts +3 -0
  863. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rst.mjs +22 -0
  864. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ruby.d.mts +3 -0
  865. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ruby.mjs +30 -0
  866. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rust.d.mts +3 -0
  867. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rust.mjs +5 -0
  868. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sas.d.mts +3 -0
  869. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sas.mjs +8 -0
  870. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sass.d.mts +3 -0
  871. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sass.mjs +5 -0
  872. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scad.d.mts +3 -0
  873. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scad.mjs +2 -0
  874. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scala.d.mts +3 -0
  875. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scala.mjs +5 -0
  876. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scheme.d.mts +3 -0
  877. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scheme.mjs +5 -0
  878. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scss.d.mts +3 -0
  879. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scss.mjs +8 -0
  880. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sdbl.d.mts +3 -0
  881. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sdbl.mjs +5 -0
  882. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sh.d.mts +3 -0
  883. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sh.mjs +2 -0
  884. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shader.d.mts +3 -0
  885. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shader.mjs +2 -0
  886. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shaderlab.d.mts +3 -0
  887. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shaderlab.mjs +8 -0
  888. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shell.d.mts +3 -0
  889. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shell.mjs +2 -0
  890. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shellscript.d.mts +3 -0
  891. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shellscript.mjs +5 -0
  892. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shellsession.d.mts +3 -0
  893. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shellsession.mjs +8 -0
  894. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/smalltalk.d.mts +3 -0
  895. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/smalltalk.mjs +5 -0
  896. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/solidity.d.mts +3 -0
  897. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/solidity.mjs +5 -0
  898. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/soy.d.mts +3 -0
  899. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/soy.mjs +8 -0
  900. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sparql.d.mts +3 -0
  901. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sparql.mjs +8 -0
  902. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/spl.d.mts +3 -0
  903. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/spl.mjs +2 -0
  904. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/splunk.d.mts +3 -0
  905. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/splunk.mjs +5 -0
  906. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sql.d.mts +3 -0
  907. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sql.mjs +5 -0
  908. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ssh-config.d.mts +3 -0
  909. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ssh-config.mjs +5 -0
  910. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/stata.d.mts +3 -0
  911. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/stata.mjs +8 -0
  912. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/styl.d.mts +3 -0
  913. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/styl.mjs +2 -0
  914. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/stylus.d.mts +3 -0
  915. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/stylus.mjs +5 -0
  916. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/surql.d.mts +3 -0
  917. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/surql.mjs +2 -0
  918. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/surrealql.d.mts +3 -0
  919. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/surrealql.mjs +8 -0
  920. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/svelte.d.mts +3 -0
  921. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/svelte.mjs +14 -0
  922. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/swift.d.mts +3 -0
  923. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/swift.mjs +5 -0
  924. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/system-verilog.d.mts +3 -0
  925. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/system-verilog.mjs +5 -0
  926. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/systemd.d.mts +3 -0
  927. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/systemd.mjs +5 -0
  928. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/talon.d.mts +3 -0
  929. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/talon.mjs +2 -0
  930. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/talonscript.d.mts +3 -0
  931. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/talonscript.mjs +5 -0
  932. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tasl.d.mts +3 -0
  933. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tasl.mjs +5 -0
  934. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tcl.d.mts +3 -0
  935. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tcl.mjs +5 -0
  936. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/templ.d.mts +3 -0
  937. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/templ.mjs +12 -0
  938. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/terraform.d.mts +3 -0
  939. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/terraform.mjs +5 -0
  940. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tex.d.mts +3 -0
  941. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tex.mjs +8 -0
  942. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tf.d.mts +3 -0
  943. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tf.mjs +2 -0
  944. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tfvars.d.mts +3 -0
  945. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tfvars.mjs +2 -0
  946. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/toml.d.mts +3 -0
  947. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/toml.mjs +5 -0
  948. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tres.d.mts +3 -0
  949. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tres.mjs +2 -0
  950. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ts-tags.d.mts +3 -0
  951. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ts-tags.mjs +18 -0
  952. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ts.d.mts +3 -0
  953. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ts.mjs +2 -0
  954. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tscn.d.mts +3 -0
  955. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tscn.mjs +2 -0
  956. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tsp.d.mts +3 -0
  957. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tsp.mjs +2 -0
  958. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tsv.d.mts +3 -0
  959. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tsv.mjs +5 -0
  960. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tsx.d.mts +3 -0
  961. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tsx.mjs +5 -0
  962. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/turtle.d.mts +3 -0
  963. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/turtle.mjs +5 -0
  964. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/twig.d.mts +3 -0
  965. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/twig.mjs +18 -0
  966. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typ.d.mts +3 -0
  967. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typ.mjs +2 -0
  968. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typescript.d.mts +3 -0
  969. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typescript.mjs +5 -0
  970. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typespec.d.mts +3 -0
  971. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typespec.mjs +5 -0
  972. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typst.d.mts +3 -0
  973. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typst.mjs +5 -0
  974. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/v.d.mts +3 -0
  975. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/v.mjs +5 -0
  976. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vala.d.mts +3 -0
  977. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vala.mjs +5 -0
  978. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vb.d.mts +3 -0
  979. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vb.mjs +5 -0
  980. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/verilog.d.mts +3 -0
  981. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/verilog.mjs +5 -0
  982. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vhdl.d.mts +3 -0
  983. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vhdl.mjs +5 -0
  984. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vim.d.mts +3 -0
  985. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vim.mjs +2 -0
  986. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/viml.d.mts +3 -0
  987. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/viml.mjs +5 -0
  988. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vimscript.d.mts +3 -0
  989. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vimscript.mjs +2 -0
  990. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-directives.d.mts +3 -0
  991. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-directives.mjs +5 -0
  992. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-html.d.mts +3 -0
  993. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-html.mjs +8 -0
  994. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-interpolations.d.mts +3 -0
  995. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-interpolations.mjs +5 -0
  996. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-sfc-style-variable-injection.d.mts +3 -0
  997. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-sfc-style-variable-injection.mjs +8 -0
  998. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-vine.d.mts +3 -0
  999. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-vine.mjs +18 -0
  1000. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue.d.mts +3 -0
  1001. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue.mjs +26 -0
  1002. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vy.d.mts +3 -0
  1003. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vy.mjs +2 -0
  1004. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vyper.d.mts +3 -0
  1005. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vyper.mjs +5 -0
  1006. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wasm.d.mts +3 -0
  1007. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wasm.mjs +5 -0
  1008. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wenyan.d.mts +3 -0
  1009. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wenyan.mjs +5 -0
  1010. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wgsl.d.mts +3 -0
  1011. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wgsl.mjs +5 -0
  1012. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wiki.d.mts +3 -0
  1013. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wiki.mjs +2 -0
  1014. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wikitext.d.mts +3 -0
  1015. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wikitext.mjs +5 -0
  1016. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wit.d.mts +3 -0
  1017. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wit.mjs +5 -0
  1018. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wl.d.mts +3 -0
  1019. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wl.mjs +2 -0
  1020. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wolfram.d.mts +3 -0
  1021. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wolfram.mjs +5 -0
  1022. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/xml.d.mts +3 -0
  1023. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/xml.mjs +8 -0
  1024. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/xsl.d.mts +3 -0
  1025. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/xsl.mjs +8 -0
  1026. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/yaml.d.mts +3 -0
  1027. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/yaml.mjs +5 -0
  1028. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/yml.d.mts +3 -0
  1029. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/yml.mjs +2 -0
  1030. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/zenscript.d.mts +3 -0
  1031. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/zenscript.mjs +5 -0
  1032. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/zig.d.mts +3 -0
  1033. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/zig.mjs +5 -0
  1034. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/zsh.d.mts +3 -0
  1035. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/zsh.mjs +2 -0
  1036. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/package.json +387 -0
  1037. package/node_modules/@pierre/diffs/package.json +13 -4
  1038. package/node_modules/@shikijs/langs/dist/actionscript-3.mjs +1 -1
  1039. package/node_modules/@shikijs/langs/dist/actionscript.d.mts +3 -0
  1040. package/node_modules/@shikijs/langs/dist/actionscript.mjs +2 -0
  1041. package/node_modules/@shikijs/langs/dist/ahk.d.mts +3 -0
  1042. package/node_modules/@shikijs/langs/dist/ahk.mjs +5 -0
  1043. package/node_modules/@shikijs/langs/dist/ahk1.d.mts +3 -0
  1044. package/node_modules/@shikijs/langs/dist/ahk1.mjs +2 -0
  1045. package/node_modules/@shikijs/langs/dist/ahk2.d.mts +3 -0
  1046. package/node_modules/@shikijs/langs/dist/ahk2.mjs +5 -0
  1047. package/node_modules/@shikijs/langs/dist/apex.mjs +1 -1
  1048. package/node_modules/@shikijs/langs/dist/as3.d.mts +3 -0
  1049. package/node_modules/@shikijs/langs/dist/as3.mjs +2 -0
  1050. package/node_modules/@shikijs/langs/dist/asciidoc.mjs +1 -1
  1051. package/node_modules/@shikijs/langs/dist/bat.mjs +1 -1
  1052. package/node_modules/@shikijs/langs/dist/bird2.mjs +1 -1
  1053. package/node_modules/@shikijs/langs/dist/bsl.mjs +1 -1
  1054. package/node_modules/@shikijs/langs/dist/c3.mjs +1 -1
  1055. package/node_modules/@shikijs/langs/dist/chapel.d.mts +3 -0
  1056. package/node_modules/@shikijs/langs/dist/chapel.mjs +8 -0
  1057. package/node_modules/@shikijs/langs/dist/chpl.d.mts +3 -0
  1058. package/node_modules/@shikijs/langs/dist/chpl.mjs +2 -0
  1059. package/node_modules/@shikijs/langs/dist/clarity.mjs +1 -1
  1060. package/node_modules/@shikijs/langs/dist/cmd.mjs +2 -2
  1061. package/node_modules/@shikijs/langs/dist/coq.mjs +1 -1
  1062. package/node_modules/@shikijs/langs/dist/cpp-macro.mjs +1 -3
  1063. package/node_modules/@shikijs/langs/dist/cpp.mjs +1 -3
  1064. package/node_modules/@shikijs/langs/dist/emacs-lisp.mjs +1 -1
  1065. package/node_modules/@shikijs/langs/dist/gdscript.mjs +1 -1
  1066. package/node_modules/@shikijs/langs/dist/hack.mjs +1 -1
  1067. package/node_modules/@shikijs/langs/dist/haxe.mjs +1 -1
  1068. package/node_modules/@shikijs/langs/dist/hxml.mjs +1 -1
  1069. package/node_modules/@shikijs/langs/dist/index.mjs +14 -0
  1070. package/node_modules/@shikijs/langs/dist/just.mjs +1 -1
  1071. package/node_modules/@shikijs/langs/dist/justfile.d.mts +3 -0
  1072. package/node_modules/@shikijs/langs/dist/justfile.mjs +2 -0
  1073. package/node_modules/@shikijs/langs/dist/llvm.mjs +1 -1
  1074. package/node_modules/@shikijs/langs/dist/luau.mjs +1 -1
  1075. package/node_modules/@shikijs/langs/dist/mdc.mjs +1 -1
  1076. package/node_modules/@shikijs/langs/dist/mermaid.mjs +1 -1
  1077. package/node_modules/@shikijs/langs/dist/mojo.mjs +1 -1
  1078. package/node_modules/@shikijs/langs/dist/moonbit.mjs +1 -1
  1079. package/node_modules/@shikijs/langs/dist/move.mjs +1 -1
  1080. package/node_modules/@shikijs/langs/dist/nsis.d.mts +3 -0
  1081. package/node_modules/@shikijs/langs/dist/nsis.mjs +5 -0
  1082. package/node_modules/@shikijs/langs/dist/nushell.mjs +1 -1
  1083. package/node_modules/@shikijs/langs/dist/org.d.mts +3 -0
  1084. package/node_modules/@shikijs/langs/dist/org.mjs +100 -0
  1085. package/node_modules/@shikijs/langs/dist/powershell.mjs +1 -1
  1086. package/node_modules/@shikijs/langs/dist/prisma.mjs +1 -1
  1087. package/node_modules/@shikijs/langs/dist/pwsh.d.mts +3 -0
  1088. package/node_modules/@shikijs/langs/dist/pwsh.mjs +2 -0
  1089. package/node_modules/@shikijs/langs/dist/r.mjs +1 -1
  1090. package/node_modules/@shikijs/langs/dist/rbs.d.mts +3 -0
  1091. package/node_modules/@shikijs/langs/dist/rbs.mjs +5 -0
  1092. package/node_modules/@shikijs/langs/dist/ruby-signature.d.mts +3 -0
  1093. package/node_modules/@shikijs/langs/dist/ruby-signature.mjs +2 -0
  1094. package/node_modules/@shikijs/langs/dist/scala.mjs +1 -1
  1095. package/node_modules/@shikijs/langs/dist/smalltalk.mjs +1 -1
  1096. package/node_modules/@shikijs/langs/dist/smithy.d.mts +3 -0
  1097. package/node_modules/@shikijs/langs/dist/smithy.mjs +5 -0
  1098. package/node_modules/@shikijs/langs/dist/solidity.mjs +1 -1
  1099. package/node_modules/@shikijs/langs/dist/surrealql.mjs +1 -1
  1100. package/node_modules/@shikijs/langs/dist/swift.mjs +1 -1
  1101. package/node_modules/@shikijs/langs/dist/system-verilog.mjs +1 -1
  1102. package/node_modules/@shikijs/langs/dist/twig.mjs +1 -1
  1103. package/node_modules/@shikijs/langs/dist/typst.mjs +116 -1
  1104. package/node_modules/@shikijs/langs/dist/v.mjs +1 -1
  1105. package/node_modules/@shikijs/langs/dist/vb.mjs +1 -1
  1106. package/node_modules/@shikijs/langs/dist/verilog.mjs +1 -1
  1107. package/node_modules/@shikijs/langs/dist/vue.mjs +1 -1
  1108. package/node_modules/@shikijs/langs/node_modules/@shikijs/types/dist/index.d.mts +0 -1
  1109. package/node_modules/@shikijs/langs/node_modules/@shikijs/types/package.json +2 -2
  1110. package/node_modules/@shikijs/langs/package.json +18 -4
  1111. package/node_modules/typebox/build/format/date.d.mts +1 -1
  1112. package/node_modules/typebox/build/format/date.mjs +1 -1
  1113. package/node_modules/typebox/build/format/date_time.d.mts +2 -2
  1114. package/node_modules/typebox/build/format/date_time.mjs +3 -3
  1115. package/node_modules/typebox/build/format/email.d.mts +1 -1
  1116. package/node_modules/typebox/build/format/email.mjs +2 -2
  1117. package/node_modules/typebox/build/format/hostname.mjs +2 -10
  1118. package/node_modules/typebox/build/format/idn_email.d.mts +1 -1
  1119. package/node_modules/typebox/build/format/idn_email.mjs +3 -3
  1120. package/node_modules/typebox/build/format/idn_hostname.d.mts +1 -0
  1121. package/node_modules/typebox/build/format/idn_hostname.mjs +3 -11
  1122. package/node_modules/typebox/build/format/idna/format/bidi.d.mts +3 -0
  1123. package/node_modules/typebox/build/format/idna/format/bidi.mjs +98 -0
  1124. package/node_modules/typebox/build/format/idna/format/puny.d.mts +3 -0
  1125. package/node_modules/typebox/build/format/idna/format/puny.mjs +144 -0
  1126. package/node_modules/typebox/build/format/idna/hostname.d.mts +1 -0
  1127. package/node_modules/typebox/build/format/idna/hostname.mjs +16 -0
  1128. package/node_modules/typebox/build/format/idna/idn-hostname.d.mts +1 -0
  1129. package/node_modules/typebox/build/format/idna/idn-hostname.mjs +23 -0
  1130. package/node_modules/typebox/build/format/idna/index.d.mts +2 -0
  1131. package/node_modules/typebox/build/format/idna/index.mjs +2 -0
  1132. package/node_modules/typebox/build/format/idna/label/ascii.d.mts +1 -0
  1133. package/node_modules/typebox/build/format/idna/label/ascii.mjs +9 -0
  1134. package/node_modules/typebox/build/format/idna/label/puny.d.mts +1 -0
  1135. package/node_modules/typebox/build/format/idna/label/puny.mjs +28 -0
  1136. package/node_modules/typebox/build/format/idna/label/unicode.d.mts +1 -0
  1137. package/node_modules/typebox/build/format/idna/label/unicode.mjs +106 -0
  1138. package/node_modules/typebox/build/format/idna/pattern/pattern.d.mts +30 -0
  1139. package/node_modules/typebox/build/format/idna/pattern/pattern.mjs +70 -0
  1140. package/node_modules/typebox/build/format/ipv4.d.mts +0 -1
  1141. package/node_modules/typebox/build/format/ipv4.mjs +2 -32
  1142. package/node_modules/typebox/build/format/ipv6.mjs +2 -61
  1143. package/node_modules/typebox/build/format/iri.d.mts +2 -2
  1144. package/node_modules/typebox/build/format/iri.mjs +26 -8
  1145. package/node_modules/typebox/build/format/iri_reference.d.mts +2 -2
  1146. package/node_modules/typebox/build/format/iri_reference.mjs +9 -55
  1147. package/node_modules/typebox/build/format/regex.d.mts +1 -2
  1148. package/node_modules/typebox/build/format/regex.mjs +2 -6
  1149. package/node_modules/typebox/build/format/time.d.mts +2 -2
  1150. package/node_modules/typebox/build/format/time.mjs +19 -14
  1151. package/node_modules/typebox/build/format/uri.d.mts +1 -1
  1152. package/node_modules/typebox/build/format/uri.mjs +3 -130
  1153. package/node_modules/typebox/build/format/uri_reference.d.mts +1 -1
  1154. package/node_modules/typebox/build/format/uri_reference.mjs +2 -3
  1155. package/node_modules/typebox/build/format/uri_template.d.mts +2 -3
  1156. package/node_modules/typebox/build/format/uri_template.mjs +4 -5
  1157. package/node_modules/typebox/build/format/url.d.mts +3 -3
  1158. package/node_modules/typebox/build/format/url.mjs +4 -5
  1159. package/node_modules/typebox/build/guard/emit.d.mts +3 -1
  1160. package/node_modules/typebox/build/guard/emit.mjs +12 -5
  1161. package/node_modules/typebox/build/guard/guard.d.mts +8 -2
  1162. package/node_modules/typebox/build/guard/guard.mjs +25 -4
  1163. package/node_modules/typebox/build/guard/string.d.mts +2 -2
  1164. package/node_modules/typebox/build/guard/string.mjs +7 -7
  1165. package/node_modules/typebox/build/schema/engine/_context.mjs +3 -3
  1166. package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -2
  1167. package/node_modules/typebox/build/schema/engine/_regexp.d.mts +2 -0
  1168. package/node_modules/typebox/build/schema/engine/_regexp.mjs +4 -0
  1169. package/node_modules/typebox/build/schema/engine/_stack.mjs +12 -13
  1170. package/node_modules/typebox/build/schema/engine/additionalItems.mjs +17 -7
  1171. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +4 -3
  1172. package/node_modules/typebox/build/schema/engine/contains.mjs +18 -6
  1173. package/node_modules/typebox/build/schema/engine/enum.mjs +1 -1
  1174. package/node_modules/typebox/build/schema/engine/items.mjs +26 -6
  1175. package/node_modules/typebox/build/schema/engine/maxContains.mjs +3 -3
  1176. package/node_modules/typebox/build/schema/engine/minContains.mjs +14 -4
  1177. package/node_modules/typebox/build/schema/engine/not.mjs +4 -2
  1178. package/node_modules/typebox/build/schema/engine/oneOf.mjs +7 -6
  1179. package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -2
  1180. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +4 -3
  1181. package/node_modules/typebox/build/schema/engine/ref.mjs +1 -7
  1182. package/node_modules/typebox/build/schema/engine/schema.mjs +13 -4
  1183. package/node_modules/typebox/build/schema/engine/type.mjs +1 -1
  1184. package/node_modules/typebox/build/schema/resolve/resolve.d.mts +4 -1
  1185. package/node_modules/typebox/build/schema/resolve/resolve.mjs +202 -1
  1186. package/node_modules/typebox/build/schema/static/propertyNames.d.mts +5 -0
  1187. package/node_modules/typebox/build/schema/static/propertyNames.mjs +3 -0
  1188. package/node_modules/typebox/build/schema/static/schema.d.mts +3 -0
  1189. package/node_modules/typebox/build/schema/types/index.d.mts +0 -2
  1190. package/node_modules/typebox/build/schema/types/index.mjs +0 -2
  1191. package/node_modules/typebox/build/system/memory/clone.mjs +14 -11
  1192. package/node_modules/typebox/build/system/memory/discard.mjs +6 -5
  1193. package/node_modules/typebox/build/system/settings/settings.d.mts +9 -0
  1194. package/node_modules/typebox/build/system/settings/settings.mjs +2 -0
  1195. package/node_modules/typebox/build/type/engine/call/distribute_arguments.d.mts +6 -1
  1196. package/node_modules/typebox/build/type/engine/call/distribute_arguments.mjs +16 -3
  1197. package/node_modules/typebox/build/type/engine/call/instantiate.mjs +34 -4
  1198. package/node_modules/typebox/build/type/engine/evaluate/broaden.d.mts +5 -5
  1199. package/node_modules/typebox/build/type/engine/evaluate/broaden.mjs +20 -26
  1200. package/node_modules/typebox/build/type/engine/evaluate/compare.d.mts +6 -10
  1201. package/node_modules/typebox/build/type/engine/evaluate/compare.mjs +9 -13
  1202. package/node_modules/typebox/build/type/engine/evaluate/composite.d.mts +7 -4
  1203. package/node_modules/typebox/build/type/engine/evaluate/composite.mjs +12 -19
  1204. package/node_modules/typebox/build/type/engine/evaluate/distribute.d.mts +4 -20
  1205. package/node_modules/typebox/build/type/engine/evaluate/distribute.mjs +8 -20
  1206. package/node_modules/typebox/build/type/engine/evaluate/evaluate.d.mts +4 -4
  1207. package/node_modules/typebox/build/type/engine/evaluate/evaluate.mjs +11 -8
  1208. package/node_modules/typebox/build/type/engine/evaluate/flatten.d.mts +1 -1
  1209. package/node_modules/typebox/build/type/engine/evaluate/flatten.mjs +3 -4
  1210. package/node_modules/typebox/build/type/engine/evaluate/narrow.d.mts +17 -2
  1211. package/node_modules/typebox/build/type/engine/evaluate/narrow.mjs +26 -6
  1212. package/node_modules/typebox/build/type/engine/exclude/operation.mjs +3 -4
  1213. package/node_modules/typebox/build/type/engine/extract/operation.d.mts +1 -1
  1214. package/node_modules/typebox/build/type/engine/extract/operation.mjs +3 -4
  1215. package/node_modules/typebox/build/type/engine/priority/priority.d.mts +2 -2
  1216. package/node_modules/typebox/build/type/engine/priority/priority.mjs +3 -4
  1217. package/node_modules/typebox/build/type/script/mapping.d.mts +32 -29
  1218. package/node_modules/typebox/build/type/script/mapping.mjs +18 -25
  1219. package/node_modules/typebox/build/type/script/parser.d.mts +19 -25
  1220. package/node_modules/typebox/build/type/script/parser.mjs +27 -23
  1221. package/node_modules/typebox/build/value/errors/errors.d.mts +2 -2
  1222. package/node_modules/typebox/build/value/errors/errors.mjs +1 -1
  1223. package/node_modules/typebox/package.json +27 -27
  1224. package/node_modules/typebox/readme.md +79 -82
  1225. package/package.json +9 -8
  1226. package/node_modules/@pierre/diffs/dist/utils/iterateOverFile.d.ts +0 -50
  1227. package/node_modules/@pierre/diffs/dist/utils/iterateOverFile.d.ts.map +0 -1
  1228. package/node_modules/@pierre/diffs/dist/utils/iterateOverFile.js +0 -49
  1229. package/node_modules/@pierre/diffs/dist/utils/iterateOverFile.js.map +0 -1
  1230. package/node_modules/typebox/build/format/_idna.d.mts +0 -2
  1231. package/node_modules/typebox/build/format/_idna.mjs +0 -246
  1232. package/node_modules/typebox/build/format/_puny.d.mts +0 -1
  1233. package/node_modules/typebox/build/format/_puny.mjs +0 -77
  1234. package/node_modules/typebox/build/schema/resolve/ref.d.mts +0 -3
  1235. package/node_modules/typebox/build/schema/resolve/ref.mjs +0 -146
  1236. package/node_modules/typebox/build/schema/types/contentEncoding.d.mts +0 -9
  1237. package/node_modules/typebox/build/schema/types/contentEncoding.mjs +0 -13
  1238. package/node_modules/typebox/build/schema/types/contentMediaType.d.mts +0 -9
  1239. package/node_modules/typebox/build/schema/types/contentMediaType.mjs +0 -13
@@ -1 +1 @@
1
- {"version":3,"file":"DiffHunksRenderer.js","names":["createDefaultAnnotationElement"],"sources":["../../src/renderers/DiffHunksRenderer.ts"],"sourcesContent":["import type { ElementContent, Element as HASTElement, Properties } from 'hast';\nimport { toHtml } from 'hast-util-to-html';\n\nimport {\n DEFAULT_COLLAPSED_CONTEXT_THRESHOLD,\n DEFAULT_EXPANDED_REGION,\n DEFAULT_RENDER_RANGE,\n DEFAULT_THEMES,\n DEFAULT_TOKENIZE_MAX_LENGTH,\n} from '../constants';\nimport { areLanguagesAttached } from '../highlighter/languages/areLanguagesAttached';\nimport {\n getHighlighterIfLoaded,\n getSharedHighlighter,\n} from '../highlighter/shared_highlighter';\nimport { areThemesAttached } from '../highlighter/themes/areThemesAttached';\nimport type {\n AnnotationLineMap,\n AnnotationSpan,\n BaseDiffOptions,\n BaseDiffOptionsWithDefaults,\n CodeColumnType,\n CustomPreProperties,\n DiffLineAnnotation,\n DiffsHighlighter,\n ExpansionDirections,\n FileDiffMetadata,\n FileHeaderRenderMode,\n HunkData,\n HunkExpansionRegion,\n HunkSeparators,\n LineTypes,\n RenderDiffOptions,\n RenderDiffResult,\n RenderedDiffASTCache,\n RenderRange,\n SupportedLanguages,\n ThemedDiffResult,\n} from '../types';\nimport { areDiffRenderOptionsEqual } from '../utils/areDiffRenderOptionsEqual';\nimport { areDiffTargetsEqual } from '../utils/areDiffTargetsEqual';\nimport { areRenderRangesEqual } from '../utils/areRenderRangesEqual';\nimport { createAnnotationElement as createDefaultAnnotationElement } from '../utils/createAnnotationElement';\nimport { createContentColumn } from '../utils/createContentColumn';\nimport { createEmptyRowBuffer } from '../utils/createEmptyRowBuffer';\nimport { createFileHeaderElement } from '../utils/createFileHeaderElement';\nimport { createNoNewlineElement } from '../utils/createNoNewlineElement';\nimport { createPreElement } from '../utils/createPreElement';\nimport { createSeparator } from '../utils/createSeparator';\nimport { getFiletypeFromFileName } from '../utils/getFiletypeFromFileName';\nimport { getHighlighterOptions } from '../utils/getHighlighterOptions';\nimport { getHunkSeparatorSlotName } from '../utils/getHunkSeparatorSlotName';\nimport { getLineAnnotationName } from '../utils/getLineAnnotationName';\nimport { getTotalLineCountFromHunks } from '../utils/getTotalLineCountFromHunks';\nimport {\n createGutterGap,\n createGutterItem,\n createGutterWrapper,\n createHastElement,\n} from '../utils/hast_utils';\nimport {\n FILE_ANNOTATION_HUNK_INDEX,\n FILE_ANNOTATION_LINE_INDEX,\n getFileAnnotations,\n shouldRenderFileAnnotations,\n} from '../utils/includesFileAnnotations';\nimport { isDefaultRenderRange } from '../utils/isDefaultRenderRange';\nimport { isDiffPlainText } from '../utils/isDiffPlainText';\nimport type { DiffLineMetadata } from '../utils/iterateOverDiff';\nimport { iterateOverDiff } from '../utils/iterateOverDiff';\nimport { renderDiffWithHighlighter } from '../utils/renderDiffWithHighlighter';\nimport { shouldUseTokenTransformer } from '../utils/shouldUseTokenTransformer';\nimport { getTrailingContextRangeSize } from '../utils/virtualDiffLayout';\nimport type { WorkerPoolManager } from '../worker';\n\ninterface PushLineWithAnnotation {\n diffStyle: 'unified' | 'split';\n type: 'context' | 'context-expanded' | 'change';\n\n deletionLine?: ElementContent;\n additionLine?: ElementContent;\n\n unifiedSpan?: AnnotationSpan;\n deletionSpan?: AnnotationSpan;\n additionSpan?: AnnotationSpan;\n\n createAnnotationElement(span: AnnotationSpan): HASTElement;\n context: ProcessContext;\n}\n\ninterface GetRenderOptionsReturn {\n options: RenderDiffOptions;\n forceHighlight: boolean;\n}\n\ninterface PushSeparatorProps {\n hunkIndex: number;\n collapsedLines: number;\n rangeSize: number;\n hunkSpecs: string | undefined;\n isFirstHunk: boolean;\n isLastHunk: boolean;\n isExpandable: boolean;\n}\n\ninterface ProcessContext {\n rowCount: number;\n expansionLineCount: number;\n hunkSeparators: HunkSeparators;\n unifiedContentAST: ElementContent[];\n deletionsContentAST: ElementContent[];\n additionsContentAST: ElementContent[];\n unifiedGutterAST: HASTElement;\n deletionsGutterAST: HASTElement;\n additionsGutterAST: HASTElement;\n hunkData: HunkData[];\n pushToGutter(type: CodeColumnType, element: HASTElement): void;\n incrementRowCount(count?: number): void;\n}\n\nexport interface DiffHunksRendererOptions extends BaseDiffOptions {\n headerRenderMode?: FileHeaderRenderMode;\n}\n\nexport interface DiffHunksRendererOptionsWithDefaults extends Omit<\n BaseDiffOptionsWithDefaults,\n 'themeType'\n> {\n headerRenderMode: FileHeaderRenderMode;\n}\n\nexport interface UnifiedLineDecorationProps {\n type: 'context' | 'context-expanded' | 'change';\n lineType: LineTypes;\n additionLineIndex: number | undefined;\n deletionLineIndex: number | undefined;\n}\n\nexport interface SplitLineDecorationProps {\n side: 'deletions' | 'additions';\n type: 'context' | 'context-expanded' | 'change';\n lineIndex: number | undefined;\n}\n\nexport interface LineDecoration {\n gutterLineType: LineTypes;\n gutterProperties?: Properties;\n contentProperties?: Properties;\n}\n\ninterface PendingSplitContext {\n size: number;\n side: 'additions' | 'deletions' | undefined;\n increment(): void;\n flush(): void;\n}\n\nexport interface RenderedLineContext {\n type: 'context' | 'context-expanded' | 'change';\n hunkIndex: number;\n lineIndex: number;\n unifiedLineIndex: number;\n splitLineIndex: number;\n deletionLine?: DiffLineMetadata;\n additionLine?: DiffLineMetadata;\n}\n\nexport interface InjectedRow {\n content: HASTElement;\n gutter: HASTElement;\n}\n\nexport interface SplitInjectedRow {\n deletion: InjectedRow | undefined;\n addition: InjectedRow | undefined;\n}\n\nexport interface UnifiedInjectedRowPlacement {\n before?: InjectedRow[];\n after?: InjectedRow[];\n}\n\nexport interface SplitInjectedRowPlacement {\n before?: SplitInjectedRow[];\n after?: SplitInjectedRow[];\n}\n\nexport interface HunksRenderResult {\n unifiedGutterAST: ElementContent[] | undefined;\n unifiedContentAST: ElementContent[] | undefined;\n deletionsGutterAST: ElementContent[] | undefined;\n deletionsContentAST: ElementContent[] | undefined;\n additionsGutterAST: ElementContent[] | undefined;\n additionsContentAST: ElementContent[] | undefined;\n hunkData: HunkData[];\n css: string;\n preNode: HASTElement;\n headerElement: HASTElement | undefined;\n totalLines: number;\n themeStyles: string;\n baseThemeType: 'light' | 'dark' | undefined;\n rowCount: number;\n bufferBefore: number;\n bufferAfter: number;\n}\n\nlet instanceId = -1;\n\nexport class DiffHunksRenderer<LAnnotation = undefined> {\n readonly __id: string = `diff-hunks-renderer:${++instanceId}`;\n\n private highlighter: DiffsHighlighter | undefined;\n private diff: FileDiffMetadata | undefined;\n\n private expandedHunks = new Map<number, HunkExpansionRegion>();\n\n private deletionAnnotations: AnnotationLineMap<LAnnotation> = {};\n private additionAnnotations: AnnotationLineMap<LAnnotation> = {};\n\n private computedLang: SupportedLanguages = 'text';\n private renderCache: RenderedDiffASTCache | undefined;\n\n constructor(\n public options: DiffHunksRendererOptions = { theme: DEFAULT_THEMES },\n private onRenderUpdate?: () => unknown,\n private workerManager?: WorkerPoolManager | undefined\n ) {\n if (workerManager?.isWorkingPool() !== true) {\n this.highlighter = areThemesAttached(options.theme ?? DEFAULT_THEMES)\n ? getHighlighterIfLoaded()\n : undefined;\n }\n }\n\n public cleanUp(): void {\n this.recycle();\n this.expandedHunks.clear();\n this.workerManager = undefined;\n this.onRenderUpdate = undefined;\n }\n\n public recycle(): void {\n this.highlighter = undefined;\n this.diff = undefined;\n this.clearRenderCache();\n this.additionAnnotations = {};\n this.deletionAnnotations = {};\n this.workerManager?.cleanUpTasks(this);\n }\n\n public clearRenderCache(): void {\n this.renderCache = undefined;\n }\n\n public setOptions(options: DiffHunksRendererOptions): void {\n this.options = options;\n }\n\n public mergeOptions(options: Partial<DiffHunksRendererOptions>): void {\n this.options = { ...this.options, ...options };\n }\n\n public expandHunk(\n index: number,\n direction: ExpansionDirections,\n expansionLineCount: number = this.getOptionsWithDefaults()\n .expansionLineCount\n ): void {\n const region = {\n ...(this.expandedHunks.get(index) ?? {\n fromStart: 0,\n fromEnd: 0,\n }),\n };\n if (direction === 'up' || direction === 'both') {\n region.fromStart += expansionLineCount;\n }\n if (direction === 'down' || direction === 'both') {\n region.fromEnd += expansionLineCount;\n }\n // NOTE(amadeus): If our render cache is not highlighted, we need to clear\n // it, otherwise we won't have the correct AST lines\n if (this.renderCache?.highlighted !== true) {\n this.clearRenderCache();\n }\n this.expandedHunks.set(index, region);\n }\n\n public getExpandedHunk(hunkIndex: number): HunkExpansionRegion {\n return this.expandedHunks.get(hunkIndex) ?? DEFAULT_EXPANDED_REGION;\n }\n\n public getExpandedHunksMap(): Map<number, HunkExpansionRegion> {\n return this.expandedHunks;\n }\n\n public setLineAnnotations(\n lineAnnotations: DiffLineAnnotation<LAnnotation>[]\n ): void {\n this.additionAnnotations = {};\n this.deletionAnnotations = {};\n for (const annotation of lineAnnotations) {\n const map = ((): AnnotationLineMap<LAnnotation> => {\n switch (annotation.side) {\n case 'deletions':\n return this.deletionAnnotations;\n case 'additions':\n return this.additionAnnotations;\n }\n })();\n const arr = map[annotation.lineNumber] ?? [];\n map[annotation.lineNumber] = arr;\n arr.push(annotation);\n }\n }\n\n protected getUnifiedLineDecoration({\n lineType,\n }: UnifiedLineDecorationProps): LineDecoration {\n return { gutterLineType: lineType };\n }\n\n protected getSplitLineDecoration({\n side,\n type,\n }: SplitLineDecorationProps): LineDecoration {\n if (type !== 'change') {\n return { gutterLineType: type };\n }\n return {\n gutterLineType:\n side === 'deletions' ? 'change-deletion' : 'change-addition',\n };\n }\n\n private createAnnotationElement = (span: AnnotationSpan): HASTElement => {\n return createDefaultAnnotationElement(span);\n };\n\n // Unified hook returns extra rows that render before/after the current line.\n declare protected getUnifiedInjectedRowsForLine?: (\n ctx: RenderedLineContext\n ) => UnifiedInjectedRowPlacement | undefined;\n\n // Split hook returns extra rows per side before/after the current line.\n declare protected getSplitInjectedRowsForLine?: (\n ctx: RenderedLineContext\n ) => SplitInjectedRowPlacement | undefined;\n\n protected getOptionsWithDefaults(): DiffHunksRendererOptionsWithDefaults {\n const {\n diffIndicators = 'bars',\n diffStyle = 'split',\n disableBackground = false,\n disableFileHeader = false,\n disableLineNumbers = false,\n disableVirtualizationBuffers = false,\n collapsed = false,\n expandUnchanged = false,\n collapsedContextThreshold = DEFAULT_COLLAPSED_CONTEXT_THRESHOLD,\n expansionLineCount = 100,\n hunkSeparators = 'line-info',\n lineDiffType = 'word-alt',\n maxLineDiffLength = 1000,\n overflow = 'scroll',\n stickyHeader = false,\n theme = DEFAULT_THEMES,\n headerRenderMode = 'default',\n tokenizeMaxLineLength = 1000,\n tokenizeMaxLength = DEFAULT_TOKENIZE_MAX_LENGTH,\n useTokenTransformer = false,\n useCSSClasses = false,\n } = this.options;\n return {\n diffIndicators,\n diffStyle,\n disableBackground,\n disableFileHeader,\n disableLineNumbers,\n disableVirtualizationBuffers,\n collapsed,\n expandUnchanged,\n collapsedContextThreshold,\n expansionLineCount,\n hunkSeparators,\n lineDiffType,\n maxLineDiffLength,\n overflow,\n stickyHeader,\n theme: this.workerManager?.getDiffRenderOptions().theme ?? theme,\n headerRenderMode,\n tokenizeMaxLineLength,\n tokenizeMaxLength,\n useTokenTransformer,\n useCSSClasses,\n };\n }\n\n private async initializeHighlighter(): Promise<DiffsHighlighter> {\n this.highlighter = await getSharedHighlighter(\n getHighlighterOptions(this.computedLang, this.options)\n );\n return this.highlighter;\n }\n\n public hydrate(diff: FileDiffMetadata | undefined): void {\n if (diff == null) {\n return;\n }\n this.diff = diff;\n const { options } = this.getRenderOptions(diff);\n const massiveDiff = isDiffMassive(diff, this.getTokenizeMaxLength());\n let cache = this.workerManager?.getDiffResultCache(diff);\n if (cache != null && !areDiffRenderOptionsEqual(options, cache.options)) {\n cache = undefined;\n }\n this.renderCache ??= {\n diff,\n highlighted: !massiveDiff && !isDiffPlainText(diff),\n options,\n result: massiveDiff ? undefined : cache?.result,\n renderRange: undefined,\n };\n if (this.workerManager?.isWorkingPool() === true) {\n if (this.renderCache.result == null && !massiveDiff) {\n // We should only kick off a preload of the AST if we have a WorkerPool\n this.workerManager.highlightDiffAST(this, this.diff);\n }\n }\n // Lets attempt to get the highlighter/languages ready immediately\n else if (this.highlighter == null) {\n this.computedLang = diff.lang ?? getFiletypeFromFileName(diff.name);\n void this.initializeHighlighter();\n }\n }\n\n private getRenderOptions(diff: FileDiffMetadata): GetRenderOptionsReturn {\n const options: RenderDiffOptions = (() => {\n if (this.workerManager?.isWorkingPool() === true) {\n return this.workerManager.getDiffRenderOptions();\n }\n const { theme, tokenizeMaxLineLength, lineDiffType, maxLineDiffLength } =\n this.getOptionsWithDefaults();\n return {\n theme,\n useTokenTransformer: shouldUseTokenTransformer(this.options),\n tokenizeMaxLineLength,\n lineDiffType,\n maxLineDiffLength,\n };\n })();\n this.getOptionsWithDefaults();\n const { renderCache } = this;\n if (renderCache?.result == null) {\n return { options, forceHighlight: true };\n }\n if (\n !areDiffTargetsEqual(diff, renderCache.diff) ||\n !areDiffRenderOptionsEqual(options, renderCache.options)\n ) {\n return { options, forceHighlight: true };\n }\n return { options, forceHighlight: false };\n }\n\n public renderDiff(\n diff: FileDiffMetadata | undefined = this.renderCache?.diff,\n renderRange: RenderRange = DEFAULT_RENDER_RANGE\n ): HunksRenderResult | undefined {\n if (diff == null) {\n return undefined;\n }\n const { expandUnchanged = false, collapsedContextThreshold } =\n this.getOptionsWithDefaults();\n let { options, forceHighlight } = this.getRenderOptions(diff);\n const cache = this.getMatchingWorkerResultCache(diff, options);\n if (cache != null && !this.hasHighlightedRenderCache(diff, options)) {\n this.renderCache = {\n diff,\n highlighted: true,\n renderRange: undefined,\n ...cache,\n };\n forceHighlight = false;\n }\n this.renderCache ??= {\n diff,\n highlighted: false,\n options,\n result: undefined,\n renderRange: undefined,\n };\n const hasContent =\n diff.additionLines.length > 0 || diff.deletionLines.length > 0;\n const forcePlainText =\n !hasContent ||\n isDiffPlainText(diff) ||\n isDiffMassive(diff, this.getTokenizeMaxLength());\n const newContent = !areDiffTargetsEqual(diff, this.renderCache.diff);\n const newRenderRange = !areRenderRangesEqual(\n this.renderCache.renderRange,\n renderRange\n );\n if (this.workerManager?.isWorkingPool() === true) {\n if (\n forcePlainText ||\n this.renderCache.result == null ||\n (!this.renderCache.highlighted && (newContent || newRenderRange))\n ) {\n this.renderCache.diff = diff;\n this.renderCache.options = options;\n this.renderCache.highlighted = false;\n if (\n this.renderCache.result == null ||\n newContent ||\n newRenderRange ||\n forceHighlight\n ) {\n this.renderCache.result = this.workerManager.getPlainDiffAST(\n diff,\n renderRange.startingLine,\n renderRange.totalLines,\n // If we aren't using a windowed render, then we need to render\n // everything\n isDefaultRenderRange(renderRange)\n ? true\n : expandUnchanged\n ? true\n : this.expandedHunks,\n collapsedContextThreshold\n );\n }\n this.renderCache.renderRange = renderRange;\n }\n\n // Should we kick off an async highlight process\n if (\n !forcePlainText &&\n hasContent &&\n (!this.renderCache.highlighted || forceHighlight)\n ) {\n this.workerManager.highlightDiffAST(this, diff);\n }\n } else {\n this.computedLang = diff.lang ?? getFiletypeFromFileName(diff.name);\n const hasThemes =\n this.highlighter != null && areThemesAttached(options.theme);\n const hasLangs =\n this.highlighter != null && areLanguagesAttached(this.computedLang);\n const canHighlight = !forcePlainText && hasLangs;\n\n // If we have any semblance of a highlighter with the correct theme(s)\n // attached, we can kick off some form of rendering. If we don't have\n // the correct language, then we can render plain text and after kick off\n // an async job to get the highlighted AST\n if (\n this.highlighter != null &&\n hasThemes &&\n (forceHighlight ||\n forcePlainText ||\n (!this.renderCache.highlighted && canHighlight) ||\n this.renderCache.result == null)\n ) {\n const { result, options } = this.renderDiffWithHighlighter(\n diff,\n this.highlighter,\n forcePlainText || !hasLangs\n );\n this.renderCache = {\n diff,\n options,\n highlighted: canHighlight,\n result,\n renderRange: undefined,\n };\n }\n\n // If we get in here it means we'll have to kick off an async highlight\n // process which will involve initializing the highlighter with new themes\n // and languages\n if (!hasThemes || (!forcePlainText && !hasLangs)) {\n void this.asyncHighlight(diff).then(({ result, options }) => {\n // In this case we need to force a re-render, so we can do that by\n // reaching into renderCache\n if (this.renderCache != null) {\n this.renderCache.highlighted = false;\n }\n this.onHighlightSuccess(diff, result, options, !forcePlainText);\n });\n }\n }\n return this.renderCache.result != null\n ? this.processDiffResult(\n this.renderCache.diff,\n renderRange,\n this.renderCache.result\n )\n : undefined;\n }\n\n public async asyncRender(\n diff: FileDiffMetadata,\n renderRange: RenderRange = DEFAULT_RENDER_RANGE\n ): Promise<HunksRenderResult> {\n const { result } = await this.asyncHighlight(diff);\n return this.processDiffResult(diff, renderRange, result);\n }\n\n protected createPreElement(\n split: boolean,\n totalLines: number,\n customProperties?: CustomPreProperties\n ): HASTElement {\n const { diffIndicators, disableBackground, disableLineNumbers, overflow } =\n this.getOptionsWithDefaults();\n return createPreElement({\n type: 'diff',\n diffIndicators,\n disableBackground,\n disableLineNumbers,\n overflow,\n split,\n totalLines,\n customProperties,\n });\n }\n\n private async asyncHighlight(\n diff: FileDiffMetadata\n ): Promise<RenderDiffResult> {\n const forcePlainText = isDiffMassive(diff, this.getTokenizeMaxLength());\n this.computedLang = forcePlainText\n ? 'text'\n : (diff.lang ?? getFiletypeFromFileName(diff.name));\n const hasThemes =\n this.highlighter != null &&\n areThemesAttached(this.options.theme ?? DEFAULT_THEMES);\n const hasLangs =\n forcePlainText ||\n (this.highlighter != null && areLanguagesAttached(this.computedLang));\n // If we don't have the required langs or themes, then we need to\n // initialize the highlighter to load the appropriate languages and themes\n if (this.highlighter == null || !hasThemes || !hasLangs) {\n this.highlighter = await this.initializeHighlighter();\n }\n return this.renderDiffWithHighlighter(\n diff,\n this.highlighter,\n forcePlainText\n );\n }\n\n private renderDiffWithHighlighter(\n diff: FileDiffMetadata,\n highlighter: DiffsHighlighter,\n forcePlainText = false\n ): RenderDiffResult {\n const { options } = this.getRenderOptions(diff);\n const { collapsedContextThreshold } = this.getOptionsWithDefaults();\n const result = renderDiffWithHighlighter(diff, highlighter, options, {\n forcePlainText,\n expandedHunks: forcePlainText ? true : undefined,\n collapsedContextThreshold,\n });\n return { result, options };\n }\n\n public onHighlightSuccess(\n diff: FileDiffMetadata,\n result: ThemedDiffResult,\n options: RenderDiffOptions,\n highlighted = true\n ): void {\n // NOTE(amadeus): This is a bad assumption, and I should figure out\n // something better... If renderCache was blown away, we can assume we've\n // run cleanUp()\n if (this.renderCache == null) {\n return;\n }\n\n const triggerRenderUpdate =\n !this.renderCache.highlighted ||\n !areDiffRenderOptionsEqual(this.renderCache.options, options) ||\n !areDiffTargetsEqual(this.renderCache.diff, diff);\n\n this.renderCache = {\n diff,\n options,\n highlighted,\n result,\n renderRange: undefined,\n };\n if (triggerRenderUpdate) {\n this.onRenderUpdate?.();\n }\n }\n\n private getMatchingWorkerResultCache(\n diff: FileDiffMetadata,\n options: RenderDiffOptions\n ): RenderDiffResult | undefined {\n const cache = this.workerManager?.getDiffResultCache(diff);\n if (cache == null || !areDiffRenderOptionsEqual(options, cache.options)) {\n return undefined;\n }\n return cache;\n }\n\n private hasHighlightedRenderCache(\n diff: FileDiffMetadata,\n options: RenderDiffOptions\n ): boolean {\n const { renderCache } = this;\n return (\n renderCache?.result != null &&\n renderCache.highlighted &&\n areDiffTargetsEqual(diff, renderCache.diff) &&\n areDiffRenderOptionsEqual(options, renderCache.options)\n );\n }\n\n public onHighlightError(error: unknown): void {\n console.error(error);\n }\n\n private getTokenizeMaxLength(): number {\n return this.options.tokenizeMaxLength ?? DEFAULT_TOKENIZE_MAX_LENGTH;\n }\n\n private processDiffResult(\n fileDiff: FileDiffMetadata,\n renderRange: RenderRange,\n { code, themeStyles, baseThemeType }: ThemedDiffResult\n ): HunksRenderResult {\n const {\n diffStyle,\n disableFileHeader,\n expandUnchanged,\n expansionLineCount,\n collapsedContextThreshold,\n hunkSeparators,\n } = this.getOptionsWithDefaults();\n\n this.diff = fileDiff;\n const unified = diffStyle === 'unified';\n\n let additionsContentAST: ElementContent[] | undefined = [];\n let deletionsContentAST: ElementContent[] | undefined = [];\n let unifiedContentAST: ElementContent[] | undefined = [];\n\n const hunkData: HunkData[] = [];\n const { additionLines, deletionLines } = code;\n const context: ProcessContext = {\n rowCount: 0,\n hunkSeparators,\n additionsContentAST,\n deletionsContentAST,\n unifiedContentAST,\n unifiedGutterAST: createGutterWrapper(),\n deletionsGutterAST: createGutterWrapper(),\n additionsGutterAST: createGutterWrapper(),\n expansionLineCount,\n hunkData,\n incrementRowCount(count = 1) {\n context.rowCount += count;\n },\n pushToGutter(type: CodeColumnType, element: HASTElement) {\n switch (type) {\n case 'unified': {\n context.unifiedGutterAST.children.push(element);\n break;\n }\n case 'deletions': {\n context.deletionsGutterAST.children.push(element);\n break;\n }\n case 'additions': {\n context.additionsGutterAST.children.push(element);\n break;\n }\n }\n },\n };\n const trailingRangeSize = getTrailingContextRangeSize({\n fileDiff,\n errorPrefix: 'DiffHunksRenderer.processDiffResult',\n });\n const pendingSplitContext: PendingSplitContext = {\n size: 0,\n side: undefined,\n increment() {\n this.size += 1;\n },\n flush() {\n if (diffStyle === 'unified') {\n return;\n }\n if (this.size <= 0 || this.side == null) {\n this.side = undefined;\n this.size = 0;\n return;\n }\n if (this.side === 'additions') {\n context.pushToGutter(\n 'additions',\n createGutterGap(undefined, 'buffer', this.size)\n );\n additionsContentAST?.push(createEmptyRowBuffer(this.size));\n } else {\n context.pushToGutter(\n 'deletions',\n createGutterGap(undefined, 'buffer', this.size)\n );\n deletionsContentAST?.push(createEmptyRowBuffer(this.size));\n }\n this.size = 0;\n this.side = undefined;\n },\n };\n\n const pushGutterLineNumber = (\n type: CodeColumnType,\n lineType: LineTypes | 'buffer' | 'separator' | 'annotation',\n lineNumber: number,\n lineIndex: string,\n gutterProperties: Properties | undefined\n ) => {\n context.pushToGutter(\n type,\n createGutterItem(lineType, lineNumber, lineIndex, gutterProperties)\n );\n };\n\n function pushSeparators(props: PushSeparatorProps) {\n pendingSplitContext.flush();\n if (diffStyle === 'unified') {\n pushSeparator('unified', props, context);\n } else {\n pushSeparator('deletions', props, context);\n pushSeparator('additions', props, context);\n }\n }\n\n this.pushFileLevelAnnotations(fileDiff, diffStyle, renderRange, context);\n\n iterateOverDiff({\n diff: fileDiff,\n diffStyle,\n startingLine: renderRange.startingLine,\n totalLines: renderRange.totalLines,\n expandedHunks: expandUnchanged ? true : this.expandedHunks,\n collapsedContextThreshold,\n callback: ({\n hunkIndex,\n hunk,\n collapsedBefore,\n collapsedAfter,\n additionLine,\n deletionLine,\n type,\n }) => {\n const splitLineIndex =\n deletionLine != null\n ? deletionLine.splitLineIndex\n : additionLine.splitLineIndex;\n const unifiedLineIndex =\n additionLine != null\n ? additionLine.unifiedLineIndex\n : deletionLine.unifiedLineIndex;\n\n if (diffStyle === 'split' && type !== 'change') {\n pendingSplitContext.flush();\n }\n\n if (collapsedBefore > 0) {\n pushSeparators({\n hunkIndex,\n collapsedLines: collapsedBefore,\n rangeSize: Math.max(hunk?.collapsedBefore ?? 0, 0),\n hunkSpecs: hunk?.hunkSpecs,\n isFirstHunk: hunkIndex === 0,\n isLastHunk: false,\n isExpandable: !fileDiff.isPartial,\n });\n }\n\n const lineIndex =\n diffStyle === 'unified' ? unifiedLineIndex : splitLineIndex;\n const renderedLineContext: RenderedLineContext = {\n type,\n hunkIndex,\n lineIndex,\n unifiedLineIndex,\n splitLineIndex,\n deletionLine,\n additionLine,\n };\n\n if (diffStyle === 'unified') {\n const injectedRows =\n this.getUnifiedInjectedRowsForLine?.(renderedLineContext);\n if (injectedRows?.before != null) {\n pushUnifiedInjectedRows(injectedRows.before, context);\n }\n let deletionLineContent =\n deletionLine != null\n ? deletionLines[deletionLine.lineIndex]\n : undefined;\n let additionLineContent =\n additionLine != null\n ? additionLines[additionLine.lineIndex]\n : undefined;\n if (deletionLineContent == null && additionLineContent == null) {\n const errorMessage =\n 'DiffHunksRenderer.processDiffResult: deletionLine and additionLine are null, something is wrong';\n console.error(errorMessage, { file: fileDiff.name });\n throw new Error(errorMessage);\n }\n const lineType =\n type === 'change'\n ? additionLine != null\n ? 'change-addition'\n : 'change-deletion'\n : type;\n const lineDecoration = this.getUnifiedLineDecoration({\n // NOTE: This function gets extended so don't remove\n // these extra props\n type,\n lineType,\n additionLineIndex: additionLine?.lineIndex,\n deletionLineIndex: deletionLine?.lineIndex,\n });\n pushGutterLineNumber(\n 'unified',\n lineDecoration.gutterLineType,\n additionLine != null\n ? additionLine.lineNumber\n : deletionLine.lineNumber,\n `${unifiedLineIndex},${splitLineIndex}`,\n lineDecoration.gutterProperties\n );\n if (additionLineContent != null) {\n additionLineContent = withContentProperties(\n additionLineContent,\n lineDecoration.contentProperties\n );\n } else if (deletionLineContent != null) {\n deletionLineContent = withContentProperties(\n deletionLineContent,\n lineDecoration.contentProperties\n );\n }\n pushLineWithAnnotation({\n diffStyle: 'unified',\n type: type,\n deletionLine: deletionLineContent,\n additionLine: additionLineContent,\n unifiedSpan: this.getAnnotations(\n 'unified',\n deletionLine?.lineNumber,\n additionLine?.lineNumber,\n hunkIndex,\n lineIndex\n ),\n createAnnotationElement: (span) =>\n this.createAnnotationElement(span),\n context,\n });\n if (injectedRows?.after != null) {\n pushUnifiedInjectedRows(injectedRows.after, context);\n }\n } else {\n const injectedRows =\n this.getSplitInjectedRowsForLine?.(renderedLineContext);\n if (injectedRows?.before != null) {\n pushSplitInjectedRows(\n injectedRows.before,\n context,\n pendingSplitContext\n );\n }\n\n let deletionLineContent =\n deletionLine != null\n ? deletionLines[deletionLine.lineIndex]\n : undefined;\n let additionLineContent =\n additionLine != null\n ? additionLines[additionLine.lineIndex]\n : undefined;\n const deletionLineDecoration = this.getSplitLineDecoration({\n side: 'deletions',\n type,\n lineIndex: deletionLine?.lineIndex,\n });\n const additionLineDecoration = this.getSplitLineDecoration({\n side: 'additions',\n type,\n lineIndex: additionLine?.lineIndex,\n });\n\n if (deletionLineContent == null && additionLineContent == null) {\n const errorMessage =\n 'DiffHunksRenderer.processDiffResult: deletionLine and additionLine are null, something is wrong';\n console.error(errorMessage, { file: fileDiff.name });\n throw new Error(errorMessage);\n }\n\n const missingSide = (() => {\n if (type === 'change') {\n if (additionLineContent == null) {\n return 'additions';\n } else if (deletionLineContent == null) {\n return 'deletions';\n }\n }\n return undefined;\n })();\n if (missingSide != null) {\n if (\n pendingSplitContext.side != null &&\n pendingSplitContext.side !== missingSide\n ) {\n // NOTE(amadeus): If we see this error, we might need to bring back: flushSplitSpan();\n throw new Error(\n 'DiffHunksRenderer.processDiffResult: iterateOverDiff, invalid pending splits'\n );\n }\n pendingSplitContext.side = missingSide;\n pendingSplitContext.increment();\n }\n\n const annotationSpans = this.getAnnotations(\n 'split',\n deletionLine?.lineNumber,\n additionLine?.lineNumber,\n hunkIndex,\n lineIndex\n );\n if (annotationSpans != null && pendingSplitContext.size > 0) {\n pendingSplitContext.flush();\n }\n\n if (deletionLine != null) {\n const deletionLineDecorated = withContentProperties(\n deletionLineContent,\n deletionLineDecoration.contentProperties\n );\n pushGutterLineNumber(\n 'deletions',\n deletionLineDecoration.gutterLineType,\n deletionLine.lineNumber,\n `${deletionLine.unifiedLineIndex},${splitLineIndex}`,\n deletionLineDecoration.gutterProperties\n );\n if (deletionLineDecorated != null) {\n deletionLineContent = deletionLineDecorated;\n }\n }\n if (additionLine != null) {\n const additionLineDecorated = withContentProperties(\n additionLineContent,\n additionLineDecoration.contentProperties\n );\n pushGutterLineNumber(\n 'additions',\n additionLineDecoration.gutterLineType,\n additionLine.lineNumber,\n `${additionLine.unifiedLineIndex},${splitLineIndex}`,\n additionLineDecoration.gutterProperties\n );\n if (additionLineDecorated != null) {\n additionLineContent = additionLineDecorated;\n }\n }\n pushLineWithAnnotation({\n diffStyle: 'split',\n type: type,\n additionLine: additionLineContent,\n deletionLine: deletionLineContent,\n ...annotationSpans,\n createAnnotationElement: (span) =>\n this.createAnnotationElement(span),\n context,\n });\n if (injectedRows?.after != null) {\n pushSplitInjectedRows(\n injectedRows.after,\n context,\n pendingSplitContext\n );\n }\n }\n\n const isFinalSplitHunkRow =\n diffStyle === 'split' &&\n hunk != null &&\n splitLineIndex === hunk.splitLineStart + hunk.splitLineCount - 1;\n const splitNoEOFCRDeletion = isFinalSplitHunkRow\n ? hunk.noEOFCRDeletions\n : false;\n const splitNoEOFCRAddition = isFinalSplitHunkRow\n ? hunk.noEOFCRAdditions\n : false;\n const noEOFCRDeletion =\n (deletionLine?.noEOFCR ?? false) || splitNoEOFCRDeletion;\n const noEOFCRAddition =\n (additionLine?.noEOFCR ?? false) || splitNoEOFCRAddition;\n if (noEOFCRAddition || noEOFCRDeletion) {\n if (diffStyle === 'split') {\n pendingSplitContext.flush();\n }\n if (noEOFCRDeletion) {\n const noEOFType =\n type === 'context' || type === 'context-expanded'\n ? type\n : 'change-deletion';\n if (diffStyle === 'unified') {\n context.unifiedContentAST.push(createNoNewlineElement(noEOFType));\n context.pushToGutter(\n 'unified',\n createGutterGap(noEOFType, 'metadata', 1)\n );\n } else {\n context.deletionsContentAST.push(\n createNoNewlineElement(noEOFType)\n );\n context.pushToGutter(\n 'deletions',\n createGutterGap(noEOFType, 'metadata', 1)\n );\n if (!noEOFCRAddition) {\n context.pushToGutter(\n 'additions',\n createGutterGap(undefined, 'buffer', 1)\n );\n context.additionsContentAST.push(createEmptyRowBuffer(1));\n }\n }\n }\n if (noEOFCRAddition) {\n const noEOFType =\n type === 'context' || type === 'context-expanded'\n ? type\n : 'change-addition';\n if (diffStyle === 'unified') {\n context.unifiedContentAST.push(createNoNewlineElement(noEOFType));\n context.pushToGutter(\n 'unified',\n createGutterGap(noEOFType, 'metadata', 1)\n );\n } else {\n context.additionsContentAST.push(\n createNoNewlineElement(noEOFType)\n );\n context.pushToGutter(\n 'additions',\n createGutterGap(noEOFType, 'metadata', 1)\n );\n if (!noEOFCRDeletion) {\n context.pushToGutter(\n 'deletions',\n createGutterGap(undefined, 'buffer', 1)\n );\n context.deletionsContentAST.push(createEmptyRowBuffer(1));\n }\n }\n }\n context.incrementRowCount(1);\n }\n\n if (collapsedAfter > 0 && hunkSeparators !== 'simple') {\n pushSeparators({\n hunkIndex: type === 'context-expanded' ? hunkIndex : hunkIndex + 1,\n collapsedLines: collapsedAfter,\n rangeSize: trailingRangeSize,\n hunkSpecs: undefined,\n isFirstHunk: false,\n isLastHunk: true,\n isExpandable: !fileDiff.isPartial,\n });\n }\n context.incrementRowCount(1);\n },\n });\n\n if (diffStyle === 'split') {\n pendingSplitContext.flush();\n }\n\n const totalLines = Math.max(\n getTotalLineCountFromHunks(fileDiff.hunks),\n fileDiff.additionLines.length ?? 0,\n fileDiff.deletionLines.length ?? 0\n );\n\n const hasBuffer =\n renderRange.bufferBefore > 0 || renderRange.bufferAfter > 0;\n // Determine which ASTs to include based on diff style and file type\n const shouldIncludeAdditions = !unified && fileDiff.type !== 'deleted';\n const shouldIncludeDeletions = !unified && fileDiff.type !== 'new';\n const hasContent = context.rowCount > 0 || hasBuffer;\n\n additionsContentAST =\n shouldIncludeAdditions && hasContent ? additionsContentAST : undefined;\n deletionsContentAST =\n shouldIncludeDeletions && hasContent ? deletionsContentAST : undefined;\n unifiedContentAST = unified && hasContent ? unifiedContentAST : undefined;\n\n const preNode = this.createPreElement(\n deletionsContentAST != null && additionsContentAST != null,\n totalLines\n );\n\n return {\n unifiedGutterAST:\n unified && hasContent ? context.unifiedGutterAST.children : undefined,\n unifiedContentAST,\n deletionsGutterAST:\n shouldIncludeDeletions && hasContent\n ? context.deletionsGutterAST.children\n : undefined,\n deletionsContentAST,\n additionsGutterAST:\n shouldIncludeAdditions && hasContent\n ? context.additionsGutterAST.children\n : undefined,\n additionsContentAST,\n hunkData,\n preNode,\n themeStyles,\n baseThemeType,\n headerElement: !disableFileHeader\n ? this.renderHeader(this.diff)\n : undefined,\n totalLines,\n rowCount: context.rowCount,\n bufferBefore: renderRange.bufferBefore,\n bufferAfter: renderRange.bufferAfter,\n // FIXME\n css: '',\n };\n }\n\n public renderCodeAST(\n type: 'unified' | 'deletions' | 'additions',\n result: HunksRenderResult\n ): ElementContent[] | undefined {\n const gutterAST =\n type === 'unified'\n ? result.unifiedGutterAST\n : type === 'deletions'\n ? result.deletionsGutterAST\n : result.additionsGutterAST;\n\n const contentAST =\n type === 'unified'\n ? result.unifiedContentAST\n : type === 'deletions'\n ? result.deletionsContentAST\n : result.additionsContentAST;\n\n if (gutterAST == null || contentAST == null) {\n return undefined;\n }\n\n const gutter = createGutterWrapper(gutterAST);\n gutter.properties.style = `grid-row: span ${result.rowCount}`;\n const contentColumn = createContentColumn(contentAST, result.rowCount);\n return [gutter, contentColumn];\n }\n\n public renderFullAST(\n result: HunksRenderResult,\n children: ElementContent[] = []\n ): HASTElement {\n const containerSize =\n this.getOptionsWithDefaults().hunkSeparators === 'line-info';\n const unifiedAST = this.renderCodeAST('unified', result);\n if (unifiedAST != null) {\n children.push(\n createHastElement({\n tagName: 'code',\n children: unifiedAST,\n properties: {\n 'data-code': '',\n 'data-container-size': containerSize ? '' : undefined,\n 'data-unified': '',\n },\n })\n );\n return { ...result.preNode, children };\n }\n\n const deletionsAST = this.renderCodeAST('deletions', result);\n if (deletionsAST != null) {\n children.push(\n createHastElement({\n tagName: 'code',\n children: deletionsAST,\n properties: {\n 'data-code': '',\n 'data-container-size': containerSize ? '' : undefined,\n 'data-deletions': '',\n },\n })\n );\n }\n const additionsAST = this.renderCodeAST('additions', result);\n if (additionsAST != null) {\n children.push(\n createHastElement({\n tagName: 'code',\n children: additionsAST,\n properties: {\n 'data-code': '',\n 'data-container-size': containerSize ? '' : undefined,\n 'data-additions': '',\n },\n })\n );\n }\n return { ...result.preNode, children };\n }\n\n public renderFullHTML(\n result: HunksRenderResult,\n tempChildren: ElementContent[] = []\n ): string {\n return toHtml(this.renderFullAST(result, tempChildren));\n }\n\n public renderPartialHTML(\n children: ElementContent[],\n columnType?: 'unified' | 'deletions' | 'additions'\n ): string {\n if (columnType == null) {\n return toHtml(children);\n }\n return toHtml(\n createHastElement({\n tagName: 'code',\n children,\n properties: {\n 'data-code': '',\n 'data-container-size':\n this.getOptionsWithDefaults().hunkSeparators === 'line-info'\n ? ''\n : undefined,\n [`data-${columnType}`]: '',\n },\n })\n );\n }\n\n private pushFileLevelAnnotations(\n fileDiff: FileDiffMetadata,\n diffStyle: 'unified' | 'split',\n renderRange: RenderRange,\n context: ProcessContext\n ): void {\n if (!shouldRenderFileAnnotations(renderRange)) {\n return;\n }\n\n const deletionAnnotationNames =\n fileDiff.type !== 'new'\n ? getAnnotationNames(getFileAnnotations(this.deletionAnnotations))\n : [];\n const additionAnnotationNames =\n fileDiff.type !== 'deleted'\n ? getAnnotationNames(getFileAnnotations(this.additionAnnotations))\n : [];\n if (\n deletionAnnotationNames.length === 0 &&\n additionAnnotationNames.length === 0\n ) {\n return;\n }\n\n const hunkIndex = FILE_ANNOTATION_HUNK_INDEX;\n const lineIndex = FILE_ANNOTATION_LINE_INDEX;\n const { createAnnotationElement } = this;\n\n if (diffStyle === 'unified') {\n pushLineWithAnnotation({\n diffStyle,\n type: 'context',\n unifiedSpan: {\n type: 'annotation',\n hunkIndex,\n lineIndex,\n annotations: deletionAnnotationNames.concat(additionAnnotationNames),\n },\n createAnnotationElement,\n context,\n });\n return;\n }\n\n pushLineWithAnnotation({\n diffStyle,\n type: 'context',\n deletionSpan: {\n type: 'annotation',\n hunkIndex,\n lineIndex,\n annotations: deletionAnnotationNames,\n },\n additionSpan: {\n type: 'annotation',\n hunkIndex,\n lineIndex,\n annotations: additionAnnotationNames,\n },\n createAnnotationElement,\n context,\n });\n }\n\n private getAnnotations(\n type: 'unified',\n deletionLineNumber: number | undefined,\n additionLineNumber: number | undefined,\n hunkIndex: number,\n lineIndex: number\n ): AnnotationSpan | undefined;\n private getAnnotations(\n type: 'split',\n deletionLineNumber: number | undefined,\n additionLineNumber: number | undefined,\n hunkIndex: number,\n lineIndex: number\n ): { deletionSpan: AnnotationSpan; additionSpan: AnnotationSpan } | undefined;\n private getAnnotations(\n type: 'unified' | 'split',\n deletionLineNumber: number | undefined,\n additionLineNumber: number | undefined,\n hunkIndex: number,\n lineIndex: number\n ):\n | AnnotationSpan\n | { deletionSpan: AnnotationSpan; additionSpan: AnnotationSpan }\n | undefined {\n const deletionSpan: AnnotationSpan = {\n type: 'annotation',\n hunkIndex,\n lineIndex,\n annotations: [],\n };\n if (deletionLineNumber != null) {\n for (const anno of this.deletionAnnotations[deletionLineNumber] ?? []) {\n deletionSpan.annotations.push(getLineAnnotationName(anno));\n }\n }\n const additionSpan: AnnotationSpan = {\n type: 'annotation',\n hunkIndex,\n lineIndex,\n annotations: [],\n };\n if (additionLineNumber != null) {\n for (const anno of this.additionAnnotations[additionLineNumber] ?? []) {\n (type === 'unified' ? deletionSpan : additionSpan).annotations.push(\n getLineAnnotationName(anno)\n );\n }\n }\n if (type === 'unified') {\n if (deletionSpan.annotations.length > 0) {\n return deletionSpan;\n }\n return undefined;\n }\n if (\n additionSpan.annotations.length === 0 &&\n deletionSpan.annotations.length === 0\n ) {\n return undefined;\n }\n return { deletionSpan, additionSpan };\n }\n\n private renderHeader(diff: FileDiffMetadata): HASTElement {\n const { headerRenderMode, stickyHeader } = this.getOptionsWithDefaults();\n return createFileHeaderElement({\n fileOrDiff: diff,\n mode: headerRenderMode,\n stickyHeader,\n });\n }\n}\n\nfunction getAnnotationNames<LAnnotation>(\n annotations: DiffLineAnnotation<LAnnotation>[] | undefined\n): string[] {\n return (\n annotations?.map((annotation) => getLineAnnotationName(annotation)) ?? []\n );\n}\n\n// Use the platform's English plural rules to pick \"line\" vs \"lines\" so a\n// count of 0 reads as \"0 unmodified lines\". en-US returns \"one\" only for 1.\nconst EN_PLURAL_RULES = new Intl.PluralRules('en-US');\n\nfunction getModifiedLinesString(lines: number) {\n const suffix = EN_PLURAL_RULES.select(lines) === 'one' ? '' : 's';\n return `${lines} unmodified line${suffix}`;\n}\n\nfunction pushUnifiedInjectedRows(\n rows: InjectedRow[],\n context: ProcessContext\n): void {\n for (const row of rows) {\n context.unifiedContentAST.push(row.content);\n context.pushToGutter('unified', row.gutter);\n context.incrementRowCount(1);\n }\n}\n\nfunction pushSplitInjectedRows(\n rows: SplitInjectedRow[],\n context: ProcessContext,\n pendingSplitContext: PendingSplitContext\n): void {\n for (const { deletion, addition } of rows) {\n if (deletion == null && addition == null) {\n continue;\n }\n const missingSide =\n deletion != null && addition != null\n ? undefined\n : deletion == null\n ? 'deletions'\n : 'additions';\n\n if (missingSide == null || pendingSplitContext.side !== missingSide) {\n pendingSplitContext.flush();\n }\n\n if (deletion != null) {\n context.deletionsContentAST.push(deletion.content);\n context.pushToGutter('deletions', deletion.gutter);\n }\n\n if (addition != null) {\n context.additionsContentAST.push(addition.content);\n context.pushToGutter('additions', addition.gutter);\n }\n\n if (missingSide != null) {\n pendingSplitContext.side = missingSide;\n pendingSplitContext.increment();\n }\n\n context.incrementRowCount(1);\n }\n}\n\nfunction pushLineWithAnnotation({\n diffStyle,\n type,\n deletionLine,\n additionLine,\n unifiedSpan,\n deletionSpan,\n additionSpan,\n createAnnotationElement,\n context,\n}: PushLineWithAnnotation) {\n let hasAnnotationRow = false;\n if (diffStyle === 'unified') {\n if (additionLine != null) {\n context.unifiedContentAST.push(additionLine);\n } else if (deletionLine != null) {\n context.unifiedContentAST.push(deletionLine);\n }\n if (unifiedSpan != null) {\n const lineType =\n type === 'change'\n ? deletionLine != null\n ? 'change-deletion'\n : 'change-addition'\n : type;\n context.unifiedContentAST.push(createAnnotationElement(unifiedSpan));\n context.pushToGutter(\n 'unified',\n createGutterGap(lineType, 'annotation', 1)\n );\n hasAnnotationRow = true;\n }\n } else if (diffStyle === 'split') {\n if (deletionLine != null) {\n context.deletionsContentAST.push(deletionLine);\n }\n if (additionLine != null) {\n context.additionsContentAST.push(additionLine);\n }\n if (deletionSpan != null) {\n const lineType =\n type === 'change'\n ? deletionLine != null\n ? 'change-deletion'\n : 'context'\n : type;\n context.deletionsContentAST.push(createAnnotationElement(deletionSpan));\n context.pushToGutter(\n 'deletions',\n createGutterGap(lineType, 'annotation', 1)\n );\n hasAnnotationRow = true;\n }\n if (additionSpan != null) {\n const lineType =\n type === 'change'\n ? additionLine != null\n ? 'change-addition'\n : 'context'\n : type;\n context.additionsContentAST.push(createAnnotationElement(additionSpan));\n context.pushToGutter(\n 'additions',\n createGutterGap(lineType, 'annotation', 1)\n );\n hasAnnotationRow = true;\n }\n }\n if (hasAnnotationRow) {\n context.incrementRowCount(1);\n }\n}\n\nfunction pushSeparator(\n type: 'additions' | 'deletions' | 'unified',\n {\n hunkIndex,\n collapsedLines,\n rangeSize,\n hunkSpecs,\n isFirstHunk,\n isLastHunk,\n isExpandable,\n }: PushSeparatorProps,\n context: ProcessContext\n) {\n if (collapsedLines <= 0) {\n return;\n }\n const linesAST =\n type === 'unified'\n ? context.unifiedContentAST\n : type === 'deletions'\n ? context.deletionsContentAST\n : context.additionsContentAST;\n\n if (context.hunkSeparators === 'metadata') {\n if (hunkSpecs != null) {\n context.pushToGutter(\n type,\n createSeparator({\n type: 'metadata',\n content: hunkSpecs,\n isFirstHunk,\n isLastHunk,\n })\n );\n linesAST.push(\n createSeparator({\n type: 'metadata',\n content: hunkSpecs,\n isFirstHunk,\n isLastHunk,\n })\n );\n if (type !== 'additions') {\n context.incrementRowCount(1);\n }\n }\n return;\n }\n if (context.hunkSeparators === 'simple') {\n if (hunkIndex > 0) {\n context.pushToGutter(\n type,\n createSeparator({ type: 'simple', isFirstHunk, isLastHunk: false })\n );\n linesAST.push(\n createSeparator({ type: 'simple', isFirstHunk, isLastHunk: false })\n );\n if (type !== 'additions') {\n context.incrementRowCount(1);\n }\n }\n return;\n }\n const slotName = getHunkSeparatorSlotName(type, hunkIndex);\n const chunked = rangeSize > context.expansionLineCount;\n const expandIndex = isExpandable ? hunkIndex : undefined;\n context.pushToGutter(\n type,\n createSeparator({\n type: context.hunkSeparators,\n content: getModifiedLinesString(collapsedLines),\n expandIndex,\n chunked,\n slotName,\n isFirstHunk,\n isLastHunk,\n })\n );\n linesAST.push(\n createSeparator({\n type: context.hunkSeparators,\n content: getModifiedLinesString(collapsedLines),\n expandIndex,\n chunked,\n slotName,\n isFirstHunk,\n isLastHunk,\n })\n );\n if (type !== 'additions') {\n context.incrementRowCount(1);\n }\n context.hunkData.push({\n slotName,\n hunkIndex,\n lines: collapsedLines,\n type,\n expandable: isExpandable\n ? { up: !isFirstHunk, down: !isLastHunk, chunked }\n : undefined,\n });\n}\n\nfunction withContentProperties(\n lineNode: ElementContent | undefined,\n contentProperties: Properties | undefined\n): ElementContent | undefined {\n if (\n lineNode == null ||\n lineNode.type !== 'element' ||\n contentProperties == null\n ) {\n return lineNode;\n }\n return {\n ...lineNode,\n properties: {\n ...lineNode.properties,\n ...contentProperties,\n },\n };\n}\n\nfunction isDiffMassive(\n diff: FileDiffMetadata,\n tokenizeMaxLength: number\n): boolean {\n return (\n Math.max(diff.additionLines.length, diff.deletionLines.length) >\n tokenizeMaxLength\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8MA,IAAI,aAAa;AAEjB,IAAa,oBAAb,MAAwD;CAe7C;CACC;CACA;CAhBV,OAAwB,uBAAuB,EAAE;CAEjD;CACA;CAEA,gCAAwB,IAAI,IAAiC;CAE7D,sBAA8D,CAAC;CAC/D,sBAA8D,CAAC;CAE/D,eAA2C;CAC3C;CAEA,YACE,UAA2C,EAAE,OAAO,eAAe,GACnE,gBACA,eACA;EAHO,KAAA,UAAA;EACC,KAAA,iBAAA;EACA,KAAA,gBAAA;EAER,IAAI,eAAe,cAAc,MAAM,MACrC,KAAK,cAAc,kBAAkB,QAAQ,SAAS,cAAc,IAChE,uBAAuB,IACvB,KAAA;CAER;CAEA,UAAuB;EACrB,KAAK,QAAQ;EACb,KAAK,cAAc,MAAM;EACzB,KAAK,gBAAgB,KAAA;EACrB,KAAK,iBAAiB,KAAA;CACxB;CAEA,UAAuB;EACrB,KAAK,cAAc,KAAA;EACnB,KAAK,OAAO,KAAA;EACZ,KAAK,iBAAiB;EACtB,KAAK,sBAAsB,CAAC;EAC5B,KAAK,sBAAsB,CAAC;EAC5B,KAAK,eAAe,aAAa,IAAI;CACvC;CAEA,mBAAgC;EAC9B,KAAK,cAAc,KAAA;CACrB;CAEA,WAAkB,SAAyC;EACzD,KAAK,UAAU;CACjB;CAEA,aAAoB,SAAkD;EACpE,KAAK,UAAU;GAAE,GAAG,KAAK;GAAS,GAAG;EAAQ;CAC/C;CAEA,WACE,OACA,WACA,qBAA6B,KAAK,uBAAuB,CAAC,CACvD,oBACG;EACN,MAAM,SAAS,EACb,GAAI,KAAK,cAAc,IAAI,KAAK,KAAK;GACnC,WAAW;GACX,SAAS;EACX,EACF;EACA,IAAI,cAAc,QAAQ,cAAc,QACtC,OAAO,aAAa;EAEtB,IAAI,cAAc,UAAU,cAAc,QACxC,OAAO,WAAW;EAIpB,IAAI,KAAK,aAAa,gBAAgB,MACpC,KAAK,iBAAiB;EAExB,KAAK,cAAc,IAAI,OAAO,MAAM;CACtC;CAEA,gBAAuB,WAAwC;EAC7D,OAAO,KAAK,cAAc,IAAI,SAAS,KAAK;CAC9C;CAEA,sBAA+D;EAC7D,OAAO,KAAK;CACd;CAEA,mBACE,iBACM;EACN,KAAK,sBAAsB,CAAC;EAC5B,KAAK,sBAAsB,CAAC;EAC5B,KAAK,MAAM,cAAc,iBAAiB;GACxC,MAAM,aAA6C;IACjD,QAAQ,WAAW,MAAnB;KACE,KAAK,aACH,OAAO,KAAK;KACd,KAAK,aACH,OAAO,KAAK;IAChB;GACF,EAAA,CAAG;GACH,MAAM,MAAM,IAAI,WAAW,eAAe,CAAC;GAC3C,IAAI,WAAW,cAAc;GAC7B,IAAI,KAAK,UAAU;EACrB;CACF;CAEA,yBAAmC,EACjC,YAC6C;EAC7C,OAAO,EAAE,gBAAgB,SAAS;CACpC;CAEA,uBAAiC,EAC/B,MACA,QAC2C;EAC3C,IAAI,SAAS,UACX,OAAO,EAAE,gBAAgB,KAAK;EAEhC,OAAO,EACL,gBACE,SAAS,cAAc,oBAAoB,kBAC/C;CACF;CAEA,2BAAmC,SAAsC;EACvE,OAAOA,wBAA+B,IAAI;CAC5C;CAYA,yBAAyE;EACvE,MAAM,EACJ,iBAAiB,QACjB,YAAY,SACZ,oBAAoB,OACpB,oBAAoB,OACpB,qBAAqB,OACrB,+BAA+B,OAC/B,YAAY,OACZ,kBAAkB,OAClB,4BAAA,GACA,qBAAqB,KACrB,iBAAiB,aACjB,eAAe,YACf,oBAAoB,KACpB,WAAW,UACX,eAAe,OACf,QAAQ,gBACR,mBAAmB,WACnB,wBAAwB,KACxB,oBAAoB,6BACpB,sBAAsB,OACtB,gBAAgB,UACd,KAAK;EACT,OAAO;GACL;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,OAAO,KAAK,eAAe,qBAAqB,CAAC,CAAC,SAAS;GAC3D;GACA;GACA;GACA;GACA;EACF;CACF;CAEA,MAAc,wBAAmD;EAC/D,KAAK,cAAc,MAAM,qBACvB,sBAAsB,KAAK,cAAc,KAAK,OAAO,CACvD;EACA,OAAO,KAAK;CACd;CAEA,QAAe,MAA0C;EACvD,IAAI,QAAQ,MACV;EAEF,KAAK,OAAO;EACZ,MAAM,EAAE,YAAY,KAAK,iBAAiB,IAAI;EAC9C,MAAM,cAAc,cAAc,MAAM,KAAK,qBAAqB,CAAC;EACnE,IAAI,QAAQ,KAAK,eAAe,mBAAmB,IAAI;EACvD,IAAI,SAAS,QAAQ,CAAC,0BAA0B,SAAS,MAAM,OAAO,GACpE,QAAQ,KAAA;EAEV,KAAK,gBAAgB;GACnB;GACA,aAAa,CAAC,eAAe,CAAC,gBAAgB,IAAI;GAClD;GACA,QAAQ,cAAc,KAAA,IAAY,OAAO;GACzC,aAAa,KAAA;EACf;EACA,IAAI,KAAK,eAAe,cAAc,MAAM;OACtC,KAAK,YAAY,UAAU,QAAQ,CAAC,aAEtC,KAAK,cAAc,iBAAiB,MAAM,KAAK,IAAI;EAAA,OAIlD,IAAI,KAAK,eAAe,MAAM;GACjC,KAAK,eAAe,KAAK,QAAQ,wBAAwB,KAAK,IAAI;GAClE,KAAU,sBAAsB;EAClC;CACF;CAEA,iBAAyB,MAAgD;EACvE,MAAM,iBAAoC;GACxC,IAAI,KAAK,eAAe,cAAc,MAAM,MAC1C,OAAO,KAAK,cAAc,qBAAqB;GAEjD,MAAM,EAAE,OAAO,uBAAuB,cAAc,sBAClD,KAAK,uBAAuB;GAC9B,OAAO;IACL;IACA,qBAAqB,0BAA0B,KAAK,OAAO;IAC3D;IACA;IACA;GACF;EACF,EAAA,CAAG;EACH,KAAK,uBAAuB;EAC5B,MAAM,EAAE,gBAAgB;EACxB,IAAI,aAAa,UAAU,MACzB,OAAO;GAAE;GAAS,gBAAgB;EAAK;EAEzC,IACE,CAAC,oBAAoB,MAAM,YAAY,IAAI,KAC3C,CAAC,0BAA0B,SAAS,YAAY,OAAO,GAEvD,OAAO;GAAE;GAAS,gBAAgB;EAAK;EAEzC,OAAO;GAAE;GAAS,gBAAgB;EAAM;CAC1C;CAEA,WACE,OAAqC,KAAK,aAAa,MACvD,cAA2B,sBACI;EAC/B,IAAI,QAAQ,MACV;EAEF,MAAM,EAAE,kBAAkB,OAAO,8BAC/B,KAAK,uBAAuB;EAC9B,IAAI,EAAE,SAAS,mBAAmB,KAAK,iBAAiB,IAAI;EAC5D,MAAM,QAAQ,KAAK,6BAA6B,MAAM,OAAO;EAC7D,IAAI,SAAS,QAAQ,CAAC,KAAK,0BAA0B,MAAM,OAAO,GAAG;GACnE,KAAK,cAAc;IACjB;IACA,aAAa;IACb,aAAa,KAAA;IACb,GAAG;GACL;GACA,iBAAiB;EACnB;EACA,KAAK,gBAAgB;GACnB;GACA,aAAa;GACb;GACA,QAAQ,KAAA;GACR,aAAa,KAAA;EACf;EACA,MAAM,aACJ,KAAK,cAAc,SAAS,KAAK,KAAK,cAAc,SAAS;EAC/D,MAAM,iBACJ,CAAC,cACD,gBAAgB,IAAI,KACpB,cAAc,MAAM,KAAK,qBAAqB,CAAC;EACjD,MAAM,aAAa,CAAC,oBAAoB,MAAM,KAAK,YAAY,IAAI;EACnE,MAAM,iBAAiB,CAAC,qBACtB,KAAK,YAAY,aACjB,WACF;EACA,IAAI,KAAK,eAAe,cAAc,MAAM,MAAM;GAChD,IACE,kBACA,KAAK,YAAY,UAAU,QAC1B,CAAC,KAAK,YAAY,gBAAgB,cAAc,iBACjD;IACA,KAAK,YAAY,OAAO;IACxB,KAAK,YAAY,UAAU;IAC3B,KAAK,YAAY,cAAc;IAC/B,IACE,KAAK,YAAY,UAAU,QAC3B,cACA,kBACA,gBAEA,KAAK,YAAY,SAAS,KAAK,cAAc,gBAC3C,MACA,YAAY,cACZ,YAAY,YAGZ,qBAAqB,WAAW,IAC5B,OACA,kBACE,OACA,KAAK,eACX,yBACF;IAEF,KAAK,YAAY,cAAc;GACjC;GAGA,IACE,CAAC,kBACD,eACC,CAAC,KAAK,YAAY,eAAe,iBAElC,KAAK,cAAc,iBAAiB,MAAM,IAAI;EAElD,OAAO;GACL,KAAK,eAAe,KAAK,QAAQ,wBAAwB,KAAK,IAAI;GAClE,MAAM,YACJ,KAAK,eAAe,QAAQ,kBAAkB,QAAQ,KAAK;GAC7D,MAAM,WACJ,KAAK,eAAe,QAAQ,qBAAqB,KAAK,YAAY;GACpE,MAAM,eAAe,CAAC,kBAAkB;GAMxC,IACE,KAAK,eAAe,QACpB,cACC,kBACC,kBACC,CAAC,KAAK,YAAY,eAAe,gBAClC,KAAK,YAAY,UAAU,OAC7B;IACA,MAAM,EAAE,QAAQ,YAAY,KAAK,0BAC/B,MACA,KAAK,aACL,kBAAkB,CAAC,QACrB;IACA,KAAK,cAAc;KACjB;KACA;KACA,aAAa;KACb;KACA,aAAa,KAAA;IACf;GACF;GAKA,IAAI,CAAC,aAAc,CAAC,kBAAkB,CAAC,UACrC,KAAU,eAAe,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,cAAc;IAG3D,IAAI,KAAK,eAAe,MACtB,KAAK,YAAY,cAAc;IAEjC,KAAK,mBAAmB,MAAM,QAAQ,SAAS,CAAC,cAAc;GAChE,CAAC;EAEL;EACA,OAAO,KAAK,YAAY,UAAU,OAC9B,KAAK,kBACH,KAAK,YAAY,MACjB,aACA,KAAK,YAAY,MACnB,IACA,KAAA;CACN;CAEA,MAAa,YACX,MACA,cAA2B,sBACC;EAC5B,MAAM,EAAE,WAAW,MAAM,KAAK,eAAe,IAAI;EACjD,OAAO,KAAK,kBAAkB,MAAM,aAAa,MAAM;CACzD;CAEA,iBACE,OACA,YACA,kBACa;EACb,MAAM,EAAE,gBAAgB,mBAAmB,oBAAoB,aAC7D,KAAK,uBAAuB;EAC9B,OAAO,iBAAiB;GACtB,MAAM;GACN;GACA;GACA;GACA;GACA;GACA;GACA;EACF,CAAC;CACH;CAEA,MAAc,eACZ,MAC2B;EAC3B,MAAM,iBAAiB,cAAc,MAAM,KAAK,qBAAqB,CAAC;EACtE,KAAK,eAAe,iBAChB,SACC,KAAK,QAAQ,wBAAwB,KAAK,IAAI;EACnD,MAAM,YACJ,KAAK,eAAe,QACpB,kBAAkB,KAAK,QAAQ,SAAS,cAAc;EACxD,MAAM,WACJ,kBACC,KAAK,eAAe,QAAQ,qBAAqB,KAAK,YAAY;EAGrE,IAAI,KAAK,eAAe,QAAQ,CAAC,aAAa,CAAC,UAC7C,KAAK,cAAc,MAAM,KAAK,sBAAsB;EAEtD,OAAO,KAAK,0BACV,MACA,KAAK,aACL,cACF;CACF;CAEA,0BACE,MACA,aACA,iBAAiB,OACC;EAClB,MAAM,EAAE,YAAY,KAAK,iBAAiB,IAAI;EAC9C,MAAM,EAAE,8BAA8B,KAAK,uBAAuB;EAMlE,OAAO;GAAE,QALM,0BAA0B,MAAM,aAAa,SAAS;IACnE;IACA,eAAe,iBAAiB,OAAO,KAAA;IACvC;GACF,CACc;GAAG;EAAQ;CAC3B;CAEA,mBACE,MACA,QACA,SACA,cAAc,MACR;EAIN,IAAI,KAAK,eAAe,MACtB;EAGF,MAAM,sBACJ,CAAC,KAAK,YAAY,eAClB,CAAC,0BAA0B,KAAK,YAAY,SAAS,OAAO,KAC5D,CAAC,oBAAoB,KAAK,YAAY,MAAM,IAAI;EAElD,KAAK,cAAc;GACjB;GACA;GACA;GACA;GACA,aAAa,KAAA;EACf;EACA,IAAI,qBACF,KAAK,iBAAiB;CAE1B;CAEA,6BACE,MACA,SAC8B;EAC9B,MAAM,QAAQ,KAAK,eAAe,mBAAmB,IAAI;EACzD,IAAI,SAAS,QAAQ,CAAC,0BAA0B,SAAS,MAAM,OAAO,GACpE;EAEF,OAAO;CACT;CAEA,0BACE,MACA,SACS;EACT,MAAM,EAAE,gBAAgB;EACxB,OACE,aAAa,UAAU,QACvB,YAAY,eACZ,oBAAoB,MAAM,YAAY,IAAI,KAC1C,0BAA0B,SAAS,YAAY,OAAO;CAE1D;CAEA,iBAAwB,OAAsB;EAC5C,QAAQ,MAAM,KAAK;CACrB;CAEA,uBAAuC;EACrC,OAAO,KAAK,QAAQ,qBAAA;CACtB;CAEA,kBACE,UACA,aACA,EAAE,MAAM,aAAa,iBACF;EACnB,MAAM,EACJ,WACA,mBACA,iBACA,oBACA,2BACA,mBACE,KAAK,uBAAuB;EAEhC,KAAK,OAAO;EACZ,MAAM,UAAU,cAAc;EAE9B,IAAI,sBAAoD,CAAC;EACzD,IAAI,sBAAoD,CAAC;EACzD,IAAI,oBAAkD,CAAC;EAEvD,MAAM,WAAuB,CAAC;EAC9B,MAAM,EAAE,eAAe,kBAAkB;EACzC,MAAM,UAA0B;GAC9B,UAAU;GACV;GACA;GACA;GACA;GACA,kBAAkB,oBAAoB;GACtC,oBAAoB,oBAAoB;GACxC,oBAAoB,oBAAoB;GACxC;GACA;GACA,kBAAkB,QAAQ,GAAG;IAC3B,QAAQ,YAAY;GACtB;GACA,aAAa,MAAsB,SAAsB;IACvD,QAAQ,MAAR;KACE,KAAK;MACH,QAAQ,iBAAiB,SAAS,KAAK,OAAO;MAC9C;KAEF,KAAK;MACH,QAAQ,mBAAmB,SAAS,KAAK,OAAO;MAChD;KAEF,KAAK;MACH,QAAQ,mBAAmB,SAAS,KAAK,OAAO;MAChD;IAEJ;GACF;EACF;EACA,MAAM,oBAAoB,4BAA4B;GACpD;GACA,aAAa;EACf,CAAC;EACD,MAAM,sBAA2C;GAC/C,MAAM;GACN,MAAM,KAAA;GACN,YAAY;IACV,KAAK,QAAQ;GACf;GACA,QAAQ;IACN,IAAI,cAAc,WAChB;IAEF,IAAI,KAAK,QAAQ,KAAK,KAAK,QAAQ,MAAM;KACvC,KAAK,OAAO,KAAA;KACZ,KAAK,OAAO;KACZ;IACF;IACA,IAAI,KAAK,SAAS,aAAa;KAC7B,QAAQ,aACN,aACA,gBAAgB,KAAA,GAAW,UAAU,KAAK,IAAI,CAChD;KACA,qBAAqB,KAAK,qBAAqB,KAAK,IAAI,CAAC;IAC3D,OAAO;KACL,QAAQ,aACN,aACA,gBAAgB,KAAA,GAAW,UAAU,KAAK,IAAI,CAChD;KACA,qBAAqB,KAAK,qBAAqB,KAAK,IAAI,CAAC;IAC3D;IACA,KAAK,OAAO;IACZ,KAAK,OAAO,KAAA;GACd;EACF;EAEA,MAAM,wBACJ,MACA,UACA,YACA,WACA,qBACG;GACH,QAAQ,aACN,MACA,iBAAiB,UAAU,YAAY,WAAW,gBAAgB,CACpE;EACF;EAEA,SAAS,eAAe,OAA2B;GACjD,oBAAoB,MAAM;GAC1B,IAAI,cAAc,WAChB,cAAc,WAAW,OAAO,OAAO;QAClC;IACL,cAAc,aAAa,OAAO,OAAO;IACzC,cAAc,aAAa,OAAO,OAAO;GAC3C;EACF;EAEA,KAAK,yBAAyB,UAAU,WAAW,aAAa,OAAO;EAEvE,gBAAgB;GACd,MAAM;GACN;GACA,cAAc,YAAY;GAC1B,YAAY,YAAY;GACxB,eAAe,kBAAkB,OAAO,KAAK;GAC7C;GACA,WAAW,EACT,WACA,MACA,iBACA,gBACA,cACA,cACA,WACI;IACJ,MAAM,iBACJ,gBAAgB,OACZ,aAAa,iBACb,aAAa;IACnB,MAAM,mBACJ,gBAAgB,OACZ,aAAa,mBACb,aAAa;IAEnB,IAAI,cAAc,WAAW,SAAS,UACpC,oBAAoB,MAAM;IAG5B,IAAI,kBAAkB,GACpB,eAAe;KACb;KACA,gBAAgB;KAChB,WAAW,KAAK,IAAI,MAAM,mBAAmB,GAAG,CAAC;KACjD,WAAW,MAAM;KACjB,aAAa,cAAc;KAC3B,YAAY;KACZ,cAAc,CAAC,SAAS;IAC1B,CAAC;IAGH,MAAM,YACJ,cAAc,YAAY,mBAAmB;IAC/C,MAAM,sBAA2C;KAC/C;KACA;KACA;KACA;KACA;KACA;KACA;IACF;IAEA,IAAI,cAAc,WAAW;KAC3B,MAAM,eACJ,KAAK,gCAAgC,mBAAmB;KAC1D,IAAI,cAAc,UAAU,MAC1B,wBAAwB,aAAa,QAAQ,OAAO;KAEtD,IAAI,sBACF,gBAAgB,OACZ,cAAc,aAAa,aAC3B,KAAA;KACN,IAAI,sBACF,gBAAgB,OACZ,cAAc,aAAa,aAC3B,KAAA;KACN,IAAI,uBAAuB,QAAQ,uBAAuB,MAAM;MAC9D,MAAM,eACJ;MACF,QAAQ,MAAM,cAAc,EAAE,MAAM,SAAS,KAAK,CAAC;MACnD,MAAM,IAAI,MAAM,YAAY;KAC9B;KACA,MAAM,WACJ,SAAS,WACL,gBAAgB,OACd,oBACA,oBACF;KACN,MAAM,iBAAiB,KAAK,yBAAyB;MAGnD;MACA;MACA,mBAAmB,cAAc;MACjC,mBAAmB,cAAc;KACnC,CAAC;KACD,qBACE,WACA,eAAe,gBACf,gBAAgB,OACZ,aAAa,aACb,aAAa,YACjB,GAAG,iBAAiB,GAAG,kBACvB,eAAe,gBACjB;KACA,IAAI,uBAAuB,MACzB,sBAAsB,sBACpB,qBACA,eAAe,iBACjB;UACK,IAAI,uBAAuB,MAChC,sBAAsB,sBACpB,qBACA,eAAe,iBACjB;KAEF,uBAAuB;MACrB,WAAW;MACL;MACN,cAAc;MACd,cAAc;MACd,aAAa,KAAK,eAChB,WACA,cAAc,YACd,cAAc,YACd,WACA,SACF;MACA,0BAA0B,SACxB,KAAK,wBAAwB,IAAI;MACnC;KACF,CAAC;KACD,IAAI,cAAc,SAAS,MACzB,wBAAwB,aAAa,OAAO,OAAO;IAEvD,OAAO;KACL,MAAM,eACJ,KAAK,8BAA8B,mBAAmB;KACxD,IAAI,cAAc,UAAU,MAC1B,sBACE,aAAa,QACb,SACA,mBACF;KAGF,IAAI,sBACF,gBAAgB,OACZ,cAAc,aAAa,aAC3B,KAAA;KACN,IAAI,sBACF,gBAAgB,OACZ,cAAc,aAAa,aAC3B,KAAA;KACN,MAAM,yBAAyB,KAAK,uBAAuB;MACzD,MAAM;MACN;MACA,WAAW,cAAc;KAC3B,CAAC;KACD,MAAM,yBAAyB,KAAK,uBAAuB;MACzD,MAAM;MACN;MACA,WAAW,cAAc;KAC3B,CAAC;KAED,IAAI,uBAAuB,QAAQ,uBAAuB,MAAM;MAC9D,MAAM,eACJ;MACF,QAAQ,MAAM,cAAc,EAAE,MAAM,SAAS,KAAK,CAAC;MACnD,MAAM,IAAI,MAAM,YAAY;KAC9B;KAEA,MAAM,qBAAqB;MACzB,IAAI,SAAS;WACP,uBAAuB,MACzB,OAAO;YACF,IAAI,uBAAuB,MAChC,OAAO;MAAA;KAIb,EAAA,CAAG;KACH,IAAI,eAAe,MAAM;MACvB,IACE,oBAAoB,QAAQ,QAC5B,oBAAoB,SAAS,aAG7B,MAAM,IAAI,MACR,8EACF;MAEF,oBAAoB,OAAO;MAC3B,oBAAoB,UAAU;KAChC;KAEA,MAAM,kBAAkB,KAAK,eAC3B,SACA,cAAc,YACd,cAAc,YACd,WACA,SACF;KACA,IAAI,mBAAmB,QAAQ,oBAAoB,OAAO,GACxD,oBAAoB,MAAM;KAG5B,IAAI,gBAAgB,MAAM;MACxB,MAAM,wBAAwB,sBAC5B,qBACA,uBAAuB,iBACzB;MACA,qBACE,aACA,uBAAuB,gBACvB,aAAa,YACb,GAAG,aAAa,iBAAiB,GAAG,kBACpC,uBAAuB,gBACzB;MACA,IAAI,yBAAyB,MAC3B,sBAAsB;KAE1B;KACA,IAAI,gBAAgB,MAAM;MACxB,MAAM,wBAAwB,sBAC5B,qBACA,uBAAuB,iBACzB;MACA,qBACE,aACA,uBAAuB,gBACvB,aAAa,YACb,GAAG,aAAa,iBAAiB,GAAG,kBACpC,uBAAuB,gBACzB;MACA,IAAI,yBAAyB,MAC3B,sBAAsB;KAE1B;KACA,uBAAuB;MACrB,WAAW;MACL;MACN,cAAc;MACd,cAAc;MACd,GAAG;MACH,0BAA0B,SACxB,KAAK,wBAAwB,IAAI;MACnC;KACF,CAAC;KACD,IAAI,cAAc,SAAS,MACzB,sBACE,aAAa,OACb,SACA,mBACF;IAEJ;IAEA,MAAM,sBACJ,cAAc,WACd,QAAQ,QACR,mBAAmB,KAAK,iBAAiB,KAAK,iBAAiB;IACjE,MAAM,uBAAuB,sBACzB,KAAK,mBACL;IACJ,MAAM,uBAAuB,sBACzB,KAAK,mBACL;IACJ,MAAM,mBACH,cAAc,WAAW,UAAU;IACtC,MAAM,mBACH,cAAc,WAAW,UAAU;IACtC,IAAI,mBAAmB,iBAAiB;KACtC,IAAI,cAAc,SAChB,oBAAoB,MAAM;KAE5B,IAAI,iBAAiB;MACnB,MAAM,YACJ,SAAS,aAAa,SAAS,qBAC3B,OACA;MACN,IAAI,cAAc,WAAW;OAC3B,QAAQ,kBAAkB,KAAK,uBAAuB,SAAS,CAAC;OAChE,QAAQ,aACN,WACA,gBAAgB,WAAW,YAAY,CAAC,CAC1C;MACF,OAAO;OACL,QAAQ,oBAAoB,KAC1B,uBAAuB,SAAS,CAClC;OACA,QAAQ,aACN,aACA,gBAAgB,WAAW,YAAY,CAAC,CAC1C;OACA,IAAI,CAAC,iBAAiB;QACpB,QAAQ,aACN,aACA,gBAAgB,KAAA,GAAW,UAAU,CAAC,CACxC;QACA,QAAQ,oBAAoB,KAAK,qBAAqB,CAAC,CAAC;OAC1D;MACF;KACF;KACA,IAAI,iBAAiB;MACnB,MAAM,YACJ,SAAS,aAAa,SAAS,qBAC3B,OACA;MACN,IAAI,cAAc,WAAW;OAC3B,QAAQ,kBAAkB,KAAK,uBAAuB,SAAS,CAAC;OAChE,QAAQ,aACN,WACA,gBAAgB,WAAW,YAAY,CAAC,CAC1C;MACF,OAAO;OACL,QAAQ,oBAAoB,KAC1B,uBAAuB,SAAS,CAClC;OACA,QAAQ,aACN,aACA,gBAAgB,WAAW,YAAY,CAAC,CAC1C;OACA,IAAI,CAAC,iBAAiB;QACpB,QAAQ,aACN,aACA,gBAAgB,KAAA,GAAW,UAAU,CAAC,CACxC;QACA,QAAQ,oBAAoB,KAAK,qBAAqB,CAAC,CAAC;OAC1D;MACF;KACF;KACA,QAAQ,kBAAkB,CAAC;IAC7B;IAEA,IAAI,iBAAiB,KAAK,mBAAmB,UAC3C,eAAe;KACb,WAAW,SAAS,qBAAqB,YAAY,YAAY;KACjE,gBAAgB;KAChB,WAAW;KACX,WAAW,KAAA;KACX,aAAa;KACb,YAAY;KACZ,cAAc,CAAC,SAAS;IAC1B,CAAC;IAEH,QAAQ,kBAAkB,CAAC;GAC7B;EACF,CAAC;EAED,IAAI,cAAc,SAChB,oBAAoB,MAAM;EAG5B,MAAM,aAAa,KAAK,IACtB,2BAA2B,SAAS,KAAK,GACzC,SAAS,cAAc,UAAU,GACjC,SAAS,cAAc,UAAU,CACnC;EAEA,MAAM,YACJ,YAAY,eAAe,KAAK,YAAY,cAAc;EAE5D,MAAM,yBAAyB,CAAC,WAAW,SAAS,SAAS;EAC7D,MAAM,yBAAyB,CAAC,WAAW,SAAS,SAAS;EAC7D,MAAM,aAAa,QAAQ,WAAW,KAAK;EAE3C,sBACE,0BAA0B,aAAa,sBAAsB,KAAA;EAC/D,sBACE,0BAA0B,aAAa,sBAAsB,KAAA;EAC/D,oBAAoB,WAAW,aAAa,oBAAoB,KAAA;EAEhE,MAAM,UAAU,KAAK,iBACnB,uBAAuB,QAAQ,uBAAuB,MACtD,UACF;EAEA,OAAO;GACL,kBACE,WAAW,aAAa,QAAQ,iBAAiB,WAAW,KAAA;GAC9D;GACA,oBACE,0BAA0B,aACtB,QAAQ,mBAAmB,WAC3B,KAAA;GACN;GACA,oBACE,0BAA0B,aACtB,QAAQ,mBAAmB,WAC3B,KAAA;GACN;GACA;GACA;GACA;GACA;GACA,eAAe,CAAC,oBACZ,KAAK,aAAa,KAAK,IAAI,IAC3B,KAAA;GACJ;GACA,UAAU,QAAQ;GAClB,cAAc,YAAY;GAC1B,aAAa,YAAY;GAEzB,KAAK;EACP;CACF;CAEA,cACE,MACA,QAC8B;EAC9B,MAAM,YACJ,SAAS,YACL,OAAO,mBACP,SAAS,cACP,OAAO,qBACP,OAAO;EAEf,MAAM,aACJ,SAAS,YACL,OAAO,oBACP,SAAS,cACP,OAAO,sBACP,OAAO;EAEf,IAAI,aAAa,QAAQ,cAAc,MACrC;EAGF,MAAM,SAAS,oBAAoB,SAAS;EAC5C,OAAO,WAAW,QAAQ,kBAAkB,OAAO;EAEnD,OAAO,CAAC,QADc,oBAAoB,YAAY,OAAO,QACjC,CAAC;CAC/B;CAEA,cACE,QACA,WAA6B,CAAC,GACjB;EACb,MAAM,gBACJ,KAAK,uBAAuB,CAAC,CAAC,mBAAmB;EACnD,MAAM,aAAa,KAAK,cAAc,WAAW,MAAM;EACvD,IAAI,cAAc,MAAM;GACtB,SAAS,KACP,kBAAkB;IAChB,SAAS;IACT,UAAU;IACV,YAAY;KACV,aAAa;KACb,uBAAuB,gBAAgB,KAAK,KAAA;KAC5C,gBAAgB;IAClB;GACF,CAAC,CACH;GACA,OAAO;IAAE,GAAG,OAAO;IAAS;GAAS;EACvC;EAEA,MAAM,eAAe,KAAK,cAAc,aAAa,MAAM;EAC3D,IAAI,gBAAgB,MAClB,SAAS,KACP,kBAAkB;GAChB,SAAS;GACT,UAAU;GACV,YAAY;IACV,aAAa;IACb,uBAAuB,gBAAgB,KAAK,KAAA;IAC5C,kBAAkB;GACpB;EACF,CAAC,CACH;EAEF,MAAM,eAAe,KAAK,cAAc,aAAa,MAAM;EAC3D,IAAI,gBAAgB,MAClB,SAAS,KACP,kBAAkB;GAChB,SAAS;GACT,UAAU;GACV,YAAY;IACV,aAAa;IACb,uBAAuB,gBAAgB,KAAK,KAAA;IAC5C,kBAAkB;GACpB;EACF,CAAC,CACH;EAEF,OAAO;GAAE,GAAG,OAAO;GAAS;EAAS;CACvC;CAEA,eACE,QACA,eAAiC,CAAC,GAC1B;EACR,OAAO,OAAO,KAAK,cAAc,QAAQ,YAAY,CAAC;CACxD;CAEA,kBACE,UACA,YACQ;EACR,IAAI,cAAc,MAChB,OAAO,OAAO,QAAQ;EAExB,OAAO,OACL,kBAAkB;GAChB,SAAS;GACT;GACA,YAAY;IACV,aAAa;IACb,uBACE,KAAK,uBAAuB,CAAC,CAAC,mBAAmB,cAC7C,KACA,KAAA;KACL,QAAQ,eAAe;GAC1B;EACF,CAAC,CACH;CACF;CAEA,yBACE,UACA,WACA,aACA,SACM;EACN,IAAI,CAAC,4BAA4B,WAAW,GAC1C;EAGF,MAAM,0BACJ,SAAS,SAAS,QACd,mBAAmB,mBAAmB,KAAK,mBAAmB,CAAC,IAC/D,CAAC;EACP,MAAM,0BACJ,SAAS,SAAS,YACd,mBAAmB,mBAAmB,KAAK,mBAAmB,CAAC,IAC/D,CAAC;EACP,IACE,wBAAwB,WAAW,KACnC,wBAAwB,WAAW,GAEnC;EAGF,MAAM,YAAA;EACN,MAAM,YAAA;EACN,MAAM,EAAE,4BAA4B;EAEpC,IAAI,cAAc,WAAW;GAC3B,uBAAuB;IACrB;IACA,MAAM;IACN,aAAa;KACX,MAAM;KACN;KACA;KACA,aAAa,wBAAwB,OAAO,uBAAuB;IACrE;IACA;IACA;GACF,CAAC;GACD;EACF;EAEA,uBAAuB;GACrB;GACA,MAAM;GACN,cAAc;IACZ,MAAM;IACN;IACA;IACA,aAAa;GACf;GACA,cAAc;IACZ,MAAM;IACN;IACA;IACA,aAAa;GACf;GACA;GACA;EACF,CAAC;CACH;CAgBA,eACE,MACA,oBACA,oBACA,WACA,WAIY;EACZ,MAAM,eAA+B;GACnC,MAAM;GACN;GACA;GACA,aAAa,CAAC;EAChB;EACA,IAAI,sBAAsB,MACxB,KAAK,MAAM,QAAQ,KAAK,oBAAoB,uBAAuB,CAAC,GAClE,aAAa,YAAY,KAAK,sBAAsB,IAAI,CAAC;EAG7D,MAAM,eAA+B;GACnC,MAAM;GACN;GACA;GACA,aAAa,CAAC;EAChB;EACA,IAAI,sBAAsB,MACxB,KAAK,MAAM,QAAQ,KAAK,oBAAoB,uBAAuB,CAAC,GAClE,CAAC,SAAS,YAAY,eAAe,aAAA,CAAc,YAAY,KAC7D,sBAAsB,IAAI,CAC5B;EAGJ,IAAI,SAAS,WAAW;GACtB,IAAI,aAAa,YAAY,SAAS,GACpC,OAAO;GAET;EACF;EACA,IACE,aAAa,YAAY,WAAW,KACpC,aAAa,YAAY,WAAW,GAEpC;EAEF,OAAO;GAAE;GAAc;EAAa;CACtC;CAEA,aAAqB,MAAqC;EACxD,MAAM,EAAE,kBAAkB,iBAAiB,KAAK,uBAAuB;EACvE,OAAO,wBAAwB;GAC7B,YAAY;GACZ,MAAM;GACN;EACF,CAAC;CACH;AACF;AAEA,SAAS,mBACP,aACU;CACV,OACE,aAAa,KAAK,eAAe,sBAAsB,UAAU,CAAC,KAAK,CAAC;AAE5E;AAIA,MAAM,kBAAkB,IAAI,KAAK,YAAY,OAAO;AAEpD,SAAS,uBAAuB,OAAe;CAE7C,OAAO,GAAG,MAAM,kBADD,gBAAgB,OAAO,KAAK,MAAM,QAAQ,KAAK;AAEhE;AAEA,SAAS,wBACP,MACA,SACM;CACN,KAAK,MAAM,OAAO,MAAM;EACtB,QAAQ,kBAAkB,KAAK,IAAI,OAAO;EAC1C,QAAQ,aAAa,WAAW,IAAI,MAAM;EAC1C,QAAQ,kBAAkB,CAAC;CAC7B;AACF;AAEA,SAAS,sBACP,MACA,SACA,qBACM;CACN,KAAK,MAAM,EAAE,UAAU,cAAc,MAAM;EACzC,IAAI,YAAY,QAAQ,YAAY,MAClC;EAEF,MAAM,cACJ,YAAY,QAAQ,YAAY,OAC5B,KAAA,IACA,YAAY,OACV,cACA;EAER,IAAI,eAAe,QAAQ,oBAAoB,SAAS,aACtD,oBAAoB,MAAM;EAG5B,IAAI,YAAY,MAAM;GACpB,QAAQ,oBAAoB,KAAK,SAAS,OAAO;GACjD,QAAQ,aAAa,aAAa,SAAS,MAAM;EACnD;EAEA,IAAI,YAAY,MAAM;GACpB,QAAQ,oBAAoB,KAAK,SAAS,OAAO;GACjD,QAAQ,aAAa,aAAa,SAAS,MAAM;EACnD;EAEA,IAAI,eAAe,MAAM;GACvB,oBAAoB,OAAO;GAC3B,oBAAoB,UAAU;EAChC;EAEA,QAAQ,kBAAkB,CAAC;CAC7B;AACF;AAEA,SAAS,uBAAuB,EAC9B,WACA,MACA,cACA,cACA,aACA,cACA,cACA,yBACA,WACyB;CACzB,IAAI,mBAAmB;CACvB,IAAI,cAAc,WAAW;EAC3B,IAAI,gBAAgB,MAClB,QAAQ,kBAAkB,KAAK,YAAY;OACtC,IAAI,gBAAgB,MACzB,QAAQ,kBAAkB,KAAK,YAAY;EAE7C,IAAI,eAAe,MAAM;GACvB,MAAM,WACJ,SAAS,WACL,gBAAgB,OACd,oBACA,oBACF;GACN,QAAQ,kBAAkB,KAAK,wBAAwB,WAAW,CAAC;GACnE,QAAQ,aACN,WACA,gBAAgB,UAAU,cAAc,CAAC,CAC3C;GACA,mBAAmB;EACrB;CACF,OAAO,IAAI,cAAc,SAAS;EAChC,IAAI,gBAAgB,MAClB,QAAQ,oBAAoB,KAAK,YAAY;EAE/C,IAAI,gBAAgB,MAClB,QAAQ,oBAAoB,KAAK,YAAY;EAE/C,IAAI,gBAAgB,MAAM;GACxB,MAAM,WACJ,SAAS,WACL,gBAAgB,OACd,oBACA,YACF;GACN,QAAQ,oBAAoB,KAAK,wBAAwB,YAAY,CAAC;GACtE,QAAQ,aACN,aACA,gBAAgB,UAAU,cAAc,CAAC,CAC3C;GACA,mBAAmB;EACrB;EACA,IAAI,gBAAgB,MAAM;GACxB,MAAM,WACJ,SAAS,WACL,gBAAgB,OACd,oBACA,YACF;GACN,QAAQ,oBAAoB,KAAK,wBAAwB,YAAY,CAAC;GACtE,QAAQ,aACN,aACA,gBAAgB,UAAU,cAAc,CAAC,CAC3C;GACA,mBAAmB;EACrB;CACF;CACA,IAAI,kBACF,QAAQ,kBAAkB,CAAC;AAE/B;AAEA,SAAS,cACP,MACA,EACE,WACA,gBACA,WACA,WACA,aACA,YACA,gBAEF,SACA;CACA,IAAI,kBAAkB,GACpB;CAEF,MAAM,WACJ,SAAS,YACL,QAAQ,oBACR,SAAS,cACP,QAAQ,sBACR,QAAQ;CAEhB,IAAI,QAAQ,mBAAmB,YAAY;EACzC,IAAI,aAAa,MAAM;GACrB,QAAQ,aACN,MACA,gBAAgB;IACd,MAAM;IACN,SAAS;IACT;IACA;GACF,CAAC,CACH;GACA,SAAS,KACP,gBAAgB;IACd,MAAM;IACN,SAAS;IACT;IACA;GACF,CAAC,CACH;GACA,IAAI,SAAS,aACX,QAAQ,kBAAkB,CAAC;EAE/B;EACA;CACF;CACA,IAAI,QAAQ,mBAAmB,UAAU;EACvC,IAAI,YAAY,GAAG;GACjB,QAAQ,aACN,MACA,gBAAgB;IAAE,MAAM;IAAU;IAAa,YAAY;GAAM,CAAC,CACpE;GACA,SAAS,KACP,gBAAgB;IAAE,MAAM;IAAU;IAAa,YAAY;GAAM,CAAC,CACpE;GACA,IAAI,SAAS,aACX,QAAQ,kBAAkB,CAAC;EAE/B;EACA;CACF;CACA,MAAM,WAAW,yBAAyB,MAAM,SAAS;CACzD,MAAM,UAAU,YAAY,QAAQ;CACpC,MAAM,cAAc,eAAe,YAAY,KAAA;CAC/C,QAAQ,aACN,MACA,gBAAgB;EACd,MAAM,QAAQ;EACd,SAAS,uBAAuB,cAAc;EAC9C;EACA;EACA;EACA;EACA;CACF,CAAC,CACH;CACA,SAAS,KACP,gBAAgB;EACd,MAAM,QAAQ;EACd,SAAS,uBAAuB,cAAc;EAC9C;EACA;EACA;EACA;EACA;CACF,CAAC,CACH;CACA,IAAI,SAAS,aACX,QAAQ,kBAAkB,CAAC;CAE7B,QAAQ,SAAS,KAAK;EACpB;EACA;EACA,OAAO;EACP;EACA,YAAY,eACR;GAAE,IAAI,CAAC;GAAa,MAAM,CAAC;GAAY;EAAQ,IAC/C,KAAA;CACN,CAAC;AACH;AAEA,SAAS,sBACP,UACA,mBAC4B;CAC5B,IACE,YAAY,QACZ,SAAS,SAAS,aAClB,qBAAqB,MAErB,OAAO;CAET,OAAO;EACL,GAAG;EACH,YAAY;GACV,GAAG,SAAS;GACZ,GAAG;EACL;CACF;AACF;AAEA,SAAS,cACP,MACA,mBACS;CACT,OACE,KAAK,IAAI,KAAK,cAAc,QAAQ,KAAK,cAAc,MAAM,IAC7D;AAEJ"}
1
+ {"version":3,"file":"DiffHunksRenderer.js","names":["createDefaultAnnotationElement"],"sources":["../../src/renderers/DiffHunksRenderer.ts"],"sourcesContent":["import type { ElementContent, Element as HASTElement, Properties } from 'hast';\nimport { toHtml } from 'hast-util-to-html';\n\nimport {\n DEFAULT_COLLAPSED_CONTEXT_THRESHOLD,\n DEFAULT_EXPANDED_REGION,\n DEFAULT_RENDER_RANGE,\n DEFAULT_THEMES,\n DEFAULT_TOKENIZE_MAX_LENGTH,\n} from '../constants';\nimport { areLanguagesAttached } from '../highlighter/languages/areLanguagesAttached';\nimport {\n getHighlighterIfLoaded,\n getSharedHighlighter,\n} from '../highlighter/shared_highlighter';\nimport { areThemesAttached } from '../highlighter/themes/areThemesAttached';\nimport type {\n AnnotationLineMap,\n AnnotationSpan,\n BaseCodeOptions,\n BaseDiffOptions,\n BaseDiffOptionsWithDefaults,\n CodeColumnType,\n CustomPreProperties,\n DiffLineAnnotation,\n DiffsHighlighter,\n DiffsTextDocument,\n ExpansionDirections,\n FileDiffMetadata,\n FileHeaderRenderMode,\n HighlightedToken,\n HunkData,\n HunkExpansionRegion,\n HunkSeparators,\n LineTypes,\n RenderDiffOptions,\n RenderDiffResult,\n RenderedDiffASTCache,\n RenderRange,\n SupportedLanguages,\n ThemedDiffResult,\n} from '../types';\nimport { applyLineTextWithNewline } from '../utils/applyLineTextWithNewline';\nimport { areDiffRenderOptionsEqual } from '../utils/areDiffRenderOptionsEqual';\nimport { areDiffTargetsEqual } from '../utils/areDiffTargetsEqual';\nimport { areRenderRangesEqual } from '../utils/areRenderRangesEqual';\nimport { cleanLastNewline } from '../utils/cleanLastNewline';\nimport { createAnnotationElement as createDefaultAnnotationElement } from '../utils/createAnnotationElement';\nimport { createContentColumn } from '../utils/createContentColumn';\nimport { createEmptyRowBuffer } from '../utils/createEmptyRowBuffer';\nimport { createFileHeaderElement } from '../utils/createFileHeaderElement';\nimport { createNoNewlineElement } from '../utils/createNoNewlineElement';\nimport { createPreElement } from '../utils/createPreElement';\nimport { createSeparator } from '../utils/createSeparator';\nimport {\n applySessionChangedLines,\n rebuildSessionHunks,\n remapExpandedHunksForRegionChange,\n type SessionRegionChange,\n} from '../utils/editSessionHunks';\nimport { getFiletypeFromFileName } from '../utils/getFiletypeFromFileName';\nimport { getHighlighterOptions } from '../utils/getHighlighterOptions';\nimport { getHunkSeparatorSlotName } from '../utils/getHunkSeparatorSlotName';\nimport { getLineAnnotationName } from '../utils/getLineAnnotationName';\nimport { getTotalLineCountFromHunks } from '../utils/getTotalLineCountFromHunks';\nimport {\n createGutterGap,\n createGutterItem,\n createGutterWrapper,\n createHastElement,\n} from '../utils/hast_utils';\nimport {\n FILE_ANNOTATION_HUNK_INDEX,\n FILE_ANNOTATION_LINE_INDEX,\n getFileAnnotations,\n shouldRenderFileAnnotations,\n} from '../utils/includesFileAnnotations';\nimport { isDefaultRenderRange } from '../utils/isDefaultRenderRange';\nimport { isDiffPlainText } from '../utils/isDiffPlainText';\nimport type { DiffLineMetadata } from '../utils/iterateOverDiff';\nimport { iterateOverDiff } from '../utils/iterateOverDiff';\nimport { renderDiffWithHighlighter } from '../utils/renderDiffWithHighlighter';\nimport {\n recomputeDiffHunksForEdit,\n recomputeEmptyDocumentDiff,\n recomputeTopAlignedAdditionDiff,\n shouldTopAlignAdditionRecompute,\n updateDiffHunks,\n} from '../utils/updateDiffHunks';\nimport { getTrailingContextRangeSize } from '../utils/virtualDiffLayout';\nimport type { WorkerPoolManager } from '../worker';\n\ninterface PushLineWithAnnotation {\n diffStyle: 'unified' | 'split';\n type: 'context' | 'context-expanded' | 'change';\n\n deletionLine?: ElementContent;\n additionLine?: ElementContent;\n\n unifiedSpan?: AnnotationSpan;\n deletionSpan?: AnnotationSpan;\n additionSpan?: AnnotationSpan;\n\n createAnnotationElement(span: AnnotationSpan): HASTElement;\n context: ProcessContext;\n}\n\ninterface GetRenderOptionsReturn {\n options: RenderDiffOptions;\n forceHighlight: boolean;\n}\n\ninterface PushSeparatorProps {\n hunkIndex: number;\n collapsedLines: number | 'unknown';\n rangeSize: number;\n hunkSpecs: string | undefined;\n isFirstHunk: boolean;\n isLastHunk: boolean;\n isExpandable: boolean;\n}\n\ninterface ProcessContext {\n rowCount: number;\n expansionLineCount: number;\n hunkSeparators: HunkSeparators;\n unifiedContentAST: ElementContent[];\n deletionsContentAST: ElementContent[];\n additionsContentAST: ElementContent[];\n unifiedGutterAST: HASTElement;\n deletionsGutterAST: HASTElement;\n additionsGutterAST: HASTElement;\n hunkData: HunkData[];\n pushToGutter(type: CodeColumnType, element: HASTElement): void;\n incrementRowCount(count?: number): void;\n}\n\nexport interface DiffHunksRendererOptions extends BaseDiffOptions {\n headerRenderMode?: FileHeaderRenderMode;\n}\n\nexport interface DiffHunksRendererOptionsWithDefaults extends Omit<\n BaseDiffOptionsWithDefaults,\n 'themeType'\n> {\n headerRenderMode: FileHeaderRenderMode;\n}\n\nexport interface UnifiedLineDecorationProps {\n type: 'context' | 'context-expanded' | 'change';\n lineType: LineTypes;\n additionLineIndex: number | undefined;\n deletionLineIndex: number | undefined;\n}\n\nexport interface SplitLineDecorationProps {\n side: 'deletions' | 'additions';\n type: 'context' | 'context-expanded' | 'change';\n lineIndex: number | undefined;\n}\n\nexport interface LineDecoration {\n gutterLineType: LineTypes;\n gutterProperties?: Properties;\n contentProperties?: Properties;\n}\n\ninterface PendingSplitContext {\n size: number;\n side: 'additions' | 'deletions' | undefined;\n increment(): void;\n flush(): void;\n}\n\nexport interface RenderedLineContext {\n type: 'context' | 'context-expanded' | 'change';\n hunkIndex: number;\n lineIndex: number;\n unifiedLineIndex: number;\n splitLineIndex: number;\n deletionLine?: DiffLineMetadata;\n additionLine?: DiffLineMetadata;\n}\n\nexport interface InjectedRow {\n content: HASTElement;\n gutter: HASTElement;\n}\n\nexport interface SplitInjectedRow {\n deletion: InjectedRow | undefined;\n addition: InjectedRow | undefined;\n}\n\nexport interface UnifiedInjectedRowPlacement {\n before?: InjectedRow[];\n after?: InjectedRow[];\n}\n\nexport interface SplitInjectedRowPlacement {\n before?: SplitInjectedRow[];\n after?: SplitInjectedRow[];\n}\n\nexport interface HunksRenderResult {\n unifiedGutterAST: ElementContent[] | undefined;\n unifiedContentAST: ElementContent[] | undefined;\n deletionsGutterAST: ElementContent[] | undefined;\n deletionsContentAST: ElementContent[] | undefined;\n additionsGutterAST: ElementContent[] | undefined;\n additionsContentAST: ElementContent[] | undefined;\n hunkData: HunkData[];\n css: string;\n preNode: HASTElement;\n headerElement: HASTElement | undefined;\n totalLines: number;\n themeStyles: string;\n baseThemeType: 'light' | 'dark' | undefined;\n rowCount: number;\n bufferBefore: number;\n bufferAfter: number;\n}\n\nlet instanceId = -1;\n\nexport class DiffHunksRenderer<LAnnotation = undefined> {\n readonly __id: string = `diff-hunks-renderer:${++instanceId}`;\n\n private highlighter: DiffsHighlighter | undefined;\n private diff: FileDiffMetadata | undefined;\n\n private expandedHunks = new Map<number, HunkExpansionRegion>();\n\n private deletionAnnotations: AnnotationLineMap<LAnnotation> = {};\n private additionAnnotations: AnnotationLineMap<LAnnotation> = {};\n\n private computedLang: SupportedLanguages = 'text';\n private renderCache: RenderedDiffASTCache | undefined;\n\n // Edit-session state: while active, hunk updates go through the frozen\n // region skeleton (editSessionHunks) instead of the full recompute, and\n // rendering stays on the main thread with editor-compatible token markup —\n // the editor's caret/selection mapping needs the token transformer, and\n // the pool's global options are not guaranteed to produce it. The pool\n // keeps serving every surface without a session.\n private editSessionActive = false;\n\n constructor(\n public options: DiffHunksRendererOptions = { theme: DEFAULT_THEMES },\n private onRenderUpdate?: () => unknown,\n private workerManager?: WorkerPoolManager | undefined\n ) {\n if (workerManager?.isWorkingPool() !== true) {\n this.highlighter = areThemesAttached(options.theme ?? DEFAULT_THEMES)\n ? getHighlighterIfLoaded()\n : undefined;\n }\n }\n\n public cleanUp(): void {\n this.recycle();\n this.expandedHunks.clear();\n this.workerManager = undefined;\n this.onRenderUpdate = undefined;\n }\n\n public recycle(): void {\n this.highlighter = undefined;\n this.diff = undefined;\n this.clearRenderCache();\n this.additionAnnotations = {};\n this.deletionAnnotations = {};\n this.workerManager?.cleanUpTasks(this);\n // Session hunks and the metadata dirty marker survive recycle in the\n // shared FileDiffMetadata; the renderer-local state re-seeds on the next\n // attach (beginEditSession).\n this.endEditSession();\n }\n\n /**\n * Enter edit-session mode: hunk updates preserve the current region\n * skeleton instead of recomputing hunks, and rendering happens locally\n * with the token transformer forced on (worker-pool requests/results are\n * suspended for this renderer). An empty additions document gets one row so\n * the editor has a line for its caret. Called on every editor attach,\n * including a re-attach after recycle.\n */\n public beginEditSession(): void {\n this.editSessionActive = true;\n const diff = this.diffCache;\n if (diff != null && !diff.isPartial && diff.additionLines.length === 0) {\n Object.assign(\n diff,\n recomputeEmptyDocumentDiff(diff, this.options.parseDiffOptions)\n );\n this.markEditSessionPass(diff);\n this.clearRenderCache();\n }\n }\n\n /** Leave edit-session mode. The exit recompute is the host's concern. */\n public endEditSession(): void {\n this.editSessionActive = false;\n }\n\n /**\n * Ensures that the DOM is compatible with editor render updates\n */\n public editorRenderReady(): boolean {\n return (\n this.renderCache?.options.useTokenTransformer === true &&\n this.renderCache.highlighted &&\n this.renderCache.result != null\n );\n }\n\n /**\n * Re-highlights the current diff in the background and swaps the fresh\n * result in (with a re-render) once it completes. Needed after an edit\n * session's exit recompute: session passes plain-fill shifted lines in the\n * cached result, and the recompute mutates the diff in place (same object,\n * same cacheKey), so identity/cacheKey checks would otherwise treat the\n * stale highlight as current forever. The current result — content-correct,\n * mostly highlighted — keeps rendering until the fresh one lands, so no\n * interim paint drops highlighting.\n */\n public refreshHighlightedResult(): Promise<void> {\n const { renderCache } = this;\n if (\n renderCache == null ||\n isDiffPlainText(renderCache.diff) ||\n isDiffMassive(renderCache.diff, this.getTokenizeMaxLength())\n ) {\n return Promise.resolve();\n }\n const { diff } = renderCache;\n const { workerManager } = this;\n // The pool's diff cache is keyed by cacheKey, so a worker refresh needs\n // one; a keyless diff uses the local highlighter fallback below instead.\n if (\n !this.editSessionActive &&\n workerManager?.isWorkingPool() === true &&\n diff.cacheKey != null\n ) {\n workerManager.evictDiffFromCache(diff.cacheKey);\n return workerManager\n .primeDiffHighlightCache(diff)\n .then(() => {\n this.applyRefreshedResult(\n diff,\n workerManager.getDiffResultCache(diff)\n );\n })\n .catch((error: unknown) => this.onHighlightError(error));\n }\n return this.asyncHighlight(diff)\n .then((fresh) => this.applyRefreshedResult(diff, fresh))\n .catch((error: unknown) => this.onHighlightError(error));\n }\n\n // Installs a freshly highlighted result for the same diff, unless the\n // renderer moved on while the highlight ran (new diff, options change, or\n // a new edit session whose passes the fresh result wouldn't reflect).\n private applyRefreshedResult(\n diff: FileDiffMetadata,\n fresh: RenderDiffResult | undefined\n ): void {\n if (\n fresh == null ||\n this.renderCache == null ||\n this.renderCache.diff !== diff ||\n this.editSessionActive\n ) {\n return;\n }\n const { options } = this.getRenderOptions(diff);\n if (!areDiffRenderOptionsEqual(options, fresh.options)) {\n return;\n }\n this.renderCache = {\n diff,\n options: fresh.options,\n highlighted: true,\n result: fresh.result,\n renderRange: undefined,\n };\n this.onRenderUpdate?.();\n }\n\n public get diffCache(): FileDiffMetadata | undefined {\n return this.renderCache?.diff ?? this.diff;\n }\n\n public clearRenderCache(): void {\n const renderCache = this.renderCache;\n this.renderCache = undefined;\n if (\n renderCache != null &&\n renderCache.isDirty === true &&\n renderCache.diff.cacheKey != null\n ) {\n // The render cache has been updated by the host, let's purge it\n // from the worker manager cache.\n this.workerManager?.evictDiffFromCache(renderCache.diff.cacheKey);\n }\n }\n\n public setOptions(options: DiffHunksRendererOptions): void {\n this.options = options;\n }\n\n public mergeOptions(options: Partial<DiffHunksRendererOptions>): void {\n this.options = { ...this.options, ...options };\n }\n\n public expandHunk(\n index: number,\n direction: ExpansionDirections,\n expansionLineCount: number = this.getOptionsWithDefaults()\n .expansionLineCount\n ): void {\n const region = {\n ...(this.expandedHunks.get(index) ?? {\n fromStart: 0,\n fromEnd: 0,\n }),\n };\n if (direction === 'up' || direction === 'both') {\n region.fromStart += expansionLineCount;\n }\n if (direction === 'down' || direction === 'both') {\n region.fromEnd += expansionLineCount;\n }\n // NOTE(amadeus): If our render cache is not highlighted, we need to clear\n // it, otherwise we won't have the correct AST lines. Clearing is safe\n // mid-edit-session even though the dirty cache carries live edits: both\n // session hunk-update paths keep diff.additionLines current every pass,\n // so the rebuilt AST reproduces the live document.\n if (this.renderCache?.highlighted !== true) {\n this.clearRenderCache();\n }\n this.expandedHunks.set(index, region);\n }\n\n public getExpandedHunk(hunkIndex: number): HunkExpansionRegion {\n return this.expandedHunks.get(hunkIndex) ?? DEFAULT_EXPANDED_REGION;\n }\n\n public getExpandedHunksMap(): Map<number, HunkExpansionRegion> {\n return this.expandedHunks;\n }\n\n /** Replace the whole expansion map (session-exit expansion remapping). */\n public setExpandedHunksMap(\n expandedHunks: Map<number, HunkExpansionRegion>\n ): void {\n this.expandedHunks = expandedHunks;\n }\n\n public setLineAnnotations(\n lineAnnotations: DiffLineAnnotation<LAnnotation>[]\n ): void {\n this.additionAnnotations = {};\n this.deletionAnnotations = {};\n for (const annotation of lineAnnotations) {\n const map = ((): AnnotationLineMap<LAnnotation> => {\n switch (annotation.side) {\n case 'deletions':\n return this.deletionAnnotations;\n case 'additions':\n return this.additionAnnotations;\n }\n })();\n const arr = map[annotation.lineNumber] ?? [];\n map[annotation.lineNumber] = arr;\n arr.push(annotation);\n }\n }\n\n /**\n * Returns true when a session-mode pass changed the region skeleton itself\n * (a gap edit synthesized or merged regions), which changes the rendered\n * row set without a line-count change — the host must escalate to a full\n * re-render instead of its cheap refresh path.\n */\n public updateRenderCache(\n dirtyLines: Map<number, Array<HighlightedToken>>,\n themeType: 'dark' | 'light',\n lineCountChangeInFlight = false\n ): boolean {\n if (this.renderCache == null) {\n return false;\n }\n const { result, diff } = this.renderCache;\n if (result == null) {\n return false;\n }\n if (diff.isPartial) {\n throw new Error('Could not update render cache for partial diff');\n }\n\n const hastLines = result.code.additionLines;\n const changedAdditionLines: number[] = [];\n const previousAdditionLines = new Map<number, string>();\n for (const [line, tokens] of dirtyLines) {\n const prev = hastLines[line] as HASTElement | undefined;\n const prevProps = prev?.properties ?? {};\n const lineText = tokens.map((a) => a[2]).join('');\n const canSyncDiffLine = line < diff.additionLines.length;\n const prevLine = canSyncDiffLine ? (diff.additionLines[line] ?? '') : '';\n const prevText = cleanLastNewline(prevLine);\n // The host text document can expose one extra trailing empty line when\n // the file ends with a newline. Deferred tokenization must not grow\n // additionLines from that mismatch or hunk trailing context desyncs.\n if (canSyncDiffLine) {\n diff.additionLines[line] = applyLineTextWithNewline(prevLine, lineText);\n if (prevText !== lineText) {\n changedAdditionLines.push(line);\n previousAdditionLines.set(line, prevLine);\n }\n }\n hastLines[line] = {\n type: 'element',\n tagName: 'div',\n properties: {\n 'data-line': prevProps['data-line'] ?? line + 1,\n 'data-line-index': prevProps['data-line-index'] ?? line,\n 'data-line-type': prevProps['data-line-type'] ?? 'context',\n },\n children: tokens.map(([char, fg, text]) => {\n if (char === 0 && fg === '') {\n if (text === '') {\n return {\n type: 'element',\n tagName: 'br',\n properties: {},\n children: [],\n };\n }\n return { type: 'text', value: text };\n }\n return {\n type: 'element',\n tagName: 'span',\n properties: {\n 'data-char': char,\n style: `color:${fg};`,\n },\n children: [{ type: 'text', value: text }],\n };\n }),\n };\n }\n\n let regionsChanged = false;\n if (changedAdditionLines.length > 0) {\n if (this.editSessionActive && !diff.isPartial) {\n // On a line-count pass the tokenizer emits shifted-but-unedited lines\n // as dirty and the writes above land at stale indexes, so hunk work\n // must wait for the authoritative applyDocumentChange in this same\n // pass. Otherwise (including deferred background passes, which carry\n // genuine changes and are never followed by applyDocumentChange) the\n // explicit changed indexes are current.\n if (!lineCountChangeInFlight) {\n if (\n diff.additionLines.length <= 1 &&\n diff.additionLines.join('') === ''\n ) {\n Object.assign(\n diff,\n recomputeEmptyDocumentDiff(diff, this.options.parseDiffOptions)\n );\n this.markEditSessionPass(diff);\n regionsChanged = true;\n } else if (\n shouldTopAlignAdditionRecompute(diff, diff.additionLines)\n ) {\n Object.assign(\n diff,\n recomputeTopAlignedAdditionDiff(\n diff,\n diff.additionLines,\n this.options.parseDiffOptions\n )\n );\n this.markEditSessionPass(diff);\n regionsChanged = true;\n } else {\n const change = applySessionChangedLines(\n diff,\n changedAdditionLines,\n this.options.parseDiffOptions,\n previousAdditionLines\n );\n this.applyExpansionRemap(change);\n regionsChanged = change != null;\n }\n }\n } else {\n Object.assign(\n diff,\n updateDiffHunks(\n diff,\n changedAdditionLines,\n this.options.parseDiffOptions\n )\n );\n }\n }\n\n result.baseThemeType = themeType;\n this.renderCache.isDirty = true;\n return regionsChanged;\n }\n\n private applyExpansionRemap(change: SessionRegionChange | undefined): void {\n if (change != null) {\n this.expandedHunks = remapExpandedHunksForRegionChange(\n this.expandedHunks,\n change\n );\n }\n }\n\n // Normally triggered by the host when the document line count changes.\n public applyDocumentChange(textDocument: DiffsTextDocument): void {\n if (this.renderCache == null) {\n return;\n }\n const { diff, result } = this.renderCache;\n if (result == null) {\n return;\n }\n if (diff.isPartial) {\n throw new Error('Could not apply document change for partial diff');\n }\n\n // updateRenderCache may already have extended diff.additionLines for the\n // same edit pass, so never bail out purely on matching lengths here.\n // Read line-by-line from the editor document instead of materializing the\n // entire text. This preserves blank documents and the final editable empty\n // row after a trailing line break.\n const { additionLines: previousAdditionLines } = diff;\n diff.additionLines = getEditorDocumentLines(\n textDocument,\n previousAdditionLines\n );\n result.code.additionLines = realignAdditionHastLines(\n previousAdditionLines,\n diff.additionLines,\n result.code.additionLines,\n textDocument\n );\n // An empty document splits into zero addition lines, which would recompute\n // to a diff with no editable rows and leave the attached host with no\n // line element for its caret (the additions column vanishes in split;\n // unified shows only deletions). Keep one empty editable line instead.\n if (diff.additionLines.length <= 1 && diff.additionLines.join('') === '') {\n Object.assign(\n diff,\n recomputeEmptyDocumentDiff(diff, this.options.parseDiffOptions)\n );\n result.code.additionLines[0] = createPlainAdditionLineElement(\n 0,\n textDocument.getLineText(0)\n );\n this.markEditSessionPass(diff);\n } else if (this.editSessionActive) {\n this.applySessionDocumentChange(diff);\n } else {\n Object.assign(\n diff,\n recomputeDiffHunksForEdit(diff, this.options.parseDiffOptions)\n );\n }\n\n this.renderCache.isDirty = true;\n }\n\n // Session-mode counterpart of the line-count recompute: derive canonical\n // old/current pairing and rebuild the old-side region skeleton from it.\n private applySessionDocumentChange(diff: FileDiffMetadata): void {\n const { parseDiffOptions } = this.options;\n const rawLines = diff.additionLines;\n if (shouldTopAlignAdditionRecompute(diff, rawLines)) {\n Object.assign(\n diff,\n recomputeTopAlignedAdditionDiff(diff, rawLines, parseDiffOptions)\n );\n this.markEditSessionPass(diff);\n return;\n }\n this.applyExpansionRemap(rebuildSessionHunks(diff, parseDiffOptions));\n }\n\n // Records a session pass that replaced hunks wholesale (empty-document or\n // top-aligned shims).\n private markEditSessionPass(diff: FileDiffMetadata): void {\n if (!this.editSessionActive) {\n return;\n }\n diff.editSessionDirty = true;\n }\n\n protected getUnifiedLineDecoration({\n lineType,\n }: UnifiedLineDecorationProps): LineDecoration {\n return {\n gutterLineType: lineType,\n contentProperties: {\n 'data-line-type': lineType,\n },\n };\n }\n\n protected getSplitLineDecoration({\n side,\n type,\n }: SplitLineDecorationProps): LineDecoration {\n const lineType: LineTypes =\n type === 'change'\n ? side === 'deletions'\n ? 'change-deletion'\n : 'change-addition'\n : type;\n return {\n gutterLineType: lineType,\n contentProperties: {\n 'data-line-type': lineType,\n },\n };\n }\n\n private createAnnotationElement = (span: AnnotationSpan): HASTElement => {\n return createDefaultAnnotationElement(span);\n };\n\n // Unified hook returns extra rows that render before/after the current line.\n declare protected getUnifiedInjectedRowsForLine?: (\n ctx: RenderedLineContext\n ) => UnifiedInjectedRowPlacement | undefined;\n\n // Split hook returns extra rows per side before/after the current line.\n declare protected getSplitInjectedRowsForLine?: (\n ctx: RenderedLineContext\n ) => SplitInjectedRowPlacement | undefined;\n\n protected getOptionsWithDefaults(): DiffHunksRendererOptionsWithDefaults {\n const {\n diffIndicators = 'bars',\n diffStyle = 'split',\n disableBackground = false,\n disableFileHeader = false,\n disableLineNumbers = false,\n disableVirtualizationBuffers = false,\n collapsed = false,\n expandUnchanged = false,\n collapsedContextThreshold = DEFAULT_COLLAPSED_CONTEXT_THRESHOLD,\n expansionLineCount = 100,\n hunkSeparators = 'line-info',\n lineDiffType = 'word-alt',\n maxLineDiffLength = 1000,\n overflow = 'scroll',\n stickyHeader = false,\n theme = DEFAULT_THEMES,\n headerRenderMode = 'default',\n tokenizeMaxLineLength = 1000,\n tokenizeMaxLength = DEFAULT_TOKENIZE_MAX_LENGTH,\n useTokenTransformer = false,\n useCSSClasses = false,\n } = this.options;\n return {\n diffIndicators,\n diffStyle,\n disableBackground,\n disableFileHeader,\n disableLineNumbers,\n disableVirtualizationBuffers,\n collapsed,\n expandUnchanged,\n collapsedContextThreshold,\n expansionLineCount,\n hunkSeparators,\n lineDiffType,\n maxLineDiffLength,\n overflow,\n stickyHeader,\n theme: this.workerManager?.getDiffRenderOptions().theme ?? theme,\n headerRenderMode,\n tokenizeMaxLineLength,\n tokenizeMaxLength,\n useTokenTransformer,\n useCSSClasses,\n };\n }\n\n public async initializeHighlighter(): Promise<DiffsHighlighter> {\n this.highlighter = await getSharedHighlighter(\n getHighlighterOptions(this.computedLang, {\n theme: this.getLocalHighlightTheme(),\n preferredHighlighter:\n this.workerManager?.getPreferredHighlighter() ??\n this.options.preferredHighlighter,\n })\n );\n return this.highlighter;\n }\n\n public hydrate(diff: FileDiffMetadata | undefined): void {\n if (diff == null) {\n return;\n }\n this.diff = diff;\n const { options } = this.getRenderOptions(diff);\n const massiveDiff = isDiffMassive(diff, this.getTokenizeMaxLength());\n let cache = this.workerManager?.getDiffResultCache(diff);\n if (cache != null && !areDiffRenderOptionsEqual(options, cache.options)) {\n cache = undefined;\n }\n this.renderCache ??= {\n diff,\n highlighted: !massiveDiff && !isDiffPlainText(diff),\n options,\n result: massiveDiff ? undefined : cache?.result,\n renderRange: undefined,\n };\n if (\n !this.editSessionActive &&\n this.workerManager?.isWorkingPool() === true\n ) {\n if (this.renderCache.result == null && !massiveDiff) {\n // We should only kick off a preload of the AST if we have a WorkerPool\n this.workerManager.highlightDiffAST(this, this.diff);\n }\n }\n // Lets attempt to get the highlighter/languages ready immediately\n else if (this.highlighter == null) {\n this.computedLang = diff.lang ?? getFiletypeFromFileName(diff.name);\n void this.initializeHighlighter();\n }\n }\n\n private getLocalHighlightTheme(): RenderDiffOptions['theme'] {\n return (\n this.workerManager?.getDiffRenderOptions().theme ??\n this.options.theme ??\n DEFAULT_THEMES\n );\n }\n\n public getEffectiveCodeOptions(): Pick<\n BaseCodeOptions,\n 'theme' | 'tokenizeMaxLineLength'\n > {\n const poolOptions =\n this.workerManager?.isWorkingPool() === true\n ? this.workerManager.getDiffRenderOptions()\n : undefined;\n return {\n theme: this.getLocalHighlightTheme(),\n tokenizeMaxLineLength:\n poolOptions?.tokenizeMaxLineLength ??\n this.options.tokenizeMaxLineLength,\n };\n }\n\n private getRenderOptions(diff: FileDiffMetadata): GetRenderOptionsReturn {\n const options: RenderDiffOptions = (() => {\n if (this.workerManager?.isWorkingPool() === true) {\n const poolOptions = this.workerManager.getDiffRenderOptions();\n // Active edit sessions require `useTokenTransformer: true`\n if (\n this.editSessionActive &&\n poolOptions.useTokenTransformer !== true\n ) {\n return { ...poolOptions, useTokenTransformer: true };\n }\n return poolOptions;\n }\n const { theme, tokenizeMaxLineLength, lineDiffType, maxLineDiffLength } =\n this.getOptionsWithDefaults();\n return {\n theme,\n useTokenTransformer:\n this.editSessionActive || this.options.useTokenTransformer === true,\n tokenizeMaxLineLength,\n lineDiffType,\n maxLineDiffLength,\n };\n })();\n this.getOptionsWithDefaults();\n const { renderCache } = this;\n if (renderCache?.result == null) {\n return { options, forceHighlight: true };\n }\n if (\n !areDiffTargetsEqual(diff, renderCache.diff) ||\n !areDiffRenderOptionsEqual(options, renderCache.options)\n ) {\n return { options, forceHighlight: true };\n }\n return { options, forceHighlight: false };\n }\n\n public renderDiff(\n diff: FileDiffMetadata | undefined = this.renderCache?.diff,\n renderRange: RenderRange = DEFAULT_RENDER_RANGE\n ): HunksRenderResult | undefined {\n if (diff == null) {\n return undefined;\n }\n const { expandUnchanged, collapsedContextThreshold } =\n this.getOptionsWithDefaults();\n let { options, forceHighlight } = this.getRenderOptions(diff);\n const cache = this.getMatchingWorkerResultCache(diff, options);\n if (cache != null && !this.hasHighlightedRenderCache(diff, options)) {\n this.renderCache = {\n diff,\n highlighted: true,\n renderRange: undefined,\n ...cache,\n };\n forceHighlight = false;\n }\n this.renderCache ??= {\n diff,\n highlighted: false,\n options,\n result: undefined,\n renderRange: undefined,\n };\n const hasContent =\n diff.additionLines.length > 0 || diff.deletionLines.length > 0;\n const forcePlainText =\n !hasContent ||\n isDiffPlainText(diff) ||\n isDiffMassive(diff, this.getTokenizeMaxLength());\n const newContent = !areDiffTargetsEqual(diff, this.renderCache.diff);\n const newRenderRange = !areRenderRangesEqual(\n this.renderCache.renderRange,\n renderRange\n );\n if (\n !this.editSessionActive &&\n this.workerManager?.isWorkingPool() === true\n ) {\n // An already-highlighted view is waiting on a fresh highlight for the\n // same diff. Returning no result keeps the host's current content in\n // place instead of downgrading it to a plain AST; the pending\n // highlight's completion will re-render. A different diff or a\n // sub-range window still paints plain — the current content cannot\n // serve those.\n const highlightPending =\n this.renderCache.result == null &&\n this.renderCache.highlighted &&\n !forcePlainText &&\n !newContent &&\n isDefaultRenderRange(renderRange);\n if (highlightPending) {\n this.renderCache.highlightPending = true;\n }\n if (\n !highlightPending &&\n (forcePlainText ||\n this.renderCache.result == null ||\n (!this.renderCache.highlighted && (newContent || newRenderRange)))\n ) {\n this.renderCache.diff = diff;\n this.renderCache.options = options;\n this.renderCache.highlighted = false;\n if (\n this.renderCache.result == null ||\n newContent ||\n newRenderRange ||\n forceHighlight\n ) {\n this.renderCache.result = this.workerManager.getPlainDiffAST(\n diff,\n renderRange.startingLine,\n renderRange.totalLines,\n // If we aren't using a windowed render, then we need to render\n // everything\n isDefaultRenderRange(renderRange)\n ? true\n : expandUnchanged\n ? true\n : this.expandedHunks,\n collapsedContextThreshold\n );\n }\n this.renderCache.renderRange = renderRange;\n }\n\n // Should we kick off an async highlight process\n if (\n !forcePlainText &&\n hasContent &&\n (!this.renderCache.highlighted || forceHighlight)\n ) {\n this.workerManager.highlightDiffAST(this, diff);\n }\n } else {\n this.computedLang = diff.lang ?? getFiletypeFromFileName(diff.name);\n const hasThemes =\n this.highlighter != null && areThemesAttached(options.theme);\n const hasLangs =\n this.highlighter != null && areLanguagesAttached(this.computedLang);\n const canHighlight = !forcePlainText && hasLangs;\n\n // If we have any semblance of a highlighter with the correct theme(s)\n // attached, we can kick off some form of rendering. If we don't have\n // the correct language, then we can render plain text and after kick off\n // an async job to get the highlighted AST\n if (\n this.highlighter != null &&\n hasThemes &&\n (forceHighlight ||\n forcePlainText ||\n (!this.renderCache.highlighted && canHighlight) ||\n this.renderCache.result == null)\n ) {\n const { result, options } = this.renderDiffWithHighlighter(\n diff,\n this.highlighter,\n forcePlainText || !hasLangs\n );\n this.renderCache = {\n diff,\n options,\n highlighted: canHighlight,\n result,\n renderRange: undefined,\n };\n }\n\n // If we get in here it means we'll have to kick off an async highlight\n // process which will involve initializing the highlighter with new themes\n // and languages\n if (!hasThemes || (!forcePlainText && !hasLangs)) {\n void this.asyncHighlight(diff).then(({ result, options }) => {\n // In this case we need to force a re-render, so we can do that by\n // reaching into renderCache\n if (this.renderCache != null) {\n this.renderCache.highlighted = false;\n }\n this.applyHighlightResult(diff, result, options, !forcePlainText);\n });\n }\n }\n return this.renderCache.result != null\n ? this.processDiffResult(\n this.renderCache.diff,\n renderRange,\n this.renderCache.result\n )\n : undefined;\n }\n\n public async asyncRender(\n diff: FileDiffMetadata,\n renderRange: RenderRange = DEFAULT_RENDER_RANGE\n ): Promise<HunksRenderResult> {\n const { result } = await this.asyncHighlight(diff);\n return this.processDiffResult(diff, renderRange, result);\n }\n\n protected createPreElement(\n split: boolean,\n totalLines: number,\n customProperties?: CustomPreProperties\n ): HASTElement {\n const { diffIndicators, disableBackground, disableLineNumbers, overflow } =\n this.getOptionsWithDefaults();\n return createPreElement({\n type: 'diff',\n diffIndicators,\n disableBackground,\n disableLineNumbers,\n overflow,\n split,\n totalLines,\n customProperties,\n });\n }\n\n private async asyncHighlight(\n diff: FileDiffMetadata\n ): Promise<RenderDiffResult> {\n const forcePlainText = isDiffMassive(diff, this.getTokenizeMaxLength());\n this.computedLang = forcePlainText\n ? 'text'\n : (diff.lang ?? getFiletypeFromFileName(diff.name));\n const hasThemes =\n this.highlighter != null &&\n areThemesAttached(this.getLocalHighlightTheme());\n const hasLangs =\n forcePlainText ||\n (this.highlighter != null && areLanguagesAttached(this.computedLang));\n // If we don't have the required langs or themes, then we need to\n // initialize the highlighter to load the appropriate languages and themes\n if (this.highlighter == null || !hasThemes || !hasLangs) {\n this.highlighter = await this.initializeHighlighter();\n }\n return this.renderDiffWithHighlighter(\n diff,\n this.highlighter,\n forcePlainText\n );\n }\n\n private renderDiffWithHighlighter(\n diff: FileDiffMetadata,\n highlighter: DiffsHighlighter,\n forcePlainText = false\n ): RenderDiffResult {\n const { options } = this.getRenderOptions(diff);\n const { collapsedContextThreshold } = this.getOptionsWithDefaults();\n const result = renderDiffWithHighlighter(diff, highlighter, options, {\n forcePlainText,\n expandedHunks: forcePlainText ? true : undefined,\n collapsedContextThreshold,\n });\n if (\n this.editSessionActive &&\n diff.additionLines.length === 1 &&\n diff.additionLines[0] === '' &&\n result.code.additionLines[0] == null\n ) {\n let fallbackLine: DiffLineMetadata | undefined;\n iterateOverDiff({\n diff,\n diffStyle: 'both',\n expandedHunks: forcePlainText ? true : undefined,\n collapsedContextThreshold,\n callback: ({ additionLine }) => {\n if (additionLine?.lineIndex !== 0) return;\n fallbackLine = additionLine;\n return true;\n },\n });\n if (fallbackLine == null) {\n throw new Error('DiffHunksRenderer: missing empty addition line');\n }\n result.code.additionLines[0] = createPlainAdditionLineElement(\n 0,\n '',\n fallbackLine.unifiedLineIndex,\n fallbackLine.splitLineIndex\n );\n }\n return { result, options };\n }\n\n public onHighlightSuccess(\n diff: FileDiffMetadata,\n result: ThemedDiffResult,\n options: RenderDiffOptions,\n highlighted = true\n ): void {\n if (this.editSessionActive) {\n return;\n }\n this.applyHighlightResult(diff, result, options, highlighted);\n }\n\n private applyHighlightResult(\n diff: FileDiffMetadata,\n result: ThemedDiffResult,\n options: RenderDiffOptions,\n highlighted = true\n ): void {\n // NOTE(amadeus): This is a bad assumption, and I should figure out\n // something better... If renderCache was blown away, we can assume we've\n // run cleanUp()\n if (this.renderCache == null) {\n return;\n }\n\n const triggerRenderUpdate =\n this.renderCache.highlightPending === true ||\n !this.renderCache.highlighted ||\n !areDiffRenderOptionsEqual(this.renderCache.options, options) ||\n !areDiffTargetsEqual(this.renderCache.diff, diff);\n\n this.renderCache = {\n diff,\n options,\n highlighted,\n result,\n renderRange: undefined,\n };\n if (triggerRenderUpdate) {\n this.onRenderUpdate?.();\n }\n }\n\n private getMatchingWorkerResultCache(\n diff: FileDiffMetadata,\n options: RenderDiffOptions\n ): RenderDiffResult | undefined {\n if (this.editSessionActive) {\n return undefined;\n }\n const cache = this.workerManager?.getDiffResultCache(diff);\n if (cache == null || !areDiffRenderOptionsEqual(options, cache.options)) {\n return undefined;\n }\n return cache;\n }\n\n private hasHighlightedRenderCache(\n diff: FileDiffMetadata,\n options: RenderDiffOptions\n ): boolean {\n const { renderCache } = this;\n return (\n renderCache?.result != null &&\n renderCache.highlighted &&\n areDiffTargetsEqual(diff, renderCache.diff) &&\n areDiffRenderOptionsEqual(options, renderCache.options)\n );\n }\n\n public onHighlightError(error: unknown): void {\n console.error(error);\n }\n\n private getTokenizeMaxLength(): number {\n return this.options.tokenizeMaxLength ?? DEFAULT_TOKENIZE_MAX_LENGTH;\n }\n\n private processDiffResult(\n fileDiff: FileDiffMetadata,\n renderRange: RenderRange,\n { code, themeStyles, baseThemeType }: ThemedDiffResult\n ): HunksRenderResult {\n const {\n diffStyle,\n disableFileHeader,\n expandUnchanged,\n expansionLineCount,\n collapsedContextThreshold,\n hunkSeparators,\n } = this.getOptionsWithDefaults();\n const isRenderCacheDirty = this.renderCache?.isDirty ?? false;\n\n this.diff = fileDiff;\n const unified = diffStyle === 'unified';\n const canHydrateContext = canHydrateCollapsedContext(\n fileDiff,\n this.options.loadDiffFiles != null\n );\n const isExpandableDiff = !fileDiff.isPartial || canHydrateContext;\n\n let additionsContentAST: ElementContent[] | undefined = [];\n let deletionsContentAST: ElementContent[] | undefined = [];\n let unifiedContentAST: ElementContent[] | undefined = [];\n\n const hunkData: HunkData[] = [];\n const { additionLines, deletionLines } = code;\n const context: ProcessContext = {\n rowCount: 0,\n hunkSeparators,\n additionsContentAST,\n deletionsContentAST,\n unifiedContentAST,\n unifiedGutterAST: createGutterWrapper(),\n deletionsGutterAST: createGutterWrapper(),\n additionsGutterAST: createGutterWrapper(),\n expansionLineCount,\n hunkData,\n incrementRowCount(count = 1) {\n context.rowCount += count;\n },\n pushToGutter(type: CodeColumnType, element: HASTElement) {\n switch (type) {\n case 'unified': {\n context.unifiedGutterAST.children.push(element);\n break;\n }\n case 'deletions': {\n context.deletionsGutterAST.children.push(element);\n break;\n }\n case 'additions': {\n context.additionsGutterAST.children.push(element);\n break;\n }\n }\n },\n };\n const trailingRangeSize = getTrailingContextRangeSize({\n fileDiff,\n errorPrefix: 'DiffHunksRenderer.processDiffResult',\n });\n const pendingSplitContext: PendingSplitContext = {\n size: 0,\n side: undefined,\n increment() {\n this.size += 1;\n },\n flush() {\n if (diffStyle === 'unified') {\n return;\n }\n if (this.size <= 0 || this.side == null) {\n this.side = undefined;\n this.size = 0;\n return;\n }\n if (this.side === 'additions') {\n context.pushToGutter(\n 'additions',\n createGutterGap(undefined, 'buffer', this.size)\n );\n additionsContentAST?.push(createEmptyRowBuffer(this.size));\n } else {\n context.pushToGutter(\n 'deletions',\n createGutterGap(undefined, 'buffer', this.size)\n );\n deletionsContentAST?.push(createEmptyRowBuffer(this.size));\n }\n this.size = 0;\n this.side = undefined;\n },\n };\n\n const pushGutterLineNumber = (\n type: CodeColumnType,\n lineType: LineTypes | 'buffer' | 'separator' | 'annotation',\n lineNumber: number,\n lineIndex: string,\n gutterProperties: Properties | undefined\n ) => {\n context.pushToGutter(\n type,\n createGutterItem(lineType, lineNumber, lineIndex, gutterProperties)\n );\n };\n\n function pushSeparators(props: PushSeparatorProps) {\n pendingSplitContext.flush();\n if (diffStyle === 'unified') {\n pushSeparator('unified', props, context);\n } else {\n pushSeparator('deletions', props, context);\n pushSeparator('additions', props, context);\n }\n }\n\n this.pushFileLevelAnnotations(fileDiff, diffStyle, renderRange, context);\n\n iterateOverDiff({\n diff: fileDiff,\n diffStyle,\n startingLine: renderRange.startingLine,\n totalLines: renderRange.totalLines,\n expandedHunks: expandUnchanged ? true : this.expandedHunks,\n collapsedContextThreshold,\n callback: ({\n hunkIndex,\n hunk,\n collapsedBefore,\n collapsedAfter,\n additionLine,\n deletionLine,\n type,\n }) => {\n const splitLineIndex =\n deletionLine != null\n ? deletionLine.splitLineIndex\n : additionLine.splitLineIndex;\n const unifiedLineIndex =\n additionLine != null\n ? additionLine.unifiedLineIndex\n : deletionLine.unifiedLineIndex;\n\n if (diffStyle === 'split' && type !== 'change') {\n pendingSplitContext.flush();\n }\n\n if (collapsedBefore > 0) {\n pushSeparators({\n hunkIndex,\n collapsedLines: collapsedBefore,\n rangeSize: Math.max(hunk?.collapsedBefore ?? 0, 0),\n hunkSpecs: hunk?.hunkSpecs,\n isFirstHunk: hunkIndex === 0,\n isLastHunk: false,\n isExpandable: isExpandableDiff,\n });\n }\n\n const lineIndex =\n diffStyle === 'unified' ? unifiedLineIndex : splitLineIndex;\n const renderedLineContext: RenderedLineContext = {\n type,\n hunkIndex,\n lineIndex,\n unifiedLineIndex,\n splitLineIndex,\n deletionLine,\n additionLine,\n };\n\n if (diffStyle === 'unified') {\n const injectedRows =\n this.getUnifiedInjectedRowsForLine?.(renderedLineContext);\n if (injectedRows?.before != null) {\n pushUnifiedInjectedRows(injectedRows.before, context);\n }\n let deletionLineContent =\n deletionLine != null\n ? deletionLines[deletionLine.lineIndex]\n : undefined;\n let additionLineContent =\n additionLine != null\n ? additionLines[additionLine.lineIndex]\n : undefined;\n if (deletionLineContent == null && additionLineContent == null) {\n const errorMessage =\n 'DiffHunksRenderer.processDiffResult: deletionLine and additionLine are null, something is wrong';\n console.error(errorMessage, { file: fileDiff.name });\n throw new Error(errorMessage);\n }\n const lineType =\n type === 'change'\n ? additionLine != null\n ? 'change-addition'\n : 'change-deletion'\n : type;\n const lineDecoration = this.getUnifiedLineDecoration({\n // NOTE: This function gets extended so don't remove\n // these extra props\n type,\n lineType,\n additionLineIndex: additionLine?.lineIndex,\n deletionLineIndex: deletionLine?.lineIndex,\n });\n pushGutterLineNumber(\n 'unified',\n lineDecoration.gutterLineType,\n additionLine != null\n ? additionLine.lineNumber\n : deletionLine.lineNumber,\n `${unifiedLineIndex},${splitLineIndex}`,\n lineDecoration.gutterProperties\n );\n if (additionLineContent != null) {\n additionLineContent = withContentProperties(\n additionLineContent,\n lineDecoration.contentProperties,\n isRenderCacheDirty && additionLine != null\n ? {\n 'data-line': additionLine.lineNumber,\n 'data-line-index': `${unifiedLineIndex},${splitLineIndex}`,\n }\n : undefined\n );\n } else if (deletionLineContent != null) {\n deletionLineContent = withContentProperties(\n deletionLineContent,\n lineDecoration.contentProperties,\n isRenderCacheDirty && deletionLine != null\n ? {\n 'data-line': deletionLine.lineNumber,\n 'data-line-index': `${unifiedLineIndex},${splitLineIndex}`,\n }\n : undefined\n );\n }\n pushLineWithAnnotation({\n diffStyle: 'unified',\n type: type,\n deletionLine: deletionLineContent,\n additionLine: additionLineContent,\n unifiedSpan: this.getAnnotations(\n 'unified',\n deletionLine?.lineNumber,\n additionLine?.lineNumber,\n hunkIndex,\n lineIndex\n ),\n createAnnotationElement: (span) =>\n this.createAnnotationElement(span),\n context,\n });\n if (injectedRows?.after != null) {\n pushUnifiedInjectedRows(injectedRows.after, context);\n }\n } else {\n const injectedRows =\n this.getSplitInjectedRowsForLine?.(renderedLineContext);\n if (injectedRows?.before != null) {\n pushSplitInjectedRows(\n injectedRows.before,\n context,\n pendingSplitContext\n );\n }\n\n let deletionLineContent =\n deletionLine != null\n ? deletionLines[deletionLine.lineIndex]\n : undefined;\n let additionLineContent =\n additionLine != null\n ? additionLines[additionLine.lineIndex]\n : undefined;\n const deletionLineDecoration = this.getSplitLineDecoration({\n side: 'deletions',\n type,\n lineIndex: deletionLine?.lineIndex,\n });\n const additionLineDecoration = this.getSplitLineDecoration({\n side: 'additions',\n type,\n lineIndex: additionLine?.lineIndex,\n });\n\n if (deletionLineContent == null && additionLineContent == null) {\n const errorMessage =\n 'DiffHunksRenderer.processDiffResult: deletionLine and additionLine are null, something is wrong';\n console.error(errorMessage, { file: fileDiff.name });\n throw new Error(errorMessage);\n }\n\n const missingSide = (() => {\n if (type === 'change') {\n if (additionLineContent == null) {\n return 'additions';\n } else if (deletionLineContent == null) {\n return 'deletions';\n }\n }\n return undefined;\n })();\n if (missingSide != null) {\n if (\n pendingSplitContext.side != null &&\n pendingSplitContext.side !== missingSide\n ) {\n pendingSplitContext.flush();\n }\n pendingSplitContext.side = missingSide;\n pendingSplitContext.increment();\n } else if (type === 'change') {\n // A change row with both sides fills the column a pending\n // one-sided buffer was holding open (an insert/delete block\n // directly followed by a paired block, from similarity\n // realignment); flush first so the buffer lands above this row.\n pendingSplitContext.flush();\n }\n\n const annotationSpans = this.getAnnotations(\n 'split',\n deletionLine?.lineNumber,\n additionLine?.lineNumber,\n hunkIndex,\n lineIndex\n );\n if (annotationSpans != null && pendingSplitContext.size > 0) {\n pendingSplitContext.flush();\n }\n\n if (deletionLine != null) {\n const deletionLineDecorated = withContentProperties(\n deletionLineContent,\n deletionLineDecoration.contentProperties,\n isRenderCacheDirty\n ? {\n 'data-line': deletionLine.lineNumber,\n 'data-line-index': `${deletionLine.unifiedLineIndex},${splitLineIndex}`,\n }\n : undefined\n );\n pushGutterLineNumber(\n 'deletions',\n deletionLineDecoration.gutterLineType,\n deletionLine.lineNumber,\n `${deletionLine.unifiedLineIndex},${splitLineIndex}`,\n deletionLineDecoration.gutterProperties\n );\n if (deletionLineDecorated != null) {\n deletionLineContent = deletionLineDecorated;\n }\n }\n if (additionLine != null) {\n const additionLineDecorated = withContentProperties(\n additionLineContent,\n additionLineDecoration.contentProperties,\n isRenderCacheDirty\n ? {\n 'data-line': additionLine.lineNumber,\n 'data-line-index': `${additionLine.unifiedLineIndex},${splitLineIndex}`,\n }\n : undefined\n );\n pushGutterLineNumber(\n 'additions',\n additionLineDecoration.gutterLineType,\n additionLine.lineNumber,\n `${additionLine.unifiedLineIndex},${splitLineIndex}`,\n additionLineDecoration.gutterProperties\n );\n if (additionLineDecorated != null) {\n additionLineContent = additionLineDecorated;\n }\n }\n pushLineWithAnnotation({\n diffStyle: 'split',\n type: type,\n additionLine: additionLineContent,\n deletionLine: deletionLineContent,\n ...annotationSpans,\n createAnnotationElement: (span) =>\n this.createAnnotationElement(span),\n context,\n });\n if (injectedRows?.after != null) {\n pushSplitInjectedRows(\n injectedRows.after,\n context,\n pendingSplitContext\n );\n }\n }\n\n const isFinalSplitHunkRow =\n diffStyle === 'split' &&\n hunk != null &&\n splitLineIndex === hunk.splitLineStart + hunk.splitLineCount - 1;\n const isFinalHunkRow =\n hunkIndex === fileDiff.hunks.length - 1 &&\n hunk != null &&\n (diffStyle === 'split'\n ? splitLineIndex === hunk.splitLineStart + hunk.splitLineCount - 1\n : unifiedLineIndex ===\n hunk.unifiedLineStart + hunk.unifiedLineCount - 1);\n const splitNoEOFCRDeletion = isFinalSplitHunkRow\n ? hunk.noEOFCRDeletions\n : false;\n const splitNoEOFCRAddition = isFinalSplitHunkRow\n ? hunk.noEOFCRAdditions\n : false;\n const noEOFCRDeletion =\n (deletionLine?.noEOFCR ?? false) || splitNoEOFCRDeletion;\n const noEOFCRAddition =\n (additionLine?.noEOFCR ?? false) || splitNoEOFCRAddition;\n if (noEOFCRAddition || noEOFCRDeletion) {\n if (diffStyle === 'split') {\n pendingSplitContext.flush();\n }\n if (noEOFCRDeletion) {\n const noEOFType =\n type === 'context' || type === 'context-expanded'\n ? type\n : 'change-deletion';\n if (diffStyle === 'unified') {\n context.unifiedContentAST.push(createNoNewlineElement(noEOFType));\n context.pushToGutter(\n 'unified',\n createGutterGap(noEOFType, 'metadata', 1)\n );\n } else {\n context.deletionsContentAST.push(\n createNoNewlineElement(noEOFType)\n );\n context.pushToGutter(\n 'deletions',\n createGutterGap(noEOFType, 'metadata', 1)\n );\n if (!noEOFCRAddition) {\n context.pushToGutter(\n 'additions',\n createGutterGap(undefined, 'buffer', 1)\n );\n context.additionsContentAST.push(createEmptyRowBuffer(1));\n }\n }\n }\n if (noEOFCRAddition) {\n const noEOFType =\n type === 'context' || type === 'context-expanded'\n ? type\n : 'change-addition';\n if (diffStyle === 'unified') {\n context.unifiedContentAST.push(createNoNewlineElement(noEOFType));\n context.pushToGutter(\n 'unified',\n createGutterGap(noEOFType, 'metadata', 1)\n );\n } else {\n context.additionsContentAST.push(\n createNoNewlineElement(noEOFType)\n );\n context.pushToGutter(\n 'additions',\n createGutterGap(noEOFType, 'metadata', 1)\n );\n if (!noEOFCRDeletion) {\n context.pushToGutter(\n 'deletions',\n createGutterGap(undefined, 'buffer', 1)\n );\n context.deletionsContentAST.push(createEmptyRowBuffer(1));\n }\n }\n }\n context.incrementRowCount(1);\n }\n\n if (\n hunkSeparators !== 'simple' &&\n hunkSeparators !== 'metadata' &&\n (collapsedAfter > 0 || (isFinalHunkRow && canHydrateContext))\n ) {\n pushSeparators({\n hunkIndex: type === 'context-expanded' ? hunkIndex : hunkIndex + 1,\n collapsedLines:\n isFinalHunkRow && canHydrateContext ? 'unknown' : collapsedAfter,\n rangeSize: trailingRangeSize,\n hunkSpecs: undefined,\n isFirstHunk: false,\n isLastHunk: true,\n isExpandable: isExpandableDiff,\n });\n }\n context.incrementRowCount(1);\n },\n });\n\n if (diffStyle === 'split') {\n pendingSplitContext.flush();\n }\n\n const totalLines = Math.max(\n getTotalLineCountFromHunks(fileDiff.hunks),\n fileDiff.additionLines.length ?? 0,\n fileDiff.deletionLines.length ?? 0\n );\n\n const hasBuffer =\n renderRange.bufferBefore > 0 || renderRange.bufferAfter > 0;\n // Determine which ASTs to include based on diff style and file type\n const shouldIncludeAdditions = !unified && fileDiff.type !== 'deleted';\n const shouldIncludeDeletions = !unified && fileDiff.type !== 'new';\n const hasContent = context.rowCount > 0 || hasBuffer;\n\n additionsContentAST =\n shouldIncludeAdditions && hasContent ? additionsContentAST : undefined;\n deletionsContentAST =\n shouldIncludeDeletions && hasContent ? deletionsContentAST : undefined;\n unifiedContentAST = unified && hasContent ? unifiedContentAST : undefined;\n\n const preNode = this.createPreElement(\n deletionsContentAST != null && additionsContentAST != null,\n totalLines\n );\n\n return {\n unifiedGutterAST:\n unified && hasContent ? context.unifiedGutterAST.children : undefined,\n unifiedContentAST,\n deletionsGutterAST:\n shouldIncludeDeletions && hasContent\n ? context.deletionsGutterAST.children\n : undefined,\n deletionsContentAST,\n additionsGutterAST:\n shouldIncludeAdditions && hasContent\n ? context.additionsGutterAST.children\n : undefined,\n additionsContentAST,\n hunkData,\n preNode,\n themeStyles,\n baseThemeType,\n headerElement: !disableFileHeader\n ? this.renderHeader(this.diff)\n : undefined,\n totalLines,\n rowCount: context.rowCount,\n bufferBefore: renderRange.bufferBefore,\n bufferAfter: renderRange.bufferAfter,\n // FIXME\n css: '',\n };\n }\n\n public renderCodeAST(\n type: 'unified' | 'deletions' | 'additions',\n result: HunksRenderResult\n ): ElementContent[] | undefined {\n const gutterAST =\n type === 'unified'\n ? result.unifiedGutterAST\n : type === 'deletions'\n ? result.deletionsGutterAST\n : result.additionsGutterAST;\n\n const contentAST =\n type === 'unified'\n ? result.unifiedContentAST\n : type === 'deletions'\n ? result.deletionsContentAST\n : result.additionsContentAST;\n\n if (gutterAST == null || contentAST == null) {\n return undefined;\n }\n\n const gutter = createGutterWrapper(gutterAST);\n gutter.properties.style = `grid-row: span ${result.rowCount}`;\n const contentColumn = createContentColumn(contentAST, result.rowCount);\n return [gutter, contentColumn];\n }\n\n public renderFullAST(\n result: HunksRenderResult,\n children: ElementContent[] = []\n ): HASTElement {\n const containerSize =\n this.getOptionsWithDefaults().hunkSeparators === 'line-info';\n const unifiedAST = this.renderCodeAST('unified', result);\n if (unifiedAST != null) {\n children.push(\n createHastElement({\n tagName: 'code',\n children: unifiedAST,\n properties: {\n 'data-code': '',\n 'data-container-size': containerSize ? '' : undefined,\n 'data-unified': '',\n },\n })\n );\n return { ...result.preNode, children };\n }\n\n const deletionsAST = this.renderCodeAST('deletions', result);\n if (deletionsAST != null) {\n children.push(\n createHastElement({\n tagName: 'code',\n children: deletionsAST,\n properties: {\n 'data-code': '',\n 'data-container-size': containerSize ? '' : undefined,\n 'data-deletions': '',\n },\n })\n );\n }\n const additionsAST = this.renderCodeAST('additions', result);\n if (additionsAST != null) {\n children.push(\n createHastElement({\n tagName: 'code',\n children: additionsAST,\n properties: {\n 'data-code': '',\n 'data-container-size': containerSize ? '' : undefined,\n 'data-additions': '',\n },\n })\n );\n }\n return { ...result.preNode, children };\n }\n\n public renderFullHTML(\n result: HunksRenderResult,\n tempChildren: ElementContent[] = []\n ): string {\n return toHtml(this.renderFullAST(result, tempChildren));\n }\n\n public renderPartialHTML(\n children: ElementContent[],\n columnType?: 'unified' | 'deletions' | 'additions'\n ): string {\n if (columnType == null) {\n return toHtml(children);\n }\n return toHtml(\n createHastElement({\n tagName: 'code',\n children,\n properties: {\n 'data-code': '',\n 'data-container-size':\n this.getOptionsWithDefaults().hunkSeparators === 'line-info'\n ? ''\n : undefined,\n [`data-${columnType}`]: '',\n },\n })\n );\n }\n\n private pushFileLevelAnnotations(\n fileDiff: FileDiffMetadata,\n diffStyle: 'unified' | 'split',\n renderRange: RenderRange,\n context: ProcessContext\n ): void {\n if (!shouldRenderFileAnnotations(renderRange)) {\n return;\n }\n\n const deletionAnnotationNames =\n fileDiff.type !== 'new'\n ? getAnnotationNames(getFileAnnotations(this.deletionAnnotations))\n : [];\n const additionAnnotationNames =\n fileDiff.type !== 'deleted'\n ? getAnnotationNames(getFileAnnotations(this.additionAnnotations))\n : [];\n if (\n deletionAnnotationNames.length === 0 &&\n additionAnnotationNames.length === 0\n ) {\n return;\n }\n\n const hunkIndex = FILE_ANNOTATION_HUNK_INDEX;\n const lineIndex = FILE_ANNOTATION_LINE_INDEX;\n const { createAnnotationElement } = this;\n\n if (diffStyle === 'unified') {\n pushLineWithAnnotation({\n diffStyle,\n type: 'context',\n unifiedSpan: {\n type: 'annotation',\n hunkIndex,\n lineIndex,\n annotations: deletionAnnotationNames.concat(additionAnnotationNames),\n },\n createAnnotationElement,\n context,\n });\n return;\n }\n\n pushLineWithAnnotation({\n diffStyle,\n type: 'context',\n deletionSpan: {\n type: 'annotation',\n hunkIndex,\n lineIndex,\n annotations: deletionAnnotationNames,\n },\n additionSpan: {\n type: 'annotation',\n hunkIndex,\n lineIndex,\n annotations: additionAnnotationNames,\n },\n createAnnotationElement,\n context,\n });\n }\n\n private getAnnotations(\n type: 'unified',\n deletionLineNumber: number | undefined,\n additionLineNumber: number | undefined,\n hunkIndex: number,\n lineIndex: number\n ): AnnotationSpan | undefined;\n private getAnnotations(\n type: 'split',\n deletionLineNumber: number | undefined,\n additionLineNumber: number | undefined,\n hunkIndex: number,\n lineIndex: number\n ): { deletionSpan: AnnotationSpan; additionSpan: AnnotationSpan } | undefined;\n private getAnnotations(\n type: 'unified' | 'split',\n deletionLineNumber: number | undefined,\n additionLineNumber: number | undefined,\n hunkIndex: number,\n lineIndex: number\n ):\n | AnnotationSpan\n | { deletionSpan: AnnotationSpan; additionSpan: AnnotationSpan }\n | undefined {\n const deletionSpan: AnnotationSpan = {\n type: 'annotation',\n hunkIndex,\n lineIndex,\n annotations: [],\n };\n if (deletionLineNumber != null) {\n for (const anno of this.deletionAnnotations[deletionLineNumber] ?? []) {\n deletionSpan.annotations.push(getLineAnnotationName(anno));\n }\n }\n const additionSpan: AnnotationSpan = {\n type: 'annotation',\n hunkIndex,\n lineIndex,\n annotations: [],\n };\n if (additionLineNumber != null) {\n for (const anno of this.additionAnnotations[additionLineNumber] ?? []) {\n (type === 'unified' ? deletionSpan : additionSpan).annotations.push(\n getLineAnnotationName(anno)\n );\n }\n }\n if (type === 'unified') {\n if (deletionSpan.annotations.length > 0) {\n return deletionSpan;\n }\n return undefined;\n }\n if (\n additionSpan.annotations.length === 0 &&\n deletionSpan.annotations.length === 0\n ) {\n return undefined;\n }\n return { deletionSpan, additionSpan };\n }\n\n private renderHeader(diff: FileDiffMetadata): HASTElement {\n const { headerRenderMode, stickyHeader } = this.getOptionsWithDefaults();\n return createFileHeaderElement({\n fileOrDiff: diff,\n mode: headerRenderMode,\n stickyHeader,\n });\n }\n}\n\nfunction getAnnotationNames<LAnnotation>(\n annotations: DiffLineAnnotation<LAnnotation>[] | undefined\n): string[] {\n return (\n annotations?.map((annotation) => getLineAnnotationName(annotation)) ?? []\n );\n}\n\n// Use the platform's English plural rules to pick \"line\" vs \"lines\" so a\n// count of 0 reads as \"0 unmodified lines\". en-US returns \"one\" only for 1.\nconst EN_PLURAL_RULES = new Intl.PluralRules('en-US');\n\nfunction getModifiedLinesString(lines: number) {\n const suffix = EN_PLURAL_RULES.select(lines) === 'one' ? '' : 's';\n return `${lines} unmodified line${suffix}`;\n}\n\nfunction pushUnifiedInjectedRows(\n rows: InjectedRow[],\n context: ProcessContext\n): void {\n for (const row of rows) {\n context.unifiedContentAST.push(row.content);\n context.pushToGutter('unified', row.gutter);\n context.incrementRowCount(1);\n }\n}\n\nfunction pushSplitInjectedRows(\n rows: SplitInjectedRow[],\n context: ProcessContext,\n pendingSplitContext: PendingSplitContext\n): void {\n for (const { deletion, addition } of rows) {\n if (deletion == null && addition == null) {\n continue;\n }\n const missingSide =\n deletion != null && addition != null\n ? undefined\n : deletion == null\n ? 'deletions'\n : 'additions';\n\n if (missingSide == null || pendingSplitContext.side !== missingSide) {\n pendingSplitContext.flush();\n }\n\n if (deletion != null) {\n context.deletionsContentAST.push(deletion.content);\n context.pushToGutter('deletions', deletion.gutter);\n }\n\n if (addition != null) {\n context.additionsContentAST.push(addition.content);\n context.pushToGutter('additions', addition.gutter);\n }\n\n if (missingSide != null) {\n pendingSplitContext.side = missingSide;\n pendingSplitContext.increment();\n }\n\n context.incrementRowCount(1);\n }\n}\n\nfunction pushLineWithAnnotation({\n diffStyle,\n type,\n deletionLine,\n additionLine,\n unifiedSpan,\n deletionSpan,\n additionSpan,\n createAnnotationElement,\n context,\n}: PushLineWithAnnotation) {\n let hasAnnotationRow = false;\n if (diffStyle === 'unified') {\n if (additionLine != null) {\n context.unifiedContentAST.push(additionLine);\n } else if (deletionLine != null) {\n context.unifiedContentAST.push(deletionLine);\n }\n if (unifiedSpan != null) {\n const lineType =\n type === 'change'\n ? deletionLine != null\n ? 'change-deletion'\n : 'change-addition'\n : type;\n context.unifiedContentAST.push(createAnnotationElement(unifiedSpan));\n context.pushToGutter(\n 'unified',\n createGutterGap(lineType, 'annotation', 1)\n );\n hasAnnotationRow = true;\n }\n } else if (diffStyle === 'split') {\n if (deletionLine != null) {\n context.deletionsContentAST.push(deletionLine);\n }\n if (additionLine != null) {\n context.additionsContentAST.push(additionLine);\n }\n if (deletionSpan != null) {\n const lineType =\n type === 'change'\n ? deletionLine != null\n ? 'change-deletion'\n : 'context'\n : type;\n context.deletionsContentAST.push(createAnnotationElement(deletionSpan));\n context.pushToGutter(\n 'deletions',\n createGutterGap(lineType, 'annotation', 1)\n );\n hasAnnotationRow = true;\n }\n if (additionSpan != null) {\n const lineType =\n type === 'change'\n ? additionLine != null\n ? 'change-addition'\n : 'context'\n : type;\n context.additionsContentAST.push(createAnnotationElement(additionSpan));\n context.pushToGutter(\n 'additions',\n createGutterGap(lineType, 'annotation', 1)\n );\n hasAnnotationRow = true;\n }\n }\n if (hasAnnotationRow) {\n context.incrementRowCount(1);\n }\n}\n\nfunction pushSeparator(\n type: 'additions' | 'deletions' | 'unified',\n {\n hunkIndex,\n collapsedLines,\n rangeSize,\n hunkSpecs,\n isFirstHunk,\n isLastHunk,\n isExpandable,\n }: PushSeparatorProps,\n context: ProcessContext\n) {\n if (typeof collapsedLines === 'number' && collapsedLines <= 0) {\n return;\n }\n const linesAST =\n type === 'unified'\n ? context.unifiedContentAST\n : type === 'deletions'\n ? context.deletionsContentAST\n : context.additionsContentAST;\n\n if (context.hunkSeparators === 'metadata') {\n if (hunkSpecs != null) {\n context.pushToGutter(\n type,\n createSeparator({\n type: 'metadata',\n content: hunkSpecs,\n isFirstHunk,\n isLastHunk,\n })\n );\n linesAST.push(\n createSeparator({\n type: 'metadata',\n content: hunkSpecs,\n isFirstHunk,\n isLastHunk,\n })\n );\n if (type !== 'additions') {\n context.incrementRowCount(1);\n }\n }\n return;\n }\n if (context.hunkSeparators === 'simple') {\n if (hunkIndex > 0) {\n context.pushToGutter(\n type,\n createSeparator({ type: 'simple', isFirstHunk, isLastHunk: false })\n );\n linesAST.push(\n createSeparator({ type: 'simple', isFirstHunk, isLastHunk: false })\n );\n if (type !== 'additions') {\n context.incrementRowCount(1);\n }\n }\n return;\n }\n const slotName = getHunkSeparatorSlotName(type, hunkIndex);\n const chunked = rangeSize > context.expansionLineCount;\n const expandIndex = isExpandable ? hunkIndex : undefined;\n const content =\n typeof collapsedLines === 'number'\n ? getModifiedLinesString(collapsedLines)\n : 'More unchanged context may be available';\n context.pushToGutter(\n type,\n createSeparator({\n type: context.hunkSeparators,\n content,\n expandIndex,\n chunked,\n slotName,\n isFirstHunk,\n isLastHunk,\n })\n );\n linesAST.push(\n createSeparator({\n type: context.hunkSeparators,\n content,\n expandIndex,\n chunked,\n slotName,\n isFirstHunk,\n isLastHunk,\n })\n );\n if (type !== 'additions') {\n context.incrementRowCount(1);\n }\n context.hunkData.push({\n slotName,\n hunkIndex,\n lines: typeof collapsedLines === 'number' ? collapsedLines : 0,\n lineCountKnown: typeof collapsedLines === 'number',\n type,\n expandable: isExpandable\n ? { up: !isFirstHunk, down: !isLastHunk, chunked }\n : undefined,\n });\n}\n\nfunction withContentProperties(\n lineNode: ElementContent | undefined,\n contentProperties?: Properties,\n extendProperties?: Properties\n): ElementContent | undefined {\n if (\n lineNode == null ||\n lineNode.type !== 'element' ||\n (contentProperties == null && extendProperties == null)\n ) {\n return lineNode;\n }\n return {\n ...lineNode,\n properties: {\n ...lineNode.properties,\n ...contentProperties,\n ...extendProperties,\n },\n };\n}\n\n// Number of entries in a split-line array that hold document content. A\n// document ending in a line break is represented two ways during a session:\n// the parsed-diff shape (`splitFileContents`) has no entry for the empty line\n// that final break implies, while the editor-document shape\n// (`getEditorDocumentLines`) exposes it as a trailing `''` entry. Only that\n// representational tail is ever `''` — every other entry keeps its line break\n// or is the raw final line — so trimming it yields comparable content lines.\nfunction contentLineCount(lines: string[]): number {\n return lines.length > 0 && lines[lines.length - 1] === ''\n ? lines.length - 1\n : lines.length;\n}\n\n// Realigns the cached per-line addition HAST array with an edited document.\n// Cached entries are looked up by line index, so a line inserted or removed\n// mid-document must shift the surviving entries to their new indexes —\n// otherwise rows hidden during the edit (collapsed context) render another\n// line's stale tokens once they become visible. Entries outside the changed\n// window keep their highlighted content; entries inside it become plain-text\n// elements that the editor re-tokenizes on its next background pass.\n//\n// The bottom-up scan runs over content lines only: a session's first\n// line-count edit still has `previousLines` in the parsed-diff shape while\n// `nextLines` is editor-shaped, and comparing the raw tails would mismatch on\n// the representational trailing `''`, zero out the suffix, and plain-fill\n// every line below the tokenizer's render window.\nfunction realignAdditionHastLines(\n previousLines: string[],\n nextLines: string[],\n hastLines: ElementContent[],\n textDocument: DiffsTextDocument\n): ElementContent[] {\n const previousContentLength = contentLineCount(previousLines);\n const nextContentLength = contentLineCount(nextLines);\n const maxShared = Math.min(previousContentLength, nextContentLength);\n let prefix = 0;\n while (prefix < maxShared && previousLines[prefix] === nextLines[prefix]) {\n prefix++;\n }\n let suffix = 0;\n while (\n suffix < maxShared - prefix &&\n previousLines[previousContentLength - 1 - suffix] ===\n nextLines[nextContentLength - 1 - suffix]\n ) {\n suffix++;\n }\n\n const realigned: ElementContent[] = new Array(nextLines.length);\n for (let index = 0; index < prefix; index++) {\n realigned[index] = hastLines[index];\n }\n for (let offset = 0; offset < suffix; offset++) {\n realigned[nextContentLength - 1 - offset] =\n hastLines[previousContentLength - 1 - offset];\n }\n // A trailing empty entry present on both sides keeps its cached row.\n if (\n previousContentLength < previousLines.length &&\n nextContentLength < nextLines.length\n ) {\n realigned[nextLines.length - 1] = hastLines[previousLines.length - 1];\n }\n // Deferred tokenization can write entries past the previous line count;\n // those were produced with post-edit indexes and are already in place.\n for (let index = previousLines.length; index < nextLines.length; index++) {\n realigned[index] ??= hastLines[index];\n }\n for (let index = prefix; index < nextLines.length; index++) {\n realigned[index] ??= createPlainAdditionLineElement(\n index,\n textDocument.getLineText(index)\n );\n }\n return realigned;\n}\n\nfunction createPlainAdditionLineElement(\n lineIndex: number,\n lineText: string,\n unifiedLineIndex = lineIndex,\n splitLineIndex = lineIndex\n): HASTElement {\n return {\n type: 'element',\n tagName: 'div',\n properties: {\n 'data-line': lineIndex + 1,\n 'data-line-index': `${unifiedLineIndex},${splitLineIndex}`,\n 'data-line-type': 'context',\n },\n children: [\n {\n type: 'element',\n tagName: 'span',\n properties: {\n 'data-char': 0,\n },\n children: [\n {\n type: 'text',\n value: lineText,\n },\n ],\n },\n ],\n };\n}\n\nfunction getEditorDocumentLines(\n textDocument: DiffsTextDocument,\n previousLines: string[]\n): string[] {\n const lines: string[] = [];\n const fallbackLineBreak = getFallbackLineBreak(previousLines);\n for (let line = 0; line < textDocument.lineCount; line++) {\n const lineText = textDocument.getLineText(line, true);\n lines.push(\n line < textDocument.lineCount - 1 && !hasLineBreakSuffix(lineText)\n ? lineText + fallbackLineBreak\n : lineText\n );\n }\n return lines;\n}\n\nfunction hasLineBreakSuffix(line: string): boolean {\n return line.endsWith('\\n') || line.endsWith('\\r');\n}\n\nfunction getFallbackLineBreak(lines: string[]): string {\n for (const line of lines) {\n if (line.endsWith('\\r\\n')) {\n return '\\r\\n';\n }\n if (line.endsWith('\\n')) {\n return '\\n';\n }\n if (line.endsWith('\\r')) {\n return '\\r';\n }\n }\n return '\\n';\n}\n\nfunction isDiffMassive(\n diff: FileDiffMetadata,\n tokenizeMaxLength: number\n): boolean {\n return (\n Math.max(diff.additionLines.length, diff.deletionLines.length) >\n tokenizeMaxLength\n );\n}\n\nfunction canHydrateCollapsedContext(\n fileDiff: FileDiffMetadata,\n hasFileLoader: boolean\n): boolean {\n return (\n fileDiff.isPartial &&\n hasFileLoader &&\n (fileDiff.type === 'change' || fileDiff.type === 'rename-changed')\n );\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Element, ElementContent } from "../node_modules/.pnpm/@types_hast@3.0.4/node_modules/@types/hast/index.js";
2
- import { BaseCodeOptions, DiffsHighlighter, FileContents, FileHeaderRenderMode, LineAnnotation, RenderFileOptions, RenderRange, ThemedFileResult } from "../types.js";
2
+ import { BaseCodeOptions, DiffsHighlighter, DiffsTextDocument, FileContents, FileHeaderRenderMode, HighlightedToken, LineAnnotation, RenderFileOptions, RenderRange, ThemedFileResult } from "../types.js";
3
3
  import { WorkerPoolManager } from "../worker/WorkerPoolManager.js";
4
4
  //#region src/renderers/FileRenderer.d.ts
5
5
  interface FileRenderResult {
@@ -28,16 +28,40 @@ declare class FileRenderer<LAnnotation = undefined> {
28
28
  private computedLang;
29
29
  private lineAnnotations;
30
30
  private lineCache;
31
+ private pendingStructuralRows;
32
+ private textDocumentCache;
33
+ private editSessionActive;
31
34
  constructor(options?: FileRendererOptions, onRenderUpdate?: (() => unknown) | undefined, workerManager?: WorkerPoolManager | undefined);
32
35
  setOptions(options: FileRendererOptions): void;
33
36
  mergeOptions(options: Partial<FileRendererOptions>): void;
34
37
  setLineAnnotations(lineAnnotations: LineAnnotation<LAnnotation>[]): void;
35
38
  cleanUp(): void;
39
+ /**
40
+ * Enter edit-session mode: rendering happens locally with the token
41
+ * transformer forced on, and worker-pool requests/results are suspended
42
+ * for this renderer. Called on every editor attach, including a re-attach
43
+ * after recycle.
44
+ */
45
+ beginEditSession(): void;
46
+ /** Leave edit-session mode. Rendering returns to the pool when one works. */
47
+ endEditSession(): void;
48
+ /**
49
+ * Ensures that the DOM is compatible with editor render updates
50
+ */
51
+ editorRenderReady(): boolean;
36
52
  recycle(): void;
53
+ private syncEditedContentsToFile;
54
+ hasUnkeyedFileContentsChanged(file: FileContents): boolean;
55
+ private invalidateChangedUnkeyedFile;
37
56
  clearRenderCache(): void;
38
57
  hydrate(file: FileContents): void;
58
+ private getLocalHighlightTheme;
59
+ getEffectiveCodeOptions(): Pick<BaseCodeOptions, 'theme' | 'tokenizeMaxLineLength'>;
39
60
  private getRenderOptions;
40
61
  getOrCreateLineCache(file: FileContents): string[];
62
+ getLineCount(file: FileContents): number;
63
+ updateRenderCache(dirtyLines: Map<number, Array<HighlightedToken>>, themeType: 'dark' | 'light', lineCountChangeInFlight?: boolean): void;
64
+ applyDocumentChange(textDocument: DiffsTextDocument): void;
41
65
  renderFile(file?: FileContents | undefined, renderRange?: RenderRange): FileRenderResult | undefined;
42
66
  asyncRender(file: FileContents, renderRange?: RenderRange): Promise<FileRenderResult>;
43
67
  private asyncHighlight;
@@ -50,6 +74,7 @@ declare class FileRenderer<LAnnotation = undefined> {
50
74
  renderPartialHTML(children: ElementContent[], includeCodeNode?: boolean): string;
51
75
  initializeHighlighter(): Promise<DiffsHighlighter>;
52
76
  onHighlightSuccess(file: FileContents, result: ThemedFileResult, options: RenderFileOptions, highlighted?: boolean): void;
77
+ private applyHighlightResult;
53
78
  private getMatchingWorkerResultCache;
54
79
  private hasHighlightedRenderCache;
55
80
  onHighlightError(error: unknown): void;
@@ -1 +1 @@
1
- {"version":3,"file":"FileRenderer.d.ts","names":[],"sources":["../../src/renderers/FileRenderer.ts"],"mappings":";;;;UAoEiB,gBAAA;EACf,SAAA,EAAW,cAAA;EACX,UAAA,EAAY,cAAA;EACZ,MAAA,EAAQ,OAAA;EACR,SAAA,EAAW,OAAA;EACX,GAAA;EACA,UAAA;EACA,WAAA;EACA,aAAA;EACA,QAAA;EACA,YAAA;EACA,WAAA;AAAA;AAAA,UAQe,mBAAA,SAA4B,eAAe;EAC1D,gBAAA,GAAmB,oBAAA;AAAA;AAAA,cAKR,YAAA;EAUF,OAAA,EAAS,mBAAA;EAAA,QACR,cAAA;EAAA,QACA,aAAA;EAAA,SAXD,IAAA;EAAA,QAED,WAAA;EAAA,QACA,WAAA;EAAA,QACA,YAAA;EAAA,QACA,eAAA;EAAA,QACA,SAAA;EAER,WAAA,CACS,OAAA,GAAS,mBAAA,EACR,cAAA,gCACA,aAAA,GAAgB,iBAAA;EASnB,UAAA,CAAW,OAAA,EAAS,mBAAA;EAIpB,YAAA,CAAa,OAAA,EAAS,OAAA,CAAQ,mBAAA;EAI9B,kBAAA,CACL,eAAA,EAAiB,cAAA,CAAe,WAAA;EAU3B,OAAA;EAMA,OAAA;EAOA,gBAAA;EAIA,OAAA,CAAQ,IAAA,EAAM,YAAA;EAAA,QAgCb,gBAAA;EA0BD,oBAAA,CAAqB,IAAA,EAAM,YAAA;EAmB3B,UAAA,CACL,IAAA,GAAM,YAAA,cACN,WAAA,GAAa,WAAA,GACZ,gBAAA;EA4HG,WAAA,CACJ,IAAA,EAAM,YAAA,EACN,WAAA,GAAa,WAAA,GACZ,OAAA,CAAQ,gBAAA;EAAA,QAKG,cAAA;EAAA,QA2BN,yBAAA;EAAA,QAYA,iBAAA;EAAA,QA4FA,YAAA;EASD,cAAA,CAAe,MAAA,EAAQ,gBAAA;EAIvB,aAAA,CACL,MAAA,EAAQ,gBAAA,EACR,QAAA,GAAU,cAAA,KACT,OAAA;EAWI,aAAA,CAAc,MAAA,EAAQ,gBAAA,GAAmB,cAAA;EAWzC,iBAAA,CACL,QAAA,EAAU,cAAA,IACV,eAAA;EAcW,qBAAA,IAAyB,OAAA,CAAQ,gBAAA;EAOvC,kBAAA,CACL,IAAA,EAAM,YAAA,EACN,MAAA,EAAQ,gBAAA,EACR,OAAA,EAAS,iBAAA,EACT,WAAA;EAAA,QAuBM,4BAAA;EAAA,QAWA,yBAAA;EAaD,gBAAA,CAAiB,KAAA;EAAA,QAIhB,oBAAA;EAAA,QAIA,gBAAA;AAAA"}
1
+ {"version":3,"file":"FileRenderer.d.ts","names":[],"sources":["../../src/renderers/FileRenderer.ts"],"mappings":";;;;UAqEiB,gBAAA;EACf,SAAA,EAAW,cAAA;EACX,UAAA,EAAY,cAAA;EACZ,MAAA,EAAQ,OAAA;EACR,SAAA,EAAW,OAAA;EACX,GAAA;EACA,UAAA;EACA,WAAA;EACA,aAAA;EACA,QAAA;EACA,YAAA;EACA,WAAA;AAAA;AAAA,UAkBe,mBAAA,SAA4B,eAAe;EAC1D,gBAAA,GAAmB,oBAAA;AAAA;AAAA,cAKR,YAAA;EAmBF,OAAA,EAAS,mBAAA;EAAA,QACR,cAAA;EAAA,QACA,aAAA;EAAA,SApBD,IAAA;EAAA,QAED,WAAA;EAAA,QACA,WAAA;EAAA,QACA,YAAA;EAAA,QACA,eAAA;EAAA,QACA,SAAA;EAAA,QACA,qBAAA;EAAA,QACA,iBAAA;EAAA,QAOA,iBAAA;EAER,WAAA,CACS,OAAA,GAAS,mBAAA,EACR,cAAA,gCACA,aAAA,GAAgB,iBAAA;EASnB,UAAA,CAAW,OAAA,EAAS,mBAAA;EAIpB,YAAA,CAAa,OAAA,EAAS,OAAA,CAAQ,mBAAA;EAI9B,kBAAA,CACL,eAAA,EAAiB,cAAA,CAAe,WAAA;EAU3B,OAAA;EAtDP;;;AAAuC;AAKzC;;EA6DS,gBAAA;EA1CW;EA+CX,cAAA;EA7CmB;;;EAoDnB,iBAAA;EAQA,OAAA;EAAA,QAsBC,wBAAA;EAcD,6BAAA,CAA8B,IAAA,EAAM,YAAA;EAAA,QAUnC,4BAAA;EAQD,gBAAA;EAgBA,OAAA,CAAQ,IAAA,EAAM,YAAA;EAAA,QAmCb,sBAAA;EAQD,uBAAA,IAA2B,IAAA,CAChC,eAAA;EAAA,QAeM,gBAAA;EAkCD,oBAAA,CAAqB,IAAA,EAAM,YAAA;EAiB3B,YAAA,CAAa,IAAA,EAAM,YAAA;EAKnB,iBAAA,CACL,UAAA,EAAY,GAAA,SAAY,KAAA,CAAM,gBAAA,IAC9B,SAAA,oBACA,uBAAA;EA4EK,mBAAA,CAAoB,YAAA,EAAc,iBAAA;EAoGlC,UAAA,CACL,IAAA,GAAM,YAAA,cACN,WAAA,GAAa,WAAA,GACZ,gBAAA;EAoJG,WAAA,CACJ,IAAA,EAAM,YAAA,EACN,WAAA,GAAa,WAAA,GACZ,OAAA,CAAQ,gBAAA;EAAA,QAKG,cAAA;EAAA,QA2BN,yBAAA;EAAA,QAYA,iBAAA;EAAA,QA8FA,YAAA;EASD,cAAA,CAAe,MAAA,EAAQ,gBAAA;EAIvB,aAAA,CACL,MAAA,EAAQ,gBAAA,EACR,QAAA,GAAU,cAAA,KACT,OAAA;EAWI,aAAA,CAAc,MAAA,EAAQ,gBAAA,GAAmB,cAAA;EAWzC,iBAAA,CACL,QAAA,EAAU,cAAA,IACV,eAAA;EAcW,qBAAA,IAAyB,OAAA,CAAQ,gBAAA;EAYvC,kBAAA,CACL,IAAA,EAAM,YAAA,EACN,MAAA,EAAQ,gBAAA,EACR,OAAA,EAAS,iBAAA,EACT,WAAA;EAAA,QAQM,oBAAA;EAAA,QA2BA,4BAAA;EAAA,QAcA,yBAAA;EAaD,gBAAA,CAAiB,KAAA;EAAA,QAIhB,oBAAA;EAAA,QAIA,gBAAA;AAAA"}