@pierre/diffs 1.0.0-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 (441) hide show
  1. package/LICENSE.txt +201 -0
  2. package/README.md +26 -0
  3. package/dist/components/File.d.ts +78 -0
  4. package/dist/components/File.d.ts.map +1 -0
  5. package/dist/components/File.js +322 -0
  6. package/dist/components/File.js.map +1 -0
  7. package/dist/components/FileDiff.d.ts +90 -0
  8. package/dist/components/FileDiff.d.ts.map +1 -0
  9. package/dist/components/FileDiff.js +392 -0
  10. package/dist/components/FileDiff.js.map +1 -0
  11. package/dist/components/FileStream.d.ts +40 -0
  12. package/dist/components/FileStream.d.ts.map +1 -0
  13. package/dist/components/FileStream.js +161 -0
  14. package/dist/components/FileStream.js.map +1 -0
  15. package/dist/components/web-components.d.ts +5 -0
  16. package/dist/components/web-components.d.ts.map +1 -0
  17. package/dist/components/web-components.js +25 -0
  18. package/dist/components/web-components.js.map +1 -0
  19. package/dist/constants.d.ts +21 -0
  20. package/dist/constants.d.ts.map +1 -0
  21. package/dist/constants.js +23 -0
  22. package/dist/constants.js.map +1 -0
  23. package/dist/highlighter/languages/areLanguagesAttached.d.ts +7 -0
  24. package/dist/highlighter/languages/areLanguagesAttached.d.ts.map +1 -0
  25. package/dist/highlighter/languages/areLanguagesAttached.js +11 -0
  26. package/dist/highlighter/languages/areLanguagesAttached.js.map +1 -0
  27. package/dist/highlighter/languages/attachResolvedLanguages.d.ts +9 -0
  28. package/dist/highlighter/languages/attachResolvedLanguages.d.ts.map +1 -0
  29. package/dist/highlighter/languages/attachResolvedLanguages.js +20 -0
  30. package/dist/highlighter/languages/attachResolvedLanguages.js.map +1 -0
  31. package/dist/highlighter/languages/cleanUpResolvedLanguages.d.ts +5 -0
  32. package/dist/highlighter/languages/cleanUpResolvedLanguages.d.ts.map +1 -0
  33. package/dist/highlighter/languages/cleanUpResolvedLanguages.js +11 -0
  34. package/dist/highlighter/languages/cleanUpResolvedLanguages.js.map +1 -0
  35. package/dist/highlighter/languages/constants.d.ts +11 -0
  36. package/dist/highlighter/languages/constants.d.ts.map +1 -0
  37. package/dist/highlighter/languages/constants.js +8 -0
  38. package/dist/highlighter/languages/constants.js.map +1 -0
  39. package/dist/highlighter/languages/getResolvedLanguages.d.ts +9 -0
  40. package/dist/highlighter/languages/getResolvedLanguages.d.ts.map +1 -0
  41. package/dist/highlighter/languages/getResolvedLanguages.js +16 -0
  42. package/dist/highlighter/languages/getResolvedLanguages.js.map +1 -0
  43. package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts +9 -0
  44. package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts.map +1 -0
  45. package/dist/highlighter/languages/getResolvedOrResolveLanguage.js +11 -0
  46. package/dist/highlighter/languages/getResolvedOrResolveLanguage.js.map +1 -0
  47. package/dist/highlighter/languages/hasResolvedLanguages.d.ts +7 -0
  48. package/dist/highlighter/languages/hasResolvedLanguages.d.ts.map +1 -0
  49. package/dist/highlighter/languages/hasResolvedLanguages.js +11 -0
  50. package/dist/highlighter/languages/hasResolvedLanguages.js.map +1 -0
  51. package/dist/highlighter/languages/resolveLanguage.d.ts +9 -0
  52. package/dist/highlighter/languages/resolveLanguage.d.ts.map +1 -0
  53. package/dist/highlighter/languages/resolveLanguage.js +30 -0
  54. package/dist/highlighter/languages/resolveLanguage.js.map +1 -0
  55. package/dist/highlighter/languages/resolveLanguages.d.ts +9 -0
  56. package/dist/highlighter/languages/resolveLanguages.d.ts.map +1 -0
  57. package/dist/highlighter/languages/resolveLanguages.js +25 -0
  58. package/dist/highlighter/languages/resolveLanguages.js.map +1 -0
  59. package/dist/highlighter/shared_highlighter.d.ts +21 -0
  60. package/dist/highlighter/shared_highlighter.d.ts.map +1 -0
  61. package/dist/highlighter/shared_highlighter.js +71 -0
  62. package/dist/highlighter/shared_highlighter.js.map +1 -0
  63. package/dist/highlighter/themes/areThemesAttached.d.ts +7 -0
  64. package/dist/highlighter/themes/areThemesAttached.d.ts.map +1 -0
  65. package/dist/highlighter/themes/areThemesAttached.js +12 -0
  66. package/dist/highlighter/themes/areThemesAttached.js.map +1 -0
  67. package/dist/highlighter/themes/attachResolvedThemes.d.ts +7 -0
  68. package/dist/highlighter/themes/attachResolvedThemes.d.ts.map +1 -0
  69. package/dist/highlighter/themes/attachResolvedThemes.js +24 -0
  70. package/dist/highlighter/themes/attachResolvedThemes.js.map +1 -0
  71. package/dist/highlighter/themes/cleanUpResolvedThemes.d.ts +5 -0
  72. package/dist/highlighter/themes/cleanUpResolvedThemes.d.ts.map +1 -0
  73. package/dist/highlighter/themes/cleanUpResolvedThemes.js +11 -0
  74. package/dist/highlighter/themes/cleanUpResolvedThemes.js.map +1 -0
  75. package/dist/highlighter/themes/constants.d.ts +11 -0
  76. package/dist/highlighter/themes/constants.d.ts.map +1 -0
  77. package/dist/highlighter/themes/constants.js +9 -0
  78. package/dist/highlighter/themes/constants.js.map +1 -0
  79. package/dist/highlighter/themes/getResolvedOrResolveTheme.d.ts +7 -0
  80. package/dist/highlighter/themes/getResolvedOrResolveTheme.d.ts.map +1 -0
  81. package/dist/highlighter/themes/getResolvedOrResolveTheme.js +11 -0
  82. package/dist/highlighter/themes/getResolvedOrResolveTheme.js.map +1 -0
  83. package/dist/highlighter/themes/getResolvedThemes.d.ts +7 -0
  84. package/dist/highlighter/themes/getResolvedThemes.d.ts.map +1 -0
  85. package/dist/highlighter/themes/getResolvedThemes.js +16 -0
  86. package/dist/highlighter/themes/getResolvedThemes.js.map +1 -0
  87. package/dist/highlighter/themes/hasResolvedThemes.d.ts +7 -0
  88. package/dist/highlighter/themes/hasResolvedThemes.d.ts.map +1 -0
  89. package/dist/highlighter/themes/hasResolvedThemes.js +11 -0
  90. package/dist/highlighter/themes/hasResolvedThemes.js.map +1 -0
  91. package/dist/highlighter/themes/registerCustomTheme.d.ts +7 -0
  92. package/dist/highlighter/themes/registerCustomTheme.d.ts.map +1 -0
  93. package/dist/highlighter/themes/registerCustomTheme.js +14 -0
  94. package/dist/highlighter/themes/registerCustomTheme.js.map +1 -0
  95. package/dist/highlighter/themes/resolveTheme.d.ts +7 -0
  96. package/dist/highlighter/themes/resolveTheme.d.ts.map +1 -0
  97. package/dist/highlighter/themes/resolveTheme.js +35 -0
  98. package/dist/highlighter/themes/resolveTheme.js.map +1 -0
  99. package/dist/highlighter/themes/resolveThemes.d.ts +7 -0
  100. package/dist/highlighter/themes/resolveThemes.d.ts.map +1 -0
  101. package/dist/highlighter/themes/resolveThemes.js +21 -0
  102. package/dist/highlighter/themes/resolveThemes.js.map +1 -0
  103. package/dist/index.d.ts +84 -0
  104. package/dist/index.js +83 -0
  105. package/dist/managers/LineSelectionManager.d.ts +64 -0
  106. package/dist/managers/LineSelectionManager.d.ts.map +1 -0
  107. package/dist/managers/LineSelectionManager.js +276 -0
  108. package/dist/managers/LineSelectionManager.js.map +1 -0
  109. package/dist/managers/MouseEventManager.d.ts +64 -0
  110. package/dist/managers/MouseEventManager.d.ts.map +1 -0
  111. package/dist/managers/MouseEventManager.js +244 -0
  112. package/dist/managers/MouseEventManager.js.map +1 -0
  113. package/dist/managers/ResizeManager.d.ts +11 -0
  114. package/dist/managers/ResizeManager.d.ts.map +1 -0
  115. package/dist/managers/ResizeManager.js +132 -0
  116. package/dist/managers/ResizeManager.js.map +1 -0
  117. package/dist/managers/ScrollSyncManager.d.ts +15 -0
  118. package/dist/managers/ScrollSyncManager.d.ts.map +1 -0
  119. package/dist/managers/ScrollSyncManager.js +54 -0
  120. package/dist/managers/ScrollSyncManager.js.map +1 -0
  121. package/dist/managers/UniversalRenderingManager.d.ts +6 -0
  122. package/dist/managers/UniversalRenderingManager.d.ts.map +1 -0
  123. package/dist/managers/UniversalRenderingManager.js +32 -0
  124. package/dist/managers/UniversalRenderingManager.js.map +1 -0
  125. package/dist/react/File.d.ts +19 -0
  126. package/dist/react/File.d.ts.map +1 -0
  127. package/dist/react/File.js +36 -0
  128. package/dist/react/File.js.map +1 -0
  129. package/dist/react/FileDiff.d.ts +22 -0
  130. package/dist/react/FileDiff.d.ts.map +1 -0
  131. package/dist/react/FileDiff.js +36 -0
  132. package/dist/react/FileDiff.js.map +1 -0
  133. package/dist/react/MultiFileDiff.d.ts +24 -0
  134. package/dist/react/MultiFileDiff.d.ts.map +1 -0
  135. package/dist/react/MultiFileDiff.js +38 -0
  136. package/dist/react/MultiFileDiff.js.map +1 -0
  137. package/dist/react/PatchDiff.d.ts +21 -0
  138. package/dist/react/PatchDiff.d.ts.map +1 -0
  139. package/dist/react/PatchDiff.js +42 -0
  140. package/dist/react/PatchDiff.js.map +1 -0
  141. package/dist/react/WorkerPoolContext.d.ts +20 -0
  142. package/dist/react/WorkerPoolContext.d.ts.map +1 -0
  143. package/dist/react/WorkerPoolContext.js +41 -0
  144. package/dist/react/WorkerPoolContext.js.map +1 -0
  145. package/dist/react/constants.d.ts +7 -0
  146. package/dist/react/constants.d.ts.map +1 -0
  147. package/dist/react/constants.js +11 -0
  148. package/dist/react/constants.js.map +1 -0
  149. package/dist/react/index.d.ts +17 -0
  150. package/dist/react/index.js +14 -0
  151. package/dist/react/jsx.d.ts +12 -0
  152. package/dist/react/jsx.d.ts.map +1 -0
  153. package/dist/react/types.d.ts +34 -0
  154. package/dist/react/types.d.ts.map +1 -0
  155. package/dist/react/types.js +1 -0
  156. package/dist/react/utils/renderDiffChildren.d.ts +29 -0
  157. package/dist/react/utils/renderDiffChildren.d.ts.map +1 -0
  158. package/dist/react/utils/renderDiffChildren.js +32 -0
  159. package/dist/react/utils/renderDiffChildren.js.map +1 -0
  160. package/dist/react/utils/renderFileChildren.d.ts +25 -0
  161. package/dist/react/utils/renderFileChildren.d.ts.map +1 -0
  162. package/dist/react/utils/renderFileChildren.js +28 -0
  163. package/dist/react/utils/renderFileChildren.js.map +1 -0
  164. package/dist/react/utils/templateRender.d.ts +7 -0
  165. package/dist/react/utils/templateRender.d.ts.map +1 -0
  166. package/dist/react/utils/templateRender.js +14 -0
  167. package/dist/react/utils/templateRender.js.map +1 -0
  168. package/dist/react/utils/useFileDiffInstance.d.ts +31 -0
  169. package/dist/react/utils/useFileDiffInstance.d.ts.map +1 -0
  170. package/dist/react/utils/useFileDiffInstance.js +54 -0
  171. package/dist/react/utils/useFileDiffInstance.js.map +1 -0
  172. package/dist/react/utils/useFileInstance.d.ts +27 -0
  173. package/dist/react/utils/useFileInstance.d.ts.map +1 -0
  174. package/dist/react/utils/useFileInstance.js +49 -0
  175. package/dist/react/utils/useFileInstance.js.map +1 -0
  176. package/dist/react/utils/useStableCallback.d.ts +5 -0
  177. package/dist/react/utils/useStableCallback.d.ts.map +1 -0
  178. package/dist/react/utils/useStableCallback.js +14 -0
  179. package/dist/react/utils/useStableCallback.js.map +1 -0
  180. package/dist/renderers/DiffHunksRenderer.d.ts +62 -0
  181. package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -0
  182. package/dist/renderers/DiffHunksRenderer.js +651 -0
  183. package/dist/renderers/DiffHunksRenderer.js.map +1 -0
  184. package/dist/renderers/FileRenderer.d.ts +49 -0
  185. package/dist/renderers/FileRenderer.d.ts.map +1 -0
  186. package/dist/renderers/FileRenderer.js +239 -0
  187. package/dist/renderers/FileRenderer.js.map +1 -0
  188. package/dist/shiki-stream/index.d.ts +4 -0
  189. package/dist/shiki-stream/index.js +4 -0
  190. package/dist/shiki-stream/stream.d.ts +17 -0
  191. package/dist/shiki-stream/stream.d.ts.map +1 -0
  192. package/dist/shiki-stream/stream.js +32 -0
  193. package/dist/shiki-stream/stream.js.map +1 -0
  194. package/dist/shiki-stream/tokenizer.d.ts +24 -0
  195. package/dist/shiki-stream/tokenizer.d.ts.map +1 -0
  196. package/dist/shiki-stream/tokenizer.js +71 -0
  197. package/dist/shiki-stream/tokenizer.js.map +1 -0
  198. package/dist/shiki-stream/types.d.ts +45 -0
  199. package/dist/shiki-stream/types.d.ts.map +1 -0
  200. package/dist/shiki-stream/types.js +0 -0
  201. package/dist/sprite.d.ts +6 -0
  202. package/dist/sprite.d.ts.map +1 -0
  203. package/dist/sprite.js +55 -0
  204. package/dist/sprite.js.map +1 -0
  205. package/dist/ssr/FileDiffReact.d.ts +21 -0
  206. package/dist/ssr/FileDiffReact.d.ts.map +1 -0
  207. package/dist/ssr/FileDiffReact.js +53 -0
  208. package/dist/ssr/FileDiffReact.js.map +1 -0
  209. package/dist/ssr/index.d.ts +6 -0
  210. package/dist/ssr/index.js +6 -0
  211. package/dist/ssr/preloadDiffs.d.ts +72 -0
  212. package/dist/ssr/preloadDiffs.d.ts.map +1 -0
  213. package/dist/ssr/preloadDiffs.js +66 -0
  214. package/dist/ssr/preloadDiffs.js.map +1 -0
  215. package/dist/ssr/preloadFile.d.ts +23 -0
  216. package/dist/ssr/preloadFile.d.ts.map +1 -0
  217. package/dist/ssr/preloadFile.js +26 -0
  218. package/dist/ssr/preloadFile.js.map +1 -0
  219. package/dist/ssr/preloadPatchFile.d.ts +15 -0
  220. package/dist/ssr/preloadPatchFile.d.ts.map +1 -0
  221. package/dist/ssr/preloadPatchFile.js +17 -0
  222. package/dist/ssr/preloadPatchFile.js.map +1 -0
  223. package/dist/ssr/renderHTML.d.ts +7 -0
  224. package/dist/ssr/renderHTML.d.ts.map +1 -0
  225. package/dist/ssr/renderHTML.js +11 -0
  226. package/dist/ssr/renderHTML.js.map +1 -0
  227. package/dist/string-import.d.ts +6 -0
  228. package/dist/string-import.d.ts.map +1 -0
  229. package/dist/style.js +6 -0
  230. package/dist/style.js.map +1 -0
  231. package/dist/themes/pierre-dark.js +1328 -0
  232. package/dist/themes/pierre-dark.js.map +1 -0
  233. package/dist/themes/pierre-light.js +1328 -0
  234. package/dist/themes/pierre-light.js.map +1 -0
  235. package/dist/types.d.ts +238 -0
  236. package/dist/types.d.ts.map +1 -0
  237. package/dist/types.js +0 -0
  238. package/dist/utils/areFilesEqual.d.ts +7 -0
  239. package/dist/utils/areFilesEqual.d.ts.map +1 -0
  240. package/dist/utils/areFilesEqual.js +8 -0
  241. package/dist/utils/areFilesEqual.js.map +1 -0
  242. package/dist/utils/areObjectsEqual.d.ts +5 -0
  243. package/dist/utils/areObjectsEqual.d.ts.map +1 -0
  244. package/dist/utils/areObjectsEqual.js +18 -0
  245. package/dist/utils/areObjectsEqual.js.map +1 -0
  246. package/dist/utils/areOptionsEqual.d.ts +9 -0
  247. package/dist/utils/areOptionsEqual.d.ts.map +1 -0
  248. package/dist/utils/areOptionsEqual.js +12 -0
  249. package/dist/utils/areOptionsEqual.js.map +1 -0
  250. package/dist/utils/areSelectionsEqual.d.ts +7 -0
  251. package/dist/utils/areSelectionsEqual.d.ts.map +1 -0
  252. package/dist/utils/areSelectionsEqual.js +8 -0
  253. package/dist/utils/areSelectionsEqual.js.map +1 -0
  254. package/dist/utils/areThemesEqual.d.ts +7 -0
  255. package/dist/utils/areThemesEqual.d.ts.map +1 -0
  256. package/dist/utils/areThemesEqual.js +9 -0
  257. package/dist/utils/areThemesEqual.js.map +1 -0
  258. package/dist/utils/cleanLastNewline.d.ts +5 -0
  259. package/dist/utils/cleanLastNewline.d.ts.map +1 -0
  260. package/dist/utils/cleanLastNewline.js +8 -0
  261. package/dist/utils/cleanLastNewline.js.map +1 -0
  262. package/dist/utils/createAnnotationElement.d.ts +8 -0
  263. package/dist/utils/createAnnotationElement.d.ts.map +1 -0
  264. package/dist/utils/createAnnotationElement.js +21 -0
  265. package/dist/utils/createAnnotationElement.js.map +1 -0
  266. package/dist/utils/createAnnotationWrapperNode.d.ts +5 -0
  267. package/dist/utils/createAnnotationWrapperNode.d.ts.map +1 -0
  268. package/dist/utils/createAnnotationWrapperNode.js +12 -0
  269. package/dist/utils/createAnnotationWrapperNode.js.map +1 -0
  270. package/dist/utils/createCodeNode.d.ts +12 -0
  271. package/dist/utils/createCodeNode.d.ts.map +1 -0
  272. package/dist/utils/createCodeNode.js +12 -0
  273. package/dist/utils/createCodeNode.js.map +1 -0
  274. package/dist/utils/createEmptyRowBuffer.d.ts +7 -0
  275. package/dist/utils/createEmptyRowBuffer.d.ts.map +1 -0
  276. package/dist/utils/createEmptyRowBuffer.js +16 -0
  277. package/dist/utils/createEmptyRowBuffer.js.map +1 -0
  278. package/dist/utils/createFileHeaderElement.d.ts +17 -0
  279. package/dist/utils/createFileHeaderElement.d.ts.map +1 -0
  280. package/dist/utils/createFileHeaderElement.js +84 -0
  281. package/dist/utils/createFileHeaderElement.js.map +1 -0
  282. package/dist/utils/createHoverContentNode.d.ts +5 -0
  283. package/dist/utils/createHoverContentNode.d.ts.map +1 -0
  284. package/dist/utils/createHoverContentNode.js +15 -0
  285. package/dist/utils/createHoverContentNode.js.map +1 -0
  286. package/dist/utils/createNoNewlineElement.d.ts +7 -0
  287. package/dist/utils/createNoNewlineElement.d.ts.map +1 -0
  288. package/dist/utils/createNoNewlineElement.js +24 -0
  289. package/dist/utils/createNoNewlineElement.js.map +1 -0
  290. package/dist/utils/createPreElement.d.ts +18 -0
  291. package/dist/utils/createPreElement.d.ts.map +1 -0
  292. package/dist/utils/createPreElement.js +28 -0
  293. package/dist/utils/createPreElement.js.map +1 -0
  294. package/dist/utils/createRowNodes.d.ts +8 -0
  295. package/dist/utils/createRowNodes.d.ts.map +1 -0
  296. package/dist/utils/createRowNodes.js +20 -0
  297. package/dist/utils/createRowNodes.js.map +1 -0
  298. package/dist/utils/createSeparator.d.ts +25 -0
  299. package/dist/utils/createSeparator.d.ts.map +1 -0
  300. package/dist/utils/createSeparator.js +69 -0
  301. package/dist/utils/createSeparator.js.map +1 -0
  302. package/dist/utils/createSpanNodeFromToken.d.ts +7 -0
  303. package/dist/utils/createSpanNodeFromToken.d.ts.map +1 -0
  304. package/dist/utils/createSpanNodeFromToken.js +13 -0
  305. package/dist/utils/createSpanNodeFromToken.js.map +1 -0
  306. package/dist/utils/createStyleElement.d.ts +7 -0
  307. package/dist/utils/createStyleElement.d.ts.map +1 -0
  308. package/dist/utils/createStyleElement.js +19 -0
  309. package/dist/utils/createStyleElement.js.map +1 -0
  310. package/dist/utils/createTransformerWithState.d.ts +13 -0
  311. package/dist/utils/createTransformerWithState.d.ts.map +1 -0
  312. package/dist/utils/createTransformerWithState.js +56 -0
  313. package/dist/utils/createTransformerWithState.js.map +1 -0
  314. package/dist/utils/createUnsafeCSSStyleNode.d.ts +5 -0
  315. package/dist/utils/createUnsafeCSSStyleNode.d.ts.map +1 -0
  316. package/dist/utils/createUnsafeCSSStyleNode.js +12 -0
  317. package/dist/utils/createUnsafeCSSStyleNode.js.map +1 -0
  318. package/dist/utils/cssWrappers.d.ts +6 -0
  319. package/dist/utils/cssWrappers.d.ts.map +1 -0
  320. package/dist/utils/cssWrappers.js +21 -0
  321. package/dist/utils/cssWrappers.js.map +1 -0
  322. package/dist/utils/diffAcceptRejectHunk.d.ts +7 -0
  323. package/dist/utils/diffAcceptRejectHunk.d.ts.map +1 -0
  324. package/dist/utils/diffAcceptRejectHunk.js +82 -0
  325. package/dist/utils/diffAcceptRejectHunk.js.map +1 -0
  326. package/dist/utils/formatCSSVariablePrefix.d.ts +5 -0
  327. package/dist/utils/formatCSSVariablePrefix.d.ts.map +1 -0
  328. package/dist/utils/formatCSSVariablePrefix.js +8 -0
  329. package/dist/utils/formatCSSVariablePrefix.js.map +1 -0
  330. package/dist/utils/getFiletypeFromFileName.d.ts +9 -0
  331. package/dist/utils/getFiletypeFromFileName.d.ts.map +1 -0
  332. package/dist/utils/getFiletypeFromFileName.js +343 -0
  333. package/dist/utils/getFiletypeFromFileName.js.map +1 -0
  334. package/dist/utils/getHighlighterOptions.d.ts +14 -0
  335. package/dist/utils/getHighlighterOptions.d.ts.map +1 -0
  336. package/dist/utils/getHighlighterOptions.js +13 -0
  337. package/dist/utils/getHighlighterOptions.js.map +1 -0
  338. package/dist/utils/getHighlighterThemeStyles.d.ts +16 -0
  339. package/dist/utils/getHighlighterThemeStyles.d.ts.map +1 -0
  340. package/dist/utils/getHighlighterThemeStyles.js +40 -0
  341. package/dist/utils/getHighlighterThemeStyles.js.map +1 -0
  342. package/dist/utils/getHunkSeparatorSlotName.d.ts +5 -0
  343. package/dist/utils/getHunkSeparatorSlotName.d.ts.map +1 -0
  344. package/dist/utils/getHunkSeparatorSlotName.js +8 -0
  345. package/dist/utils/getHunkSeparatorSlotName.js.map +1 -0
  346. package/dist/utils/getIconForType.d.ts +8 -0
  347. package/dist/utils/getIconForType.d.ts.map +1 -0
  348. package/dist/utils/getIconForType.js +15 -0
  349. package/dist/utils/getIconForType.js.map +1 -0
  350. package/dist/utils/getLineAnnotationName.d.ts +7 -0
  351. package/dist/utils/getLineAnnotationName.d.ts.map +1 -0
  352. package/dist/utils/getLineAnnotationName.js +8 -0
  353. package/dist/utils/getLineAnnotationName.js.map +1 -0
  354. package/dist/utils/getLineEndingType.d.ts +5 -0
  355. package/dist/utils/getLineEndingType.d.ts.map +1 -0
  356. package/dist/utils/getLineEndingType.js +11 -0
  357. package/dist/utils/getLineEndingType.js.map +1 -0
  358. package/dist/utils/getLineNodes.d.ts +7 -0
  359. package/dist/utils/getLineNodes.d.ts.map +1 -0
  360. package/dist/utils/getLineNodes.js +15 -0
  361. package/dist/utils/getLineNodes.js.map +1 -0
  362. package/dist/utils/getSingularPatch.d.ts +7 -0
  363. package/dist/utils/getSingularPatch.d.ts.map +1 -0
  364. package/dist/utils/getSingularPatch.js +20 -0
  365. package/dist/utils/getSingularPatch.js.map +1 -0
  366. package/dist/utils/getThemes.d.ts +7 -0
  367. package/dist/utils/getThemes.d.ts.map +1 -0
  368. package/dist/utils/getThemes.js +16 -0
  369. package/dist/utils/getThemes.js.map +1 -0
  370. package/dist/utils/getTotalLineCountFromHunks.d.ts +7 -0
  371. package/dist/utils/getTotalLineCountFromHunks.d.ts.map +1 -0
  372. package/dist/utils/getTotalLineCountFromHunks.js +10 -0
  373. package/dist/utils/getTotalLineCountFromHunks.js.map +1 -0
  374. package/dist/utils/hast_utils.d.ts +31 -0
  375. package/dist/utils/hast_utils.d.ts.map +1 -0
  376. package/dist/utils/hast_utils.js +42 -0
  377. package/dist/utils/hast_utils.js.map +1 -0
  378. package/dist/utils/isWorkerContext.d.ts +5 -0
  379. package/dist/utils/isWorkerContext.d.ts.map +1 -0
  380. package/dist/utils/isWorkerContext.js +8 -0
  381. package/dist/utils/isWorkerContext.js.map +1 -0
  382. package/dist/utils/parseDiffDecorations.d.ts +31 -0
  383. package/dist/utils/parseDiffDecorations.d.ts.map +1 -0
  384. package/dist/utils/parseDiffDecorations.js +34 -0
  385. package/dist/utils/parseDiffDecorations.js.map +1 -0
  386. package/dist/utils/parseDiffFromFile.d.ts +14 -0
  387. package/dist/utils/parseDiffFromFile.d.ts.map +1 -0
  388. package/dist/utils/parseDiffFromFile.js +23 -0
  389. package/dist/utils/parseDiffFromFile.js.map +1 -0
  390. package/dist/utils/parseLineType.d.ts +11 -0
  391. package/dist/utils/parseLineType.d.ts.map +1 -0
  392. package/dist/utils/parseLineType.js +16 -0
  393. package/dist/utils/parseLineType.js.map +1 -0
  394. package/dist/utils/parsePatchFiles.d.ts +16 -0
  395. package/dist/utils/parsePatchFiles.d.ts.map +1 -0
  396. package/dist/utils/parsePatchFiles.js +204 -0
  397. package/dist/utils/parsePatchFiles.js.map +1 -0
  398. package/dist/utils/prerenderHTMLIfNecessary.d.ts +5 -0
  399. package/dist/utils/prerenderHTMLIfNecessary.d.ts.map +1 -0
  400. package/dist/utils/prerenderHTMLIfNecessary.js +10 -0
  401. package/dist/utils/prerenderHTMLIfNecessary.js.map +1 -0
  402. package/dist/utils/processLine.d.ts +8 -0
  403. package/dist/utils/processLine.d.ts.map +1 -0
  404. package/dist/utils/processLine.js +42 -0
  405. package/dist/utils/processLine.js.map +1 -0
  406. package/dist/utils/renderDiffWithHighlighter.d.ts +7 -0
  407. package/dist/utils/renderDiffWithHighlighter.d.ts.map +1 -0
  408. package/dist/utils/renderDiffWithHighlighter.js +323 -0
  409. package/dist/utils/renderDiffWithHighlighter.js.map +1 -0
  410. package/dist/utils/renderFileWithHighlighter.d.ts +10 -0
  411. package/dist/utils/renderFileWithHighlighter.d.ts.map +1 -0
  412. package/dist/utils/renderFileWithHighlighter.js +52 -0
  413. package/dist/utils/renderFileWithHighlighter.js.map +1 -0
  414. package/dist/utils/setLanguageOverride.d.ts +7 -0
  415. package/dist/utils/setLanguageOverride.d.ts.map +1 -0
  416. package/dist/utils/setLanguageOverride.js +11 -0
  417. package/dist/utils/setLanguageOverride.js.map +1 -0
  418. package/dist/utils/setWrapperNodeProps.d.ts +20 -0
  419. package/dist/utils/setWrapperNodeProps.d.ts.map +1 -0
  420. package/dist/utils/setWrapperNodeProps.js +29 -0
  421. package/dist/utils/setWrapperNodeProps.js.map +1 -0
  422. package/dist/worker/WorkerPoolManager.d.ts +72 -0
  423. package/dist/worker/WorkerPoolManager.d.ts.map +1 -0
  424. package/dist/worker/WorkerPoolManager.js +421 -0
  425. package/dist/worker/WorkerPoolManager.js.map +1 -0
  426. package/dist/worker/getOrCreateWorkerPoolSingleton.d.ts +16 -0
  427. package/dist/worker/getOrCreateWorkerPoolSingleton.d.ts.map +1 -0
  428. package/dist/worker/getOrCreateWorkerPoolSingleton.js +20 -0
  429. package/dist/worker/getOrCreateWorkerPoolSingleton.js.map +1 -0
  430. package/dist/worker/index.d.ts +4 -0
  431. package/dist/worker/index.js +4 -0
  432. package/dist/worker/types.d.ts +140 -0
  433. package/dist/worker/types.d.ts.map +1 -0
  434. package/dist/worker/types.js +0 -0
  435. package/dist/worker/worker-portable.d.ts +1 -0
  436. package/dist/worker/worker-portable.js +14872 -0
  437. package/dist/worker/worker-portable.js.map +1 -0
  438. package/dist/worker/worker.d.ts +1 -0
  439. package/dist/worker/worker.js +1061 -0
  440. package/dist/worker/worker.js.map +1 -0
  441. package/package.json +76 -0
@@ -0,0 +1,14 @@
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+
3
+ //#region src/react/utils/templateRender.tsx
4
+ function templateRender(children, __html) {
5
+ if (typeof window === "undefined" && __html != null) return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("template", {
6
+ shadowrootmode: "open",
7
+ dangerouslySetInnerHTML: { __html }
8
+ }), children] });
9
+ return /* @__PURE__ */ jsx(Fragment, { children });
10
+ }
11
+
12
+ //#endregion
13
+ export { templateRender };
14
+ //# sourceMappingURL=templateRender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateRender.js","names":[],"sources":["../../../src/react/utils/templateRender.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nexport function templateRender(\n children: ReactNode,\n __html: string | undefined\n): ReactNode {\n if (typeof window === 'undefined' && __html != null) {\n return (\n <>\n <template\n // @ts-expect-error unclear how to fix this\n shadowrootmode=\"open\"\n dangerouslySetInnerHTML={{ __html }}\n />\n {children}\n </>\n );\n }\n return <>{children}</>;\n}\n"],"mappings":";;;AAEA,SAAgB,eACd,UACA,QACW;AACX,KAAI,OAAO,WAAW,eAAe,UAAU,KAC7C,QACE,4CACE,oBAAC;EAEC,gBAAe;EACf,yBAAyB,EAAE,QAAQ;GACnC,EACD,YACA;AAGP,QAAO,gCAAG,WAAY"}
@@ -0,0 +1,31 @@
1
+ import { DiffLineAnnotation, FileContents, FileDiffMetadata } from "../../types.js";
2
+ import { SelectedLineRange } from "../../managers/LineSelectionManager.js";
3
+ import { GetHoveredLineResult } from "../../managers/MouseEventManager.js";
4
+ import { FileDiffOptions } from "../../components/FileDiff.js";
5
+
6
+ //#region src/react/utils/useFileDiffInstance.d.ts
7
+ interface UseFileDiffInstanceProps<LAnnotation> {
8
+ oldFile?: FileContents;
9
+ newFile?: FileContents;
10
+ fileDiff?: FileDiffMetadata;
11
+ options: FileDiffOptions<LAnnotation> | undefined;
12
+ lineAnnotations: DiffLineAnnotation<LAnnotation>[] | undefined;
13
+ selectedLines: SelectedLineRange | null | undefined;
14
+ prerenderedHTML: string | undefined;
15
+ }
16
+ interface UseFileDiffInstanceReturn {
17
+ ref(node: HTMLElement | null): void;
18
+ getHoveredLine(): GetHoveredLineResult<"diff"> | undefined;
19
+ }
20
+ declare function useFileDiffInstance<LAnnotation>({
21
+ oldFile,
22
+ newFile,
23
+ fileDiff,
24
+ options,
25
+ lineAnnotations,
26
+ selectedLines,
27
+ prerenderedHTML
28
+ }: UseFileDiffInstanceProps<LAnnotation>): UseFileDiffInstanceReturn;
29
+ //#endregion
30
+ export { useFileDiffInstance };
31
+ //# sourceMappingURL=useFileDiffInstance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFileDiffInstance.d.ts","names":[],"sources":["../../../src/react/utils/useFileDiffInstance.ts"],"sourcesContent":[],"mappings":";;;;;;UAuBU;YACE;EATL,OAQG,CAAA,EAEE,YAFF;EACE,QAAA,CAAA,EAEC,gBAFD;EACA,OAAA,EAED,eAFC,CAEe,WAFf,CAAA,GAAA,SAAA;EACC,eAAA,EAEM,kBAFN,CAEyB,WAFzB,CAAA,EAAA,GAAA,SAAA;EACc,aAAA,EAEV,iBAFU,GAAA,IAAA,GAAA,SAAA;EAAhB,eAAA,EAAA,MAAA,GAAA,SAAA;;UAMD,yBAAA,CALS;EACF,GAAA,CAAA,IAAA,EAKL,WALK,GAAA,IAAA,CAAA,EAAA,IAAA;EAAA,cAAA,EAAA,EAMG,oBANH,CAAA,MAAA,CAAA,GAAA,SAAA;AAAA;AASD,iBAAA,mBAAA,CAAA,WAAA,CAAA,CAAA;EAAA,OAAA;EAAA,OAAA;EAAA,QAAA;EAAA,OAAA;EAAA,eAAA;EAAA,aAAA;EAAA;AAAA,CAAA,EAQb,wBARa,CAQY,WARZ,CAAA,CAAA,EAQ2B,yBAR3B"}
@@ -0,0 +1,54 @@
1
+ import { FileDiff } from "../../components/FileDiff.js";
2
+ import { areOptionsEqual } from "../../utils/areOptionsEqual.js";
3
+ import { WorkerPoolContext } from "../WorkerPoolContext.js";
4
+ import { useStableCallback } from "./useStableCallback.js";
5
+ import { useCallback, useContext, useEffect, useLayoutEffect, useRef } from "react";
6
+
7
+ //#region src/react/utils/useFileDiffInstance.ts
8
+ const useIsometricEffect = typeof window === "undefined" ? useEffect : useLayoutEffect;
9
+ function useFileDiffInstance({ oldFile, newFile, fileDiff, options, lineAnnotations, selectedLines, prerenderedHTML }) {
10
+ const poolManager = useContext(WorkerPoolContext);
11
+ const instanceRef = useRef(null);
12
+ const ref = useStableCallback((fileContainer) => {
13
+ if (fileContainer != null) {
14
+ if (instanceRef.current != null) throw new Error("useFileDiffInstance: An instance should not already exist when a node is created");
15
+ instanceRef.current = new FileDiff(options, poolManager, true);
16
+ instanceRef.current.hydrate({
17
+ fileDiff,
18
+ oldFile,
19
+ newFile,
20
+ fileContainer,
21
+ lineAnnotations,
22
+ prerenderedHTML
23
+ });
24
+ } else {
25
+ if (instanceRef.current == null) throw new Error("useFileDiffInstance: A FileDiff instance should exist when unmounting");
26
+ instanceRef.current.cleanUp();
27
+ instanceRef.current = null;
28
+ }
29
+ });
30
+ useIsometricEffect(() => {
31
+ if (instanceRef.current == null) return;
32
+ const instance = instanceRef.current;
33
+ const forceRender = !areOptionsEqual(instance.options, options);
34
+ instance.setOptions(options);
35
+ instance.render({
36
+ forceRender,
37
+ fileDiff,
38
+ oldFile,
39
+ newFile,
40
+ lineAnnotations
41
+ });
42
+ if (selectedLines !== void 0) instance.setSelectedLines(selectedLines);
43
+ });
44
+ return {
45
+ ref,
46
+ getHoveredLine: useCallback(() => {
47
+ return instanceRef.current?.getHoveredLine();
48
+ }, [])
49
+ };
50
+ }
51
+
52
+ //#endregion
53
+ export { useFileDiffInstance };
54
+ //# sourceMappingURL=useFileDiffInstance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFileDiffInstance.js","names":[],"sources":["../../../src/react/utils/useFileDiffInstance.ts"],"sourcesContent":["import {\n useCallback,\n useContext,\n useEffect,\n useLayoutEffect,\n useRef,\n} from 'react';\n\nimport { FileDiff, type FileDiffOptions } from '../../components/FileDiff';\nimport type { SelectedLineRange } from '../../managers/LineSelectionManager';\nimport type { GetHoveredLineResult } from '../../managers/MouseEventManager';\nimport type {\n DiffLineAnnotation,\n FileContents,\n FileDiffMetadata,\n} from '../../types';\nimport { areOptionsEqual } from '../../utils/areOptionsEqual';\nimport { WorkerPoolContext } from '../WorkerPoolContext';\nimport { useStableCallback } from './useStableCallback';\n\nconst useIsometricEffect =\n typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\ninterface UseFileDiffInstanceProps<LAnnotation> {\n oldFile?: FileContents;\n newFile?: FileContents;\n fileDiff?: FileDiffMetadata;\n options: FileDiffOptions<LAnnotation> | undefined;\n lineAnnotations: DiffLineAnnotation<LAnnotation>[] | undefined;\n selectedLines: SelectedLineRange | null | undefined;\n prerenderedHTML: string | undefined;\n}\n\ninterface UseFileDiffInstanceReturn {\n ref(node: HTMLElement | null): void;\n getHoveredLine(): GetHoveredLineResult<'diff'> | undefined;\n}\n\nexport function useFileDiffInstance<LAnnotation>({\n oldFile,\n newFile,\n fileDiff,\n options,\n lineAnnotations,\n selectedLines,\n prerenderedHTML,\n}: UseFileDiffInstanceProps<LAnnotation>): UseFileDiffInstanceReturn {\n const poolManager = useContext(WorkerPoolContext);\n const instanceRef = useRef<FileDiff<LAnnotation> | null>(null);\n const ref = useStableCallback((fileContainer: HTMLElement | null) => {\n if (fileContainer != null) {\n if (instanceRef.current != null) {\n throw new Error(\n 'useFileDiffInstance: An instance should not already exist when a node is created'\n );\n }\n // FIXME: Ideally we don't use FileDiffUI here, and instead amalgamate\n // the renderers manually\n instanceRef.current = new FileDiff(options, poolManager, true);\n void instanceRef.current.hydrate({\n fileDiff,\n oldFile,\n newFile,\n fileContainer,\n lineAnnotations,\n prerenderedHTML,\n });\n } else {\n if (instanceRef.current == null) {\n throw new Error(\n 'useFileDiffInstance: A FileDiff instance should exist when unmounting'\n );\n }\n instanceRef.current.cleanUp();\n instanceRef.current = null;\n }\n });\n\n useIsometricEffect(() => {\n if (instanceRef.current == null) return;\n const instance = instanceRef.current;\n const forceRender = !areOptionsEqual(instance.options, options);\n instance.setOptions(options);\n void instance.render({\n forceRender,\n fileDiff,\n oldFile,\n newFile,\n lineAnnotations,\n });\n if (selectedLines !== undefined) {\n instance.setSelectedLines(selectedLines);\n }\n });\n\n const getHoveredLine = useCallback(():\n | GetHoveredLineResult<'diff'>\n | undefined => {\n return instanceRef.current?.getHoveredLine();\n }, []);\n\n return { ref, getHoveredLine };\n}\n"],"mappings":";;;;;;;AAoBA,MAAM,qBACJ,OAAO,WAAW,cAAc,YAAY;AAiB9C,SAAgB,oBAAiC,EAC/C,SACA,SACA,UACA,SACA,iBACA,eACA,mBACmE;CACnE,MAAM,cAAc,WAAW,kBAAkB;CACjD,MAAM,cAAc,OAAqC,KAAK;CAC9D,MAAM,MAAM,mBAAmB,kBAAsC;AACnE,MAAI,iBAAiB,MAAM;AACzB,OAAI,YAAY,WAAW,KACzB,OAAM,IAAI,MACR,mFACD;AAIH,eAAY,UAAU,IAAI,SAAS,SAAS,aAAa,KAAK;AAC9D,GAAK,YAAY,QAAQ,QAAQ;IAC/B;IACA;IACA;IACA;IACA;IACA;IACD,CAAC;SACG;AACL,OAAI,YAAY,WAAW,KACzB,OAAM,IAAI,MACR,wEACD;AAEH,eAAY,QAAQ,SAAS;AAC7B,eAAY,UAAU;;GAExB;AAEF,0BAAyB;AACvB,MAAI,YAAY,WAAW,KAAM;EACjC,MAAM,WAAW,YAAY;EAC7B,MAAM,cAAc,CAAC,gBAAgB,SAAS,SAAS,QAAQ;AAC/D,WAAS,WAAW,QAAQ;AAC5B,EAAK,SAAS,OAAO;GACnB;GACA;GACA;GACA;GACA;GACD,CAAC;AACF,MAAI,kBAAkB,OACpB,UAAS,iBAAiB,cAAc;GAE1C;AAQF,QAAO;EAAE;EAAK,gBANS,kBAEN;AACf,UAAO,YAAY,SAAS,gBAAgB;KAC3C,EAAE,CAAC;EAEwB"}
@@ -0,0 +1,27 @@
1
+ import { FileContents, LineAnnotation } from "../../types.js";
2
+ import { SelectedLineRange } from "../../managers/LineSelectionManager.js";
3
+ import { GetHoveredLineResult } from "../../managers/MouseEventManager.js";
4
+ import { FileOptions } from "../../components/File.js";
5
+
6
+ //#region src/react/utils/useFileInstance.d.ts
7
+ interface UseFileInstanceProps<LAnnotation> {
8
+ file: FileContents;
9
+ options: FileOptions<LAnnotation> | undefined;
10
+ lineAnnotations: LineAnnotation<LAnnotation>[] | undefined;
11
+ selectedLines: SelectedLineRange | null | undefined;
12
+ prerenderedHTML: string | undefined;
13
+ }
14
+ interface UseFileInstanceReturn {
15
+ ref(node: HTMLElement | null): void;
16
+ getHoveredLine(): GetHoveredLineResult<"file"> | undefined;
17
+ }
18
+ declare function useFileInstance<LAnnotation>({
19
+ file,
20
+ options,
21
+ lineAnnotations,
22
+ selectedLines,
23
+ prerenderedHTML
24
+ }: UseFileInstanceProps<LAnnotation>): UseFileInstanceReturn;
25
+ //#endregion
26
+ export { useFileInstance };
27
+ //# sourceMappingURL=useFileInstance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFileInstance.d.ts","names":[],"sources":["../../../src/react/utils/useFileInstance.ts"],"sourcesContent":[],"mappings":";;;;;;UAmBU;QACF;EAT0C,OAQxC,EAEC,WAFD,CAEa,WAFb,CAAA,GAAA,SAAA;EACF,eAAA,EAEW,cAFX,CAE0B,WAF1B,CAAA,EAAA,GAAA,SAAA;EACe,aAAA,EAEN,iBAFM,GAAA,IAAA,GAAA,SAAA;EAAZ,eAAA,EAAA,MAAA,GAAA,SAAA;;UAMD,qBAAA,CALS;EACF,GAAA,CAAA,IAAA,EAKL,WALK,GAAA,IAAA,CAAA,EAAA,IAAA;EAAA,cAAA,EAAA,EAMG,oBANH,CAAA,MAAA,CAAA,GAAA,SAAA;AAAA;AASD,iBAAA,eAAA,CAAA,WAAA,CAAA,CAAA;EAAA,IAAA;EAAA,OAAA;EAAA,eAAA;EAAA,aAAA;EAAA;AAAA,CAAA,EAMb,oBANa,CAMQ,WANR,CAAA,CAAA,EAMuB,qBANvB"}
@@ -0,0 +1,49 @@
1
+ import { File } from "../../components/File.js";
2
+ import { areOptionsEqual } from "../../utils/areOptionsEqual.js";
3
+ import { WorkerPoolContext } from "../WorkerPoolContext.js";
4
+ import { useStableCallback } from "./useStableCallback.js";
5
+ import { useCallback, useContext, useEffect, useLayoutEffect, useRef } from "react";
6
+
7
+ //#region src/react/utils/useFileInstance.ts
8
+ const useIsometricEffect = typeof window === "undefined" ? useEffect : useLayoutEffect;
9
+ function useFileInstance({ file, options, lineAnnotations, selectedLines, prerenderedHTML }) {
10
+ const poolManager = useContext(WorkerPoolContext);
11
+ const instanceRef = useRef(null);
12
+ const ref = useStableCallback((node) => {
13
+ if (node != null) {
14
+ if (instanceRef.current != null) throw new Error("File: An instance should not already exist when a node is created");
15
+ instanceRef.current = new File(options, poolManager, true);
16
+ instanceRef.current.hydrate({
17
+ file,
18
+ fileContainer: node,
19
+ lineAnnotations,
20
+ prerenderedHTML
21
+ });
22
+ } else {
23
+ if (instanceRef.current == null) throw new Error("File: A File instance should exist when unmounting");
24
+ instanceRef.current.cleanUp();
25
+ instanceRef.current = null;
26
+ }
27
+ });
28
+ useIsometricEffect(() => {
29
+ if (instanceRef.current == null) return;
30
+ const forceRender = !areOptionsEqual(instanceRef.current.options, options);
31
+ instanceRef.current.setOptions(options);
32
+ instanceRef.current.render({
33
+ file,
34
+ lineAnnotations,
35
+ forceRender
36
+ });
37
+ if (selectedLines !== void 0) instanceRef.current.setSelectedLines(selectedLines);
38
+ });
39
+ return {
40
+ ref,
41
+ getHoveredLine: useCallback(() => {
42
+ return instanceRef.current?.getHoveredLine();
43
+ }, [])
44
+ };
45
+ }
46
+
47
+ //#endregion
48
+ export { useFileInstance };
49
+ //# sourceMappingURL=useFileInstance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFileInstance.js","names":[],"sources":["../../../src/react/utils/useFileInstance.ts"],"sourcesContent":["import {\n useCallback,\n useContext,\n useEffect,\n useLayoutEffect,\n useRef,\n} from 'react';\n\nimport { File, type FileOptions } from '../../components/File';\nimport type { SelectedLineRange } from '../../managers/LineSelectionManager';\nimport type { GetHoveredLineResult } from '../../managers/MouseEventManager';\nimport type { FileContents, LineAnnotation } from '../../types';\nimport { areOptionsEqual } from '../../utils/areOptionsEqual';\nimport { WorkerPoolContext } from '../WorkerPoolContext';\nimport { useStableCallback } from './useStableCallback';\n\nconst useIsometricEffect =\n typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\ninterface UseFileInstanceProps<LAnnotation> {\n file: FileContents;\n options: FileOptions<LAnnotation> | undefined;\n lineAnnotations: LineAnnotation<LAnnotation>[] | undefined;\n selectedLines: SelectedLineRange | null | undefined;\n prerenderedHTML: string | undefined;\n}\n\ninterface UseFileInstanceReturn {\n ref(node: HTMLElement | null): void;\n getHoveredLine(): GetHoveredLineResult<'file'> | undefined;\n}\n\nexport function useFileInstance<LAnnotation>({\n file,\n options,\n lineAnnotations,\n selectedLines,\n prerenderedHTML,\n}: UseFileInstanceProps<LAnnotation>): UseFileInstanceReturn {\n const poolManager = useContext(WorkerPoolContext);\n const instanceRef = useRef<File<LAnnotation> | null>(null);\n const ref = useStableCallback((node: HTMLElement | null) => {\n if (node != null) {\n if (instanceRef.current != null) {\n throw new Error(\n 'File: An instance should not already exist when a node is created'\n );\n }\n // FIXME: Ideally we don't use FileUI here, and instead amalgamate\n // the renderers manually\n instanceRef.current = new File(options, poolManager, true);\n void instanceRef.current.hydrate({\n file,\n fileContainer: node,\n lineAnnotations,\n prerenderedHTML,\n });\n } else {\n if (instanceRef.current == null) {\n throw new Error('File: A File instance should exist when unmounting');\n }\n instanceRef.current.cleanUp();\n instanceRef.current = null;\n }\n });\n\n useIsometricEffect(() => {\n if (instanceRef.current == null) return;\n const forceRender = !areOptionsEqual(instanceRef.current.options, options);\n instanceRef.current.setOptions(options);\n void instanceRef.current.render({ file, lineAnnotations, forceRender });\n if (selectedLines !== undefined) {\n instanceRef.current.setSelectedLines(selectedLines);\n }\n });\n\n const getHoveredLine = useCallback(():\n | GetHoveredLineResult<'file'>\n | undefined => {\n return instanceRef.current?.getHoveredLine();\n }, []);\n return { ref, getHoveredLine };\n}\n"],"mappings":";;;;;;;AAgBA,MAAM,qBACJ,OAAO,WAAW,cAAc,YAAY;AAe9C,SAAgB,gBAA6B,EAC3C,MACA,SACA,iBACA,eACA,mBAC2D;CAC3D,MAAM,cAAc,WAAW,kBAAkB;CACjD,MAAM,cAAc,OAAiC,KAAK;CAC1D,MAAM,MAAM,mBAAmB,SAA6B;AAC1D,MAAI,QAAQ,MAAM;AAChB,OAAI,YAAY,WAAW,KACzB,OAAM,IAAI,MACR,oEACD;AAIH,eAAY,UAAU,IAAI,KAAK,SAAS,aAAa,KAAK;AAC1D,GAAK,YAAY,QAAQ,QAAQ;IAC/B;IACA,eAAe;IACf;IACA;IACD,CAAC;SACG;AACL,OAAI,YAAY,WAAW,KACzB,OAAM,IAAI,MAAM,qDAAqD;AAEvE,eAAY,QAAQ,SAAS;AAC7B,eAAY,UAAU;;GAExB;AAEF,0BAAyB;AACvB,MAAI,YAAY,WAAW,KAAM;EACjC,MAAM,cAAc,CAAC,gBAAgB,YAAY,QAAQ,SAAS,QAAQ;AAC1E,cAAY,QAAQ,WAAW,QAAQ;AACvC,EAAK,YAAY,QAAQ,OAAO;GAAE;GAAM;GAAiB;GAAa,CAAC;AACvE,MAAI,kBAAkB,OACpB,aAAY,QAAQ,iBAAiB,cAAc;GAErD;AAOF,QAAO;EAAE;EAAK,gBALS,kBAEN;AACf,UAAO,YAAY,SAAS,gBAAgB;KAC3C,EAAE,CAAC;EACwB"}
@@ -0,0 +1,5 @@
1
+ //#region src/react/utils/useStableCallback.d.ts
2
+ declare function useStableCallback<T extends (...args: any[]) => any>(callback: T): T;
3
+ //#endregion
4
+ export { useStableCallback };
5
+ //# sourceMappingURL=useStableCallback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStableCallback.d.ts","names":[],"sources":["../../../src/react/utils/useStableCallback.ts"],"sourcesContent":[],"mappings":";iBAGgB,+DACJ,IACT"}
@@ -0,0 +1,14 @@
1
+ import { useCallback, useInsertionEffect, useRef } from "react";
2
+
3
+ //#region src/react/utils/useStableCallback.ts
4
+ function useStableCallback(callback) {
5
+ const callbackRef = useRef(callback);
6
+ useInsertionEffect(() => void (callbackRef.current = callback));
7
+ return useCallback((...args) => {
8
+ return callbackRef.current(...args);
9
+ }, []);
10
+ }
11
+
12
+ //#endregion
13
+ export { useStableCallback };
14
+ //# sourceMappingURL=useStableCallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStableCallback.js","names":[],"sources":["../../../src/react/utils/useStableCallback.ts"],"sourcesContent":["import { useCallback, useInsertionEffect, useRef } from 'react';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function useStableCallback<T extends (...args: any[]) => any>(\n callback: T\n): T {\n const callbackRef = useRef(callback);\n useInsertionEffect(() => void (callbackRef.current = callback));\n return useCallback((...args: Parameters<T>): ReturnType<T> => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return callbackRef.current(...args);\n }, []) as T;\n}\n"],"mappings":";;;AAGA,SAAgB,kBACd,UACG;CACH,MAAM,cAAc,OAAO,SAAS;AACpC,0BAAyB,MAAM,YAAY,UAAU,UAAU;AAC/D,QAAO,aAAa,GAAG,SAAuC;AAE5D,SAAO,YAAY,QAAQ,GAAG,KAAK;IAClC,EAAE,CAAC"}
@@ -0,0 +1,62 @@
1
+ import { BaseDiffOptions, DiffLineAnnotation, DiffsHighlighter, ExpansionDirections, FileDiffMetadata, HunkData, RenderDiffOptions, ThemeTypes, ThemedDiffResult } from "../types.js";
2
+ import { WorkerPoolManager } from "../worker/WorkerPoolManager.js";
3
+ import "../worker/index.js";
4
+ import { Element, ElementContent } from "hast";
5
+
6
+ //#region src/renderers/DiffHunksRenderer.d.ts
7
+ type OptionsWithDefaults = Required<Omit<BaseDiffOptions, "lang" | "unsafeCSS">>;
8
+ interface HunksRenderResult {
9
+ additionsAST: ElementContent[] | undefined;
10
+ deletionsAST: ElementContent[] | undefined;
11
+ unifiedAST: ElementContent[] | undefined;
12
+ hunkData: HunkData[];
13
+ css: string;
14
+ preNode: Element;
15
+ headerElement: Element | undefined;
16
+ totalLines: number;
17
+ themeStyles: string;
18
+ baseThemeType: "light" | "dark" | undefined;
19
+ }
20
+ declare class DiffHunksRenderer<LAnnotation = undefined> {
21
+ options: BaseDiffOptions;
22
+ private onRenderUpdate?;
23
+ private workerManager?;
24
+ private highlighter;
25
+ private diff;
26
+ private expandedHunks;
27
+ private deletionAnnotations;
28
+ private additionAnnotations;
29
+ private computedLang;
30
+ private renderCache;
31
+ constructor(options?: BaseDiffOptions, onRenderUpdate?: (() => unknown) | undefined, workerManager?: WorkerPoolManager | undefined);
32
+ cleanUp(): void;
33
+ setOptions(options: BaseDiffOptions): void;
34
+ private mergeOptions;
35
+ setThemeType(themeType: ThemeTypes): void;
36
+ expandHunk(index: number, direction: ExpansionDirections): void;
37
+ setLineAnnotations(lineAnnotations: DiffLineAnnotation<LAnnotation>[]): void;
38
+ getOptionsWithDefaults(): OptionsWithDefaults;
39
+ initializeHighlighter(): Promise<DiffsHighlighter>;
40
+ hydrate(diff: FileDiffMetadata | undefined): void;
41
+ private getRenderOptions;
42
+ renderDiff(diff?: FileDiffMetadata | undefined): HunksRenderResult | undefined;
43
+ asyncRender(diff: FileDiffMetadata): Promise<HunksRenderResult>;
44
+ private createPreElement;
45
+ private asyncHighlight;
46
+ private renderDiffWithHighlighter;
47
+ onHighlightSuccess(diff: FileDiffMetadata, result: ThemedDiffResult, options: RenderDiffOptions): void;
48
+ onHighlightError(error: unknown): void;
49
+ private processDiffResult;
50
+ renderFullAST(result: HunksRenderResult, children?: ElementContent[]): Element;
51
+ renderFullHTML(result: HunksRenderResult, tempChildren?: ElementContent[]): string;
52
+ renderPartialHTML(children: ElementContent[], columnType?: "unified" | "deletions" | "additions"): string;
53
+ private renderCollapsedHunks;
54
+ private renderHunks;
55
+ private pushLineWithAnnotation;
56
+ private getAnnotations;
57
+ private getAnnotations;
58
+ private renderHeader;
59
+ }
60
+ //#endregion
61
+ export { DiffHunksRenderer, HunksRenderResult };
62
+ //# sourceMappingURL=DiffHunksRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiffHunksRenderer.d.ts","names":["options: BaseDiffOptions","onRenderUpdate?: () => unknown","workerManager?: WorkerPoolManager | undefined"],"sources":["../../src/renderers/DiffHunksRenderer.ts"],"sourcesContent":[],"mappings":";;;;;;KA8GK,mBAAA,GAAsB,SACzB,KAAK;UAQU,iBAAA;gBACD;EA7EuB,YAmElC,EAWW,cAXX,EAAA,GAAA,SAAA;EACE,UAAA,EAWO,cAXP,EAAA,GAAA,SAAA;EAAL,QAAA,EAYU,QAZV,EAAA;EADyB,GAAA,EAAA,MAAA;EAAA,OAAA,EAehB,OAfgB;EAS3B,aAAiB,EAOA,OAPA,GAAA,SAAA;EACD,UAAA,EAAA,MAAA;EACA,WAAA,EAAA,MAAA;EACF,aAAA,EAAA,OAAA,GAAA,MAAA,GAAA,SAAA;;AAGH,cAOE,iBAPF,CAAA,cAAA,SAAA,CAAA,CAAA;EACM,OAAA,EAmBG,eAnBH;EAAA,QAAA,cAAA;EAMjB,QAAa,aAAA;EAaO,QAAA,WAAA;EAAA,QAAA,IAAA;EAEQ,QAAA,aAAA;EAiBN,QAAA,mBAAA;EAQI,QAAA,mBAAA;EAOa,QAAA,YAAA;EAekB,QAAA,WAAA;EAAnB,WAAA,CAAA,OAAA,CAAA,EAjDlB,eAiDkB,EAAA,cAAA,CAAA,EAAA,CAAA,GAAA,GAAA,OAAA,CAAA,GAAA,SAAA,EAAA,aAAA,CAAA,EA/CV,iBA+CU,GAAA,SAAA;EAkBV,OAAA,CAAA,CAAA,EAAA,IAAA;EAqCa,UAAA,CAAA,OAAA,EArFnB,eAqFmB,CAAA,EAAA,IAAA;EAAR,QAAA,YAAA;EAOjB,YAAA,CAAA,SAAA,EApFU,UAoFV,CAAA,EAAA,IAAA;EAsDN,UAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAnI6B,mBAmI7B,CAAA,EAAA,IAAA;EACL,kBAAA,CAAA,eAAA,EArHiC,kBAqHjC,CArHoD,WAqHpD,CAAA,EAAA,CAAA,EAAA,IAAA;EAiEqB,sBAAA,CAAA,CAAA,EApKE,mBAoKF;EAA2B,qBAAA,CAAA,CAAA,EA/HpB,OA+HoB,CA/HZ,gBA+HY,CAAA;EAAR,OAAA,CAAA,IAAA,EAxH7B,gBAwH6B,GAAA,SAAA,CAAA,EAAA,IAAA;EA+DnC,QAAA,gBAAA;EACE,UAAA,CAAA,IAAA,CAAA,EAlIF,gBAkIE,GAAA,SAAA,CAAA,EAjIP,iBAiIO,GAAA,SAAA;EACC,WAAA,CAAA,IAAA,EAjEa,gBAiEb,CAAA,EAjEgC,OAiEhC,CAjEwC,iBAiExC,CAAA;EAuGD,QAAA,gBAAA;EACE,QAAA,cAAA;EACT,QAAA,yBAAA;EAyCO,kBAAA,CAAA,IAAA,EApJF,gBAoJE,EAAA,MAAA,EAnJA,gBAmJA,EAAA,OAAA,EAlJC,iBAkJD,CAAA,EAAA,IAAA;EACM,gBAAA,CAAA,KAAA,EAAA,OAAA,CAAA,EAAA,IAAA;EAMJ,QAAA,iBAAA;EAAA,aAAA,CAAA,MAAA,EAlDF,iBAkDE,EAAA,QAAA,CAAA,EAjDA,cAiDA,EAAA,CAAA,EAhDT,OAgDS;yBAPF,kCACM;8BAMJ"}