@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 @@
1
+ {"version":3,"file":"getHighlighterOptions.d.ts","names":[],"sources":["../../src/utils/getHighlighterOptions.ts"],"sourcesContent":[],"mappings":";;;UAGU,uBAAA;UACA,kBAAkB;AAJyC;AAIzC,UAGlB,2BAAA,CAAA;EAKV,KAAgB,EAJP,kBAIO,EAAA;EACR,MAAA,EAJE,eAIF,EAAA;;AAEL,iBAHa,qBAAA,CAGb,IAAA,EAFK,kBAEL,GAAA,SAAA,EAAA,OAAA,EADQ,uBACR,CAAA,EAAA,2BAAA"}
@@ -0,0 +1,13 @@
1
+ import { getThemes } from "./getThemes.js";
2
+
3
+ //#region src/utils/getHighlighterOptions.ts
4
+ function getHighlighterOptions(lang, options) {
5
+ return {
6
+ langs: [lang ?? "text"],
7
+ themes: getThemes(options.theme)
8
+ };
9
+ }
10
+
11
+ //#endregion
12
+ export { getHighlighterOptions };
13
+ //# sourceMappingURL=getHighlighterOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getHighlighterOptions.js","names":[],"sources":["../../src/utils/getHighlighterOptions.ts"],"sourcesContent":["import type { DiffsThemeNames, SupportedLanguages, ThemesType } from '../types';\nimport { getThemes } from './getThemes';\n\ninterface HighlighterOptionsShape {\n theme?: DiffsThemeNames | ThemesType;\n}\n\ninterface GetHighlighterOptionsReturn {\n langs: SupportedLanguages[];\n themes: DiffsThemeNames[];\n}\n\nexport function getHighlighterOptions(\n lang: SupportedLanguages | undefined,\n options: HighlighterOptionsShape\n): GetHighlighterOptionsReturn {\n return {\n langs: [lang ?? 'text'],\n themes: getThemes(options.theme),\n };\n}\n"],"mappings":";;;AAYA,SAAgB,sBACd,MACA,SAC6B;AAC7B,QAAO;EACL,OAAO,CAAC,QAAQ,OAAO;EACvB,QAAQ,UAAU,QAAQ,MAAM;EACjC"}
@@ -0,0 +1,16 @@
1
+ import { DiffsHighlighter, DiffsThemeNames, ThemesType } from "../types.js";
2
+
3
+ //#region src/utils/getHighlighterThemeStyles.d.ts
4
+ interface GetHighlighterThemeStylesProps {
5
+ theme?: DiffsThemeNames | ThemesType;
6
+ highlighter: DiffsHighlighter;
7
+ prefix?: string;
8
+ }
9
+ declare function getHighlighterThemeStyles({
10
+ theme,
11
+ highlighter,
12
+ prefix
13
+ }: GetHighlighterThemeStylesProps): string;
14
+ //#endregion
15
+ export { getHighlighterThemeStyles };
16
+ //# sourceMappingURL=getHighlighterThemeStyles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getHighlighterThemeStyles.d.ts","names":[],"sources":["../../src/utils/getHighlighterThemeStyles.ts"],"sourcesContent":[],"mappings":";;;UASU,8BAAA;UACA,kBAAkB;EAJrB,WAGG,EAEK,gBAFL;EACA,MAAA,CAAA,EAAA,MAAA;;AACK,iBAOC,yBAAA,CAPD;EAAA,KAAA;EAAA,WAAA;EAAA;AAAA,CAAA,EAWZ,8BAXY,CAAA,EAAA,MAAA"}
@@ -0,0 +1,40 @@
1
+ import { DEFAULT_THEMES } from "../constants.js";
2
+ import { formatCSSVariablePrefix } from "./formatCSSVariablePrefix.js";
3
+
4
+ //#region src/utils/getHighlighterThemeStyles.ts
5
+ function getHighlighterThemeStyles({ theme = DEFAULT_THEMES, highlighter, prefix }) {
6
+ let styles = "";
7
+ if (typeof theme === "string") {
8
+ const themeData = highlighter.getTheme(theme);
9
+ styles += `color:${themeData.fg};`;
10
+ styles += `background-color:${themeData.bg};`;
11
+ styles += `${formatCSSVariablePrefix(prefix)}fg:${themeData.fg};`;
12
+ styles += `${formatCSSVariablePrefix(prefix)}bg:${themeData.bg};`;
13
+ styles += getThemeVariables(themeData, prefix);
14
+ } else {
15
+ let themeData = highlighter.getTheme(theme.dark);
16
+ styles += `${formatCSSVariablePrefix(prefix)}dark:${themeData.fg};`;
17
+ styles += `${formatCSSVariablePrefix(prefix)}dark-bg:${themeData.bg};`;
18
+ styles += getThemeVariables(themeData, prefix, "dark");
19
+ themeData = highlighter.getTheme(theme.light);
20
+ styles += `${formatCSSVariablePrefix(prefix)}light:${themeData.fg};`;
21
+ styles += `${formatCSSVariablePrefix(prefix)}light-bg:${themeData.bg};`;
22
+ styles += getThemeVariables(themeData, prefix, "light");
23
+ }
24
+ return styles;
25
+ }
26
+ function getThemeVariables(themeData, prefix, modePrefix) {
27
+ modePrefix = modePrefix != null ? `${modePrefix}-` : "";
28
+ let styles = "";
29
+ const additionGreen = themeData.colors?.["gitDecoration.addedResourceForeground"] ?? themeData.colors?.["terminal.ansiGreen"];
30
+ if (additionGreen != null) styles += `${formatCSSVariablePrefix(prefix)}${modePrefix}addition-color:${additionGreen};`;
31
+ const deletionRed = themeData.colors?.["gitDecoration.deletedResourceForeground"] ?? themeData.colors?.["terminal.ansiRed"];
32
+ if (deletionRed != null) styles += `${formatCSSVariablePrefix(prefix)}${modePrefix}deletion-color:${deletionRed};`;
33
+ const modifiedBlue = themeData.colors?.["gitDecoration.modifiedResourceForeground"] ?? themeData.colors?.["terminal.ansiBlue"];
34
+ if (modifiedBlue != null) styles += `${formatCSSVariablePrefix(prefix)}${modePrefix}modified-color:${modifiedBlue};`;
35
+ return styles;
36
+ }
37
+
38
+ //#endregion
39
+ export { getHighlighterThemeStyles };
40
+ //# sourceMappingURL=getHighlighterThemeStyles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getHighlighterThemeStyles.js","names":[],"sources":["../../src/utils/getHighlighterThemeStyles.ts"],"sourcesContent":["import { DEFAULT_THEMES } from '../constants';\nimport type {\n DiffsHighlighter,\n DiffsThemeNames,\n ThemeRegistrationResolved,\n ThemesType,\n} from '../types';\nimport { formatCSSVariablePrefix } from './formatCSSVariablePrefix';\n\ninterface GetHighlighterThemeStylesProps {\n theme?: DiffsThemeNames | ThemesType;\n highlighter: DiffsHighlighter;\n prefix?: string;\n}\n\n// FIXME(amadeus): We'll probably need to\n// re-think this when it comes to removing inline\n// styles\nexport function getHighlighterThemeStyles({\n theme = DEFAULT_THEMES,\n highlighter,\n prefix,\n}: GetHighlighterThemeStylesProps): string {\n let styles = '';\n if (typeof theme === 'string') {\n const themeData = highlighter.getTheme(theme);\n styles += `color:${themeData.fg};`;\n styles += `background-color:${themeData.bg};`;\n styles += `${formatCSSVariablePrefix(prefix)}fg:${themeData.fg};`;\n styles += `${formatCSSVariablePrefix(prefix)}bg:${themeData.bg};`;\n styles += getThemeVariables(themeData, prefix);\n } else {\n let themeData = highlighter.getTheme(theme.dark);\n styles += `${formatCSSVariablePrefix(prefix)}dark:${themeData.fg};`;\n styles += `${formatCSSVariablePrefix(prefix)}dark-bg:${themeData.bg};`;\n styles += getThemeVariables(themeData, prefix, 'dark');\n\n themeData = highlighter.getTheme(theme.light);\n styles += `${formatCSSVariablePrefix(prefix)}light:${themeData.fg};`;\n styles += `${formatCSSVariablePrefix(prefix)}light-bg:${themeData.bg};`;\n styles += getThemeVariables(themeData, prefix, 'light');\n }\n return styles;\n}\n\nfunction getThemeVariables(\n themeData: ThemeRegistrationResolved,\n prefix?: string,\n modePrefix?: string\n) {\n modePrefix = modePrefix != null ? `${modePrefix}-` : '';\n let styles = '';\n const additionGreen =\n themeData.colors?.['gitDecoration.addedResourceForeground'] ??\n themeData.colors?.['terminal.ansiGreen'];\n if (additionGreen != null) {\n styles += `${formatCSSVariablePrefix(prefix)}${modePrefix}addition-color:${additionGreen};`;\n }\n const deletionRed =\n themeData.colors?.['gitDecoration.deletedResourceForeground'] ??\n themeData.colors?.['terminal.ansiRed'];\n if (deletionRed != null) {\n styles += `${formatCSSVariablePrefix(prefix)}${modePrefix}deletion-color:${deletionRed};`;\n }\n const modifiedBlue =\n themeData.colors?.['gitDecoration.modifiedResourceForeground'] ??\n themeData.colors?.['terminal.ansiBlue'];\n if (modifiedBlue != null) {\n styles += `${formatCSSVariablePrefix(prefix)}${modePrefix}modified-color:${modifiedBlue};`;\n }\n return styles;\n}\n"],"mappings":";;;;AAkBA,SAAgB,0BAA0B,EACxC,QAAQ,gBACR,aACA,UACyC;CACzC,IAAI,SAAS;AACb,KAAI,OAAO,UAAU,UAAU;EAC7B,MAAM,YAAY,YAAY,SAAS,MAAM;AAC7C,YAAU,SAAS,UAAU,GAAG;AAChC,YAAU,oBAAoB,UAAU,GAAG;AAC3C,YAAU,GAAG,wBAAwB,OAAO,CAAC,KAAK,UAAU,GAAG;AAC/D,YAAU,GAAG,wBAAwB,OAAO,CAAC,KAAK,UAAU,GAAG;AAC/D,YAAU,kBAAkB,WAAW,OAAO;QACzC;EACL,IAAI,YAAY,YAAY,SAAS,MAAM,KAAK;AAChD,YAAU,GAAG,wBAAwB,OAAO,CAAC,OAAO,UAAU,GAAG;AACjE,YAAU,GAAG,wBAAwB,OAAO,CAAC,UAAU,UAAU,GAAG;AACpE,YAAU,kBAAkB,WAAW,QAAQ,OAAO;AAEtD,cAAY,YAAY,SAAS,MAAM,MAAM;AAC7C,YAAU,GAAG,wBAAwB,OAAO,CAAC,QAAQ,UAAU,GAAG;AAClE,YAAU,GAAG,wBAAwB,OAAO,CAAC,WAAW,UAAU,GAAG;AACrE,YAAU,kBAAkB,WAAW,QAAQ,QAAQ;;AAEzD,QAAO;;AAGT,SAAS,kBACP,WACA,QACA,YACA;AACA,cAAa,cAAc,OAAO,GAAG,WAAW,KAAK;CACrD,IAAI,SAAS;CACb,MAAM,gBACJ,UAAU,SAAS,4CACnB,UAAU,SAAS;AACrB,KAAI,iBAAiB,KACnB,WAAU,GAAG,wBAAwB,OAAO,GAAG,WAAW,iBAAiB,cAAc;CAE3F,MAAM,cACJ,UAAU,SAAS,8CACnB,UAAU,SAAS;AACrB,KAAI,eAAe,KACjB,WAAU,GAAG,wBAAwB,OAAO,GAAG,WAAW,iBAAiB,YAAY;CAEzF,MAAM,eACJ,UAAU,SAAS,+CACnB,UAAU,SAAS;AACrB,KAAI,gBAAgB,KAClB,WAAU,GAAG,wBAAwB,OAAO,GAAG,WAAW,iBAAiB,aAAa;AAE1F,QAAO"}
@@ -0,0 +1,5 @@
1
+ //#region src/utils/getHunkSeparatorSlotName.d.ts
2
+ declare function getHunkSeparatorSlotName(type: "unified" | "additions" | "deletions", hunkIndex: number): string;
3
+ //#endregion
4
+ export { getHunkSeparatorSlotName };
5
+ //# sourceMappingURL=getHunkSeparatorSlotName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getHunkSeparatorSlotName.d.ts","names":[],"sources":["../../src/utils/getHunkSeparatorSlotName.ts"],"sourcesContent":[],"mappings":";iBAAgB,wBAAA"}
@@ -0,0 +1,8 @@
1
+ //#region src/utils/getHunkSeparatorSlotName.ts
2
+ function getHunkSeparatorSlotName(type, hunkIndex) {
3
+ return `hunk-separator-${type}-${hunkIndex}`;
4
+ }
5
+
6
+ //#endregion
7
+ export { getHunkSeparatorSlotName };
8
+ //# sourceMappingURL=getHunkSeparatorSlotName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getHunkSeparatorSlotName.js","names":[],"sources":["../../src/utils/getHunkSeparatorSlotName.ts"],"sourcesContent":["export function getHunkSeparatorSlotName(\n type: 'unified' | 'additions' | 'deletions',\n hunkIndex: number\n) {\n return `hunk-separator-${type}-${hunkIndex}`;\n}\n"],"mappings":";AAAA,SAAgB,yBACd,MACA,WACA;AACA,QAAO,kBAAkB,KAAK,GAAG"}
@@ -0,0 +1,8 @@
1
+ import { ChangeTypes } from "../types.js";
2
+ import { SVGSpriteNames } from "../sprite.js";
3
+
4
+ //#region src/utils/getIconForType.d.ts
5
+ declare function getIconForType(type: ChangeTypes | "file"): Extract<SVGSpriteNames, "diffs-icon-file-code" | "diffs-icon-symbol-modified" | "diffs-icon-symbol-deleted" | "diffs-icon-symbol-added" | "diffs-icon-symbol-moved">;
6
+ //#endregion
7
+ export { getIconForType };
8
+ //# sourceMappingURL=getIconForType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getIconForType.d.ts","names":[],"sources":["../../src/utils/getIconForType.ts"],"sourcesContent":[],"mappings":";;;;iBAGgB,cAAA,OACR,uBACL,QACD"}
@@ -0,0 +1,15 @@
1
+ //#region src/utils/getIconForType.ts
2
+ function getIconForType(type) {
3
+ switch (type) {
4
+ case "file": return "diffs-icon-file-code";
5
+ case "change": return "diffs-icon-symbol-modified";
6
+ case "new": return "diffs-icon-symbol-added";
7
+ case "deleted": return "diffs-icon-symbol-deleted";
8
+ case "rename-pure":
9
+ case "rename-changed": return "diffs-icon-symbol-moved";
10
+ }
11
+ }
12
+
13
+ //#endregion
14
+ export { getIconForType };
15
+ //# sourceMappingURL=getIconForType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getIconForType.js","names":[],"sources":["../../src/utils/getIconForType.ts"],"sourcesContent":["import type { SVGSpriteNames } from '../sprite';\nimport type { ChangeTypes } from '../types';\n\nexport function getIconForType(\n type: ChangeTypes | 'file'\n): Extract<\n SVGSpriteNames,\n | 'diffs-icon-file-code'\n | 'diffs-icon-symbol-modified'\n | 'diffs-icon-symbol-deleted'\n | 'diffs-icon-symbol-added'\n | 'diffs-icon-symbol-moved'\n> {\n switch (type) {\n case 'file':\n return 'diffs-icon-file-code';\n case 'change':\n return 'diffs-icon-symbol-modified';\n case 'new':\n return 'diffs-icon-symbol-added';\n case 'deleted':\n return 'diffs-icon-symbol-deleted';\n case 'rename-pure':\n case 'rename-changed':\n return 'diffs-icon-symbol-moved';\n }\n}\n"],"mappings":";AAGA,SAAgB,eACd,MAQA;AACA,SAAQ,MAAR;EACE,KAAK,OACH,QAAO;EACT,KAAK,SACH,QAAO;EACT,KAAK,MACH,QAAO;EACT,KAAK,UACH,QAAO;EACT,KAAK;EACL,KAAK,iBACH,QAAO"}
@@ -0,0 +1,7 @@
1
+ import { DiffLineAnnotation, LineAnnotation } from "../types.js";
2
+
3
+ //#region src/utils/getLineAnnotationName.d.ts
4
+ declare function getLineAnnotationName<T = undefined>(annotation: LineAnnotation<T> | DiffLineAnnotation<T>): string;
5
+ //#endregion
6
+ export { getLineAnnotationName };
7
+ //# sourceMappingURL=getLineAnnotationName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getLineAnnotationName.d.ts","names":[],"sources":["../../src/utils/getLineAnnotationName.ts"],"sourcesContent":[],"mappings":";;;iBAEgB,iDACF,eAAe,KAAK,mBAAmB"}
@@ -0,0 +1,8 @@
1
+ //#region src/utils/getLineAnnotationName.ts
2
+ function getLineAnnotationName(annotation) {
3
+ return `annotation-${"side" in annotation ? `${annotation.side}-` : ""}${annotation.lineNumber}`;
4
+ }
5
+
6
+ //#endregion
7
+ export { getLineAnnotationName };
8
+ //# sourceMappingURL=getLineAnnotationName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getLineAnnotationName.js","names":[],"sources":["../../src/utils/getLineAnnotationName.ts"],"sourcesContent":["import type { DiffLineAnnotation, LineAnnotation } from '../types';\n\nexport function getLineAnnotationName<T = undefined>(\n annotation: LineAnnotation<T> | DiffLineAnnotation<T>\n): string {\n return `annotation-${'side' in annotation ? `${annotation.side}-` : ''}${annotation.lineNumber}`;\n}\n"],"mappings":";AAEA,SAAgB,sBACd,YACQ;AACR,QAAO,cAAc,UAAU,aAAa,GAAG,WAAW,KAAK,KAAK,KAAK,WAAW"}
@@ -0,0 +1,5 @@
1
+ //#region src/utils/getLineEndingType.d.ts
2
+ declare function getLineEndingType(content: string): "CRLF" | "CR" | "LF" | "none";
3
+ //#endregion
4
+ export { getLineEndingType };
5
+ //# sourceMappingURL=getLineEndingType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getLineEndingType.d.ts","names":[],"sources":["../../src/utils/getLineEndingType.ts"],"sourcesContent":[],"mappings":";iBAAgB,iBAAA"}
@@ -0,0 +1,11 @@
1
+ //#region src/utils/getLineEndingType.ts
2
+ function getLineEndingType(content) {
3
+ if (content.includes("\r\n")) return "CRLF";
4
+ if (content.includes("\r")) return "CR";
5
+ if (content.includes("\n")) return "LF";
6
+ return "none";
7
+ }
8
+
9
+ //#endregion
10
+ export { getLineEndingType };
11
+ //# sourceMappingURL=getLineEndingType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getLineEndingType.js","names":[],"sources":["../../src/utils/getLineEndingType.ts"],"sourcesContent":["export function getLineEndingType(\n content: string\n): 'CRLF' | 'CR' | 'LF' | 'none' {\n // Windows\n if (content.includes('\\r\\n')) {\n return 'CRLF';\n }\n // Old Mac\n if (content.includes('\\r')) {\n return 'CR';\n }\n // Unix/Linux/Modern Mac\n if (content.includes('\\n')) {\n return 'LF';\n }\n // No line endings found\n return 'none';\n}\n"],"mappings":";AAAA,SAAgB,kBACd,SAC+B;AAE/B,KAAI,QAAQ,SAAS,OAAO,CAC1B,QAAO;AAGT,KAAI,QAAQ,SAAS,KAAK,CACxB,QAAO;AAGT,KAAI,QAAQ,SAAS,KAAK,CACxB,QAAO;AAGT,QAAO"}
@@ -0,0 +1,7 @@
1
+ import { ElementContent, Root } from "hast";
2
+
3
+ //#region src/utils/getLineNodes.d.ts
4
+ declare function getLineNodes(nodes: Root): ElementContent[];
5
+ //#endregion
6
+ export { getLineNodes };
7
+ //# sourceMappingURL=getLineNodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getLineNodes.d.ts","names":[],"sources":["../../src/utils/getLineNodes.ts"],"sourcesContent":[],"mappings":";;;iBAEgB,YAAA,QAAoB,OAAO"}
@@ -0,0 +1,15 @@
1
+ //#region src/utils/getLineNodes.ts
2
+ function getLineNodes(nodes) {
3
+ let firstChild = nodes.children[0];
4
+ while (firstChild != null) {
5
+ if (firstChild.type === "element" && firstChild.tagName === "code") return firstChild.children;
6
+ if ("children" in firstChild) firstChild = firstChild.children[0];
7
+ else firstChild = null;
8
+ }
9
+ console.error(nodes);
10
+ throw new Error("getLineNodes: Unable to find children");
11
+ }
12
+
13
+ //#endregion
14
+ export { getLineNodes };
15
+ //# sourceMappingURL=getLineNodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getLineNodes.js","names":["firstChild: RootContent | Element | Root | null"],"sources":["../../src/utils/getLineNodes.ts"],"sourcesContent":["import type { ElementContent, Root, RootContent } from 'hast';\n\nexport function getLineNodes(nodes: Root): ElementContent[] {\n let firstChild: RootContent | Element | Root | null = nodes.children[0];\n while (firstChild != null) {\n if (firstChild.type === 'element' && firstChild.tagName === 'code') {\n return firstChild.children;\n }\n if ('children' in firstChild) {\n firstChild = firstChild.children[0];\n } else {\n firstChild = null;\n }\n }\n console.error(nodes);\n throw new Error('getLineNodes: Unable to find children');\n}\n"],"mappings":";AAEA,SAAgB,aAAa,OAA+B;CAC1D,IAAIA,aAAkD,MAAM,SAAS;AACrE,QAAO,cAAc,MAAM;AACzB,MAAI,WAAW,SAAS,aAAa,WAAW,YAAY,OAC1D,QAAO,WAAW;AAEpB,MAAI,cAAc,WAChB,cAAa,WAAW,SAAS;MAEjC,cAAa;;AAGjB,SAAQ,MAAM,MAAM;AACpB,OAAM,IAAI,MAAM,wCAAwC"}
@@ -0,0 +1,7 @@
1
+ import { FileDiffMetadata } from "../types.js";
2
+
3
+ //#region src/utils/getSingularPatch.d.ts
4
+ declare function getSingularPatch(patch: string): FileDiffMetadata;
5
+ //#endregion
6
+ export { getSingularPatch };
7
+ //# sourceMappingURL=getSingularPatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSingularPatch.d.ts","names":[],"sources":["../../src/utils/getSingularPatch.ts"],"sourcesContent":[],"mappings":";;;iBAGgB,gBAAA,iBAAiC"}
@@ -0,0 +1,20 @@
1
+ import { parsePatchFiles } from "./parsePatchFiles.js";
2
+
3
+ //#region src/utils/getSingularPatch.ts
4
+ function getSingularPatch(patch) {
5
+ const parsedPatches = parsePatchFiles(patch);
6
+ if (parsedPatches.length !== 1) {
7
+ console.error(parsedPatches);
8
+ throw new Error("PatchDiff: Provided patch must include only 1 patch, with 1 diff");
9
+ }
10
+ const { files } = parsedPatches[0];
11
+ if (files.length !== 1) {
12
+ console.error(files);
13
+ throw new Error("FileDiff: Provided patch must contain exactly 1 file diff");
14
+ }
15
+ return files[0];
16
+ }
17
+
18
+ //#endregion
19
+ export { getSingularPatch };
20
+ //# sourceMappingURL=getSingularPatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSingularPatch.js","names":[],"sources":["../../src/utils/getSingularPatch.ts"],"sourcesContent":["import type { FileDiffMetadata } from '../types';\nimport { parsePatchFiles } from './parsePatchFiles';\n\nexport function getSingularPatch(patch: string): FileDiffMetadata {\n const parsedPatches = parsePatchFiles(patch);\n if (parsedPatches.length !== 1) {\n console.error(parsedPatches);\n throw new Error(\n 'PatchDiff: Provided patch must include only 1 patch, with 1 diff'\n );\n }\n const { files } = parsedPatches[0];\n if (files.length !== 1) {\n console.error(files);\n throw new Error(\n 'FileDiff: Provided patch must contain exactly 1 file diff'\n );\n }\n return files[0];\n}\n"],"mappings":";;;AAGA,SAAgB,iBAAiB,OAAiC;CAChE,MAAM,gBAAgB,gBAAgB,MAAM;AAC5C,KAAI,cAAc,WAAW,GAAG;AAC9B,UAAQ,MAAM,cAAc;AAC5B,QAAM,IAAI,MACR,mEACD;;CAEH,MAAM,EAAE,UAAU,cAAc;AAChC,KAAI,MAAM,WAAW,GAAG;AACtB,UAAQ,MAAM,MAAM;AACpB,QAAM,IAAI,MACR,4DACD;;AAEH,QAAO,MAAM"}
@@ -0,0 +1,7 @@
1
+ import { DiffsThemeNames, ThemesType } from "../types.js";
2
+
3
+ //#region src/utils/getThemes.d.ts
4
+ declare function getThemes(theme?: DiffsThemeNames | ThemesType): DiffsThemeNames[];
5
+ //#endregion
6
+ export { getThemes };
7
+ //# sourceMappingURL=getThemes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getThemes.d.ts","names":[],"sources":["../../src/utils/getThemes.ts"],"sourcesContent":[],"mappings":";;;iBAGgB,SAAA,SACP,kBAAkB,aACxB"}
@@ -0,0 +1,16 @@
1
+ import { DEFAULT_THEMES } from "../constants.js";
2
+
3
+ //#region src/utils/getThemes.ts
4
+ function getThemes(theme = DEFAULT_THEMES) {
5
+ const themesArr = [];
6
+ if (typeof theme === "string") themesArr.push(theme);
7
+ else {
8
+ themesArr.push(theme.dark);
9
+ themesArr.push(theme.light);
10
+ }
11
+ return themesArr;
12
+ }
13
+
14
+ //#endregion
15
+ export { getThemes };
16
+ //# sourceMappingURL=getThemes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getThemes.js","names":["themesArr: DiffsThemeNames[]"],"sources":["../../src/utils/getThemes.ts"],"sourcesContent":["import { DEFAULT_THEMES } from '../constants';\nimport type { DiffsThemeNames, ThemesType } from '../types';\n\nexport function getThemes(\n theme: DiffsThemeNames | ThemesType = DEFAULT_THEMES\n): DiffsThemeNames[] {\n const themesArr: DiffsThemeNames[] = [];\n if (typeof theme === 'string') {\n themesArr.push(theme);\n } else {\n themesArr.push(theme.dark);\n themesArr.push(theme.light);\n }\n return themesArr;\n}\n"],"mappings":";;;AAGA,SAAgB,UACd,QAAsC,gBACnB;CACnB,MAAMA,YAA+B,EAAE;AACvC,KAAI,OAAO,UAAU,SACnB,WAAU,KAAK,MAAM;MAChB;AACL,YAAU,KAAK,MAAM,KAAK;AAC1B,YAAU,KAAK,MAAM,MAAM;;AAE7B,QAAO"}
@@ -0,0 +1,7 @@
1
+ import { Hunk } from "../types.js";
2
+
3
+ //#region src/utils/getTotalLineCountFromHunks.d.ts
4
+ declare function getTotalLineCountFromHunks(hunks: Hunk[]): number;
5
+ //#endregion
6
+ export { getTotalLineCountFromHunks };
7
+ //# sourceMappingURL=getTotalLineCountFromHunks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTotalLineCountFromHunks.d.ts","names":[],"sources":["../../src/utils/getTotalLineCountFromHunks.ts"],"sourcesContent":[],"mappings":";;;iBAEgB,0BAAA,QAAkC"}
@@ -0,0 +1,10 @@
1
+ //#region src/utils/getTotalLineCountFromHunks.ts
2
+ function getTotalLineCountFromHunks(hunks) {
3
+ const lastHunk = hunks[hunks.length - 1];
4
+ if (lastHunk == null) return 0;
5
+ return Math.max(lastHunk.additionStart + lastHunk.additionCount, lastHunk.deletionStart + lastHunk.deletionCount);
6
+ }
7
+
8
+ //#endregion
9
+ export { getTotalLineCountFromHunks };
10
+ //# sourceMappingURL=getTotalLineCountFromHunks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTotalLineCountFromHunks.js","names":[],"sources":["../../src/utils/getTotalLineCountFromHunks.ts"],"sourcesContent":["import type { Hunk } from '../types';\n\nexport function getTotalLineCountFromHunks(hunks: Hunk[]): number {\n const lastHunk = hunks[hunks.length - 1];\n if (lastHunk == null) {\n return 0;\n }\n return Math.max(\n lastHunk.additionStart + lastHunk.additionCount,\n lastHunk.deletionStart + lastHunk.deletionCount\n );\n}\n"],"mappings":";AAEA,SAAgB,2BAA2B,OAAuB;CAChE,MAAM,WAAW,MAAM,MAAM,SAAS;AACtC,KAAI,YAAY,KACd,QAAO;AAET,QAAO,KAAK,IACV,SAAS,gBAAgB,SAAS,eAClC,SAAS,gBAAgB,SAAS,cACnC"}
@@ -0,0 +1,31 @@
1
+ import { SVGSpriteNames } from "../sprite.js";
2
+ import { Element, ElementContent, Properties, Root, Text } from "hast";
3
+
4
+ //#region src/utils/hast_utils.d.ts
5
+ declare function createTextNodeElement(value: string): Text;
6
+ interface CreateHastElementProps {
7
+ tagName: "span" | "div" | "code" | "pre" | "slot" | "svg" | "use" | "style" | "template";
8
+ children?: ElementContent[];
9
+ properties?: Properties;
10
+ }
11
+ declare function createHastElement({
12
+ tagName,
13
+ children,
14
+ properties
15
+ }: CreateHastElementProps): Element;
16
+ interface CreateIconProps {
17
+ name: SVGSpriteNames;
18
+ width?: number;
19
+ height?: number;
20
+ properties?: Properties;
21
+ }
22
+ declare function createIconElement({
23
+ name,
24
+ width,
25
+ height,
26
+ properties
27
+ }: CreateIconProps): Element;
28
+ declare function findCodeElement(nodes: Root | Element): Element | undefined;
29
+ //#endregion
30
+ export { createHastElement, createIconElement, createTextNodeElement, findCodeElement };
31
+ //# sourceMappingURL=hast_utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hast_utils.d.ts","names":[],"sources":["../../src/utils/hast_utils.ts"],"sourcesContent":[],"mappings":";;;;iBAWgB,qBAAA,iBAAsC;UAI5C,sBAAA;EAJV,OAAgB,EAAA,MAAA,GAAA,KAAA,GAAA,MAAA,GAAA,KAAsC,GAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,OAAA,GAAA,UAAA;EAAA,QAI5C,CAAA,EAWG,cAXH,EAAA;EAeV,UAAgB,CAAA,EAHD,UAGC;;AAEd,iBAFc,iBAAA,CAEd;EAAA,OAAA;EAAA,QAAA;EAAA;AAAA,CAAA,EAEC,sBAFD,CAAA,EAE0B,OAF1B;UAWQ,eAAA,CAVR;EACC,IAAA,EAUK,cAVL;EAAyB,KAAA,CAAA,EAAA,MAAA;EAAA,MAAA,CAAA,EAAA,MAAA;EAAA,UASlB,CAAA,EAIK,UAJL;AAOV;AACE,iBADc,iBAAA,CACd;EAAA,IAAA;EAAA,KAAA;EAAA,MAAA;EAAA;AAAA,CAAA,EAIC,eAJD,CAAA,EAImB,OAJnB;AACA,iBAgBc,eAAA,CAhBd,KAAA,EAiBO,IAjBP,GAiBc,OAjBd,CAAA,EAkBC,OAlBD,GAAA,SAAA"}
@@ -0,0 +1,42 @@
1
+ //#region src/utils/hast_utils.ts
2
+ function createTextNodeElement(value) {
3
+ return {
4
+ type: "text",
5
+ value
6
+ };
7
+ }
8
+ function createHastElement({ tagName, children = [], properties = {} }) {
9
+ return {
10
+ type: "element",
11
+ tagName,
12
+ properties,
13
+ children
14
+ };
15
+ }
16
+ function createIconElement({ name, width = 16, height = 16, properties }) {
17
+ return createHastElement({
18
+ tagName: "svg",
19
+ properties: {
20
+ width,
21
+ height,
22
+ viewBox: "0 0 16 16",
23
+ ...properties
24
+ },
25
+ children: [createHastElement({
26
+ tagName: "use",
27
+ properties: { href: `#${name.replace(/^#/, "")}` }
28
+ })]
29
+ });
30
+ }
31
+ function findCodeElement(nodes) {
32
+ let firstChild = nodes.children[0];
33
+ while (firstChild != null) {
34
+ if (firstChild.type === "element" && firstChild.tagName === "code") return firstChild;
35
+ if ("children" in firstChild) firstChild = firstChild.children[0];
36
+ else firstChild = null;
37
+ }
38
+ }
39
+
40
+ //#endregion
41
+ export { createHastElement, createIconElement, createTextNodeElement, findCodeElement };
42
+ //# sourceMappingURL=hast_utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hast_utils.js","names":["firstChild: RootContent | HASTElement | Root | null"],"sources":["../../src/utils/hast_utils.ts"],"sourcesContent":["import type {\n ElementContent,\n Element as HASTElement,\n Properties,\n Root,\n RootContent,\n Text,\n} from 'hast';\n\nimport type { SVGSpriteNames } from '../sprite';\n\nexport function createTextNodeElement(value: string): Text {\n return { type: 'text', value };\n}\n\ninterface CreateHastElementProps {\n tagName:\n | 'span'\n | 'div'\n | 'code'\n | 'pre'\n | 'slot'\n | 'svg'\n | 'use'\n | 'style'\n | 'template';\n children?: ElementContent[];\n properties?: Properties;\n}\n\nexport function createHastElement({\n tagName,\n children = [],\n properties = {},\n}: CreateHastElementProps): HASTElement {\n return {\n type: 'element',\n tagName,\n properties,\n children,\n };\n}\n\ninterface CreateIconProps {\n name: SVGSpriteNames;\n width?: number;\n height?: number;\n properties?: Properties;\n}\n\nexport function createIconElement({\n name,\n width = 16,\n height = 16,\n properties,\n}: CreateIconProps): HASTElement {\n return createHastElement({\n tagName: 'svg',\n properties: { width, height, viewBox: '0 0 16 16', ...properties },\n children: [\n createHastElement({\n tagName: 'use',\n properties: { href: `#${name.replace(/^#/, '')}` },\n }),\n ],\n });\n}\n\nexport function findCodeElement(\n nodes: Root | HASTElement\n): HASTElement | undefined {\n let firstChild: RootContent | HASTElement | Root | null = nodes.children[0];\n while (firstChild != null) {\n if (firstChild.type === 'element' && firstChild.tagName === 'code') {\n return firstChild;\n }\n if ('children' in firstChild) {\n firstChild = firstChild.children[0];\n } else {\n firstChild = null;\n }\n }\n return undefined;\n}\n"],"mappings":";AAWA,SAAgB,sBAAsB,OAAqB;AACzD,QAAO;EAAE,MAAM;EAAQ;EAAO;;AAkBhC,SAAgB,kBAAkB,EAChC,SACA,WAAW,EAAE,EACb,aAAa,EAAE,IACuB;AACtC,QAAO;EACL,MAAM;EACN;EACA;EACA;EACD;;AAUH,SAAgB,kBAAkB,EAChC,MACA,QAAQ,IACR,SAAS,IACT,cAC+B;AAC/B,QAAO,kBAAkB;EACvB,SAAS;EACT,YAAY;GAAE;GAAO;GAAQ,SAAS;GAAa,GAAG;GAAY;EAClE,UAAU,CACR,kBAAkB;GAChB,SAAS;GACT,YAAY,EAAE,MAAM,IAAI,KAAK,QAAQ,MAAM,GAAG,IAAI;GACnD,CAAC,CACH;EACF,CAAC;;AAGJ,SAAgB,gBACd,OACyB;CACzB,IAAIA,aAAsD,MAAM,SAAS;AACzE,QAAO,cAAc,MAAM;AACzB,MAAI,WAAW,SAAS,aAAa,WAAW,YAAY,OAC1D,QAAO;AAET,MAAI,cAAc,WAChB,cAAa,WAAW,SAAS;MAEjC,cAAa"}
@@ -0,0 +1,5 @@
1
+ //#region src/utils/isWorkerContext.d.ts
2
+ declare function isWorkerContext(): boolean;
3
+ //#endregion
4
+ export { isWorkerContext };
5
+ //# sourceMappingURL=isWorkerContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isWorkerContext.d.ts","names":[],"sources":["../../src/utils/isWorkerContext.ts"],"sourcesContent":[],"mappings":";iBAEgB,eAAA,CAAA"}
@@ -0,0 +1,8 @@
1
+ //#region src/utils/isWorkerContext.ts
2
+ function isWorkerContext() {
3
+ return typeof WorkerGlobalScope !== "undefined" && typeof self !== "undefined" && self instanceof WorkerGlobalScope;
4
+ }
5
+
6
+ //#endregion
7
+ export { isWorkerContext };
8
+ //# sourceMappingURL=isWorkerContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isWorkerContext.js","names":[],"sources":["../../src/utils/isWorkerContext.ts"],"sourcesContent":["declare const WorkerGlobalScope: new () => Worker;\n\nexport function isWorkerContext(): boolean {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n typeof self !== 'undefined' &&\n self instanceof WorkerGlobalScope\n );\n}\n"],"mappings":";AAEA,SAAgB,kBAA2B;AACzC,QACE,OAAO,sBAAsB,eAC7B,OAAO,SAAS,eAChB,gBAAgB"}
@@ -0,0 +1,31 @@
1
+ import { DecorationItem } from "../types.js";
2
+ import { ChangeObject } from "diff";
3
+
4
+ //#region src/utils/parseDiffDecorations.d.ts
5
+ interface CreateDiffSpanDecorationProps {
6
+ line: number;
7
+ spanStart: number;
8
+ spanLength: number;
9
+ }
10
+ declare function createDiffSpanDecoration({
11
+ line,
12
+ spanStart,
13
+ spanLength
14
+ }: CreateDiffSpanDecorationProps): DecorationItem;
15
+ interface PushOrJoinSpanProps {
16
+ item: ChangeObject<string>;
17
+ arr: [0 | 1, string][];
18
+ enableJoin: boolean;
19
+ isNeutral?: boolean;
20
+ isLastItem?: boolean;
21
+ }
22
+ declare function pushOrJoinSpan({
23
+ item,
24
+ arr,
25
+ enableJoin,
26
+ isNeutral,
27
+ isLastItem
28
+ }: PushOrJoinSpanProps): void;
29
+ //#endregion
30
+ export { createDiffSpanDecoration, pushOrJoinSpan };
31
+ //# sourceMappingURL=parseDiffDecorations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseDiffDecorations.d.ts","names":[],"sources":["../../src/utils/parseDiffDecorations.ts"],"sourcesContent":[],"mappings":";;;;UAIU,6BAAA;;EAF0B,SAE1B,EAAA,MAAA;EAMV,UAAgB,EAAA,MAAA;;AAEd,iBAFc,wBAAA,CAEd;EAAA,IAAA;EAAA,SAAA;EAAA;AAAA,CAAA,EAEC,6BAFD,CAAA,EAEiC,cAFjC;UAWQ,mBAAA,CAVR;EACC,IAAA,EAUK,YAVL,CAAA,MAAA,CAAA;EAAgC,GAAA,EAAA,CAAA,CAAA,GAAA,CAAA,EAAA,MAAA,CAAA,EAAA;EAAA,UAAA,EAAA,OAAA;EAAA,SASzB,CAAA,EAAA,OAAA;EAaV,UAAgB,CAAA,EAAA,OAAA;;AAEd,iBAFc,cAAA,CAEd;EAAA,IAAA;EAAA,GAAA;EAAA,UAAA;EAAA,SAAA;EAAA;AAAA,CAAA,EAIC,mBAJD,CAAA,EAAA,IAAA"}
@@ -0,0 +1,34 @@
1
+ import "diff";
2
+
3
+ //#region src/utils/parseDiffDecorations.ts
4
+ function createDiffSpanDecoration({ line, spanStart, spanLength }) {
5
+ return {
6
+ start: {
7
+ line,
8
+ character: spanStart
9
+ },
10
+ end: {
11
+ line,
12
+ character: spanStart + spanLength
13
+ },
14
+ properties: { "data-diff-span": "" },
15
+ alwaysWrap: true
16
+ };
17
+ }
18
+ function pushOrJoinSpan({ item, arr, enableJoin, isNeutral = false, isLastItem = false }) {
19
+ const lastItem = arr[arr.length - 1];
20
+ if (lastItem == null || isLastItem || !enableJoin) {
21
+ arr.push([isNeutral ? 0 : 1, item.value]);
22
+ return;
23
+ }
24
+ const isLastItemNeutral = lastItem[0] === 0;
25
+ if (isNeutral === isLastItemNeutral || isNeutral && item.value.length === 1 && !isLastItemNeutral) {
26
+ lastItem[1] += item.value;
27
+ return;
28
+ }
29
+ arr.push([isNeutral ? 0 : 1, item.value]);
30
+ }
31
+
32
+ //#endregion
33
+ export { createDiffSpanDecoration, pushOrJoinSpan };
34
+ //# sourceMappingURL=parseDiffDecorations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseDiffDecorations.js","names":[],"sources":["../../src/utils/parseDiffDecorations.ts"],"sourcesContent":["import { type ChangeObject } from 'diff';\n\nimport type { DecorationItem } from '../types';\n\ninterface CreateDiffSpanDecorationProps {\n line: number;\n spanStart: number;\n spanLength: number;\n}\n\nexport function createDiffSpanDecoration({\n line,\n spanStart,\n spanLength,\n}: CreateDiffSpanDecorationProps): DecorationItem {\n return {\n start: { line, character: spanStart },\n end: { line, character: spanStart + spanLength },\n properties: { 'data-diff-span': '' },\n alwaysWrap: true,\n };\n}\n\ninterface PushOrJoinSpanProps {\n item: ChangeObject<string>;\n arr: [0 | 1, string][];\n enableJoin: boolean;\n isNeutral?: boolean;\n isLastItem?: boolean;\n}\n\n// For diff decoration spans, we want to be sure that if there is a single\n// white-space gap between diffs that we join them together into a longer diff span.\n// Spans are basically just a tuple - 1 means the content should be\n// highlighted, 0 means it should not, we still need to the span data to figure\n// out span positions\nexport function pushOrJoinSpan({\n item,\n arr,\n enableJoin,\n isNeutral = false,\n isLastItem = false,\n}: PushOrJoinSpanProps): void {\n const lastItem = arr[arr.length - 1];\n if (lastItem == null || isLastItem || !enableJoin) {\n arr.push([isNeutral ? 0 : 1, item.value]);\n return;\n }\n const isLastItemNeutral = lastItem[0] === 0;\n if (\n isNeutral === isLastItemNeutral ||\n // If we have a single space neutral item, lets join it to a previous\n // space non-neutral item to avoid single space gaps\n (isNeutral && item.value.length === 1 && !isLastItemNeutral)\n ) {\n lastItem[1] += item.value;\n return;\n }\n arr.push([isNeutral ? 0 : 1, item.value]);\n}\n"],"mappings":";;;AAUA,SAAgB,yBAAyB,EACvC,MACA,WACA,cACgD;AAChD,QAAO;EACL,OAAO;GAAE;GAAM,WAAW;GAAW;EACrC,KAAK;GAAE;GAAM,WAAW,YAAY;GAAY;EAChD,YAAY,EAAE,kBAAkB,IAAI;EACpC,YAAY;EACb;;AAgBH,SAAgB,eAAe,EAC7B,MACA,KACA,YACA,YAAY,OACZ,aAAa,SACe;CAC5B,MAAM,WAAW,IAAI,IAAI,SAAS;AAClC,KAAI,YAAY,QAAQ,cAAc,CAAC,YAAY;AACjD,MAAI,KAAK,CAAC,YAAY,IAAI,GAAG,KAAK,MAAM,CAAC;AACzC;;CAEF,MAAM,oBAAoB,SAAS,OAAO;AAC1C,KACE,cAAc,qBAGb,aAAa,KAAK,MAAM,WAAW,KAAK,CAAC,mBAC1C;AACA,WAAS,MAAM,KAAK;AACpB;;AAEF,KAAI,KAAK,CAAC,YAAY,IAAI,GAAG,KAAK,MAAM,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { FileContents, FileDiffMetadata } from "../types.js";
2
+
3
+ //#region src/utils/parseDiffFromFile.d.ts
4
+
5
+ /**
6
+ * Parses a diff from two file contents objects.
7
+ *
8
+ * If both `oldFile` and `newFile` have a `cacheKey`, the resulting diff will
9
+ * automatically get a combined cache key in the format `oldKey:newKey`.
10
+ */
11
+ declare function parseDiffFromFile(oldFile: FileContents, newFile: FileContents): FileDiffMetadata;
12
+ //#endregion
13
+ export { parseDiffFromFile };
14
+ //# sourceMappingURL=parseDiffFromFile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseDiffFromFile.d.ts","names":[],"sources":["../../src/utils/parseDiffFromFile.ts"],"sourcesContent":[],"mappings":";;;;;;AAYA;;;;AAGG,iBAHa,iBAAA,CAGb,OAAA,EAFQ,YAER,EAAA,OAAA,EADQ,YACR,CAAA,EAAA,gBAAA"}
@@ -0,0 +1,23 @@
1
+ import { SPLIT_WITH_NEWLINES } from "../constants.js";
2
+ import { parsePatchFiles } from "./parsePatchFiles.js";
3
+ import { createTwoFilesPatch } from "diff";
4
+
5
+ //#region src/utils/parseDiffFromFile.ts
6
+ /**
7
+ * Parses a diff from two file contents objects.
8
+ *
9
+ * If both `oldFile` and `newFile` have a `cacheKey`, the resulting diff will
10
+ * automatically get a combined cache key in the format `oldKey:newKey`.
11
+ */
12
+ function parseDiffFromFile(oldFile, newFile) {
13
+ const fileData = parsePatchFiles(createTwoFilesPatch(oldFile.name, newFile.name, oldFile.contents, newFile.contents, oldFile.header, newFile.header))[0]?.files[0];
14
+ if (fileData == null) throw new Error("parseDiffFrom: FileInvalid diff -- probably need to fix something -- if the files are the same maybe?");
15
+ fileData.oldLines = oldFile.contents.split(SPLIT_WITH_NEWLINES);
16
+ fileData.newLines = newFile.contents.split(SPLIT_WITH_NEWLINES);
17
+ if (oldFile.cacheKey != null && newFile.cacheKey != null) fileData.cacheKey = `${oldFile.cacheKey}:${newFile.cacheKey}`;
18
+ return fileData;
19
+ }
20
+
21
+ //#endregion
22
+ export { parseDiffFromFile };
23
+ //# sourceMappingURL=parseDiffFromFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseDiffFromFile.js","names":[],"sources":["../../src/utils/parseDiffFromFile.ts"],"sourcesContent":["import { createTwoFilesPatch } from 'diff';\n\nimport { SPLIT_WITH_NEWLINES } from '../constants';\nimport type { FileContents, FileDiffMetadata } from '../types';\nimport { parsePatchFiles } from './parsePatchFiles';\n\n/**\n * Parses a diff from two file contents objects.\n *\n * If both `oldFile` and `newFile` have a `cacheKey`, the resulting diff will\n * automatically get a combined cache key in the format `oldKey:newKey`.\n */\nexport function parseDiffFromFile(\n oldFile: FileContents,\n newFile: FileContents\n): FileDiffMetadata {\n const patch = createTwoFilesPatch(\n oldFile.name,\n newFile.name,\n oldFile.contents,\n newFile.contents,\n oldFile.header,\n newFile.header\n );\n const fileData = parsePatchFiles(patch)[0]?.files[0];\n if (fileData == null) {\n throw new Error(\n 'parseDiffFrom: FileInvalid diff -- probably need to fix something -- if the files are the same maybe?'\n );\n }\n fileData.oldLines = oldFile.contents.split(SPLIT_WITH_NEWLINES);\n fileData.newLines = newFile.contents.split(SPLIT_WITH_NEWLINES);\n if (oldFile.cacheKey != null && newFile.cacheKey != null) {\n fileData.cacheKey = `${oldFile.cacheKey}:${newFile.cacheKey}`;\n }\n return fileData;\n}\n"],"mappings":";;;;;;;;;;;AAYA,SAAgB,kBACd,SACA,SACkB;CASlB,MAAM,WAAW,gBARH,oBACZ,QAAQ,MACR,QAAQ,MACR,QAAQ,UACR,QAAQ,UACR,QAAQ,QACR,QAAQ,OACT,CACsC,CAAC,IAAI,MAAM;AAClD,KAAI,YAAY,KACd,OAAM,IAAI,MACR,wGACD;AAEH,UAAS,WAAW,QAAQ,SAAS,MAAM,oBAAoB;AAC/D,UAAS,WAAW,QAAQ,SAAS,MAAM,oBAAoB;AAC/D,KAAI,QAAQ,YAAY,QAAQ,QAAQ,YAAY,KAClD,UAAS,WAAW,GAAG,QAAQ,SAAS,GAAG,QAAQ;AAErD,QAAO"}
@@ -0,0 +1,11 @@
1
+ import { HunkLineType } from "../types.js";
2
+
3
+ //#region src/utils/parseLineType.d.ts
4
+ interface ParsedLine {
5
+ line: string;
6
+ type: Exclude<HunkLineType, "expanded">;
7
+ }
8
+ declare function parseLineType(line: string): ParsedLine | undefined;
9
+ //#endregion
10
+ export { ParsedLine, parseLineType };
11
+ //# sourceMappingURL=parseLineType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseLineType.d.ts","names":[],"sources":["../../src/utils/parseLineType.ts"],"sourcesContent":[],"mappings":";;;UAEiB,UAAA;;EAAjB,IAAiB,EAET,OAFS,CAED,YAFC,EAAA,UAED,CAAA;AAGhB;iBAAgB,aAAA,gBAA6B"}