@openclaw/diffs 2026.8.1-beta.3 → 2026.8.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 (1238) hide show
  1. package/dist/assets/viewer-runtime.js +134 -161
  2. package/dist/{browser.runtime-_hkQDewM.js → browser.runtime-DTKAejqd.js} +1 -1
  3. package/dist/index.js +7 -6
  4. package/dist/{viewer-assets-DKR8WLAI.js → viewer-assets-D3qrnaxI.js} +11 -23
  5. package/node_modules/@pierre/diffs/README.md +9 -0
  6. package/node_modules/@pierre/diffs/dist/components/CodeView.d.ts +94 -7
  7. package/node_modules/@pierre/diffs/dist/components/CodeView.d.ts.map +1 -1
  8. package/node_modules/@pierre/diffs/dist/components/CodeView.js +333 -47
  9. package/node_modules/@pierre/diffs/dist/components/CodeView.js.map +1 -1
  10. package/node_modules/@pierre/diffs/dist/components/File.d.ts +22 -4
  11. package/node_modules/@pierre/diffs/dist/components/File.d.ts.map +1 -1
  12. package/node_modules/@pierre/diffs/dist/components/File.js +143 -23
  13. package/node_modules/@pierre/diffs/dist/components/File.js.map +1 -1
  14. package/node_modules/@pierre/diffs/dist/components/FileDiff.d.ts +83 -19
  15. package/node_modules/@pierre/diffs/dist/components/FileDiff.d.ts.map +1 -1
  16. package/node_modules/@pierre/diffs/dist/components/FileDiff.js +461 -46
  17. package/node_modules/@pierre/diffs/dist/components/FileDiff.js.map +1 -1
  18. package/node_modules/@pierre/diffs/dist/components/FileStream.d.ts.map +1 -1
  19. package/node_modules/@pierre/diffs/dist/components/FileStream.js +2 -1
  20. package/node_modules/@pierre/diffs/dist/components/FileStream.js.map +1 -1
  21. package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.d.ts +2 -2
  22. package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.d.ts.map +1 -1
  23. package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.js +9 -4
  24. package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.js.map +1 -1
  25. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.d.ts +7 -3
  26. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.d.ts.map +1 -1
  27. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.js +87 -60
  28. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.js.map +1 -1
  29. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.d.ts +30 -5
  30. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  31. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js +277 -56
  32. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js.map +1 -1
  33. package/node_modules/@pierre/diffs/dist/components/Virtualizer.d.ts +17 -3
  34. package/node_modules/@pierre/diffs/dist/components/Virtualizer.d.ts.map +1 -1
  35. package/node_modules/@pierre/diffs/dist/components/Virtualizer.js +44 -5
  36. package/node_modules/@pierre/diffs/dist/components/Virtualizer.js.map +1 -1
  37. package/node_modules/@pierre/diffs/dist/constants.d.ts +4 -1
  38. package/node_modules/@pierre/diffs/dist/constants.d.ts.map +1 -1
  39. package/node_modules/@pierre/diffs/dist/constants.js +4 -1
  40. package/node_modules/@pierre/diffs/dist/constants.js.map +1 -1
  41. package/node_modules/@pierre/diffs/dist/edit/index.d.ts +6 -0
  42. package/node_modules/@pierre/diffs/dist/edit/index.js +3 -0
  43. package/node_modules/@pierre/diffs/dist/editor/command.d.ts +15 -0
  44. package/node_modules/@pierre/diffs/dist/editor/command.d.ts.map +1 -0
  45. package/node_modules/@pierre/diffs/dist/editor/command.js +128 -0
  46. package/node_modules/@pierre/diffs/dist/editor/command.js.map +1 -0
  47. package/node_modules/@pierre/diffs/dist/editor/editStack.d.ts +76 -0
  48. package/node_modules/@pierre/diffs/dist/editor/editStack.d.ts.map +1 -0
  49. package/node_modules/@pierre/diffs/dist/editor/editStack.js +259 -0
  50. package/node_modules/@pierre/diffs/dist/editor/editStack.js.map +1 -0
  51. package/node_modules/@pierre/diffs/dist/editor/editor.d.ts +118 -0
  52. package/node_modules/@pierre/diffs/dist/editor/editor.d.ts.map +1 -0
  53. package/node_modules/@pierre/diffs/dist/editor/editor.js +2880 -0
  54. package/node_modules/@pierre/diffs/dist/editor/editor.js.map +1 -0
  55. package/node_modules/@pierre/diffs/dist/editor/editor2.js +6 -0
  56. package/node_modules/@pierre/diffs/dist/editor/editor2.js.map +1 -0
  57. package/node_modules/@pierre/diffs/dist/editor/languages.d.ts +26 -0
  58. package/node_modules/@pierre/diffs/dist/editor/languages.d.ts.map +1 -0
  59. package/node_modules/@pierre/diffs/dist/editor/languages.js +363 -0
  60. package/node_modules/@pierre/diffs/dist/editor/languages.js.map +1 -0
  61. package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.d.ts +9 -0
  62. package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.d.ts.map +1 -0
  63. package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.js +212 -0
  64. package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.js.map +1 -0
  65. package/node_modules/@pierre/diffs/dist/editor/marker.d.ts +38 -0
  66. package/node_modules/@pierre/diffs/dist/editor/marker.d.ts.map +1 -0
  67. package/node_modules/@pierre/diffs/dist/editor/marker.js +245 -0
  68. package/node_modules/@pierre/diffs/dist/editor/marker.js.map +1 -0
  69. package/node_modules/@pierre/diffs/dist/editor/matchBrackets.d.ts +9 -0
  70. package/node_modules/@pierre/diffs/dist/editor/matchBrackets.d.ts.map +1 -0
  71. package/node_modules/@pierre/diffs/dist/editor/matchBrackets.js +138 -0
  72. package/node_modules/@pierre/diffs/dist/editor/matchBrackets.js.map +1 -0
  73. package/node_modules/@pierre/diffs/dist/editor/pieceTable.d.ts +40 -0
  74. package/node_modules/@pierre/diffs/dist/editor/pieceTable.d.ts.map +1 -0
  75. package/node_modules/@pierre/diffs/dist/editor/pieceTable.js +706 -0
  76. package/node_modules/@pierre/diffs/dist/editor/pieceTable.js.map +1 -0
  77. package/node_modules/@pierre/diffs/dist/editor/platform.d.ts +11 -0
  78. package/node_modules/@pierre/diffs/dist/editor/platform.d.ts.map +1 -0
  79. package/node_modules/@pierre/diffs/dist/editor/platform.js +31 -0
  80. package/node_modules/@pierre/diffs/dist/editor/platform.js.map +1 -0
  81. package/node_modules/@pierre/diffs/dist/editor/popover.d.ts +65 -0
  82. package/node_modules/@pierre/diffs/dist/editor/popover.d.ts.map +1 -0
  83. package/node_modules/@pierre/diffs/dist/editor/popover.js +191 -0
  84. package/node_modules/@pierre/diffs/dist/editor/popover.js.map +1 -0
  85. package/node_modules/@pierre/diffs/dist/editor/searchPanel.d.ts +41 -0
  86. package/node_modules/@pierre/diffs/dist/editor/searchPanel.d.ts.map +1 -0
  87. package/node_modules/@pierre/diffs/dist/editor/searchPanel.js +318 -0
  88. package/node_modules/@pierre/diffs/dist/editor/searchPanel.js.map +1 -0
  89. package/node_modules/@pierre/diffs/dist/editor/selection.d.ts +211 -0
  90. package/node_modules/@pierre/diffs/dist/editor/selection.d.ts.map +1 -0
  91. package/node_modules/@pierre/diffs/dist/editor/selection.js +1626 -0
  92. package/node_modules/@pierre/diffs/dist/editor/selection.js.map +1 -0
  93. package/node_modules/@pierre/diffs/dist/editor/selectionAction.d.ts +47 -0
  94. package/node_modules/@pierre/diffs/dist/editor/selectionAction.d.ts.map +1 -0
  95. package/node_modules/@pierre/diffs/dist/editor/selectionAction.js +66 -0
  96. package/node_modules/@pierre/diffs/dist/editor/selectionAction.js.map +1 -0
  97. package/node_modules/@pierre/diffs/dist/editor/sprite.d.ts +8 -0
  98. package/node_modules/@pierre/diffs/dist/editor/sprite.d.ts.map +1 -0
  99. package/node_modules/@pierre/diffs/dist/editor/sprite.js +45 -0
  100. package/node_modules/@pierre/diffs/dist/editor/sprite.js.map +1 -0
  101. package/node_modules/@pierre/diffs/dist/editor/stateStorage.d.ts +15 -0
  102. package/node_modules/@pierre/diffs/dist/editor/stateStorage.d.ts.map +1 -0
  103. package/node_modules/@pierre/diffs/dist/editor/stateStorage.js +65 -0
  104. package/node_modules/@pierre/diffs/dist/editor/stateStorage.js.map +1 -0
  105. package/node_modules/@pierre/diffs/dist/editor/textDocument.d.ts +67 -0
  106. package/node_modules/@pierre/diffs/dist/editor/textDocument.d.ts.map +1 -0
  107. package/node_modules/@pierre/diffs/dist/editor/textDocument.js +278 -0
  108. package/node_modules/@pierre/diffs/dist/editor/textDocument.js.map +1 -0
  109. package/node_modules/@pierre/diffs/dist/editor/textMeasure.d.ts +61 -0
  110. package/node_modules/@pierre/diffs/dist/editor/textMeasure.d.ts.map +1 -0
  111. package/node_modules/@pierre/diffs/dist/editor/textMeasure.js +209 -0
  112. package/node_modules/@pierre/diffs/dist/editor/textMeasure.js.map +1 -0
  113. package/node_modules/@pierre/diffs/dist/editor/tokenizer.d.ts +41 -0
  114. package/node_modules/@pierre/diffs/dist/editor/tokenizer.d.ts.map +1 -0
  115. package/node_modules/@pierre/diffs/dist/editor/tokenizer.js +596 -0
  116. package/node_modules/@pierre/diffs/dist/editor/tokenizer.js.map +1 -0
  117. package/node_modules/@pierre/diffs/dist/editor/utils.d.ts +22 -0
  118. package/node_modules/@pierre/diffs/dist/editor/utils.d.ts.map +1 -0
  119. package/node_modules/@pierre/diffs/dist/editor/utils.js +78 -0
  120. package/node_modules/@pierre/diffs/dist/editor/utils.js.map +1 -0
  121. package/node_modules/@pierre/diffs/dist/index.d.ts +12 -9
  122. package/node_modules/@pierre/diffs/dist/index.js +13 -10
  123. package/node_modules/@pierre/diffs/dist/managers/InteractionManager.d.ts +20 -2
  124. package/node_modules/@pierre/diffs/dist/managers/InteractionManager.d.ts.map +1 -1
  125. package/node_modules/@pierre/diffs/dist/managers/InteractionManager.js +155 -79
  126. package/node_modules/@pierre/diffs/dist/managers/InteractionManager.js.map +1 -1
  127. package/node_modules/@pierre/diffs/dist/managers/ResizeManager.d.ts +10 -2
  128. package/node_modules/@pierre/diffs/dist/managers/ResizeManager.d.ts.map +1 -1
  129. package/node_modules/@pierre/diffs/dist/managers/ResizeManager.js +33 -13
  130. package/node_modules/@pierre/diffs/dist/managers/ResizeManager.js.map +1 -1
  131. package/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.d.ts +2 -1
  132. package/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.d.ts.map +1 -1
  133. package/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.js +7 -3
  134. package/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.js.map +1 -1
  135. package/node_modules/@pierre/diffs/dist/react/CodeView.d.ts +29 -3
  136. package/node_modules/@pierre/diffs/dist/react/CodeView.d.ts.map +1 -1
  137. package/node_modules/@pierre/diffs/dist/react/CodeView.js +111 -30
  138. package/node_modules/@pierre/diffs/dist/react/CodeView.js.map +1 -1
  139. package/node_modules/@pierre/diffs/dist/react/EditContext.d.ts +20 -0
  140. package/node_modules/@pierre/diffs/dist/react/EditContext.d.ts.map +1 -0
  141. package/node_modules/@pierre/diffs/dist/react/EditContext.js +27 -0
  142. package/node_modules/@pierre/diffs/dist/react/EditContext.js.map +1 -0
  143. package/node_modules/@pierre/diffs/dist/react/File.d.ts +4 -1
  144. package/node_modules/@pierre/diffs/dist/react/File.d.ts.map +1 -1
  145. package/node_modules/@pierre/diffs/dist/react/File.js +5 -2
  146. package/node_modules/@pierre/diffs/dist/react/File.js.map +1 -1
  147. package/node_modules/@pierre/diffs/dist/react/FileDiff.d.ts +4 -1
  148. package/node_modules/@pierre/diffs/dist/react/FileDiff.d.ts.map +1 -1
  149. package/node_modules/@pierre/diffs/dist/react/FileDiff.js +5 -2
  150. package/node_modules/@pierre/diffs/dist/react/FileDiff.js.map +1 -1
  151. package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.d.ts +7 -5
  152. package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.d.ts.map +1 -1
  153. package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.js +5 -2
  154. package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.js.map +1 -1
  155. package/node_modules/@pierre/diffs/dist/react/PatchDiff.d.ts +4 -1
  156. package/node_modules/@pierre/diffs/dist/react/PatchDiff.d.ts.map +1 -1
  157. package/node_modules/@pierre/diffs/dist/react/PatchDiff.js +5 -2
  158. package/node_modules/@pierre/diffs/dist/react/PatchDiff.js.map +1 -1
  159. package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.d.ts +2 -1
  160. package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.d.ts.map +1 -1
  161. package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.js +2 -1
  162. package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.js.map +1 -1
  163. package/node_modules/@pierre/diffs/dist/react/index.d.ts +4 -3
  164. package/node_modules/@pierre/diffs/dist/react/index.js +3 -2
  165. package/node_modules/@pierre/diffs/dist/react/types.d.ts +11 -0
  166. package/node_modules/@pierre/diffs/dist/react/types.d.ts.map +1 -1
  167. package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.d.ts +2 -0
  168. package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
  169. package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.js +16 -8
  170. package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.js.map +1 -1
  171. package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.d.ts +2 -0
  172. package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.d.ts.map +1 -1
  173. package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.js +16 -8
  174. package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.js.map +1 -1
  175. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.d.ts +6 -2
  176. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
  177. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.js +21 -6
  178. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.js.map +1 -1
  179. package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.d.ts +7 -2
  180. package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.d.ts.map +1 -1
  181. package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.js +21 -6
  182. package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.js.map +1 -1
  183. package/node_modules/@pierre/diffs/dist/react/utils/useUnresolvedFileInstance.js +4 -4
  184. package/node_modules/@pierre/diffs/dist/react/utils/useUnresolvedFileInstance.js.map +1 -1
  185. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.d.ts +47 -2
  186. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
  187. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js +361 -37
  188. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js.map +1 -1
  189. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.d.ts +26 -1
  190. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.d.ts.map +1 -1
  191. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js +240 -55
  192. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js.map +1 -1
  193. package/node_modules/@pierre/diffs/dist/ssr/index.d.ts +2 -2
  194. package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.d.ts +11 -10
  195. package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.d.ts.map +1 -1
  196. package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.js +17 -7
  197. package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.js.map +1 -1
  198. package/node_modules/@pierre/diffs/dist/ssr/preloadFile.d.ts.map +1 -1
  199. package/node_modules/@pierre/diffs/dist/ssr/preloadFile.js +2 -0
  200. package/node_modules/@pierre/diffs/dist/ssr/preloadFile.js.map +1 -1
  201. package/node_modules/@pierre/diffs/dist/style.js +1 -1
  202. package/node_modules/@pierre/diffs/dist/types.d.ts +336 -5
  203. package/node_modules/@pierre/diffs/dist/types.d.ts.map +1 -1
  204. package/node_modules/@pierre/diffs/dist/utils/annotationHelpers.d.ts +20 -0
  205. package/node_modules/@pierre/diffs/dist/utils/annotationHelpers.d.ts.map +1 -0
  206. package/node_modules/@pierre/diffs/dist/utils/annotationHelpers.js +29 -0
  207. package/node_modules/@pierre/diffs/dist/utils/annotationHelpers.js.map +1 -0
  208. package/node_modules/@pierre/diffs/dist/utils/applyLineTextWithNewline.d.ts +5 -0
  209. package/node_modules/@pierre/diffs/dist/utils/applyLineTextWithNewline.d.ts.map +1 -0
  210. package/node_modules/@pierre/diffs/dist/utils/applyLineTextWithNewline.js +11 -0
  211. package/node_modules/@pierre/diffs/dist/utils/applyLineTextWithNewline.js.map +1 -0
  212. package/node_modules/@pierre/diffs/dist/utils/areHunkDataEqual.js +1 -1
  213. package/node_modules/@pierre/diffs/dist/utils/areHunkDataEqual.js.map +1 -1
  214. package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.d.ts +2 -2
  215. package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.d.ts.map +1 -1
  216. package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.js +6 -1
  217. package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.js.map +1 -1
  218. package/node_modules/@pierre/diffs/dist/utils/awaitWithTimeout.d.ts +5 -0
  219. package/node_modules/@pierre/diffs/dist/utils/awaitWithTimeout.d.ts.map +1 -0
  220. package/node_modules/@pierre/diffs/dist/utils/awaitWithTimeout.js +15 -0
  221. package/node_modules/@pierre/diffs/dist/utils/awaitWithTimeout.js.map +1 -0
  222. package/node_modules/@pierre/diffs/dist/utils/cleanLastNewline.js +6 -1
  223. package/node_modules/@pierre/diffs/dist/utils/cleanLastNewline.js.map +1 -1
  224. package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.d.ts +7 -0
  225. package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.d.ts.map +1 -0
  226. package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.js +16 -0
  227. package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.js.map +1 -0
  228. package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.d.ts +3 -1
  229. package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.d.ts.map +1 -1
  230. package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.js +8 -1
  231. package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.js.map +1 -1
  232. package/node_modules/@pierre/diffs/dist/utils/computeFileOffsets.d.ts +21 -0
  233. package/node_modules/@pierre/diffs/dist/utils/computeFileOffsets.d.ts.map +1 -0
  234. package/node_modules/@pierre/diffs/dist/utils/computeFileOffsets.js +80 -0
  235. package/node_modules/@pierre/diffs/dist/utils/computeFileOffsets.js.map +1 -0
  236. package/node_modules/@pierre/diffs/dist/utils/createCodeViewHeaderFooterHostElement.d.ts +5 -0
  237. package/node_modules/@pierre/diffs/dist/utils/createCodeViewHeaderFooterHostElement.d.ts.map +1 -0
  238. package/node_modules/@pierre/diffs/dist/utils/createCodeViewHeaderFooterHostElement.js +19 -0
  239. package/node_modules/@pierre/diffs/dist/utils/createCodeViewHeaderFooterHostElement.js.map +1 -0
  240. package/node_modules/@pierre/diffs/dist/utils/createFileHeaderElement.d.ts.map +1 -1
  241. package/node_modules/@pierre/diffs/dist/utils/createFileHeaderElement.js +5 -1
  242. package/node_modules/@pierre/diffs/dist/utils/createFileHeaderElement.js.map +1 -1
  243. package/node_modules/@pierre/diffs/dist/utils/createTransformerWithState.js +9 -0
  244. package/node_modules/@pierre/diffs/dist/utils/createTransformerWithState.js.map +1 -1
  245. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.d.ts +66 -0
  246. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.d.ts.map +1 -0
  247. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.js +437 -0
  248. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.js.map +1 -0
  249. package/node_modules/@pierre/diffs/dist/utils/getDiffFileInput.d.ts +14 -0
  250. package/node_modules/@pierre/diffs/dist/utils/getDiffFileInput.d.ts.map +1 -0
  251. package/node_modules/@pierre/diffs/dist/utils/getDiffFileInput.js +24 -0
  252. package/node_modules/@pierre/diffs/dist/utils/getDiffFileInput.js.map +1 -0
  253. package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.d.ts.map +1 -1
  254. package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.js +3 -1
  255. package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.js.map +1 -1
  256. package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.d.ts.map +1 -1
  257. package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.js +2 -1
  258. package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.js.map +1 -1
  259. package/node_modules/@pierre/diffs/dist/utils/getFiletypeFromFileName.d.ts.map +1 -1
  260. package/node_modules/@pierre/diffs/dist/utils/getFiletypeFromFileName.js +2 -0
  261. package/node_modules/@pierre/diffs/dist/utils/getFiletypeFromFileName.js.map +1 -1
  262. package/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.d.ts +7 -0
  263. package/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.d.ts.map +1 -0
  264. package/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.js +12 -0
  265. package/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.js.map +1 -0
  266. package/node_modules/@pierre/diffs/dist/utils/getTotalLineCountFromHunks.d.ts.map +1 -1
  267. package/node_modules/@pierre/diffs/dist/utils/getTotalLineCountFromHunks.js +2 -1
  268. package/node_modules/@pierre/diffs/dist/utils/getTotalLineCountFromHunks.js.map +1 -1
  269. package/node_modules/@pierre/diffs/dist/utils/guardWebKitScrollDuringRebuild.d.ts +20 -0
  270. package/node_modules/@pierre/diffs/dist/utils/guardWebKitScrollDuringRebuild.d.ts.map +1 -0
  271. package/node_modules/@pierre/diffs/dist/utils/guardWebKitScrollDuringRebuild.js +34 -0
  272. package/node_modules/@pierre/diffs/dist/utils/guardWebKitScrollDuringRebuild.js.map +1 -0
  273. package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.d.ts +10 -0
  274. package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.d.ts.map +1 -0
  275. package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.js +141 -0
  276. package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.js.map +1 -0
  277. package/node_modules/@pierre/diffs/dist/utils/isGutterUtilityPath.d.ts +5 -0
  278. package/node_modules/@pierre/diffs/dist/utils/isGutterUtilityPath.d.ts.map +1 -0
  279. package/node_modules/@pierre/diffs/dist/utils/isGutterUtilityPath.js +12 -0
  280. package/node_modules/@pierre/diffs/dist/utils/isGutterUtilityPath.js.map +1 -0
  281. package/node_modules/@pierre/diffs/dist/utils/iterateOverDiff.d.ts.map +1 -1
  282. package/node_modules/@pierre/diffs/dist/utils/iterateOverDiff.js +20 -15
  283. package/node_modules/@pierre/diffs/dist/utils/iterateOverDiff.js.map +1 -1
  284. package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.d.ts +1 -1
  285. package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.d.ts.map +1 -1
  286. package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js +26 -5
  287. package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js.map +1 -1
  288. package/node_modules/@pierre/diffs/dist/utils/parseMergeConflictDiffFromFile.d.ts.map +1 -1
  289. package/node_modules/@pierre/diffs/dist/utils/parseMergeConflictDiffFromFile.js +9 -6
  290. package/node_modules/@pierre/diffs/dist/utils/parseMergeConflictDiffFromFile.js.map +1 -1
  291. package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.d.ts.map +1 -1
  292. package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js +6 -3
  293. package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js.map +1 -1
  294. package/node_modules/@pierre/diffs/dist/utils/platform.d.ts +14 -0
  295. package/node_modules/@pierre/diffs/dist/utils/platform.d.ts.map +1 -0
  296. package/node_modules/@pierre/diffs/dist/utils/platform.js +32 -0
  297. package/node_modules/@pierre/diffs/dist/utils/platform.js.map +1 -0
  298. package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.d.ts +33 -0
  299. package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.d.ts.map +1 -0
  300. package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.js +148 -0
  301. package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.js.map +1 -0
  302. package/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.js +1 -1
  303. package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
  304. package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.js +5 -14
  305. package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.js.map +1 -1
  306. package/node_modules/@pierre/diffs/dist/utils/resolveRegion.d.ts.map +1 -1
  307. package/node_modules/@pierre/diffs/dist/utils/resolveRegion.js +18 -2
  308. package/node_modules/@pierre/diffs/dist/utils/resolveRegion.js.map +1 -1
  309. package/node_modules/@pierre/diffs/dist/utils/shouldUseTokenTransformer.d.ts +7 -3
  310. package/node_modules/@pierre/diffs/dist/utils/shouldUseTokenTransformer.d.ts.map +1 -1
  311. package/node_modules/@pierre/diffs/dist/utils/shouldUseTokenTransformer.js +1 -1
  312. package/node_modules/@pierre/diffs/dist/utils/shouldUseTokenTransformer.js.map +1 -1
  313. package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.d.ts +24 -0
  314. package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.d.ts.map +1 -0
  315. package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.js +236 -0
  316. package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.js.map +1 -0
  317. package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.d.ts +43 -2
  318. package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.d.ts.map +1 -1
  319. package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.js +107 -5
  320. package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.js.map +1 -1
  321. package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.d.ts +9 -3
  322. package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.d.ts.map +1 -1
  323. package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.js +86 -18
  324. package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.js.map +1 -1
  325. package/node_modules/@pierre/diffs/dist/worker/index.d.ts +2 -2
  326. package/node_modules/@pierre/diffs/dist/worker/types.d.ts +11 -1
  327. package/node_modules/@pierre/diffs/dist/worker/types.d.ts.map +1 -1
  328. package/node_modules/@pierre/diffs/dist/worker/wasm-B9ZqxnKj.js.map +1 -1
  329. package/node_modules/@pierre/diffs/dist/worker/worker-portable.js +116 -95
  330. package/node_modules/@pierre/diffs/dist/worker/worker-portable.js.map +1 -1
  331. package/node_modules/@pierre/diffs/dist/worker/worker.js +102 -80
  332. package/node_modules/@pierre/diffs/dist/worker/worker.js.map +1 -1
  333. package/node_modules/@pierre/diffs/node_modules/@pierre/theme/LICENSE +189 -21
  334. package/node_modules/@pierre/diffs/node_modules/@pierre/theme/NOTICE.md +32 -0
  335. package/node_modules/@pierre/diffs/node_modules/@pierre/theme/package.json +3 -2
  336. package/node_modules/@pierre/diffs/node_modules/@pierre/theming/LICENSE.md +189 -0
  337. package/node_modules/@pierre/diffs/node_modules/@pierre/theming/README.md +9 -0
  338. package/node_modules/@pierre/diffs/node_modules/@pierre/theming/package.json +5 -5
  339. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/LICENSE +22 -0
  340. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/README.md +7 -0
  341. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/1c-query.d.mts +3 -0
  342. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/1c-query.mjs +2 -0
  343. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/1c.d.mts +3 -0
  344. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/1c.mjs +2 -0
  345. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/abap.d.mts +3 -0
  346. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/abap.mjs +5 -0
  347. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/actionscript-3.d.mts +3 -0
  348. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/actionscript-3.mjs +5 -0
  349. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ada.d.mts +3 -0
  350. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ada.mjs +5 -0
  351. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/adoc.d.mts +3 -0
  352. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/adoc.mjs +2 -0
  353. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-expression.d.mts +3 -0
  354. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-expression.mjs +5 -0
  355. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-html.d.mts +3 -0
  356. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-html.mjs +16 -0
  357. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-inline-style.d.mts +3 -0
  358. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-inline-style.mjs +8 -0
  359. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-inline-template.d.mts +3 -0
  360. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-inline-template.mjs +10 -0
  361. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-let-declaration.d.mts +3 -0
  362. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-let-declaration.mjs +8 -0
  363. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-template-blocks.d.mts +3 -0
  364. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-template-blocks.mjs +10 -0
  365. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-template.d.mts +3 -0
  366. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-template.mjs +8 -0
  367. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-ts.d.mts +3 -0
  368. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-ts.mjs +18 -0
  369. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/apache.d.mts +3 -0
  370. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/apache.mjs +5 -0
  371. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/apex.d.mts +3 -0
  372. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/apex.mjs +5 -0
  373. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/apl.d.mts +3 -0
  374. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/apl.mjs +16 -0
  375. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/applescript.d.mts +3 -0
  376. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/applescript.mjs +5 -0
  377. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ara.d.mts +3 -0
  378. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ara.mjs +5 -0
  379. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/asciidoc.d.mts +3 -0
  380. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/asciidoc.mjs +5 -0
  381. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/asm.d.mts +3 -0
  382. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/asm.mjs +5 -0
  383. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/astro.d.mts +3 -0
  384. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/astro.mjs +18 -0
  385. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/awk.d.mts +3 -0
  386. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/awk.mjs +5 -0
  387. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ballerina.d.mts +3 -0
  388. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ballerina.mjs +5 -0
  389. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bash.d.mts +3 -0
  390. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bash.mjs +2 -0
  391. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bat.d.mts +3 -0
  392. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bat.mjs +5 -0
  393. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/batch.d.mts +3 -0
  394. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/batch.mjs +2 -0
  395. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/be.d.mts +3 -0
  396. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/be.mjs +2 -0
  397. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/beancount.d.mts +3 -0
  398. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/beancount.mjs +5 -0
  399. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/berry.d.mts +3 -0
  400. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/berry.mjs +5 -0
  401. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bibtex.d.mts +3 -0
  402. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bibtex.mjs +5 -0
  403. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bicep.d.mts +3 -0
  404. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bicep.mjs +5 -0
  405. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bird.d.mts +3 -0
  406. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bird.mjs +2 -0
  407. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bird2.d.mts +3 -0
  408. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bird2.mjs +5 -0
  409. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/blade.d.mts +3 -0
  410. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/blade.mjs +20 -0
  411. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bsl.d.mts +3 -0
  412. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bsl.mjs +8 -0
  413. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/c.d.mts +3 -0
  414. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/c.mjs +5 -0
  415. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/c3.d.mts +3 -0
  416. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/c3.mjs +5 -0
  417. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cadence.d.mts +3 -0
  418. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cadence.mjs +5 -0
  419. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cairo.d.mts +3 -0
  420. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cairo.mjs +8 -0
  421. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cdc.d.mts +3 -0
  422. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cdc.mjs +2 -0
  423. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cjs.d.mts +3 -0
  424. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cjs.mjs +2 -0
  425. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/clarity.d.mts +3 -0
  426. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/clarity.mjs +5 -0
  427. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/clj.d.mts +3 -0
  428. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/clj.mjs +2 -0
  429. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/clojure.d.mts +3 -0
  430. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/clojure.mjs +5 -0
  431. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/closure-templates.d.mts +3 -0
  432. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/closure-templates.mjs +2 -0
  433. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cmake.d.mts +3 -0
  434. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cmake.mjs +5 -0
  435. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cmd.d.mts +3 -0
  436. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cmd.mjs +2 -0
  437. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cobol.d.mts +3 -0
  438. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cobol.mjs +10 -0
  439. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/codeowners.d.mts +3 -0
  440. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/codeowners.mjs +5 -0
  441. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/codeql.d.mts +3 -0
  442. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/codeql.mjs +5 -0
  443. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/coffee.d.mts +3 -0
  444. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/coffee.mjs +8 -0
  445. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/coffeescript.d.mts +3 -0
  446. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/coffeescript.mjs +2 -0
  447. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/common-lisp.d.mts +3 -0
  448. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/common-lisp.mjs +5 -0
  449. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/console.d.mts +3 -0
  450. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/console.mjs +2 -0
  451. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/coq.d.mts +3 -0
  452. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/coq.mjs +5 -0
  453. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cpp-macro.d.mts +3 -0
  454. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cpp-macro.mjs +12 -0
  455. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cpp.d.mts +3 -0
  456. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cpp.mjs +14 -0
  457. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cql.d.mts +3 -0
  458. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cql.mjs +2 -0
  459. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/crystal.d.mts +3 -0
  460. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/crystal.mjs +18 -0
  461. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cs.d.mts +3 -0
  462. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cs.mjs +2 -0
  463. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/csharp.d.mts +3 -0
  464. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/csharp.mjs +5 -0
  465. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/css.d.mts +3 -0
  466. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/css.mjs +5 -0
  467. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/csv.d.mts +3 -0
  468. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/csv.mjs +5 -0
  469. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cts.d.mts +3 -0
  470. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cts.mjs +2 -0
  471. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cue.d.mts +3 -0
  472. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cue.mjs +5 -0
  473. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cypher.d.mts +3 -0
  474. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cypher.mjs +5 -0
  475. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/d.d.mts +3 -0
  476. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/d.mjs +5 -0
  477. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dart.d.mts +3 -0
  478. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dart.mjs +5 -0
  479. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dax.d.mts +3 -0
  480. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dax.mjs +5 -0
  481. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/desktop.d.mts +3 -0
  482. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/desktop.mjs +5 -0
  483. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/diff.d.mts +3 -0
  484. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/diff.mjs +5 -0
  485. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/docker.d.mts +3 -0
  486. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/docker.mjs +5 -0
  487. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dockerfile.d.mts +3 -0
  488. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dockerfile.mjs +2 -0
  489. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dotenv.d.mts +3 -0
  490. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dotenv.mjs +5 -0
  491. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dream-maker.d.mts +3 -0
  492. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dream-maker.mjs +5 -0
  493. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/edge.d.mts +3 -0
  494. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/edge.mjs +12 -0
  495. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/elisp.d.mts +3 -0
  496. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/elisp.mjs +2 -0
  497. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/elixir.d.mts +3 -0
  498. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/elixir.mjs +8 -0
  499. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/elm.d.mts +3 -0
  500. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/elm.mjs +8 -0
  501. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/emacs-lisp.d.mts +3 -0
  502. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/emacs-lisp.mjs +5 -0
  503. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/erb.d.mts +3 -0
  504. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/erb.mjs +10 -0
  505. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/erl.d.mts +3 -0
  506. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/erl.mjs +2 -0
  507. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/erlang.d.mts +3 -0
  508. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/erlang.mjs +8 -0
  509. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-css.d.mts +3 -0
  510. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-css.mjs +12 -0
  511. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-glsl.d.mts +3 -0
  512. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-glsl.mjs +12 -0
  513. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-html.d.mts +3 -0
  514. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-html.mjs +12 -0
  515. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-sql.d.mts +3 -0
  516. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-sql.mjs +10 -0
  517. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-xml.d.mts +3 -0
  518. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-xml.mjs +8 -0
  519. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f.d.mts +3 -0
  520. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f.mjs +2 -0
  521. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f03.d.mts +3 -0
  522. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f03.mjs +2 -0
  523. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f08.d.mts +3 -0
  524. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f08.mjs +2 -0
  525. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f18.d.mts +3 -0
  526. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f18.mjs +2 -0
  527. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f77.d.mts +3 -0
  528. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f77.mjs +2 -0
  529. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f90.d.mts +3 -0
  530. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f90.mjs +2 -0
  531. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f95.d.mts +3 -0
  532. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f95.mjs +2 -0
  533. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fennel.d.mts +3 -0
  534. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fennel.mjs +5 -0
  535. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fish.d.mts +3 -0
  536. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fish.mjs +5 -0
  537. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fluent.d.mts +3 -0
  538. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fluent.mjs +5 -0
  539. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/for.d.mts +3 -0
  540. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/for.mjs +2 -0
  541. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fortran-fixed-form.d.mts +3 -0
  542. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fortran-fixed-form.mjs +8 -0
  543. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fortran-free-form.d.mts +3 -0
  544. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fortran-free-form.mjs +5 -0
  545. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fs.d.mts +3 -0
  546. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fs.mjs +2 -0
  547. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fsharp.d.mts +3 -0
  548. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fsharp.mjs +8 -0
  549. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fsl.d.mts +3 -0
  550. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fsl.mjs +2 -0
  551. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ftl.d.mts +3 -0
  552. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ftl.mjs +2 -0
  553. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gd.d.mts +3 -0
  554. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gd.mjs +2 -0
  555. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gdresource.d.mts +3 -0
  556. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gdresource.mjs +10 -0
  557. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gdscript.d.mts +3 -0
  558. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gdscript.mjs +5 -0
  559. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gdshader.d.mts +3 -0
  560. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gdshader.mjs +5 -0
  561. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/genie.d.mts +3 -0
  562. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/genie.mjs +5 -0
  563. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gherkin.d.mts +3 -0
  564. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gherkin.mjs +5 -0
  565. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/git-commit.d.mts +3 -0
  566. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/git-commit.mjs +8 -0
  567. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/git-rebase.d.mts +3 -0
  568. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/git-rebase.mjs +8 -0
  569. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gjs.d.mts +3 -0
  570. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gjs.mjs +2 -0
  571. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gleam.d.mts +3 -0
  572. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gleam.mjs +5 -0
  573. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/glimmer-js.d.mts +3 -0
  574. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/glimmer-js.mjs +14 -0
  575. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/glimmer-ts.d.mts +3 -0
  576. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/glimmer-ts.mjs +14 -0
  577. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/glsl.d.mts +3 -0
  578. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/glsl.mjs +8 -0
  579. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gn.d.mts +3 -0
  580. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gn.mjs +5 -0
  581. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gnuplot.d.mts +3 -0
  582. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gnuplot.mjs +5 -0
  583. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/go.d.mts +3 -0
  584. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/go.mjs +5 -0
  585. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gql.d.mts +3 -0
  586. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gql.mjs +2 -0
  587. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/graphql.d.mts +3 -0
  588. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/graphql.mjs +14 -0
  589. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/groovy.d.mts +3 -0
  590. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/groovy.mjs +5 -0
  591. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gts.d.mts +3 -0
  592. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gts.mjs +2 -0
  593. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hack.d.mts +3 -0
  594. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hack.mjs +10 -0
  595. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/haml.d.mts +3 -0
  596. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/haml.mjs +10 -0
  597. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/handlebars.d.mts +3 -0
  598. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/handlebars.mjs +14 -0
  599. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/haskell.d.mts +3 -0
  600. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/haskell.mjs +5 -0
  601. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/haxe.d.mts +3 -0
  602. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/haxe.mjs +5 -0
  603. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hbs.d.mts +3 -0
  604. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hbs.mjs +2 -0
  605. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hcl.d.mts +3 -0
  606. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hcl.mjs +5 -0
  607. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hjson.d.mts +3 -0
  608. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hjson.mjs +5 -0
  609. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hlsl.d.mts +3 -0
  610. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hlsl.mjs +5 -0
  611. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hs.d.mts +3 -0
  612. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hs.mjs +2 -0
  613. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/html-derivative.d.mts +3 -0
  614. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/html-derivative.mjs +8 -0
  615. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/html.d.mts +3 -0
  616. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/html.mjs +10 -0
  617. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/http.d.mts +3 -0
  618. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/http.mjs +14 -0
  619. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hurl.d.mts +3 -0
  620. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hurl.mjs +12 -0
  621. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hxml.d.mts +3 -0
  622. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hxml.mjs +8 -0
  623. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hy.d.mts +3 -0
  624. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hy.mjs +5 -0
  625. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/imba.d.mts +3 -0
  626. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/imba.mjs +5 -0
  627. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/index.d.mts +3 -0
  628. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/index.mjs +353 -0
  629. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ini.d.mts +3 -0
  630. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ini.mjs +5 -0
  631. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jade.d.mts +3 -0
  632. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jade.mjs +2 -0
  633. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/java.d.mts +3 -0
  634. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/java.mjs +5 -0
  635. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/javascript.d.mts +3 -0
  636. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/javascript.mjs +5 -0
  637. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jinja-html.d.mts +3 -0
  638. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jinja-html.mjs +8 -0
  639. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jinja.d.mts +3 -0
  640. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jinja.mjs +8 -0
  641. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jison.d.mts +3 -0
  642. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jison.mjs +8 -0
  643. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jl.d.mts +3 -0
  644. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jl.mjs +2 -0
  645. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/js.d.mts +3 -0
  646. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/js.mjs +2 -0
  647. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/json.d.mts +3 -0
  648. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/json.mjs +5 -0
  649. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/json5.d.mts +3 -0
  650. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/json5.mjs +5 -0
  651. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsonc.d.mts +3 -0
  652. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsonc.mjs +5 -0
  653. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsonl.d.mts +3 -0
  654. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsonl.mjs +5 -0
  655. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsonnet.d.mts +3 -0
  656. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsonnet.mjs +5 -0
  657. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jssm.d.mts +3 -0
  658. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jssm.mjs +5 -0
  659. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsx.d.mts +3 -0
  660. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsx.mjs +5 -0
  661. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/julia.d.mts +3 -0
  662. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/julia.mjs +16 -0
  663. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/just.d.mts +3 -0
  664. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/just.mjs +18 -0
  665. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kdl.d.mts +3 -0
  666. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kdl.mjs +5 -0
  667. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kotlin.d.mts +3 -0
  668. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kotlin.mjs +5 -0
  669. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kql.d.mts +3 -0
  670. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kql.mjs +2 -0
  671. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kt.d.mts +3 -0
  672. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kt.mjs +2 -0
  673. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kts.d.mts +3 -0
  674. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kts.mjs +2 -0
  675. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kusto.d.mts +3 -0
  676. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kusto.mjs +5 -0
  677. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/latex.d.mts +3 -0
  678. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/latex.mjs +8 -0
  679. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lean.d.mts +3 -0
  680. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lean.mjs +5 -0
  681. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lean4.d.mts +3 -0
  682. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lean4.mjs +2 -0
  683. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/less.d.mts +3 -0
  684. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/less.mjs +5 -0
  685. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/liquid.d.mts +3 -0
  686. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/liquid.mjs +14 -0
  687. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lisp.d.mts +3 -0
  688. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lisp.mjs +2 -0
  689. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lit.d.mts +3 -0
  690. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lit.mjs +2 -0
  691. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/llvm.d.mts +3 -0
  692. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/llvm.mjs +5 -0
  693. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/log.d.mts +3 -0
  694. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/log.mjs +5 -0
  695. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/logo.d.mts +3 -0
  696. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/logo.mjs +5 -0
  697. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lua.d.mts +3 -0
  698. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lua.mjs +8 -0
  699. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/luau.d.mts +3 -0
  700. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/luau.mjs +5 -0
  701. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/make.d.mts +3 -0
  702. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/make.mjs +5 -0
  703. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/makefile.d.mts +3 -0
  704. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/makefile.mjs +2 -0
  705. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/markdown-nix.d.mts +3 -0
  706. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/markdown-nix.mjs +5 -0
  707. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/markdown-vue.d.mts +3 -0
  708. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/markdown-vue.mjs +5 -0
  709. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/markdown.d.mts +3 -0
  710. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/markdown.mjs +5 -0
  711. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/marko.d.mts +3 -0
  712. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/marko.mjs +14 -0
  713. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/matlab.d.mts +3 -0
  714. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/matlab.mjs +5 -0
  715. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mbt.d.mts +3 -0
  716. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mbt.mjs +2 -0
  717. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mbti.d.mts +3 -0
  718. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mbti.mjs +2 -0
  719. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/md.d.mts +3 -0
  720. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/md.mjs +2 -0
  721. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mdc.d.mts +3 -0
  722. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mdc.mjs +12 -0
  723. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mdx.d.mts +3 -0
  724. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mdx.mjs +5 -0
  725. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mediawiki.d.mts +3 -0
  726. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mediawiki.mjs +2 -0
  727. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mermaid.d.mts +3 -0
  728. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mermaid.mjs +5 -0
  729. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mips.d.mts +3 -0
  730. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mips.mjs +2 -0
  731. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mipsasm.d.mts +3 -0
  732. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mipsasm.mjs +5 -0
  733. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mjs.d.mts +3 -0
  734. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mjs.mjs +2 -0
  735. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mmd.d.mts +3 -0
  736. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mmd.mjs +2 -0
  737. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mojo.d.mts +3 -0
  738. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mojo.mjs +5 -0
  739. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/moonbit.d.mts +3 -0
  740. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/moonbit.mjs +5 -0
  741. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/move.d.mts +3 -0
  742. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/move.mjs +5 -0
  743. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mts.d.mts +3 -0
  744. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mts.mjs +2 -0
  745. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nar.d.mts +3 -0
  746. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nar.mjs +2 -0
  747. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/narrat.d.mts +3 -0
  748. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/narrat.mjs +5 -0
  749. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nextflow-groovy.d.mts +3 -0
  750. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nextflow-groovy.mjs +5 -0
  751. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nextflow.d.mts +3 -0
  752. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nextflow.mjs +8 -0
  753. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nf.d.mts +3 -0
  754. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nf.mjs +2 -0
  755. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nginx.d.mts +3 -0
  756. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nginx.mjs +8 -0
  757. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nim.d.mts +3 -0
  758. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nim.mjs +20 -0
  759. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nix.d.mts +3 -0
  760. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nix.mjs +8 -0
  761. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nu.d.mts +3 -0
  762. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nu.mjs +2 -0
  763. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nushell.d.mts +3 -0
  764. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nushell.mjs +5 -0
  765. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/objc.d.mts +3 -0
  766. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/objc.mjs +2 -0
  767. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/objective-c.d.mts +3 -0
  768. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/objective-c.mjs +5 -0
  769. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/objective-cpp.d.mts +3 -0
  770. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/objective-cpp.mjs +5 -0
  771. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ocaml.d.mts +3 -0
  772. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ocaml.mjs +5 -0
  773. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/odin.d.mts +3 -0
  774. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/odin.mjs +5 -0
  775. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/openscad.d.mts +3 -0
  776. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/openscad.mjs +5 -0
  777. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pascal.d.mts +3 -0
  778. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pascal.mjs +5 -0
  779. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/perl.d.mts +3 -0
  780. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/perl.mjs +16 -0
  781. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/perl6.d.mts +3 -0
  782. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/perl6.mjs +2 -0
  783. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/php.d.mts +3 -0
  784. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/php.mjs +18 -0
  785. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pkl.d.mts +3 -0
  786. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pkl.mjs +5 -0
  787. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/plsql.d.mts +3 -0
  788. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/plsql.mjs +5 -0
  789. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/po.d.mts +3 -0
  790. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/po.mjs +5 -0
  791. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/polar.d.mts +3 -0
  792. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/polar.mjs +5 -0
  793. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/postcss.d.mts +3 -0
  794. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/postcss.mjs +5 -0
  795. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pot.d.mts +3 -0
  796. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pot.mjs +2 -0
  797. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/potx.d.mts +3 -0
  798. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/potx.mjs +2 -0
  799. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/powerquery.d.mts +3 -0
  800. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/powerquery.mjs +5 -0
  801. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/powershell.d.mts +3 -0
  802. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/powershell.mjs +5 -0
  803. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/prisma.d.mts +3 -0
  804. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/prisma.mjs +5 -0
  805. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/prolog.d.mts +3 -0
  806. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/prolog.mjs +5 -0
  807. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/properties.d.mts +3 -0
  808. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/properties.mjs +2 -0
  809. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/proto.d.mts +3 -0
  810. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/proto.mjs +5 -0
  811. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/protobuf.d.mts +3 -0
  812. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/protobuf.mjs +2 -0
  813. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ps.d.mts +3 -0
  814. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ps.mjs +2 -0
  815. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ps1.d.mts +3 -0
  816. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ps1.mjs +2 -0
  817. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pug.d.mts +3 -0
  818. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pug.mjs +12 -0
  819. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/puppet.d.mts +3 -0
  820. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/puppet.mjs +5 -0
  821. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/purescript.d.mts +3 -0
  822. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/purescript.mjs +5 -0
  823. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/py.d.mts +3 -0
  824. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/py.mjs +2 -0
  825. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/python.d.mts +3 -0
  826. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/python.mjs +5 -0
  827. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ql.d.mts +3 -0
  828. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ql.mjs +2 -0
  829. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/qml.d.mts +3 -0
  830. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/qml.mjs +8 -0
  831. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/qmldir.d.mts +3 -0
  832. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/qmldir.mjs +5 -0
  833. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/qss.d.mts +3 -0
  834. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/qss.mjs +5 -0
  835. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/r.d.mts +3 -0
  836. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/r.mjs +5 -0
  837. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/racket.d.mts +3 -0
  838. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/racket.mjs +5 -0
  839. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/raku.d.mts +3 -0
  840. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/raku.mjs +5 -0
  841. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/razor.d.mts +3 -0
  842. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/razor.mjs +10 -0
  843. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rb.d.mts +3 -0
  844. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rb.mjs +2 -0
  845. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/reg.d.mts +3 -0
  846. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/reg.mjs +5 -0
  847. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/regex.d.mts +3 -0
  848. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/regex.mjs +2 -0
  849. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/regexp.d.mts +3 -0
  850. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/regexp.mjs +5 -0
  851. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rel.d.mts +3 -0
  852. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rel.mjs +5 -0
  853. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/riscv.d.mts +3 -0
  854. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/riscv.mjs +5 -0
  855. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ron.d.mts +3 -0
  856. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ron.mjs +5 -0
  857. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rosmsg.d.mts +3 -0
  858. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rosmsg.mjs +5 -0
  859. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rs.d.mts +3 -0
  860. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rs.mjs +2 -0
  861. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rst.d.mts +3 -0
  862. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rst.mjs +22 -0
  863. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ruby.d.mts +3 -0
  864. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ruby.mjs +30 -0
  865. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rust.d.mts +3 -0
  866. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rust.mjs +5 -0
  867. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sas.d.mts +3 -0
  868. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sas.mjs +8 -0
  869. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sass.d.mts +3 -0
  870. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sass.mjs +5 -0
  871. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scad.d.mts +3 -0
  872. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scad.mjs +2 -0
  873. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scala.d.mts +3 -0
  874. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scala.mjs +5 -0
  875. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scheme.d.mts +3 -0
  876. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scheme.mjs +5 -0
  877. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scss.d.mts +3 -0
  878. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scss.mjs +8 -0
  879. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sdbl.d.mts +3 -0
  880. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sdbl.mjs +5 -0
  881. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sh.d.mts +3 -0
  882. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sh.mjs +2 -0
  883. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shader.d.mts +3 -0
  884. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shader.mjs +2 -0
  885. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shaderlab.d.mts +3 -0
  886. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shaderlab.mjs +8 -0
  887. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shell.d.mts +3 -0
  888. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shell.mjs +2 -0
  889. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shellscript.d.mts +3 -0
  890. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shellscript.mjs +5 -0
  891. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shellsession.d.mts +3 -0
  892. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shellsession.mjs +8 -0
  893. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/smalltalk.d.mts +3 -0
  894. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/smalltalk.mjs +5 -0
  895. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/solidity.d.mts +3 -0
  896. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/solidity.mjs +5 -0
  897. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/soy.d.mts +3 -0
  898. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/soy.mjs +8 -0
  899. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sparql.d.mts +3 -0
  900. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sparql.mjs +8 -0
  901. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/spl.d.mts +3 -0
  902. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/spl.mjs +2 -0
  903. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/splunk.d.mts +3 -0
  904. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/splunk.mjs +5 -0
  905. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sql.d.mts +3 -0
  906. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sql.mjs +5 -0
  907. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ssh-config.d.mts +3 -0
  908. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ssh-config.mjs +5 -0
  909. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/stata.d.mts +3 -0
  910. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/stata.mjs +8 -0
  911. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/styl.d.mts +3 -0
  912. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/styl.mjs +2 -0
  913. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/stylus.d.mts +3 -0
  914. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/stylus.mjs +5 -0
  915. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/surql.d.mts +3 -0
  916. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/surql.mjs +2 -0
  917. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/surrealql.d.mts +3 -0
  918. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/surrealql.mjs +8 -0
  919. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/svelte.d.mts +3 -0
  920. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/svelte.mjs +14 -0
  921. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/swift.d.mts +3 -0
  922. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/swift.mjs +5 -0
  923. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/system-verilog.d.mts +3 -0
  924. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/system-verilog.mjs +5 -0
  925. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/systemd.d.mts +3 -0
  926. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/systemd.mjs +5 -0
  927. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/talon.d.mts +3 -0
  928. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/talon.mjs +2 -0
  929. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/talonscript.d.mts +3 -0
  930. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/talonscript.mjs +5 -0
  931. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tasl.d.mts +3 -0
  932. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tasl.mjs +5 -0
  933. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tcl.d.mts +3 -0
  934. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tcl.mjs +5 -0
  935. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/templ.d.mts +3 -0
  936. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/templ.mjs +12 -0
  937. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/terraform.d.mts +3 -0
  938. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/terraform.mjs +5 -0
  939. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tex.d.mts +3 -0
  940. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tex.mjs +8 -0
  941. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tf.d.mts +3 -0
  942. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tf.mjs +2 -0
  943. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tfvars.d.mts +3 -0
  944. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tfvars.mjs +2 -0
  945. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/toml.d.mts +3 -0
  946. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/toml.mjs +5 -0
  947. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tres.d.mts +3 -0
  948. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tres.mjs +2 -0
  949. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ts-tags.d.mts +3 -0
  950. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ts-tags.mjs +18 -0
  951. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ts.d.mts +3 -0
  952. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ts.mjs +2 -0
  953. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tscn.d.mts +3 -0
  954. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tscn.mjs +2 -0
  955. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tsp.d.mts +3 -0
  956. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tsp.mjs +2 -0
  957. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tsv.d.mts +3 -0
  958. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tsv.mjs +5 -0
  959. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tsx.d.mts +3 -0
  960. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tsx.mjs +5 -0
  961. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/turtle.d.mts +3 -0
  962. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/turtle.mjs +5 -0
  963. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/twig.d.mts +3 -0
  964. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/twig.mjs +18 -0
  965. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typ.d.mts +3 -0
  966. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typ.mjs +2 -0
  967. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typescript.d.mts +3 -0
  968. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typescript.mjs +5 -0
  969. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typespec.d.mts +3 -0
  970. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typespec.mjs +5 -0
  971. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typst.d.mts +3 -0
  972. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typst.mjs +5 -0
  973. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/v.d.mts +3 -0
  974. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/v.mjs +5 -0
  975. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vala.d.mts +3 -0
  976. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vala.mjs +5 -0
  977. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vb.d.mts +3 -0
  978. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vb.mjs +5 -0
  979. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/verilog.d.mts +3 -0
  980. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/verilog.mjs +5 -0
  981. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vhdl.d.mts +3 -0
  982. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vhdl.mjs +5 -0
  983. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vim.d.mts +3 -0
  984. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vim.mjs +2 -0
  985. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/viml.d.mts +3 -0
  986. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/viml.mjs +5 -0
  987. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vimscript.d.mts +3 -0
  988. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vimscript.mjs +2 -0
  989. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-directives.d.mts +3 -0
  990. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-directives.mjs +5 -0
  991. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-html.d.mts +3 -0
  992. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-html.mjs +8 -0
  993. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-interpolations.d.mts +3 -0
  994. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-interpolations.mjs +5 -0
  995. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-sfc-style-variable-injection.d.mts +3 -0
  996. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-sfc-style-variable-injection.mjs +8 -0
  997. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-vine.d.mts +3 -0
  998. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-vine.mjs +18 -0
  999. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue.d.mts +3 -0
  1000. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue.mjs +26 -0
  1001. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vy.d.mts +3 -0
  1002. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vy.mjs +2 -0
  1003. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vyper.d.mts +3 -0
  1004. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vyper.mjs +5 -0
  1005. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wasm.d.mts +3 -0
  1006. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wasm.mjs +5 -0
  1007. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wenyan.d.mts +3 -0
  1008. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wenyan.mjs +5 -0
  1009. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wgsl.d.mts +3 -0
  1010. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wgsl.mjs +5 -0
  1011. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wiki.d.mts +3 -0
  1012. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wiki.mjs +2 -0
  1013. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wikitext.d.mts +3 -0
  1014. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wikitext.mjs +5 -0
  1015. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wit.d.mts +3 -0
  1016. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wit.mjs +5 -0
  1017. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wl.d.mts +3 -0
  1018. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wl.mjs +2 -0
  1019. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wolfram.d.mts +3 -0
  1020. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wolfram.mjs +5 -0
  1021. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/xml.d.mts +3 -0
  1022. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/xml.mjs +8 -0
  1023. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/xsl.d.mts +3 -0
  1024. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/xsl.mjs +8 -0
  1025. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/yaml.d.mts +3 -0
  1026. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/yaml.mjs +5 -0
  1027. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/yml.d.mts +3 -0
  1028. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/yml.mjs +2 -0
  1029. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/zenscript.d.mts +3 -0
  1030. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/zenscript.mjs +5 -0
  1031. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/zig.d.mts +3 -0
  1032. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/zig.mjs +5 -0
  1033. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/zsh.d.mts +3 -0
  1034. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/zsh.mjs +2 -0
  1035. package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/package.json +387 -0
  1036. package/node_modules/@pierre/diffs/package.json +13 -4
  1037. package/node_modules/@shikijs/langs/dist/actionscript-3.mjs +1 -1
  1038. package/node_modules/@shikijs/langs/dist/actionscript.d.mts +3 -0
  1039. package/node_modules/@shikijs/langs/dist/actionscript.mjs +2 -0
  1040. package/node_modules/@shikijs/langs/dist/ahk.d.mts +3 -0
  1041. package/node_modules/@shikijs/langs/dist/ahk.mjs +5 -0
  1042. package/node_modules/@shikijs/langs/dist/ahk1.d.mts +3 -0
  1043. package/node_modules/@shikijs/langs/dist/ahk1.mjs +2 -0
  1044. package/node_modules/@shikijs/langs/dist/ahk2.d.mts +3 -0
  1045. package/node_modules/@shikijs/langs/dist/ahk2.mjs +5 -0
  1046. package/node_modules/@shikijs/langs/dist/apex.mjs +1 -1
  1047. package/node_modules/@shikijs/langs/dist/as3.d.mts +3 -0
  1048. package/node_modules/@shikijs/langs/dist/as3.mjs +2 -0
  1049. package/node_modules/@shikijs/langs/dist/asciidoc.mjs +1 -1
  1050. package/node_modules/@shikijs/langs/dist/bat.mjs +1 -1
  1051. package/node_modules/@shikijs/langs/dist/bird2.mjs +1 -1
  1052. package/node_modules/@shikijs/langs/dist/bsl.mjs +1 -1
  1053. package/node_modules/@shikijs/langs/dist/c3.mjs +1 -1
  1054. package/node_modules/@shikijs/langs/dist/chapel.d.mts +3 -0
  1055. package/node_modules/@shikijs/langs/dist/chapel.mjs +8 -0
  1056. package/node_modules/@shikijs/langs/dist/chpl.d.mts +3 -0
  1057. package/node_modules/@shikijs/langs/dist/chpl.mjs +2 -0
  1058. package/node_modules/@shikijs/langs/dist/clarity.mjs +1 -1
  1059. package/node_modules/@shikijs/langs/dist/cmd.mjs +2 -2
  1060. package/node_modules/@shikijs/langs/dist/coq.mjs +1 -1
  1061. package/node_modules/@shikijs/langs/dist/cpp-macro.mjs +1 -3
  1062. package/node_modules/@shikijs/langs/dist/cpp.mjs +1 -3
  1063. package/node_modules/@shikijs/langs/dist/emacs-lisp.mjs +1 -1
  1064. package/node_modules/@shikijs/langs/dist/gdscript.mjs +1 -1
  1065. package/node_modules/@shikijs/langs/dist/hack.mjs +1 -1
  1066. package/node_modules/@shikijs/langs/dist/haxe.mjs +1 -1
  1067. package/node_modules/@shikijs/langs/dist/hxml.mjs +1 -1
  1068. package/node_modules/@shikijs/langs/dist/index.mjs +14 -0
  1069. package/node_modules/@shikijs/langs/dist/just.mjs +1 -1
  1070. package/node_modules/@shikijs/langs/dist/justfile.d.mts +3 -0
  1071. package/node_modules/@shikijs/langs/dist/justfile.mjs +2 -0
  1072. package/node_modules/@shikijs/langs/dist/llvm.mjs +1 -1
  1073. package/node_modules/@shikijs/langs/dist/luau.mjs +1 -1
  1074. package/node_modules/@shikijs/langs/dist/mdc.mjs +1 -1
  1075. package/node_modules/@shikijs/langs/dist/mermaid.mjs +1 -1
  1076. package/node_modules/@shikijs/langs/dist/mojo.mjs +1 -1
  1077. package/node_modules/@shikijs/langs/dist/moonbit.mjs +1 -1
  1078. package/node_modules/@shikijs/langs/dist/move.mjs +1 -1
  1079. package/node_modules/@shikijs/langs/dist/nsis.d.mts +3 -0
  1080. package/node_modules/@shikijs/langs/dist/nsis.mjs +5 -0
  1081. package/node_modules/@shikijs/langs/dist/nushell.mjs +1 -1
  1082. package/node_modules/@shikijs/langs/dist/org.d.mts +3 -0
  1083. package/node_modules/@shikijs/langs/dist/org.mjs +100 -0
  1084. package/node_modules/@shikijs/langs/dist/powershell.mjs +1 -1
  1085. package/node_modules/@shikijs/langs/dist/prisma.mjs +1 -1
  1086. package/node_modules/@shikijs/langs/dist/pwsh.d.mts +3 -0
  1087. package/node_modules/@shikijs/langs/dist/pwsh.mjs +2 -0
  1088. package/node_modules/@shikijs/langs/dist/r.mjs +1 -1
  1089. package/node_modules/@shikijs/langs/dist/rbs.d.mts +3 -0
  1090. package/node_modules/@shikijs/langs/dist/rbs.mjs +5 -0
  1091. package/node_modules/@shikijs/langs/dist/ruby-signature.d.mts +3 -0
  1092. package/node_modules/@shikijs/langs/dist/ruby-signature.mjs +2 -0
  1093. package/node_modules/@shikijs/langs/dist/scala.mjs +1 -1
  1094. package/node_modules/@shikijs/langs/dist/smalltalk.mjs +1 -1
  1095. package/node_modules/@shikijs/langs/dist/smithy.d.mts +3 -0
  1096. package/node_modules/@shikijs/langs/dist/smithy.mjs +5 -0
  1097. package/node_modules/@shikijs/langs/dist/solidity.mjs +1 -1
  1098. package/node_modules/@shikijs/langs/dist/surrealql.mjs +1 -1
  1099. package/node_modules/@shikijs/langs/dist/swift.mjs +1 -1
  1100. package/node_modules/@shikijs/langs/dist/system-verilog.mjs +1 -1
  1101. package/node_modules/@shikijs/langs/dist/twig.mjs +1 -1
  1102. package/node_modules/@shikijs/langs/dist/typst.mjs +116 -1
  1103. package/node_modules/@shikijs/langs/dist/v.mjs +1 -1
  1104. package/node_modules/@shikijs/langs/dist/vb.mjs +1 -1
  1105. package/node_modules/@shikijs/langs/dist/verilog.mjs +1 -1
  1106. package/node_modules/@shikijs/langs/dist/vue.mjs +1 -1
  1107. package/node_modules/@shikijs/langs/node_modules/@shikijs/types/dist/index.d.mts +0 -1
  1108. package/node_modules/@shikijs/langs/node_modules/@shikijs/types/package.json +2 -2
  1109. package/node_modules/@shikijs/langs/package.json +18 -4
  1110. package/node_modules/typebox/build/format/date.d.mts +1 -1
  1111. package/node_modules/typebox/build/format/date.mjs +1 -1
  1112. package/node_modules/typebox/build/format/date_time.d.mts +2 -2
  1113. package/node_modules/typebox/build/format/date_time.mjs +3 -3
  1114. package/node_modules/typebox/build/format/email.d.mts +1 -1
  1115. package/node_modules/typebox/build/format/email.mjs +2 -2
  1116. package/node_modules/typebox/build/format/hostname.mjs +2 -10
  1117. package/node_modules/typebox/build/format/idn_email.d.mts +1 -1
  1118. package/node_modules/typebox/build/format/idn_email.mjs +3 -3
  1119. package/node_modules/typebox/build/format/idn_hostname.d.mts +1 -0
  1120. package/node_modules/typebox/build/format/idn_hostname.mjs +3 -11
  1121. package/node_modules/typebox/build/format/idna/format/bidi.d.mts +3 -0
  1122. package/node_modules/typebox/build/format/idna/format/bidi.mjs +98 -0
  1123. package/node_modules/typebox/build/format/idna/format/puny.d.mts +3 -0
  1124. package/node_modules/typebox/build/format/idna/format/puny.mjs +144 -0
  1125. package/node_modules/typebox/build/format/idna/hostname.d.mts +1 -0
  1126. package/node_modules/typebox/build/format/idna/hostname.mjs +16 -0
  1127. package/node_modules/typebox/build/format/idna/idn-hostname.d.mts +1 -0
  1128. package/node_modules/typebox/build/format/idna/idn-hostname.mjs +23 -0
  1129. package/node_modules/typebox/build/format/idna/index.d.mts +2 -0
  1130. package/node_modules/typebox/build/format/idna/index.mjs +2 -0
  1131. package/node_modules/typebox/build/format/idna/label/ascii.d.mts +1 -0
  1132. package/node_modules/typebox/build/format/idna/label/ascii.mjs +9 -0
  1133. package/node_modules/typebox/build/format/idna/label/puny.d.mts +1 -0
  1134. package/node_modules/typebox/build/format/idna/label/puny.mjs +28 -0
  1135. package/node_modules/typebox/build/format/idna/label/unicode.d.mts +1 -0
  1136. package/node_modules/typebox/build/format/idna/label/unicode.mjs +106 -0
  1137. package/node_modules/typebox/build/format/idna/pattern/pattern.d.mts +30 -0
  1138. package/node_modules/typebox/build/format/idna/pattern/pattern.mjs +70 -0
  1139. package/node_modules/typebox/build/format/ipv4.d.mts +0 -1
  1140. package/node_modules/typebox/build/format/ipv4.mjs +2 -32
  1141. package/node_modules/typebox/build/format/ipv6.mjs +2 -61
  1142. package/node_modules/typebox/build/format/iri.d.mts +2 -2
  1143. package/node_modules/typebox/build/format/iri.mjs +26 -8
  1144. package/node_modules/typebox/build/format/iri_reference.d.mts +2 -2
  1145. package/node_modules/typebox/build/format/iri_reference.mjs +9 -55
  1146. package/node_modules/typebox/build/format/regex.d.mts +1 -2
  1147. package/node_modules/typebox/build/format/regex.mjs +2 -6
  1148. package/node_modules/typebox/build/format/time.d.mts +2 -2
  1149. package/node_modules/typebox/build/format/time.mjs +19 -14
  1150. package/node_modules/typebox/build/format/uri.d.mts +1 -1
  1151. package/node_modules/typebox/build/format/uri.mjs +3 -130
  1152. package/node_modules/typebox/build/format/uri_reference.d.mts +1 -1
  1153. package/node_modules/typebox/build/format/uri_reference.mjs +2 -3
  1154. package/node_modules/typebox/build/format/uri_template.d.mts +2 -3
  1155. package/node_modules/typebox/build/format/uri_template.mjs +4 -5
  1156. package/node_modules/typebox/build/format/url.d.mts +3 -3
  1157. package/node_modules/typebox/build/format/url.mjs +4 -5
  1158. package/node_modules/typebox/build/guard/emit.d.mts +3 -1
  1159. package/node_modules/typebox/build/guard/emit.mjs +12 -5
  1160. package/node_modules/typebox/build/guard/guard.d.mts +8 -2
  1161. package/node_modules/typebox/build/guard/guard.mjs +25 -4
  1162. package/node_modules/typebox/build/guard/string.d.mts +2 -2
  1163. package/node_modules/typebox/build/guard/string.mjs +7 -7
  1164. package/node_modules/typebox/build/schema/engine/_context.mjs +3 -3
  1165. package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -2
  1166. package/node_modules/typebox/build/schema/engine/_regexp.d.mts +2 -0
  1167. package/node_modules/typebox/build/schema/engine/_regexp.mjs +4 -0
  1168. package/node_modules/typebox/build/schema/engine/_stack.mjs +12 -13
  1169. package/node_modules/typebox/build/schema/engine/additionalItems.mjs +17 -7
  1170. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +4 -3
  1171. package/node_modules/typebox/build/schema/engine/contains.mjs +18 -6
  1172. package/node_modules/typebox/build/schema/engine/enum.mjs +1 -1
  1173. package/node_modules/typebox/build/schema/engine/items.mjs +26 -6
  1174. package/node_modules/typebox/build/schema/engine/maxContains.mjs +3 -3
  1175. package/node_modules/typebox/build/schema/engine/minContains.mjs +14 -4
  1176. package/node_modules/typebox/build/schema/engine/not.mjs +4 -2
  1177. package/node_modules/typebox/build/schema/engine/oneOf.mjs +7 -6
  1178. package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -2
  1179. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +4 -3
  1180. package/node_modules/typebox/build/schema/engine/ref.mjs +1 -7
  1181. package/node_modules/typebox/build/schema/engine/schema.mjs +13 -4
  1182. package/node_modules/typebox/build/schema/engine/type.mjs +1 -1
  1183. package/node_modules/typebox/build/schema/resolve/resolve.d.mts +4 -1
  1184. package/node_modules/typebox/build/schema/resolve/resolve.mjs +202 -1
  1185. package/node_modules/typebox/build/schema/static/propertyNames.d.mts +5 -0
  1186. package/node_modules/typebox/build/schema/static/propertyNames.mjs +3 -0
  1187. package/node_modules/typebox/build/schema/static/schema.d.mts +3 -0
  1188. package/node_modules/typebox/build/schema/types/index.d.mts +0 -2
  1189. package/node_modules/typebox/build/schema/types/index.mjs +0 -2
  1190. package/node_modules/typebox/build/system/memory/clone.mjs +14 -11
  1191. package/node_modules/typebox/build/system/memory/discard.mjs +6 -5
  1192. package/node_modules/typebox/build/system/settings/settings.d.mts +9 -0
  1193. package/node_modules/typebox/build/system/settings/settings.mjs +2 -0
  1194. package/node_modules/typebox/build/type/engine/call/distribute_arguments.d.mts +6 -1
  1195. package/node_modules/typebox/build/type/engine/call/distribute_arguments.mjs +16 -3
  1196. package/node_modules/typebox/build/type/engine/call/instantiate.mjs +34 -4
  1197. package/node_modules/typebox/build/type/engine/evaluate/broaden.d.mts +5 -5
  1198. package/node_modules/typebox/build/type/engine/evaluate/broaden.mjs +20 -26
  1199. package/node_modules/typebox/build/type/engine/evaluate/compare.d.mts +6 -10
  1200. package/node_modules/typebox/build/type/engine/evaluate/compare.mjs +9 -13
  1201. package/node_modules/typebox/build/type/engine/evaluate/composite.d.mts +7 -4
  1202. package/node_modules/typebox/build/type/engine/evaluate/composite.mjs +12 -19
  1203. package/node_modules/typebox/build/type/engine/evaluate/distribute.d.mts +4 -20
  1204. package/node_modules/typebox/build/type/engine/evaluate/distribute.mjs +8 -20
  1205. package/node_modules/typebox/build/type/engine/evaluate/evaluate.d.mts +4 -4
  1206. package/node_modules/typebox/build/type/engine/evaluate/evaluate.mjs +11 -8
  1207. package/node_modules/typebox/build/type/engine/evaluate/flatten.d.mts +1 -1
  1208. package/node_modules/typebox/build/type/engine/evaluate/flatten.mjs +3 -4
  1209. package/node_modules/typebox/build/type/engine/evaluate/narrow.d.mts +17 -2
  1210. package/node_modules/typebox/build/type/engine/evaluate/narrow.mjs +26 -6
  1211. package/node_modules/typebox/build/type/engine/exclude/operation.mjs +3 -4
  1212. package/node_modules/typebox/build/type/engine/extract/operation.d.mts +1 -1
  1213. package/node_modules/typebox/build/type/engine/extract/operation.mjs +3 -4
  1214. package/node_modules/typebox/build/type/engine/priority/priority.d.mts +2 -2
  1215. package/node_modules/typebox/build/type/engine/priority/priority.mjs +3 -4
  1216. package/node_modules/typebox/build/type/script/mapping.d.mts +32 -29
  1217. package/node_modules/typebox/build/type/script/mapping.mjs +18 -25
  1218. package/node_modules/typebox/build/type/script/parser.d.mts +19 -25
  1219. package/node_modules/typebox/build/type/script/parser.mjs +27 -23
  1220. package/node_modules/typebox/build/value/errors/errors.d.mts +2 -2
  1221. package/node_modules/typebox/build/value/errors/errors.mjs +1 -1
  1222. package/node_modules/typebox/package.json +27 -27
  1223. package/node_modules/typebox/readme.md +79 -82
  1224. package/package.json +9 -8
  1225. package/node_modules/@pierre/diffs/dist/utils/iterateOverFile.d.ts +0 -50
  1226. package/node_modules/@pierre/diffs/dist/utils/iterateOverFile.d.ts.map +0 -1
  1227. package/node_modules/@pierre/diffs/dist/utils/iterateOverFile.js +0 -49
  1228. package/node_modules/@pierre/diffs/dist/utils/iterateOverFile.js.map +0 -1
  1229. package/node_modules/typebox/build/format/_idna.d.mts +0 -2
  1230. package/node_modules/typebox/build/format/_idna.mjs +0 -246
  1231. package/node_modules/typebox/build/format/_puny.d.mts +0 -1
  1232. package/node_modules/typebox/build/format/_puny.mjs +0 -77
  1233. package/node_modules/typebox/build/schema/resolve/ref.d.mts +0 -3
  1234. package/node_modules/typebox/build/schema/resolve/ref.mjs +0 -146
  1235. package/node_modules/typebox/build/schema/types/contentEncoding.d.mts +0 -9
  1236. package/node_modules/typebox/build/schema/types/contentEncoding.mjs +0 -13
  1237. package/node_modules/typebox/build/schema/types/contentMediaType.d.mts +0 -9
  1238. package/node_modules/typebox/build/schema/types/contentMediaType.mjs +0 -13
@@ -1,11 +1,11 @@
1
1
  import { DEFAULT_THEMES } from "../constants.js";
2
2
  import { areThemesEqual } from "../utils/areThemesEqual.js";
3
+ import { areFilesEqual } from "../utils/areFilesEqual.js";
3
4
  import { attachResolvedThemes } from "../highlighter/themes/attachResolvedThemes.js";
4
5
  import { getSharedHighlighter } from "../highlighter/shared_highlighter.js";
5
6
  import { getThemes } from "../utils/getThemes.js";
6
7
  import { hasResolvedThemes } from "../highlighter/themes/hasResolvedThemes.js";
7
8
  import { areFileRenderOptionsEqual } from "../utils/areFileRenderOptionsEqual.js";
8
- import { areFilesEqual } from "../utils/areFilesEqual.js";
9
9
  import { getCustomExtensionsMap, getCustomExtensionsVersion, getFiletypeFromFileName } from "../utils/getFiletypeFromFileName.js";
10
10
  import { isFilePlainText } from "../utils/isFilePlainText.js";
11
11
  import { renderFileWithHighlighter } from "../utils/renderFileWithHighlighter.js";
@@ -26,6 +26,11 @@ var WorkerPoolTerminatedError = class extends Error {
26
26
  super("WorkerPoolManager: operation canceled because the pool terminated");
27
27
  }
28
28
  };
29
+ var WorkerPoolTaskCanceledError = class extends Error {
30
+ constructor() {
31
+ super("WorkerPoolManager: operation canceled before the task completed");
32
+ }
33
+ };
29
34
  var WorkerPoolManager = class {
30
35
  options;
31
36
  highlighter;
@@ -134,6 +139,9 @@ var WorkerPoolManager = class {
134
139
  throw error;
135
140
  }
136
141
  }
142
+ getPreferredHighlighter() {
143
+ return this.preferredHighlighter;
144
+ }
137
145
  getFileRenderOptions() {
138
146
  const { tokenizeMaxLineLength, theme, useTokenTransformer } = this.renderOptions;
139
147
  return {
@@ -269,6 +277,7 @@ var WorkerPoolManager = class {
269
277
  }
270
278
  this.initialized = false;
271
279
  this.workersFailed = true;
280
+ for (const task of this.queuedTasks) this.rejectRenderTaskCallbacks(task, normalizeWorkerError(e));
272
281
  this.queueBroadcastStateChanges();
273
282
  reject(e);
274
283
  }
@@ -353,6 +362,11 @@ var WorkerPoolManager = class {
353
362
  });
354
363
  }
355
364
  primeFileHighlightCache(file) {
365
+ if (!this.isWorkingPool()) return Promise.reject(/* @__PURE__ */ new Error("WorkerPoolManager.primeFileHighlightCache: worker pool is not working"));
366
+ const task = this.getOrCreateFileHighlightCacheTask(file);
367
+ return task != null ? this.createRenderTaskCallbacks(task) : Promise.resolve();
368
+ }
369
+ getOrCreateFileHighlightCacheTask(file) {
356
370
  if (file.cacheKey == null) {
357
371
  console.warn(`WorkerPoolManager.primeFileHighlightCache: priming highlight cache requires file.cacheKey; skipping "${file.name}".`);
358
372
  return;
@@ -361,11 +375,16 @@ var WorkerPoolManager = class {
361
375
  const highlightKey = this.getFileHighlightKey(file);
362
376
  if (highlightKey == null || isFilePlainText(file) || cachedResult != null && areFileRenderOptionsEqual(cachedResult.options, this.getFileRenderOptions())) return;
363
377
  const existingTask = this.getTaskByHighlightKey(highlightKey);
364
- if (existingTask != null) existingTask.primeCache = true;
365
- else this.submitCacheTask({
366
- type: "file",
367
- file
368
- }, highlightKey);
378
+ if (existingTask != null) {
379
+ existingTask.primeCache = true;
380
+ return existingTask.type === "file" ? existingTask : void 0;
381
+ } else {
382
+ const task = this.submitCacheTask({
383
+ type: "file",
384
+ file
385
+ }, highlightKey);
386
+ return task.type === "file" ? task : void 0;
387
+ }
369
388
  }
370
389
  getPlainFileAST(file, startingLine, totalLines, lines) {
371
390
  if (this.highlighter == null) {
@@ -388,6 +407,11 @@ var WorkerPoolManager = class {
388
407
  });
389
408
  }
390
409
  primeDiffHighlightCache(diff) {
410
+ if (!this.isWorkingPool()) return Promise.reject(/* @__PURE__ */ new Error("WorkerPoolManager.primeDiffHighlightCache: worker pool is not working"));
411
+ const task = this.getOrCreateDiffHighlightCacheTask(diff);
412
+ return task != null ? this.createRenderTaskCallbacks(task) : Promise.resolve();
413
+ }
414
+ getOrCreateDiffHighlightCacheTask(diff) {
391
415
  if (diff.cacheKey == null) {
392
416
  console.warn(`WorkerPoolManager.primeDiffHighlightCache: priming highlight cache requires diff.cacheKey; skipping "${diff.prevName ?? diff.name}" -> "${diff.name}".`);
393
417
  return;
@@ -396,11 +420,16 @@ var WorkerPoolManager = class {
396
420
  const highlightKey = this.getDiffHighlightKey(diff);
397
421
  if (highlightKey == null || isDiffPlainText(diff) || cachedResult != null && areDiffRenderOptionsEqual(cachedResult.options, this.getDiffRenderOptions())) return;
398
422
  const existingTask = this.getTaskByHighlightKey(highlightKey);
399
- if (existingTask != null) existingTask.primeCache = true;
400
- else this.submitCacheTask({
401
- type: "diff",
402
- diff
403
- }, highlightKey);
423
+ if (existingTask != null) {
424
+ existingTask.primeCache = true;
425
+ return existingTask.type === "diff" ? existingTask : void 0;
426
+ } else {
427
+ const task = this.submitCacheTask({
428
+ type: "diff",
429
+ diff
430
+ }, highlightKey);
431
+ return task.type === "diff" ? task : void 0;
432
+ }
404
433
  }
405
434
  getPlainDiffAST(diff, startingLine, totalLines, expandedHunks, collapsedContextThreshold) {
406
435
  return this.highlighter != null ? renderDiffWithHighlighter(diff, this.highlighter, this.renderOptions, {
@@ -415,6 +444,8 @@ var WorkerPoolManager = class {
415
444
  this.lifecycleGeneration++;
416
445
  this.cancelActiveWorkerTasks();
417
446
  this.terminateWorkers();
447
+ const error = new WorkerPoolTerminatedError();
448
+ for (const task of this.queuedTasks) this.rejectRenderTaskCallbacks(task, error);
418
449
  this.fileCache.clear();
419
450
  this.diffCache.clear();
420
451
  this.activeRequestByInstance.clear();
@@ -438,6 +469,7 @@ var WorkerPoolManager = class {
438
469
  cancelActiveWorkerTasks() {
439
470
  const error = new WorkerPoolTerminatedError();
440
471
  for (const task of this.activeTaskById.values()) if ("reject" in task) task.reject(error);
472
+ else if (isRenderTask(task)) this.rejectRenderTaskCallbacks(task, error);
441
473
  }
442
474
  terminateWorkers() {
443
475
  for (const managedWorker of this.workers) managedWorker.worker.terminate();
@@ -486,6 +518,7 @@ var WorkerPoolManager = class {
486
518
  instances: /* @__PURE__ */ new Set([instance]),
487
519
  primeCache: false,
488
520
  highlightKey,
521
+ callbacks: /* @__PURE__ */ new Set(),
489
522
  renderOptionsVersion,
490
523
  requestStart
491
524
  };
@@ -499,6 +532,7 @@ var WorkerPoolManager = class {
499
532
  instances: /* @__PURE__ */ new Set([instance]),
500
533
  primeCache: false,
501
534
  highlightKey,
535
+ callbacks: /* @__PURE__ */ new Set(),
502
536
  renderOptionsVersion,
503
537
  requestStart
504
538
  };
@@ -523,6 +557,7 @@ var WorkerPoolManager = class {
523
557
  instances: /* @__PURE__ */ new Set(),
524
558
  primeCache: true,
525
559
  highlightKey,
560
+ callbacks: /* @__PURE__ */ new Set(),
526
561
  renderOptionsVersion,
527
562
  requestStart
528
563
  };
@@ -536,12 +571,14 @@ var WorkerPoolManager = class {
536
571
  instances: /* @__PURE__ */ new Set(),
537
572
  primeCache: true,
538
573
  highlightKey,
574
+ callbacks: /* @__PURE__ */ new Set(),
539
575
  renderOptionsVersion,
540
576
  requestStart
541
577
  };
542
578
  }
543
579
  })();
544
580
  this.enqueueRenderTask(task);
581
+ return task;
545
582
  }
546
583
  enqueueRenderTask(task, instance) {
547
584
  this.queuedTasks.push(task);
@@ -563,7 +600,8 @@ var WorkerPoolManager = class {
563
600
  return;
564
601
  }
565
602
  this.executeTask(availableWorker, task);
566
- } catch {
603
+ } catch (error) {
604
+ this.rejectRenderTaskCallbacks(task, normalizeWorkerError(error));
567
605
  this.cleanWorkerAndTask(availableWorker, task);
568
606
  this.queueBroadcastStateChanges();
569
607
  if (this.queuedTasks.length > 0) this.queueDrain();
@@ -577,8 +615,10 @@ var WorkerPoolManager = class {
577
615
  const error = new Error(response.error);
578
616
  if (response.stack) error.stack = response.stack;
579
617
  if ("reject" in task) task.reject(error);
580
- else if (isRenderTask(task)) this.notifyHighlightError(task, error);
581
- else throw new Error("handleWorkerMessage: unknown task type");
618
+ else if (isRenderTask(task)) {
619
+ this.notifyHighlightError(task, error);
620
+ this.rejectRenderTaskCallbacks(task, error);
621
+ } else throw new Error("handleWorkerMessage: unknown task type");
582
622
  throw error;
583
623
  } else switch (response.requestType) {
584
624
  case "initialize":
@@ -596,10 +636,11 @@ var WorkerPoolManager = class {
596
636
  if (!this.isCurrentRenderTask(task) || !areFileRenderOptionsEqual(options, this.getFileRenderOptions())) throw IGNORE_RESPONSE;
597
637
  const { request } = task;
598
638
  this.syncCustomExtensionVersion(managedWorker, request);
599
- if (request.file.cacheKey != null) this.fileCache.set(request.file.cacheKey, {
639
+ if (task.cacheKeyAtDispatch != null) this.fileCache.set(task.cacheKeyAtDispatch, {
600
640
  result,
601
641
  options
602
642
  });
643
+ this.resolveRenderTaskCallbacks(task);
603
644
  this.notifyFileInstances(task, result, options);
604
645
  break;
605
646
  }
@@ -609,10 +650,11 @@ var WorkerPoolManager = class {
609
650
  if (!this.isCurrentRenderTask(task) || !areDiffRenderOptionsEqual(options, this.getDiffRenderOptions())) throw IGNORE_RESPONSE;
610
651
  const { request } = task;
611
652
  this.syncCustomExtensionVersion(managedWorker, request);
612
- if (request.diff.cacheKey != null) this.diffCache.set(request.diff.cacheKey, {
653
+ if (task.cacheKeyAtDispatch != null) this.diffCache.set(task.cacheKeyAtDispatch, {
613
654
  result,
614
655
  options
615
656
  });
657
+ this.resolveRenderTaskCallbacks(task);
616
658
  this.notifyDiffInstances(task, result, options);
617
659
  break;
618
660
  }
@@ -643,6 +685,7 @@ var WorkerPoolManager = class {
643
685
  if (managedWorker.pendingSetupRequestId === requestId) managedWorker.pendingSetupRequestId = void 0;
644
686
  if (task != null) {
645
687
  if (isRenderTask(task)) {
688
+ this.rejectRenderTaskCallbacks(task, new WorkerPoolTaskCanceledError());
646
689
  this.clearInstanceRequests(task);
647
690
  this.clearHighlightKey(task);
648
691
  }
@@ -654,11 +697,15 @@ var WorkerPoolManager = class {
654
697
  if (!this.activeTaskById.has(task.id)) this.assignWorkerToTask(task, managedWorker);
655
698
  for (const lang of getLangsFromTask(task)) managedWorker.langs.add(lang);
656
699
  try {
700
+ if (task.type === "file") task.cacheKeyAtDispatch = task.request.file.cacheKey;
701
+ else if (task.type === "diff") task.cacheKeyAtDispatch = task.request.diff.cacheKey;
657
702
  managedWorker.worker.postMessage(task.request);
658
703
  } catch (error) {
659
704
  console.error("Failed to post message to worker:", error);
660
- if (isRenderTask(task)) this.notifyHighlightError(task, error);
661
- else if ("reject" in task) task.reject(error);
705
+ if (isRenderTask(task)) {
706
+ this.notifyHighlightError(task, error);
707
+ this.rejectRenderTaskCallbacks(task, normalizeWorkerError(error));
708
+ } else if ("reject" in task) task.reject(error);
662
709
  this.cleanWorkerAndTask(managedWorker, task);
663
710
  if (this.queuedTasks.length > 0) this.queueDrain();
664
711
  }
@@ -728,14 +775,32 @@ var WorkerPoolManager = class {
728
775
  removeQueuedTask(task) {
729
776
  const index = this.queuedTasks.indexOf(task);
730
777
  if (index !== -1) this.queuedTasks.splice(index, 1);
778
+ this.rejectRenderTaskCallbacks(task, new WorkerPoolTaskCanceledError());
731
779
  this.clearQueuedInstanceRequests(task);
732
780
  this.clearHighlightKey(task);
733
781
  }
734
782
  removeActiveTask(task) {
783
+ this.rejectRenderTaskCallbacks(task, new WorkerPoolTaskCanceledError());
735
784
  this.clearInstanceRequests(task);
736
785
  this.clearHighlightKey(task);
737
786
  this.activeTaskById.delete(task.id);
738
787
  }
788
+ createRenderTaskCallbacks(task) {
789
+ return new Promise((resolve, reject) => {
790
+ task.callbacks.add({
791
+ resolve,
792
+ reject
793
+ });
794
+ });
795
+ }
796
+ resolveRenderTaskCallbacks(task) {
797
+ for (const callbacks of task.callbacks) callbacks.resolve();
798
+ task.callbacks.clear();
799
+ }
800
+ rejectRenderTaskCallbacks(task, error) {
801
+ for (const callbacks of task.callbacks) callbacks.reject(error);
802
+ task.callbacks.clear();
803
+ }
739
804
  invalidateRenderTasks() {
740
805
  for (let index = this.queuedTasks.length - 1; index >= 0; index--) {
741
806
  const task = this.queuedTasks[index];
@@ -811,6 +876,9 @@ function isRenderTask(task) {
811
876
  function getInstances(task) {
812
877
  return task.instances;
813
878
  }
879
+ function normalizeWorkerError(error) {
880
+ return error instanceof Error ? error : new Error(String(error));
881
+ }
814
882
  //#endregion
815
883
  export { WorkerPoolManager };
816
884
 
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerPoolManager.js","names":[],"sources":["../../src/worker/WorkerPoolManager.ts"],"sourcesContent":["import LRUMapPkg from 'lru_map';\n\nimport { DEFAULT_THEMES } from '../constants';\nimport { getResolvedLanguages } from '../highlighter/languages/getResolvedLanguages';\nimport { hasResolvedLanguages } from '../highlighter/languages/hasResolvedLanguages';\nimport { resolveLanguages } from '../highlighter/languages/resolveLanguages';\nimport { getSharedHighlighter } from '../highlighter/shared_highlighter';\nimport { attachResolvedThemes } from '../highlighter/themes/attachResolvedThemes';\nimport { getResolvedThemes } from '../highlighter/themes/getResolvedThemes';\nimport { hasResolvedThemes } from '../highlighter/themes/hasResolvedThemes';\nimport { resolveThemes } from '../highlighter/themes/resolveThemes';\nimport type {\n DiffsHighlighter,\n FileContents,\n FileDiffMetadata,\n HighlighterTypes,\n HunkExpansionRegion,\n RenderDiffOptions,\n RenderDiffResult,\n RenderFileOptions,\n RenderFileResult,\n SupportedLanguages,\n ThemedDiffResult,\n ThemedFileResult,\n ThemeRegistrationResolved,\n} from '../types';\nimport { areDiffRenderOptionsEqual } from '../utils/areDiffRenderOptionsEqual';\nimport { areDiffTargetsEqual } from '../utils/areDiffTargetsEqual';\nimport { areFileRenderOptionsEqual } from '../utils/areFileRenderOptionsEqual';\nimport { areFilesEqual } from '../utils/areFilesEqual';\nimport { areThemesEqual } from '../utils/areThemesEqual';\nimport {\n getCustomExtensionsMap,\n getCustomExtensionsVersion,\n getFiletypeFromFileName,\n} from '../utils/getFiletypeFromFileName';\nimport { getThemes } from '../utils/getThemes';\nimport { isDiffPlainText } from '../utils/isDiffPlainText';\nimport { isFilePlainText } from '../utils/isFilePlainText';\nimport { renderDiffWithHighlighter } from '../utils/renderDiffWithHighlighter';\nimport { renderFileWithHighlighter } from '../utils/renderFileWithHighlighter';\nimport type {\n AllWorkerTasks,\n DiffRendererInstance,\n FileRendererInstance,\n InitializeWorkerRequest,\n InitializeWorkerTask,\n RenderDiffRequest,\n RenderDiffTask,\n RenderFileRequest,\n RenderFileTask,\n ResolvedLanguage,\n SetRenderOptionsWorkerTask,\n SubmitRequest,\n WorkerInitializationRenderOptions,\n WorkerPoolOptions,\n WorkerRenderingOptions,\n WorkerRequestId,\n WorkerResponse,\n WorkerStats,\n} from './types';\n\nconst IGNORE_RESPONSE = Symbol('IGNORE_RESPONSE');\n\nclass WorkerPoolTerminatedError extends Error {\n constructor() {\n super('WorkerPoolManager: operation canceled because the pool terminated');\n }\n}\n\ninterface GetCachesResult {\n fileCache: LRUMapPkg.LRUMap<string, RenderFileResult>;\n diffCache: LRUMapPkg.LRUMap<string, RenderDiffResult>;\n}\n\ninterface ManagedWorker {\n worker: Worker;\n requestId: string | undefined;\n pendingSetupRequestId: WorkerRequestId | undefined;\n initialized: boolean;\n langs: Set<SupportedLanguages>;\n customExtensionsVersion: number;\n}\n\ninterface ThemeSubscriber {\n onThemeChange(): void;\n}\n\ntype RenderTask = RenderFileTask | RenderDiffTask;\n\ntype RenderTaskInstance = FileRendererInstance | DiffRendererInstance;\n\nexport class WorkerPoolManager {\n private highlighter: DiffsHighlighter | undefined;\n private readonly preferredHighlighter: HighlighterTypes;\n private renderOptions: WorkerRenderingOptions;\n private renderOptionsRequestVersion = 0;\n private renderOptionsVersion = 0;\n private initialized: Promise<void> | boolean = false;\n private workers: ManagedWorker[] = [];\n // Tasks that are waiting to get processed by a worker\n private queuedTasks: RenderTask[] = [];\n private queuedTaskByInstance = new Map<RenderTaskInstance, RenderTask>();\n\n // Tasks that map to highlightKey are essentially singular, so we only\n // need one map to include queued and active\n private taskByHighlightKey = new Map<string, RenderTask>();\n\n // Tasks that have already been sent to a worker and are awaiting a response.\n private activeTaskById = new Map<WorkerRequestId, AllWorkerTasks>();\n private activeRequestByInstance = new Map<\n RenderTaskInstance,\n WorkerRequestId\n >();\n\n private nextRequestId = 0;\n private themeSubscribers = new Set<ThemeSubscriber>();\n private workersFailed = false;\n private statSubscribers = new Set<(stats: WorkerStats) => unknown>();\n private fileCache: LRUMapPkg.LRUMap<string, RenderFileResult>;\n private diffCache: LRUMapPkg.LRUMap<string, RenderDiffResult>;\n private _queuedBroadcast: number | undefined;\n // Incremented on terminate so async lifecycle work can identify stale results.\n private lifecycleGeneration = 0;\n\n constructor(\n private options: WorkerPoolOptions,\n {\n langs,\n theme = DEFAULT_THEMES,\n useTokenTransformer = false,\n lineDiffType = 'word-alt',\n maxLineDiffLength = 1000,\n tokenizeMaxLineLength = 1000,\n preferredHighlighter = 'shiki-js',\n }: WorkerInitializationRenderOptions\n ) {\n this.preferredHighlighter = preferredHighlighter;\n this.renderOptions = {\n theme,\n useTokenTransformer,\n lineDiffType,\n maxLineDiffLength,\n tokenizeMaxLineLength,\n };\n this.fileCache = new LRUMapPkg.LRUMap(options.totalASTLRUCacheSize ?? 100);\n this.diffCache = new LRUMapPkg.LRUMap(options.totalASTLRUCacheSize ?? 100);\n this.queueInitialization(langs);\n }\n\n public isWorkingPool(): boolean {\n return !this.workersFailed;\n }\n\n public getFileResultCache(file: FileContents): RenderFileResult | undefined {\n return file.cacheKey != null\n ? this.fileCache.get(file.cacheKey)\n : undefined;\n }\n\n public getDiffResultCache(\n diff: FileDiffMetadata\n ): RenderDiffResult | undefined {\n return diff.cacheKey != null\n ? this.diffCache.get(diff.cacheKey)\n : undefined;\n }\n\n public inspectCaches(): GetCachesResult {\n const { fileCache, diffCache } = this;\n return { fileCache, diffCache };\n }\n\n public evictFileFromCache(cacheKey: string): boolean {\n try {\n return this.fileCache.delete(cacheKey) !== undefined;\n } finally {\n this.queueBroadcastStateChanges();\n }\n }\n\n public evictDiffFromCache(cacheKey: string): boolean {\n try {\n return this.diffCache.delete(cacheKey) !== undefined;\n } finally {\n this.queueBroadcastStateChanges();\n }\n }\n\n async setRenderOptions({\n theme = this.renderOptions.theme ?? DEFAULT_THEMES,\n useTokenTransformer = this.renderOptions.useTokenTransformer ?? false,\n lineDiffType = this.renderOptions.lineDiffType ?? 'word-alt',\n maxLineDiffLength = this.renderOptions.maxLineDiffLength ?? 1000,\n tokenizeMaxLineLength = this.renderOptions.tokenizeMaxLineLength ?? 1000,\n }: Partial<WorkerRenderingOptions>): Promise<void> {\n const { lifecycleGeneration } = this;\n const renderOptionsRequestVersion = ++this.renderOptionsRequestVersion;\n const isCurrentRequest = (): boolean =>\n this.isCurrentLifecycle(lifecycleGeneration) &&\n this.renderOptionsRequestVersion === renderOptionsRequestVersion;\n try {\n const newRenderOptions: WorkerRenderingOptions = {\n theme,\n useTokenTransformer,\n lineDiffType,\n maxLineDiffLength,\n tokenizeMaxLineLength,\n };\n if (!this.isInitialized()) {\n await this.initialize();\n }\n if (\n !isCurrentRequest() ||\n areDiffRenderOptionsEqual(newRenderOptions, this.renderOptions)\n ) {\n return;\n }\n\n const themeNames = getThemes(theme);\n let resolvedThemes: ThemeRegistrationResolved[] = [];\n if (!areThemesEqual(newRenderOptions.theme, this.renderOptions.theme)) {\n if (hasResolvedThemes(themeNames)) {\n resolvedThemes = getResolvedThemes(themeNames);\n } else {\n resolvedThemes = await resolveThemes(themeNames);\n }\n }\n\n if (!isCurrentRequest()) {\n return;\n }\n\n if (this.highlighter != null) {\n attachResolvedThemes(resolvedThemes, this.highlighter);\n } else {\n const highlighter = await getSharedHighlighter({\n themes: themeNames,\n langs: ['text'],\n preferredHighlighter: this.preferredHighlighter,\n });\n if (!isCurrentRequest()) {\n return;\n }\n this.highlighter = highlighter;\n }\n\n const workerSetup = this.setRenderOptionsOnWorkers(\n newRenderOptions,\n resolvedThemes\n );\n\n this.renderOptions = newRenderOptions;\n this.renderOptionsVersion++;\n this.diffCache.clear();\n this.fileCache.clear();\n this.invalidateRenderTasks();\n\n for (const instance of this.themeSubscribers) {\n instance.onThemeChange();\n }\n\n await workerSetup;\n } catch (error) {\n if (error instanceof WorkerPoolTerminatedError || !isCurrentRequest()) {\n return;\n }\n throw error;\n }\n }\n\n public getFileRenderOptions(): RenderFileOptions {\n const { tokenizeMaxLineLength, theme, useTokenTransformer } =\n this.renderOptions;\n return { theme, useTokenTransformer, tokenizeMaxLineLength };\n }\n\n public getDiffRenderOptions(): RenderDiffOptions {\n return { ...this.renderOptions };\n }\n\n private async setRenderOptionsOnWorkers(\n renderOptions: WorkerRenderingOptions,\n resolvedThemes: ThemeRegistrationResolved[]\n ): Promise<void> {\n if (this.workersFailed) {\n return;\n }\n if (!this.isInitialized()) {\n await this.initialize();\n }\n const taskPromises: Promise<void>[] = [];\n for (const managedWorker of this.workers) {\n if (!managedWorker.initialized) {\n console.log({ managedWorker });\n throw new Error(\n 'setRenderOptionsOnWorkers: Somehow we have an uninitialized worker'\n );\n }\n taskPromises.push(\n new Promise<void>((resolve, reject) => {\n const id = this.generateRequestId();\n const task: SetRenderOptionsWorkerTask = {\n type: 'set-render-options',\n id,\n request: {\n type: 'set-render-options',\n id,\n renderOptions,\n resolvedThemes,\n },\n resolve,\n reject,\n requestStart: Date.now(),\n };\n // Render-option updates are posted immediately, but the worker stays\n // unavailable for new render work until it acknowledges this message.\n this.activeTaskById.set(id, task);\n managedWorker.pendingSetupRequestId = id;\n managedWorker.worker.postMessage(task.request);\n })\n );\n }\n await Promise.all(taskPromises);\n }\n\n public subscribeToThemeChanges(instance: ThemeSubscriber): () => void {\n this.themeSubscribers.add(instance);\n this.queueBroadcastStateChanges();\n return () => {\n this.unsubscribeToThemeChanges(instance);\n this.queueBroadcastStateChanges();\n };\n }\n\n public unsubscribeToThemeChanges(instance: ThemeSubscriber): void {\n this.themeSubscribers.delete(instance);\n this.queueBroadcastStateChanges();\n }\n\n public subscribeToStatChanges(\n callback: (stats: WorkerStats) => unknown\n ): () => void {\n this.statSubscribers.add(callback);\n callback(this.getStats());\n return () => {\n this.statSubscribers.delete(callback);\n };\n }\n\n private queueBroadcastStateChanges() {\n if (this._queuedBroadcast != null) return;\n this._queuedBroadcast = requestAnimationFrame(this._broadcastStateChanges);\n }\n\n private _broadcastStateChanges = () => {\n if (this._queuedBroadcast != null) {\n cancelAnimationFrame(this._queuedBroadcast);\n this._queuedBroadcast = undefined;\n }\n const stats = this.getStats();\n for (const callback of this.statSubscribers) {\n callback(stats);\n }\n };\n\n public cleanUpTasks(instance: RenderTaskInstance): void {\n this.detachInstanceFromQueuedTasks(instance);\n const requestId = this.activeRequestByInstance.get(instance);\n if (requestId != null) {\n const task = this.activeTaskById.get(requestId);\n if (isRenderTask(task)) {\n this.detachInstanceFromRenderTask(task, instance);\n if (!task.primeCache && task.instances.size === 0) {\n this.removeActiveTask(task);\n }\n } else {\n this.activeTaskById.delete(requestId);\n }\n }\n this.activeRequestByInstance.delete(instance);\n this.queueBroadcastStateChanges();\n }\n\n public isInitialized(): boolean {\n return this.initialized === true;\n }\n\n public async initialize(languages: SupportedLanguages[] = []): Promise<void> {\n if (this.initialized === true) {\n return;\n } else if (this.initialized === false) {\n const { lifecycleGeneration } = this;\n this.initialized = new Promise((resolve, reject) => {\n void (async () => {\n try {\n const themes = getThemes(this.renderOptions.theme);\n let resolvedThemes: ThemeRegistrationResolved[] = [];\n if (hasResolvedThemes(themes)) {\n resolvedThemes = getResolvedThemes(themes);\n } else {\n resolvedThemes = await resolveThemes(themes);\n }\n if (!this.isCurrentLifecycle(lifecycleGeneration)) {\n resolve();\n return;\n }\n\n let resolvedLanguages: ResolvedLanguage[] = [];\n if (hasResolvedLanguages(languages)) {\n resolvedLanguages = getResolvedLanguages(languages);\n } else {\n resolvedLanguages = await resolveLanguages(languages);\n }\n if (!this.isCurrentLifecycle(lifecycleGeneration)) {\n resolve();\n return;\n }\n\n const [highlighter] = await Promise.all([\n getSharedHighlighter({\n themes,\n langs: ['text', ...languages],\n preferredHighlighter: this.preferredHighlighter,\n }),\n this.initializeWorkers(resolvedThemes, resolvedLanguages),\n ]);\n\n if (!this.isCurrentLifecycle(lifecycleGeneration)) {\n this.terminateWorkers();\n resolve();\n return;\n }\n this.highlighter = highlighter;\n this.initialized = true;\n this.diffCache.clear();\n this.fileCache.clear();\n this.drainQueue();\n this.queueBroadcastStateChanges();\n resolve();\n } catch (e) {\n if (\n e instanceof WorkerPoolTerminatedError ||\n !this.isCurrentLifecycle(lifecycleGeneration)\n ) {\n resolve();\n return;\n }\n this.initialized = false;\n this.workersFailed = true;\n this.queueBroadcastStateChanges();\n reject(e);\n }\n })();\n });\n this.queueBroadcastStateChanges();\n } else {\n return this.initialized;\n }\n }\n\n private async initializeWorkers(\n resolvedThemes: ThemeRegistrationResolved[],\n resolvedLanguages: ResolvedLanguage[]\n ): Promise<void> {\n this.workersFailed = false;\n const initPromises: Promise<unknown>[] = [];\n const customExtensionVersion = getCustomExtensionsVersion();\n const customExtensionMap =\n customExtensionVersion > 0 ? getCustomExtensionsMap() : undefined;\n if (this.workers.length > 0) {\n this.terminateWorkers();\n }\n for (let i = 0; i < (this.options.poolSize ?? 8); i++) {\n const worker = this.options.workerFactory();\n const managedWorker: ManagedWorker = {\n worker,\n requestId: undefined,\n pendingSetupRequestId: undefined,\n initialized: false,\n langs: new Set(['text', ...resolvedLanguages.map(({ name }) => name)]),\n customExtensionsVersion: 0,\n };\n worker.addEventListener(\n 'message',\n (event: MessageEvent<WorkerResponse>) => {\n this.handleWorkerMessage(managedWorker, event.data);\n }\n );\n worker.addEventListener('error', (error) =>\n console.error('Worker error:', error, managedWorker)\n );\n this.workers.push(managedWorker);\n initPromises.push(\n new Promise<void>((resolve, reject) => {\n const id = this.generateRequestId();\n const task: InitializeWorkerTask = {\n type: 'initialize',\n id,\n request: {\n type: 'initialize',\n id,\n renderOptions: this.renderOptions,\n preferredHighlighter: this.preferredHighlighter,\n resolvedThemes,\n resolvedLanguages,\n customExtensionsVersion:\n customExtensionMap != null ? customExtensionVersion : undefined,\n customExtensionMap,\n },\n resolve() {\n managedWorker.initialized = true;\n resolve();\n },\n reject,\n requestStart: Date.now(),\n };\n this.activeTaskById.set(id, task);\n this.executeTask(managedWorker, task);\n })\n );\n }\n await Promise.all(initPromises);\n }\n\n private drainQueue = () => {\n this._queuedDrain = undefined;\n // If we are initializing or things got cancelled while initializing, we\n // should not attempt to drain the queue\n if (this.initialized !== true || this.queuedTasks.length === 0) {\n return;\n }\n for (let i = 0; i < this.queuedTasks.length; ) {\n const task = this.queuedTasks[i];\n // If any instance has a request in progress, we should wait for it to\n // finish before starting work that would notify that instance.\n if (this.hasActiveRequest(task)) {\n i++;\n continue;\n }\n const langs = getLangsFromTask(task);\n const availableWorker = this.getAvailableWorker(langs);\n if (availableWorker == null) {\n break;\n }\n this.queuedTasks.splice(i, 1);\n this.assignWorkerToTask(task, availableWorker);\n void this.resolveLanguagesAndExecuteTask(availableWorker, task, langs);\n }\n this.queueBroadcastStateChanges();\n };\n\n public highlightFileAST(\n instance: FileRendererInstance,\n file: FileContents\n ): void {\n const cachedResult = this.getFileResultCache(file);\n // If we've already highlighted the file or it's plain text, we should not\n // attempt to highlight. This should be mostly never hit, but it's just an\n // extra level of safety\n if (\n isFilePlainText(file) ||\n (cachedResult != null &&\n areFileRenderOptionsEqual(\n cachedResult.options,\n this.getFileRenderOptions()\n ))\n ) {\n return;\n }\n if (!this.hasMatchingFileInstanceTask(instance, file)) {\n this.submitTask(instance, { type: 'file', file });\n }\n }\n\n public primeFileHighlightCache(file: FileContents): void {\n if (file.cacheKey == null) {\n console.warn(\n `WorkerPoolManager.primeFileHighlightCache: priming highlight cache requires file.cacheKey; skipping \"${file.name}\".`\n );\n return;\n }\n const cachedResult = this.getFileResultCache(file);\n const highlightKey = this.getFileHighlightKey(file);\n if (\n highlightKey == null ||\n isFilePlainText(file) ||\n (cachedResult != null &&\n areFileRenderOptionsEqual(\n cachedResult.options,\n this.getFileRenderOptions()\n ))\n ) {\n return;\n }\n const existingTask = this.getTaskByHighlightKey(highlightKey);\n if (existingTask != null) {\n existingTask.primeCache = true;\n } else {\n this.submitCacheTask({ type: 'file', file }, highlightKey);\n }\n }\n\n public getPlainFileAST(\n file: FileContents,\n startingLine: number,\n totalLines: number,\n lines?: string[]\n ): ThemedFileResult | undefined {\n if (this.highlighter == null) {\n this.queueInitialization();\n return undefined;\n }\n return renderFileWithHighlighter(\n file,\n this.highlighter,\n this.renderOptions,\n { forcePlainText: true, startingLine, totalLines, lines }\n );\n }\n\n public highlightDiffAST(\n instance: DiffRendererInstance,\n diff: FileDiffMetadata\n ): void {\n const cachedResult = this.getDiffResultCache(diff);\n // If we've already highlighted the diff or it's plain text, we should not\n // attempt to highlight. This should be mostly never hit, but it's just an\n // extra level of safety\n if (\n isDiffPlainText(diff) ||\n (cachedResult != null &&\n areDiffRenderOptionsEqual(\n cachedResult.options,\n this.getDiffRenderOptions()\n ))\n ) {\n return;\n }\n if (!this.hasMatchingDiffInstanceTask(instance, diff)) {\n this.submitTask(instance, { type: 'diff', diff });\n }\n }\n\n public primeDiffHighlightCache(diff: FileDiffMetadata): void {\n if (diff.cacheKey == null) {\n console.warn(\n `WorkerPoolManager.primeDiffHighlightCache: priming highlight cache requires diff.cacheKey; skipping \"${diff.prevName ?? diff.name}\" -> \"${diff.name}\".`\n );\n return;\n }\n const cachedResult = this.getDiffResultCache(diff);\n const highlightKey = this.getDiffHighlightKey(diff);\n if (\n highlightKey == null ||\n isDiffPlainText(diff) ||\n (cachedResult != null &&\n areDiffRenderOptionsEqual(\n cachedResult.options,\n this.getDiffRenderOptions()\n ))\n ) {\n return;\n }\n const existingTask = this.getTaskByHighlightKey(highlightKey);\n if (existingTask != null) {\n existingTask.primeCache = true;\n } else {\n this.submitCacheTask({ type: 'diff', diff }, highlightKey);\n }\n }\n\n public getPlainDiffAST(\n diff: FileDiffMetadata,\n startingLine: number,\n totalLines: number,\n expandedHunks?: Map<number, HunkExpansionRegion> | true,\n collapsedContextThreshold?: number\n ): ThemedDiffResult | undefined {\n return this.highlighter != null\n ? renderDiffWithHighlighter(diff, this.highlighter, this.renderOptions, {\n forcePlainText: true,\n startingLine,\n totalLines,\n expandedHunks,\n collapsedContextThreshold,\n })\n : undefined;\n }\n\n public terminate(): void {\n this.lifecycleGeneration++;\n this.cancelActiveWorkerTasks();\n this.terminateWorkers();\n this.fileCache.clear();\n this.diffCache.clear();\n this.activeRequestByInstance.clear();\n this.queuedTasks.length = 0;\n this.queuedTaskByInstance.clear();\n this.taskByHighlightKey.clear();\n this.activeTaskById.clear();\n this.highlighter = undefined;\n this.initialized = false;\n this.workersFailed = false;\n this.queueBroadcastStateChanges();\n }\n\n private isCurrentLifecycle(lifecycleGeneration: number): boolean {\n return this.lifecycleGeneration === lifecycleGeneration;\n }\n\n private queueInitialization(languages?: SupportedLanguages[]): void {\n void this.initialize(languages).catch((error) => {\n console.error(error);\n });\n }\n\n private cancelActiveWorkerTasks(): void {\n const error = new WorkerPoolTerminatedError();\n for (const task of this.activeTaskById.values()) {\n if ('reject' in task) {\n task.reject(error);\n }\n }\n }\n\n private terminateWorkers() {\n for (const managedWorker of this.workers) {\n managedWorker.worker.terminate();\n }\n this.workers.length = 0;\n }\n\n public getStats(): WorkerStats {\n return {\n managerState: (() => {\n if (this.initialized === false) {\n return 'waiting';\n }\n if (this.initialized !== true) {\n return 'initializing';\n }\n return 'initialized';\n })(),\n totalWorkers: this.workers.length,\n workersFailed: this.workersFailed,\n busyWorkers: this.workers.filter(\n (w) => w.requestId != null || w.pendingSetupRequestId != null\n ).length,\n queuedTasks: this.queuedTasks.length,\n activeTasks: this.activeTaskById.size,\n themeSubscribers: this.themeSubscribers.size,\n fileCacheSize: this.fileCache.size,\n diffCacheSize: this.diffCache.size,\n };\n }\n\n private submitTask(\n instance: FileRendererInstance,\n request: Omit<RenderFileRequest, 'id'>\n ): void;\n private submitTask(\n instance: DiffRendererInstance,\n request: Omit<RenderDiffRequest, 'id'>\n ): void;\n private submitTask(\n instance: FileRendererInstance | DiffRendererInstance,\n request: SubmitRequest\n ): void {\n if (this.initialized === false) {\n this.queueInitialization();\n }\n\n const highlightKey = this.getHighlightKeyForRequest(request);\n const existingTask =\n highlightKey != null\n ? this.getTaskByHighlightKey(highlightKey)\n : undefined;\n if (existingTask != null) {\n this.detachInstanceFromQueuedTasks(instance, existingTask);\n this.addInstanceToTask(existingTask, instance);\n this.queueBroadcastStateChanges();\n return;\n }\n\n this.detachInstanceFromQueuedTasks(instance);\n const id = this.generateRequestId();\n const requestStart = Date.now();\n const { renderOptionsVersion } = this;\n const task: RenderTask = (() => {\n switch (request.type) {\n case 'file':\n return {\n type: 'file',\n id,\n request: { ...request, id },\n instances: new Set([instance as FileRendererInstance]),\n primeCache: false,\n highlightKey,\n renderOptionsVersion,\n requestStart,\n };\n case 'diff':\n return {\n type: 'diff',\n id,\n request: { ...request, id },\n instances: new Set([instance as DiffRendererInstance]),\n primeCache: false,\n highlightKey,\n renderOptionsVersion,\n requestStart,\n };\n }\n })();\n this.enqueueRenderTask(task, instance);\n }\n\n private submitCacheTask(request: SubmitRequest, highlightKey: string): void {\n if (this.initialized === false) {\n this.queueInitialization();\n }\n const id = this.generateRequestId();\n const requestStart = Date.now();\n const { renderOptionsVersion } = this;\n const task: RenderTask = (() => {\n switch (request.type) {\n case 'file':\n return {\n type: 'file',\n id,\n request: { ...request, id },\n instances: new Set<FileRendererInstance>(),\n primeCache: true,\n highlightKey,\n renderOptionsVersion,\n requestStart,\n };\n case 'diff':\n return {\n type: 'diff',\n id,\n request: { ...request, id },\n instances: new Set<DiffRendererInstance>(),\n primeCache: true,\n highlightKey,\n renderOptionsVersion,\n requestStart,\n };\n }\n })();\n this.enqueueRenderTask(task);\n }\n\n private enqueueRenderTask(\n task: RenderTask,\n instance?: RenderTaskInstance\n ): void {\n this.queuedTasks.push(task);\n if (instance != null) {\n this.queuedTaskByInstance.set(instance, task);\n }\n if (task.highlightKey != null) {\n this.taskByHighlightKey.set(task.highlightKey, task);\n }\n this.queueDrain();\n }\n\n private async resolveLanguagesAndExecuteTask(\n availableWorker: ManagedWorker,\n task: RenderFileTask | RenderDiffTask,\n langs: SupportedLanguages[]\n ): Promise<void> {\n try {\n // Add resolved languages if required\n const workerMissingLangs = langs.filter(\n (lang) => !availableWorker.langs.has(lang)\n );\n\n if (workerMissingLangs.length > 0) {\n if (hasResolvedLanguages(workerMissingLangs)) {\n task.request.resolvedLanguages =\n getResolvedLanguages(workerMissingLangs);\n } else {\n task.request.resolvedLanguages =\n await resolveLanguages(workerMissingLangs);\n }\n }\n // If the task has been cleaned up after awaiting language resolving,\n // lets fully clean it up\n if (!this.activeTaskById.has(task.id)) {\n if (availableWorker.requestId === task.id) {\n this.cleanWorkerAndTask(availableWorker, task);\n this.queueBroadcastStateChanges();\n if (this.queuedTasks.length > 0) {\n this.queueDrain();\n }\n }\n return;\n }\n this.executeTask(availableWorker, task);\n } catch {\n this.cleanWorkerAndTask(availableWorker, task);\n this.queueBroadcastStateChanges();\n if (this.queuedTasks.length > 0) {\n this.queueDrain();\n }\n }\n }\n\n private handleWorkerMessage(\n managedWorker: ManagedWorker,\n response: WorkerResponse\n ): void {\n const task = this.activeTaskById.get(response.id);\n try {\n if (task == null) {\n // If we can't find a task for this response, it probably means the\n // component has been unmounted, so we should silently ignore it\n throw IGNORE_RESPONSE;\n } else if (response.type === 'error') {\n const error = new Error(response.error);\n if (response.stack) {\n error.stack = response.stack;\n }\n if ('reject' in task) {\n task.reject(error);\n } else if (isRenderTask(task)) {\n this.notifyHighlightError(task, error);\n } else {\n throw new Error('handleWorkerMessage: unknown task type');\n }\n throw error;\n } else {\n switch (response.requestType) {\n case 'initialize':\n if (task.type !== 'initialize') {\n throw new Error('handleWorkerMessage: task/response dont match');\n }\n this.syncCustomExtensionVersion(managedWorker, task.request);\n task.resolve();\n break;\n case 'set-render-options':\n if (task.type !== 'set-render-options') {\n throw new Error('handleWorkerMessage: task/response dont match');\n }\n task.resolve();\n break;\n case 'file': {\n if (task.type !== 'file') {\n throw new Error('handleWorkerMessage: task/response dont match');\n }\n const { result, options } = response;\n if (\n !this.isCurrentRenderTask(task) ||\n !areFileRenderOptionsEqual(options, this.getFileRenderOptions())\n ) {\n throw IGNORE_RESPONSE;\n }\n const { request } = task;\n this.syncCustomExtensionVersion(managedWorker, request);\n if (request.file.cacheKey != null) {\n this.fileCache.set(request.file.cacheKey, { result, options });\n }\n this.notifyFileInstances(task, result, options);\n break;\n }\n case 'diff': {\n if (task.type !== 'diff') {\n throw new Error('handleWorkerMessage: task/response dont match');\n }\n const { result, options } = response;\n if (\n !this.isCurrentRenderTask(task) ||\n !areDiffRenderOptionsEqual(options, this.getDiffRenderOptions())\n ) {\n throw IGNORE_RESPONSE;\n }\n const { request } = task;\n this.syncCustomExtensionVersion(managedWorker, request);\n if (request.diff.cacheKey != null) {\n this.diffCache.set(request.diff.cacheKey, { result, options });\n }\n this.notifyDiffInstances(task, result, options);\n break;\n }\n }\n }\n } catch (error) {\n if (error !== IGNORE_RESPONSE) {\n console.error(error, task, response);\n }\n }\n\n this.cleanWorkerAndTask(managedWorker, task, response.id);\n this.queueBroadcastStateChanges();\n if (this.queuedTasks.length > 0) {\n // We queue drain so that potentially multiple workers can free up\n // allowing for better language matches if possible\n this.queueDrain();\n }\n }\n\n private _queuedDrain: Promise<void> | undefined;\n private queueDrain() {\n if (this._queuedDrain != null) return;\n this._queuedDrain = Promise.resolve().then(this.drainQueue);\n this.queueBroadcastStateChanges();\n }\n\n private assignWorkerToTask(\n task: AllWorkerTasks,\n managedWorker: ManagedWorker\n ) {\n managedWorker.requestId = task.id;\n if (isRenderTask(task)) {\n this.clearQueuedInstanceRequests(task);\n this.trackInstanceRequests(task);\n }\n this.activeTaskById.set(task.id, task);\n }\n\n private cleanWorkerAndTask(\n managedWorker: ManagedWorker,\n task?: AllWorkerTasks,\n requestId: WorkerRequestId | undefined = task?.id\n ) {\n if (managedWorker.requestId === requestId) {\n managedWorker.requestId = undefined;\n }\n if (managedWorker.pendingSetupRequestId === requestId) {\n managedWorker.pendingSetupRequestId = undefined;\n }\n if (task != null) {\n if (isRenderTask(task)) {\n this.clearInstanceRequests(task);\n this.clearHighlightKey(task);\n }\n this.activeTaskById.delete(task.id);\n }\n }\n\n private executeTask(\n managedWorker: ManagedWorker,\n task: AllWorkerTasks\n ): void {\n if (shouldSyncCustomExtensions(task.request)) {\n this.maybeAttachCustomExtensions(managedWorker, task.request);\n }\n if (!this.activeTaskById.has(task.id)) {\n this.assignWorkerToTask(task, managedWorker);\n }\n for (const lang of getLangsFromTask(task)) {\n managedWorker.langs.add(lang);\n }\n try {\n managedWorker.worker.postMessage(task.request);\n } catch (error) {\n console.error('Failed to post message to worker:', error);\n if (isRenderTask(task)) {\n this.notifyHighlightError(task, error);\n } else if ('reject' in task) {\n task.reject(error as Error);\n }\n this.cleanWorkerAndTask(managedWorker, task);\n if (this.queuedTasks.length > 0) {\n this.queueDrain();\n }\n }\n this.queueBroadcastStateChanges();\n }\n\n private maybeAttachCustomExtensions(\n managedWorker: ManagedWorker,\n request: InitializeWorkerRequest | RenderFileRequest | RenderDiffRequest\n ): void {\n if (request.customExtensionsVersion != null) {\n return;\n }\n const version = getCustomExtensionsVersion();\n if (managedWorker.customExtensionsVersion >= version) {\n return;\n }\n request.customExtensionsVersion = version;\n request.customExtensionMap = getCustomExtensionsMap();\n }\n\n private syncCustomExtensionVersion(\n managedWorker: ManagedWorker,\n request: InitializeWorkerRequest | RenderFileRequest | RenderDiffRequest\n ): void {\n if (request.customExtensionsVersion == null) {\n return;\n }\n managedWorker.customExtensionsVersion = request.customExtensionsVersion;\n }\n\n private getAvailableWorker(\n langs: SupportedLanguages[]\n ): ManagedWorker | undefined {\n let worker: ManagedWorker | undefined;\n for (const managedWorker of this.workers) {\n if (\n managedWorker.requestId != null ||\n managedWorker.pendingSetupRequestId != null ||\n !managedWorker.initialized\n ) {\n continue;\n }\n worker = managedWorker;\n if (langs.length === 0) {\n break;\n }\n let hasEveryLang = true;\n for (const lang of langs) {\n if (!managedWorker.langs.has(lang)) {\n hasEveryLang = false;\n break;\n }\n }\n if (hasEveryLang) {\n break;\n }\n }\n return worker;\n }\n\n private getFileHighlightKey(file: FileContents): string | undefined {\n if (file.cacheKey == null) {\n return undefined;\n }\n return `file:${file.cacheKey}:${this.renderOptionsVersion}`;\n }\n\n private getDiffHighlightKey(diff: FileDiffMetadata): string | undefined {\n if (diff.cacheKey == null) {\n return undefined;\n }\n return `diff:${diff.cacheKey}:${this.renderOptionsVersion}`;\n }\n\n private getHighlightKeyForRequest(\n request: SubmitRequest\n ): string | undefined {\n switch (request.type) {\n case 'file':\n return this.getFileHighlightKey(request.file);\n case 'diff':\n return this.getDiffHighlightKey(request.diff);\n }\n }\n\n private hasActiveRequest(task: RenderTask): boolean {\n for (const instance of getInstances(task)) {\n if (this.activeRequestByInstance.has(instance)) {\n return true;\n }\n }\n return false;\n }\n\n private addInstanceToTask(\n task: RenderTask,\n instance: FileRendererInstance | DiffRendererInstance\n ): void {\n if (task.type === 'file') {\n task.instances.add(instance as FileRendererInstance);\n } else {\n task.instances.add(instance as DiffRendererInstance);\n }\n if (this.activeTaskById.has(task.id)) {\n this.activeRequestByInstance.set(instance, task.id);\n } else {\n this.queuedTaskByInstance.set(instance, task);\n }\n }\n\n private detachInstanceFromQueuedTasks(\n instance: RenderTaskInstance,\n exceptTask?: RenderTask\n ): void {\n const task = this.queuedTaskByInstance.get(instance);\n if (task == null || task === exceptTask) {\n return;\n }\n this.queuedTaskByInstance.delete(instance);\n this.detachInstanceFromRenderTask(task, instance);\n if (!task.primeCache && task.instances.size === 0) {\n this.removeQueuedTask(task);\n }\n }\n\n private detachInstanceFromRenderTask(\n task: RenderTask,\n instance: RenderTaskInstance\n ): void {\n if (task.type === 'file') {\n task.instances.delete(instance as FileRendererInstance);\n } else {\n task.instances.delete(instance as DiffRendererInstance);\n }\n }\n\n private removeQueuedTask(task: RenderTask): void {\n const index = this.queuedTasks.indexOf(task);\n if (index !== -1) {\n this.queuedTasks.splice(index, 1);\n }\n this.clearQueuedInstanceRequests(task);\n this.clearHighlightKey(task);\n }\n\n private removeActiveTask(task: RenderTask): void {\n this.clearInstanceRequests(task);\n this.clearHighlightKey(task);\n this.activeTaskById.delete(task.id);\n }\n\n private invalidateRenderTasks(): void {\n for (let index = this.queuedTasks.length - 1; index >= 0; index--) {\n const task = this.queuedTasks[index];\n if (task.renderOptionsVersion !== this.renderOptionsVersion) {\n this.removeQueuedTask(task);\n }\n }\n\n for (const task of Array.from(this.activeTaskById.values())) {\n if (\n isRenderTask(task) &&\n task.renderOptionsVersion !== this.renderOptionsVersion\n ) {\n this.removeActiveTask(task);\n }\n }\n }\n\n private clearQueuedInstanceRequests(task: RenderTask): void {\n for (const instance of getInstances(task)) {\n if (this.queuedTaskByInstance.get(instance) === task) {\n this.queuedTaskByInstance.delete(instance);\n }\n }\n }\n\n private clearHighlightKey(task: RenderTask): void {\n if (\n task.highlightKey != null &&\n this.taskByHighlightKey.get(task.highlightKey) === task\n ) {\n this.taskByHighlightKey.delete(task.highlightKey);\n }\n }\n\n private trackInstanceRequests(task: RenderTask): void {\n for (const instance of getInstances(task)) {\n this.activeRequestByInstance.set(instance, task.id);\n }\n }\n\n private clearInstanceRequests(task: RenderTask): void {\n for (const instance of getInstances(task)) {\n if (this.activeRequestByInstance.get(instance) === task.id) {\n this.activeRequestByInstance.delete(instance);\n }\n }\n }\n\n private notifyFileInstances(\n task: RenderFileTask,\n result: ThemedFileResult,\n options: RenderFileOptions\n ): void {\n for (const instance of task.instances) {\n if (this.activeRequestByInstance.get(instance) === task.id) {\n instance.onHighlightSuccess(task.request.file, result, options);\n }\n }\n }\n\n private notifyDiffInstances(\n task: RenderDiffTask,\n result: ThemedDiffResult,\n options: RenderDiffOptions\n ): void {\n for (const instance of task.instances) {\n if (this.activeRequestByInstance.get(instance) === task.id) {\n instance.onHighlightSuccess(task.request.diff, result, options);\n }\n }\n }\n\n private notifyHighlightError(task: RenderTask, error: unknown): void {\n for (const instance of getInstances(task)) {\n if (this.activeRequestByInstance.get(instance) === task.id) {\n instance.onHighlightError(error);\n }\n }\n }\n\n private hasMatchingFileInstanceTask(\n instance: FileRendererInstance,\n file: FileContents\n ): boolean {\n for (const task of this.iterateRenderTasks()) {\n if (\n task.type === 'file' &&\n this.isCurrentRenderTask(task) &&\n task.instances.has(instance) &&\n areFilesEqual(file, task.request.file)\n ) {\n return true;\n }\n }\n return false;\n }\n\n private hasMatchingDiffInstanceTask(\n instance: DiffRendererInstance,\n diff: FileDiffMetadata\n ): boolean {\n for (const task of this.iterateRenderTasks()) {\n if (\n task.type === 'diff' &&\n this.isCurrentRenderTask(task) &&\n task.instances.has(instance) &&\n areDiffTargetsEqual(task.request.diff, diff)\n ) {\n return true;\n }\n }\n return false;\n }\n\n private getTaskByHighlightKey(highlightKey: string): RenderTask | undefined {\n const task = this.taskByHighlightKey.get(highlightKey);\n return task != null && this.isCurrentRenderTask(task) ? task : undefined;\n }\n\n private isCurrentRenderTask(task: RenderTask): boolean {\n return task.renderOptionsVersion === this.renderOptionsVersion;\n }\n\n private *iterateRenderTasks(): Generator<RenderTask> {\n for (const task of this.queuedTasks) {\n yield task;\n }\n for (const task of this.activeTaskById.values()) {\n if (isRenderTask(task)) {\n yield task;\n }\n }\n }\n\n private generateRequestId(): WorkerRequestId {\n return `req_${++this.nextRequestId}`;\n }\n}\n\nfunction shouldSyncCustomExtensions(\n request: AllWorkerTasks['request']\n): request is InitializeWorkerRequest | RenderFileRequest | RenderDiffRequest {\n return (\n request.type === 'initialize' ||\n request.type === 'file' ||\n request.type === 'diff'\n );\n}\n\nfunction getLangsFromTask(task: AllWorkerTasks): SupportedLanguages[] {\n const langs = new Set<SupportedLanguages>();\n if (task.type === 'initialize' || task.type === 'set-render-options') {\n return [];\n }\n switch (task.type) {\n case 'file': {\n langs.add(\n task.request.file.lang ??\n getFiletypeFromFileName(task.request.file.name)\n );\n break;\n }\n case 'diff': {\n langs.add(\n task.request.diff.lang ??\n getFiletypeFromFileName(task.request.diff.name)\n );\n langs.add(\n task.request.diff.lang ??\n getFiletypeFromFileName(task.request.diff.prevName ?? '-')\n );\n break;\n }\n }\n langs.delete('text');\n return Array.from(langs);\n}\n\nfunction isRenderTask(task: AllWorkerTasks | undefined): task is RenderTask {\n return task?.type === 'file' || task?.type === 'diff';\n}\n\nfunction getInstances(\n task: RenderTask\n): Set<FileRendererInstance | DiffRendererInstance> {\n return task.instances as Set<FileRendererInstance | DiffRendererInstance>;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"WorkerPoolManager.js","names":[],"sources":["../../src/worker/WorkerPoolManager.ts"],"sourcesContent":["import LRUMapPkg from 'lru_map';\n\nimport { DEFAULT_THEMES } from '../constants';\nimport { getResolvedLanguages } from '../highlighter/languages/getResolvedLanguages';\nimport { hasResolvedLanguages } from '../highlighter/languages/hasResolvedLanguages';\nimport { resolveLanguages } from '../highlighter/languages/resolveLanguages';\nimport { getSharedHighlighter } from '../highlighter/shared_highlighter';\nimport { attachResolvedThemes } from '../highlighter/themes/attachResolvedThemes';\nimport { getResolvedThemes } from '../highlighter/themes/getResolvedThemes';\nimport { hasResolvedThemes } from '../highlighter/themes/hasResolvedThemes';\nimport { resolveThemes } from '../highlighter/themes/resolveThemes';\nimport type {\n DiffsHighlighter,\n FileContents,\n FileDiffMetadata,\n HighlighterTypes,\n HunkExpansionRegion,\n RenderDiffOptions,\n RenderDiffResult,\n RenderFileOptions,\n RenderFileResult,\n SupportedLanguages,\n ThemedDiffResult,\n ThemedFileResult,\n ThemeRegistrationResolved,\n} from '../types';\nimport { areDiffRenderOptionsEqual } from '../utils/areDiffRenderOptionsEqual';\nimport { areDiffTargetsEqual } from '../utils/areDiffTargetsEqual';\nimport { areFileRenderOptionsEqual } from '../utils/areFileRenderOptionsEqual';\nimport { areFilesEqual } from '../utils/areFilesEqual';\nimport { areThemesEqual } from '../utils/areThemesEqual';\nimport {\n getCustomExtensionsMap,\n getCustomExtensionsVersion,\n getFiletypeFromFileName,\n} from '../utils/getFiletypeFromFileName';\nimport { getThemes } from '../utils/getThemes';\nimport { isDiffPlainText } from '../utils/isDiffPlainText';\nimport { isFilePlainText } from '../utils/isFilePlainText';\nimport { renderDiffWithHighlighter } from '../utils/renderDiffWithHighlighter';\nimport { renderFileWithHighlighter } from '../utils/renderFileWithHighlighter';\nimport type {\n AllWorkerTasks,\n DiffRendererInstance,\n FileRendererInstance,\n InitializeWorkerRequest,\n InitializeWorkerTask,\n RenderDiffRequest,\n RenderDiffTask,\n RenderFileRequest,\n RenderFileTask,\n ResolvedLanguage,\n SetRenderOptionsWorkerTask,\n SubmitRequest,\n WorkerInitializationRenderOptions,\n WorkerPoolOptions,\n WorkerRenderingOptions,\n WorkerRequestId,\n WorkerResponse,\n WorkerStats,\n} from './types';\n\nconst IGNORE_RESPONSE = Symbol('IGNORE_RESPONSE');\n\nclass WorkerPoolTerminatedError extends Error {\n constructor() {\n super('WorkerPoolManager: operation canceled because the pool terminated');\n }\n}\n\nclass WorkerPoolTaskCanceledError extends Error {\n constructor() {\n super('WorkerPoolManager: operation canceled before the task completed');\n }\n}\n\ninterface GetCachesResult {\n fileCache: LRUMapPkg.LRUMap<string, RenderFileResult>;\n diffCache: LRUMapPkg.LRUMap<string, RenderDiffResult>;\n}\n\ninterface ManagedWorker {\n worker: Worker;\n requestId: string | undefined;\n pendingSetupRequestId: WorkerRequestId | undefined;\n initialized: boolean;\n langs: Set<SupportedLanguages>;\n customExtensionsVersion: number;\n}\n\ninterface ThemeSubscriber {\n onThemeChange(): void;\n}\n\ntype RenderTask = RenderFileTask | RenderDiffTask;\n\ntype RenderTaskInstance = FileRendererInstance | DiffRendererInstance;\n\nexport class WorkerPoolManager {\n private highlighter: DiffsHighlighter | undefined;\n private readonly preferredHighlighter: HighlighterTypes;\n private renderOptions: WorkerRenderingOptions;\n private renderOptionsRequestVersion = 0;\n private renderOptionsVersion = 0;\n private initialized: Promise<void> | boolean = false;\n private workers: ManagedWorker[] = [];\n // Tasks that are waiting to get processed by a worker\n private queuedTasks: RenderTask[] = [];\n private queuedTaskByInstance = new Map<RenderTaskInstance, RenderTask>();\n\n // Tasks that map to highlightKey are essentially singular, so we only\n // need one map to include queued and active\n private taskByHighlightKey = new Map<string, RenderTask>();\n\n // Tasks that have already been sent to a worker and are awaiting a response.\n private activeTaskById = new Map<WorkerRequestId, AllWorkerTasks>();\n private activeRequestByInstance = new Map<\n RenderTaskInstance,\n WorkerRequestId\n >();\n\n private nextRequestId = 0;\n private themeSubscribers = new Set<ThemeSubscriber>();\n private workersFailed = false;\n private statSubscribers = new Set<(stats: WorkerStats) => unknown>();\n private fileCache: LRUMapPkg.LRUMap<string, RenderFileResult>;\n private diffCache: LRUMapPkg.LRUMap<string, RenderDiffResult>;\n private _queuedBroadcast: number | undefined;\n // Incremented on terminate so async lifecycle work can identify stale results.\n private lifecycleGeneration = 0;\n\n constructor(\n private options: WorkerPoolOptions,\n {\n langs,\n theme = DEFAULT_THEMES,\n useTokenTransformer = false,\n lineDiffType = 'word-alt',\n maxLineDiffLength = 1000,\n tokenizeMaxLineLength = 1000,\n preferredHighlighter = 'shiki-js',\n }: WorkerInitializationRenderOptions\n ) {\n this.preferredHighlighter = preferredHighlighter;\n this.renderOptions = {\n theme,\n useTokenTransformer,\n lineDiffType,\n maxLineDiffLength,\n tokenizeMaxLineLength,\n };\n this.fileCache = new LRUMapPkg.LRUMap(options.totalASTLRUCacheSize ?? 100);\n this.diffCache = new LRUMapPkg.LRUMap(options.totalASTLRUCacheSize ?? 100);\n this.queueInitialization(langs);\n }\n\n public isWorkingPool(): boolean {\n return !this.workersFailed;\n }\n\n public getFileResultCache(file: FileContents): RenderFileResult | undefined {\n return file.cacheKey != null\n ? this.fileCache.get(file.cacheKey)\n : undefined;\n }\n\n public getDiffResultCache(\n diff: FileDiffMetadata\n ): RenderDiffResult | undefined {\n return diff.cacheKey != null\n ? this.diffCache.get(diff.cacheKey)\n : undefined;\n }\n\n public inspectCaches(): GetCachesResult {\n const { fileCache, diffCache } = this;\n return { fileCache, diffCache };\n }\n\n public evictFileFromCache(cacheKey: string): boolean {\n try {\n return this.fileCache.delete(cacheKey) !== undefined;\n } finally {\n this.queueBroadcastStateChanges();\n }\n }\n\n public evictDiffFromCache(cacheKey: string): boolean {\n try {\n return this.diffCache.delete(cacheKey) !== undefined;\n } finally {\n this.queueBroadcastStateChanges();\n }\n }\n\n async setRenderOptions({\n theme = this.renderOptions.theme ?? DEFAULT_THEMES,\n useTokenTransformer = this.renderOptions.useTokenTransformer ?? false,\n lineDiffType = this.renderOptions.lineDiffType ?? 'word-alt',\n maxLineDiffLength = this.renderOptions.maxLineDiffLength ?? 1000,\n tokenizeMaxLineLength = this.renderOptions.tokenizeMaxLineLength ?? 1000,\n }: Partial<WorkerRenderingOptions>): Promise<void> {\n const { lifecycleGeneration } = this;\n const renderOptionsRequestVersion = ++this.renderOptionsRequestVersion;\n const isCurrentRequest = (): boolean =>\n this.isCurrentLifecycle(lifecycleGeneration) &&\n this.renderOptionsRequestVersion === renderOptionsRequestVersion;\n try {\n const newRenderOptions: WorkerRenderingOptions = {\n theme,\n useTokenTransformer,\n lineDiffType,\n maxLineDiffLength,\n tokenizeMaxLineLength,\n };\n if (!this.isInitialized()) {\n await this.initialize();\n }\n if (\n !isCurrentRequest() ||\n areDiffRenderOptionsEqual(newRenderOptions, this.renderOptions)\n ) {\n return;\n }\n\n const themeNames = getThemes(theme);\n let resolvedThemes: ThemeRegistrationResolved[] = [];\n if (!areThemesEqual(newRenderOptions.theme, this.renderOptions.theme)) {\n if (hasResolvedThemes(themeNames)) {\n resolvedThemes = getResolvedThemes(themeNames);\n } else {\n resolvedThemes = await resolveThemes(themeNames);\n }\n }\n\n if (!isCurrentRequest()) {\n return;\n }\n\n if (this.highlighter != null) {\n attachResolvedThemes(resolvedThemes, this.highlighter);\n } else {\n const highlighter = await getSharedHighlighter({\n themes: themeNames,\n langs: ['text'],\n preferredHighlighter: this.preferredHighlighter,\n });\n if (!isCurrentRequest()) {\n return;\n }\n this.highlighter = highlighter;\n }\n\n const workerSetup = this.setRenderOptionsOnWorkers(\n newRenderOptions,\n resolvedThemes\n );\n\n this.renderOptions = newRenderOptions;\n this.renderOptionsVersion++;\n this.diffCache.clear();\n this.fileCache.clear();\n this.invalidateRenderTasks();\n\n for (const instance of this.themeSubscribers) {\n instance.onThemeChange();\n }\n\n await workerSetup;\n } catch (error) {\n if (error instanceof WorkerPoolTerminatedError || !isCurrentRequest()) {\n return;\n }\n throw error;\n }\n }\n\n public getPreferredHighlighter(): HighlighterTypes {\n return this.preferredHighlighter;\n }\n\n public getFileRenderOptions(): RenderFileOptions {\n const { tokenizeMaxLineLength, theme, useTokenTransformer } =\n this.renderOptions;\n return { theme, useTokenTransformer, tokenizeMaxLineLength };\n }\n\n public getDiffRenderOptions(): RenderDiffOptions {\n return { ...this.renderOptions };\n }\n\n private async setRenderOptionsOnWorkers(\n renderOptions: WorkerRenderingOptions,\n resolvedThemes: ThemeRegistrationResolved[]\n ): Promise<void> {\n if (this.workersFailed) {\n return;\n }\n if (!this.isInitialized()) {\n await this.initialize();\n }\n const taskPromises: Promise<void>[] = [];\n for (const managedWorker of this.workers) {\n if (!managedWorker.initialized) {\n console.log({ managedWorker });\n throw new Error(\n 'setRenderOptionsOnWorkers: Somehow we have an uninitialized worker'\n );\n }\n taskPromises.push(\n new Promise<void>((resolve, reject) => {\n const id = this.generateRequestId();\n const task: SetRenderOptionsWorkerTask = {\n type: 'set-render-options',\n id,\n request: {\n type: 'set-render-options',\n id,\n renderOptions,\n resolvedThemes,\n },\n resolve,\n reject,\n requestStart: Date.now(),\n };\n // Render-option updates are posted immediately, but the worker stays\n // unavailable for new render work until it acknowledges this message.\n this.activeTaskById.set(id, task);\n managedWorker.pendingSetupRequestId = id;\n managedWorker.worker.postMessage(task.request);\n })\n );\n }\n await Promise.all(taskPromises);\n }\n\n public subscribeToThemeChanges(instance: ThemeSubscriber): () => void {\n this.themeSubscribers.add(instance);\n this.queueBroadcastStateChanges();\n return () => {\n this.unsubscribeToThemeChanges(instance);\n this.queueBroadcastStateChanges();\n };\n }\n\n public unsubscribeToThemeChanges(instance: ThemeSubscriber): void {\n this.themeSubscribers.delete(instance);\n this.queueBroadcastStateChanges();\n }\n\n public subscribeToStatChanges(\n callback: (stats: WorkerStats) => unknown\n ): () => void {\n this.statSubscribers.add(callback);\n callback(this.getStats());\n return () => {\n this.statSubscribers.delete(callback);\n };\n }\n\n private queueBroadcastStateChanges() {\n if (this._queuedBroadcast != null) return;\n this._queuedBroadcast = requestAnimationFrame(this._broadcastStateChanges);\n }\n\n private _broadcastStateChanges = () => {\n if (this._queuedBroadcast != null) {\n cancelAnimationFrame(this._queuedBroadcast);\n this._queuedBroadcast = undefined;\n }\n const stats = this.getStats();\n for (const callback of this.statSubscribers) {\n callback(stats);\n }\n };\n\n public cleanUpTasks(instance: RenderTaskInstance): void {\n this.detachInstanceFromQueuedTasks(instance);\n const requestId = this.activeRequestByInstance.get(instance);\n if (requestId != null) {\n const task = this.activeTaskById.get(requestId);\n if (isRenderTask(task)) {\n this.detachInstanceFromRenderTask(task, instance);\n if (!task.primeCache && task.instances.size === 0) {\n this.removeActiveTask(task);\n }\n } else {\n this.activeTaskById.delete(requestId);\n }\n }\n this.activeRequestByInstance.delete(instance);\n this.queueBroadcastStateChanges();\n }\n\n public isInitialized(): boolean {\n return this.initialized === true;\n }\n\n public async initialize(languages: SupportedLanguages[] = []): Promise<void> {\n if (this.initialized === true) {\n return;\n } else if (this.initialized === false) {\n const { lifecycleGeneration } = this;\n this.initialized = new Promise((resolve, reject) => {\n void (async () => {\n try {\n const themes = getThemes(this.renderOptions.theme);\n let resolvedThemes: ThemeRegistrationResolved[] = [];\n if (hasResolvedThemes(themes)) {\n resolvedThemes = getResolvedThemes(themes);\n } else {\n resolvedThemes = await resolveThemes(themes);\n }\n if (!this.isCurrentLifecycle(lifecycleGeneration)) {\n resolve();\n return;\n }\n\n let resolvedLanguages: ResolvedLanguage[] = [];\n if (hasResolvedLanguages(languages)) {\n resolvedLanguages = getResolvedLanguages(languages);\n } else {\n resolvedLanguages = await resolveLanguages(languages);\n }\n if (!this.isCurrentLifecycle(lifecycleGeneration)) {\n resolve();\n return;\n }\n\n const [highlighter] = await Promise.all([\n getSharedHighlighter({\n themes,\n langs: ['text', ...languages],\n preferredHighlighter: this.preferredHighlighter,\n }),\n this.initializeWorkers(resolvedThemes, resolvedLanguages),\n ]);\n\n if (!this.isCurrentLifecycle(lifecycleGeneration)) {\n this.terminateWorkers();\n resolve();\n return;\n }\n this.highlighter = highlighter;\n this.initialized = true;\n this.diffCache.clear();\n this.fileCache.clear();\n this.drainQueue();\n this.queueBroadcastStateChanges();\n resolve();\n } catch (e) {\n if (\n e instanceof WorkerPoolTerminatedError ||\n !this.isCurrentLifecycle(lifecycleGeneration)\n ) {\n resolve();\n return;\n }\n this.initialized = false;\n this.workersFailed = true;\n for (const task of this.queuedTasks) {\n this.rejectRenderTaskCallbacks(task, normalizeWorkerError(e));\n }\n this.queueBroadcastStateChanges();\n reject(e);\n }\n })();\n });\n this.queueBroadcastStateChanges();\n } else {\n return this.initialized;\n }\n }\n\n private async initializeWorkers(\n resolvedThemes: ThemeRegistrationResolved[],\n resolvedLanguages: ResolvedLanguage[]\n ): Promise<void> {\n this.workersFailed = false;\n const initPromises: Promise<unknown>[] = [];\n const customExtensionVersion = getCustomExtensionsVersion();\n const customExtensionMap =\n customExtensionVersion > 0 ? getCustomExtensionsMap() : undefined;\n if (this.workers.length > 0) {\n this.terminateWorkers();\n }\n for (let i = 0; i < (this.options.poolSize ?? 8); i++) {\n const worker = this.options.workerFactory();\n const managedWorker: ManagedWorker = {\n worker,\n requestId: undefined,\n pendingSetupRequestId: undefined,\n initialized: false,\n langs: new Set(['text', ...resolvedLanguages.map(({ name }) => name)]),\n customExtensionsVersion: 0,\n };\n worker.addEventListener(\n 'message',\n (event: MessageEvent<WorkerResponse>) => {\n this.handleWorkerMessage(managedWorker, event.data);\n }\n );\n worker.addEventListener('error', (error) =>\n console.error('Worker error:', error, managedWorker)\n );\n this.workers.push(managedWorker);\n initPromises.push(\n new Promise<void>((resolve, reject) => {\n const id = this.generateRequestId();\n const task: InitializeWorkerTask = {\n type: 'initialize',\n id,\n request: {\n type: 'initialize',\n id,\n renderOptions: this.renderOptions,\n preferredHighlighter: this.preferredHighlighter,\n resolvedThemes,\n resolvedLanguages,\n customExtensionsVersion:\n customExtensionMap != null ? customExtensionVersion : undefined,\n customExtensionMap,\n },\n resolve() {\n managedWorker.initialized = true;\n resolve();\n },\n reject,\n requestStart: Date.now(),\n };\n this.activeTaskById.set(id, task);\n this.executeTask(managedWorker, task);\n })\n );\n }\n await Promise.all(initPromises);\n }\n\n private drainQueue = () => {\n this._queuedDrain = undefined;\n // If we are initializing or things got cancelled while initializing, we\n // should not attempt to drain the queue\n if (this.initialized !== true || this.queuedTasks.length === 0) {\n return;\n }\n for (let i = 0; i < this.queuedTasks.length; ) {\n const task = this.queuedTasks[i];\n // If any instance has a request in progress, we should wait for it to\n // finish before starting work that would notify that instance.\n if (this.hasActiveRequest(task)) {\n i++;\n continue;\n }\n const langs = getLangsFromTask(task);\n const availableWorker = this.getAvailableWorker(langs);\n if (availableWorker == null) {\n break;\n }\n this.queuedTasks.splice(i, 1);\n this.assignWorkerToTask(task, availableWorker);\n void this.resolveLanguagesAndExecuteTask(availableWorker, task, langs);\n }\n this.queueBroadcastStateChanges();\n };\n\n public highlightFileAST(\n instance: FileRendererInstance,\n file: FileContents\n ): void {\n const cachedResult = this.getFileResultCache(file);\n // If we've already highlighted the file or it's plain text, we should not\n // attempt to highlight. This should be mostly never hit, but it's just an\n // extra level of safety\n if (\n isFilePlainText(file) ||\n (cachedResult != null &&\n areFileRenderOptionsEqual(\n cachedResult.options,\n this.getFileRenderOptions()\n ))\n ) {\n return;\n }\n if (!this.hasMatchingFileInstanceTask(instance, file)) {\n this.submitTask(instance, { type: 'file', file });\n }\n }\n\n public primeFileHighlightCache(file: FileContents): Promise<void> {\n if (!this.isWorkingPool()) {\n return Promise.reject(\n new Error(\n 'WorkerPoolManager.primeFileHighlightCache: worker pool is not working'\n )\n );\n }\n\n const task = this.getOrCreateFileHighlightCacheTask(file);\n return task != null\n ? this.createRenderTaskCallbacks(task)\n : Promise.resolve();\n }\n\n private getOrCreateFileHighlightCacheTask(\n file: FileContents\n ): RenderFileTask | undefined {\n if (file.cacheKey == null) {\n console.warn(\n `WorkerPoolManager.primeFileHighlightCache: priming highlight cache requires file.cacheKey; skipping \"${file.name}\".`\n );\n return undefined;\n }\n const cachedResult = this.getFileResultCache(file);\n const highlightKey = this.getFileHighlightKey(file);\n if (\n highlightKey == null ||\n isFilePlainText(file) ||\n (cachedResult != null &&\n areFileRenderOptionsEqual(\n cachedResult.options,\n this.getFileRenderOptions()\n ))\n ) {\n return undefined;\n }\n const existingTask = this.getTaskByHighlightKey(highlightKey);\n if (existingTask != null) {\n existingTask.primeCache = true;\n return existingTask.type === 'file' ? existingTask : undefined;\n } else {\n const task = this.submitCacheTask({ type: 'file', file }, highlightKey);\n return task.type === 'file' ? task : undefined;\n }\n }\n\n public getPlainFileAST(\n file: FileContents,\n startingLine: number,\n totalLines: number,\n lines?: string[]\n ): ThemedFileResult | undefined {\n if (this.highlighter == null) {\n this.queueInitialization();\n return undefined;\n }\n return renderFileWithHighlighter(\n file,\n this.highlighter,\n this.renderOptions,\n { forcePlainText: true, startingLine, totalLines, lines }\n );\n }\n\n public highlightDiffAST(\n instance: DiffRendererInstance,\n diff: FileDiffMetadata\n ): void {\n const cachedResult = this.getDiffResultCache(diff);\n // If we've already highlighted the diff or it's plain text, we should not\n // attempt to highlight. This should be mostly never hit, but it's just an\n // extra level of safety\n if (\n isDiffPlainText(diff) ||\n (cachedResult != null &&\n areDiffRenderOptionsEqual(\n cachedResult.options,\n this.getDiffRenderOptions()\n ))\n ) {\n return;\n }\n if (!this.hasMatchingDiffInstanceTask(instance, diff)) {\n this.submitTask(instance, { type: 'diff', diff });\n }\n }\n\n public primeDiffHighlightCache(diff: FileDiffMetadata): Promise<void> {\n if (!this.isWorkingPool()) {\n return Promise.reject(\n new Error(\n 'WorkerPoolManager.primeDiffHighlightCache: worker pool is not working'\n )\n );\n }\n\n const task = this.getOrCreateDiffHighlightCacheTask(diff);\n return task != null\n ? this.createRenderTaskCallbacks(task)\n : Promise.resolve();\n }\n\n private getOrCreateDiffHighlightCacheTask(\n diff: FileDiffMetadata\n ): RenderDiffTask | undefined {\n if (diff.cacheKey == null) {\n console.warn(\n `WorkerPoolManager.primeDiffHighlightCache: priming highlight cache requires diff.cacheKey; skipping \"${diff.prevName ?? diff.name}\" -> \"${diff.name}\".`\n );\n return undefined;\n }\n const cachedResult = this.getDiffResultCache(diff);\n const highlightKey = this.getDiffHighlightKey(diff);\n if (\n highlightKey == null ||\n isDiffPlainText(diff) ||\n (cachedResult != null &&\n areDiffRenderOptionsEqual(\n cachedResult.options,\n this.getDiffRenderOptions()\n ))\n ) {\n return undefined;\n }\n const existingTask = this.getTaskByHighlightKey(highlightKey);\n if (existingTask != null) {\n existingTask.primeCache = true;\n return existingTask.type === 'diff' ? existingTask : undefined;\n } else {\n const task = this.submitCacheTask({ type: 'diff', diff }, highlightKey);\n return task.type === 'diff' ? task : undefined;\n }\n }\n\n public getPlainDiffAST(\n diff: FileDiffMetadata,\n startingLine: number,\n totalLines: number,\n expandedHunks?: Map<number, HunkExpansionRegion> | true,\n collapsedContextThreshold?: number\n ): ThemedDiffResult | undefined {\n return this.highlighter != null\n ? renderDiffWithHighlighter(diff, this.highlighter, this.renderOptions, {\n forcePlainText: true,\n startingLine,\n totalLines,\n expandedHunks,\n collapsedContextThreshold,\n })\n : undefined;\n }\n\n public terminate(): void {\n this.lifecycleGeneration++;\n this.cancelActiveWorkerTasks();\n this.terminateWorkers();\n const error = new WorkerPoolTerminatedError();\n for (const task of this.queuedTasks) {\n this.rejectRenderTaskCallbacks(task, error);\n }\n this.fileCache.clear();\n this.diffCache.clear();\n this.activeRequestByInstance.clear();\n this.queuedTasks.length = 0;\n this.queuedTaskByInstance.clear();\n this.taskByHighlightKey.clear();\n this.activeTaskById.clear();\n this.highlighter = undefined;\n this.initialized = false;\n this.workersFailed = false;\n this.queueBroadcastStateChanges();\n }\n\n private isCurrentLifecycle(lifecycleGeneration: number): boolean {\n return this.lifecycleGeneration === lifecycleGeneration;\n }\n\n private queueInitialization(languages?: SupportedLanguages[]): void {\n void this.initialize(languages).catch((error) => {\n console.error(error);\n });\n }\n\n private cancelActiveWorkerTasks(): void {\n const error = new WorkerPoolTerminatedError();\n for (const task of this.activeTaskById.values()) {\n if ('reject' in task) {\n task.reject(error);\n } else if (isRenderTask(task)) {\n this.rejectRenderTaskCallbacks(task, error);\n }\n }\n }\n\n private terminateWorkers() {\n for (const managedWorker of this.workers) {\n managedWorker.worker.terminate();\n }\n this.workers.length = 0;\n }\n\n public getStats(): WorkerStats {\n return {\n managerState: (() => {\n if (this.initialized === false) {\n return 'waiting';\n }\n if (this.initialized !== true) {\n return 'initializing';\n }\n return 'initialized';\n })(),\n totalWorkers: this.workers.length,\n workersFailed: this.workersFailed,\n busyWorkers: this.workers.filter(\n (w) => w.requestId != null || w.pendingSetupRequestId != null\n ).length,\n queuedTasks: this.queuedTasks.length,\n activeTasks: this.activeTaskById.size,\n themeSubscribers: this.themeSubscribers.size,\n fileCacheSize: this.fileCache.size,\n diffCacheSize: this.diffCache.size,\n };\n }\n\n private submitTask(\n instance: FileRendererInstance,\n request: Omit<RenderFileRequest, 'id'>\n ): void;\n private submitTask(\n instance: DiffRendererInstance,\n request: Omit<RenderDiffRequest, 'id'>\n ): void;\n private submitTask(\n instance: FileRendererInstance | DiffRendererInstance,\n request: SubmitRequest\n ): void {\n if (this.initialized === false) {\n this.queueInitialization();\n }\n\n const highlightKey = this.getHighlightKeyForRequest(request);\n const existingTask =\n highlightKey != null\n ? this.getTaskByHighlightKey(highlightKey)\n : undefined;\n if (existingTask != null) {\n this.detachInstanceFromQueuedTasks(instance, existingTask);\n this.addInstanceToTask(existingTask, instance);\n this.queueBroadcastStateChanges();\n return;\n }\n\n this.detachInstanceFromQueuedTasks(instance);\n const id = this.generateRequestId();\n const requestStart = Date.now();\n const { renderOptionsVersion } = this;\n const task: RenderTask = (() => {\n switch (request.type) {\n case 'file':\n return {\n type: 'file',\n id,\n request: { ...request, id },\n instances: new Set([instance as FileRendererInstance]),\n primeCache: false,\n highlightKey,\n callbacks: new Set(),\n renderOptionsVersion,\n requestStart,\n };\n case 'diff':\n return {\n type: 'diff',\n id,\n request: { ...request, id },\n instances: new Set([instance as DiffRendererInstance]),\n primeCache: false,\n highlightKey,\n callbacks: new Set(),\n renderOptionsVersion,\n requestStart,\n };\n }\n })();\n this.enqueueRenderTask(task, instance);\n }\n\n private submitCacheTask(\n request: SubmitRequest,\n highlightKey: string\n ): RenderTask {\n if (this.initialized === false) {\n this.queueInitialization();\n }\n const id = this.generateRequestId();\n const requestStart = Date.now();\n const { renderOptionsVersion } = this;\n const task: RenderTask = (() => {\n switch (request.type) {\n case 'file':\n return {\n type: 'file',\n id,\n request: { ...request, id },\n instances: new Set<FileRendererInstance>(),\n primeCache: true,\n highlightKey,\n callbacks: new Set(),\n renderOptionsVersion,\n requestStart,\n };\n case 'diff':\n return {\n type: 'diff',\n id,\n request: { ...request, id },\n instances: new Set<DiffRendererInstance>(),\n primeCache: true,\n highlightKey,\n callbacks: new Set(),\n renderOptionsVersion,\n requestStart,\n };\n }\n })();\n this.enqueueRenderTask(task);\n return task;\n }\n\n private enqueueRenderTask(\n task: RenderTask,\n instance?: RenderTaskInstance\n ): void {\n this.queuedTasks.push(task);\n if (instance != null) {\n this.queuedTaskByInstance.set(instance, task);\n }\n if (task.highlightKey != null) {\n this.taskByHighlightKey.set(task.highlightKey, task);\n }\n this.queueDrain();\n }\n\n private async resolveLanguagesAndExecuteTask(\n availableWorker: ManagedWorker,\n task: RenderFileTask | RenderDiffTask,\n langs: SupportedLanguages[]\n ): Promise<void> {\n try {\n // Add resolved languages if required\n const workerMissingLangs = langs.filter(\n (lang) => !availableWorker.langs.has(lang)\n );\n\n if (workerMissingLangs.length > 0) {\n if (hasResolvedLanguages(workerMissingLangs)) {\n task.request.resolvedLanguages =\n getResolvedLanguages(workerMissingLangs);\n } else {\n task.request.resolvedLanguages =\n await resolveLanguages(workerMissingLangs);\n }\n }\n // If the task has been cleaned up after awaiting language resolving,\n // lets fully clean it up\n if (!this.activeTaskById.has(task.id)) {\n if (availableWorker.requestId === task.id) {\n this.cleanWorkerAndTask(availableWorker, task);\n this.queueBroadcastStateChanges();\n if (this.queuedTasks.length > 0) {\n this.queueDrain();\n }\n }\n return;\n }\n this.executeTask(availableWorker, task);\n } catch (error) {\n this.rejectRenderTaskCallbacks(task, normalizeWorkerError(error));\n this.cleanWorkerAndTask(availableWorker, task);\n this.queueBroadcastStateChanges();\n if (this.queuedTasks.length > 0) {\n this.queueDrain();\n }\n }\n }\n\n private handleWorkerMessage(\n managedWorker: ManagedWorker,\n response: WorkerResponse\n ): void {\n const task = this.activeTaskById.get(response.id);\n try {\n if (task == null) {\n // If we can't find a task for this response, it probably means the\n // component has been unmounted, so we should silently ignore it\n throw IGNORE_RESPONSE;\n } else if (response.type === 'error') {\n const error = new Error(response.error);\n if (response.stack) {\n error.stack = response.stack;\n }\n if ('reject' in task) {\n task.reject(error);\n } else if (isRenderTask(task)) {\n this.notifyHighlightError(task, error);\n this.rejectRenderTaskCallbacks(task, error);\n } else {\n throw new Error('handleWorkerMessage: unknown task type');\n }\n throw error;\n } else {\n switch (response.requestType) {\n case 'initialize':\n if (task.type !== 'initialize') {\n throw new Error('handleWorkerMessage: task/response dont match');\n }\n this.syncCustomExtensionVersion(managedWorker, task.request);\n task.resolve();\n break;\n case 'set-render-options':\n if (task.type !== 'set-render-options') {\n throw new Error('handleWorkerMessage: task/response dont match');\n }\n task.resolve();\n break;\n case 'file': {\n if (task.type !== 'file') {\n throw new Error('handleWorkerMessage: task/response dont match');\n }\n const { result, options } = response;\n if (\n !this.isCurrentRenderTask(task) ||\n !areFileRenderOptionsEqual(options, this.getFileRenderOptions())\n ) {\n throw IGNORE_RESPONSE;\n }\n const { request } = task;\n this.syncCustomExtensionVersion(managedWorker, request);\n if (task.cacheKeyAtDispatch != null) {\n this.fileCache.set(task.cacheKeyAtDispatch, { result, options });\n }\n this.resolveRenderTaskCallbacks(task);\n this.notifyFileInstances(task, result, options);\n break;\n }\n case 'diff': {\n if (task.type !== 'diff') {\n throw new Error('handleWorkerMessage: task/response dont match');\n }\n const { result, options } = response;\n if (\n !this.isCurrentRenderTask(task) ||\n !areDiffRenderOptionsEqual(options, this.getDiffRenderOptions())\n ) {\n throw IGNORE_RESPONSE;\n }\n const { request } = task;\n this.syncCustomExtensionVersion(managedWorker, request);\n if (task.cacheKeyAtDispatch != null) {\n this.diffCache.set(task.cacheKeyAtDispatch, { result, options });\n }\n this.resolveRenderTaskCallbacks(task);\n this.notifyDiffInstances(task, result, options);\n break;\n }\n }\n }\n } catch (error) {\n if (error !== IGNORE_RESPONSE) {\n console.error(error, task, response);\n }\n }\n\n this.cleanWorkerAndTask(managedWorker, task, response.id);\n this.queueBroadcastStateChanges();\n if (this.queuedTasks.length > 0) {\n // We queue drain so that potentially multiple workers can free up\n // allowing for better language matches if possible\n this.queueDrain();\n }\n }\n\n private _queuedDrain: Promise<void> | undefined;\n private queueDrain() {\n if (this._queuedDrain != null) return;\n this._queuedDrain = Promise.resolve().then(this.drainQueue);\n this.queueBroadcastStateChanges();\n }\n\n private assignWorkerToTask(\n task: AllWorkerTasks,\n managedWorker: ManagedWorker\n ) {\n managedWorker.requestId = task.id;\n if (isRenderTask(task)) {\n this.clearQueuedInstanceRequests(task);\n this.trackInstanceRequests(task);\n }\n this.activeTaskById.set(task.id, task);\n }\n\n private cleanWorkerAndTask(\n managedWorker: ManagedWorker,\n task?: AllWorkerTasks,\n requestId: WorkerRequestId | undefined = task?.id\n ) {\n if (managedWorker.requestId === requestId) {\n managedWorker.requestId = undefined;\n }\n if (managedWorker.pendingSetupRequestId === requestId) {\n managedWorker.pendingSetupRequestId = undefined;\n }\n if (task != null) {\n if (isRenderTask(task)) {\n this.rejectRenderTaskCallbacks(task, new WorkerPoolTaskCanceledError());\n this.clearInstanceRequests(task);\n this.clearHighlightKey(task);\n }\n this.activeTaskById.delete(task.id);\n }\n }\n\n private executeTask(\n managedWorker: ManagedWorker,\n task: AllWorkerTasks\n ): void {\n if (shouldSyncCustomExtensions(task.request)) {\n this.maybeAttachCustomExtensions(managedWorker, task.request);\n }\n if (!this.activeTaskById.has(task.id)) {\n this.assignWorkerToTask(task, managedWorker);\n }\n for (const lang of getLangsFromTask(task)) {\n managedWorker.langs.add(lang);\n }\n try {\n // postMessage clones the request now, so keep the matching cache key on\n // the task instead of reading the caller's mutable target on response.\n if (task.type === 'file') {\n task.cacheKeyAtDispatch = task.request.file.cacheKey;\n } else if (task.type === 'diff') {\n task.cacheKeyAtDispatch = task.request.diff.cacheKey;\n }\n managedWorker.worker.postMessage(task.request);\n } catch (error) {\n console.error('Failed to post message to worker:', error);\n if (isRenderTask(task)) {\n this.notifyHighlightError(task, error);\n this.rejectRenderTaskCallbacks(task, normalizeWorkerError(error));\n } else if ('reject' in task) {\n task.reject(error as Error);\n }\n this.cleanWorkerAndTask(managedWorker, task);\n if (this.queuedTasks.length > 0) {\n this.queueDrain();\n }\n }\n this.queueBroadcastStateChanges();\n }\n\n private maybeAttachCustomExtensions(\n managedWorker: ManagedWorker,\n request: InitializeWorkerRequest | RenderFileRequest | RenderDiffRequest\n ): void {\n if (request.customExtensionsVersion != null) {\n return;\n }\n const version = getCustomExtensionsVersion();\n if (managedWorker.customExtensionsVersion >= version) {\n return;\n }\n request.customExtensionsVersion = version;\n request.customExtensionMap = getCustomExtensionsMap();\n }\n\n private syncCustomExtensionVersion(\n managedWorker: ManagedWorker,\n request: InitializeWorkerRequest | RenderFileRequest | RenderDiffRequest\n ): void {\n if (request.customExtensionsVersion == null) {\n return;\n }\n managedWorker.customExtensionsVersion = request.customExtensionsVersion;\n }\n\n private getAvailableWorker(\n langs: SupportedLanguages[]\n ): ManagedWorker | undefined {\n let worker: ManagedWorker | undefined;\n for (const managedWorker of this.workers) {\n if (\n managedWorker.requestId != null ||\n managedWorker.pendingSetupRequestId != null ||\n !managedWorker.initialized\n ) {\n continue;\n }\n worker = managedWorker;\n if (langs.length === 0) {\n break;\n }\n let hasEveryLang = true;\n for (const lang of langs) {\n if (!managedWorker.langs.has(lang)) {\n hasEveryLang = false;\n break;\n }\n }\n if (hasEveryLang) {\n break;\n }\n }\n return worker;\n }\n\n private getFileHighlightKey(file: FileContents): string | undefined {\n if (file.cacheKey == null) {\n return undefined;\n }\n return `file:${file.cacheKey}:${this.renderOptionsVersion}`;\n }\n\n private getDiffHighlightKey(diff: FileDiffMetadata): string | undefined {\n if (diff.cacheKey == null) {\n return undefined;\n }\n return `diff:${diff.cacheKey}:${this.renderOptionsVersion}`;\n }\n\n private getHighlightKeyForRequest(\n request: SubmitRequest\n ): string | undefined {\n switch (request.type) {\n case 'file':\n return this.getFileHighlightKey(request.file);\n case 'diff':\n return this.getDiffHighlightKey(request.diff);\n }\n }\n\n private hasActiveRequest(task: RenderTask): boolean {\n for (const instance of getInstances(task)) {\n if (this.activeRequestByInstance.has(instance)) {\n return true;\n }\n }\n return false;\n }\n\n private addInstanceToTask(\n task: RenderTask,\n instance: FileRendererInstance | DiffRendererInstance\n ): void {\n if (task.type === 'file') {\n task.instances.add(instance as FileRendererInstance);\n } else {\n task.instances.add(instance as DiffRendererInstance);\n }\n if (this.activeTaskById.has(task.id)) {\n this.activeRequestByInstance.set(instance, task.id);\n } else {\n this.queuedTaskByInstance.set(instance, task);\n }\n }\n\n private detachInstanceFromQueuedTasks(\n instance: RenderTaskInstance,\n exceptTask?: RenderTask\n ): void {\n const task = this.queuedTaskByInstance.get(instance);\n if (task == null || task === exceptTask) {\n return;\n }\n this.queuedTaskByInstance.delete(instance);\n this.detachInstanceFromRenderTask(task, instance);\n if (!task.primeCache && task.instances.size === 0) {\n this.removeQueuedTask(task);\n }\n }\n\n private detachInstanceFromRenderTask(\n task: RenderTask,\n instance: RenderTaskInstance\n ): void {\n if (task.type === 'file') {\n task.instances.delete(instance as FileRendererInstance);\n } else {\n task.instances.delete(instance as DiffRendererInstance);\n }\n }\n\n private removeQueuedTask(task: RenderTask): void {\n const index = this.queuedTasks.indexOf(task);\n if (index !== -1) {\n this.queuedTasks.splice(index, 1);\n }\n this.rejectRenderTaskCallbacks(task, new WorkerPoolTaskCanceledError());\n this.clearQueuedInstanceRequests(task);\n this.clearHighlightKey(task);\n }\n\n private removeActiveTask(task: RenderTask): void {\n this.rejectRenderTaskCallbacks(task, new WorkerPoolTaskCanceledError());\n this.clearInstanceRequests(task);\n this.clearHighlightKey(task);\n this.activeTaskById.delete(task.id);\n }\n\n private createRenderTaskCallbacks(task: RenderTask): Promise<void> {\n return new Promise((resolve, reject) => {\n task.callbacks.add({ resolve, reject });\n });\n }\n\n private resolveRenderTaskCallbacks(task: RenderTask): void {\n for (const callbacks of task.callbacks) {\n callbacks.resolve();\n }\n task.callbacks.clear();\n }\n\n private rejectRenderTaskCallbacks(task: RenderTask, error: Error): void {\n for (const callbacks of task.callbacks) {\n callbacks.reject(error);\n }\n task.callbacks.clear();\n }\n\n private invalidateRenderTasks(): void {\n for (let index = this.queuedTasks.length - 1; index >= 0; index--) {\n const task = this.queuedTasks[index];\n if (task.renderOptionsVersion !== this.renderOptionsVersion) {\n this.removeQueuedTask(task);\n }\n }\n\n for (const task of Array.from(this.activeTaskById.values())) {\n if (\n isRenderTask(task) &&\n task.renderOptionsVersion !== this.renderOptionsVersion\n ) {\n this.removeActiveTask(task);\n }\n }\n }\n\n private clearQueuedInstanceRequests(task: RenderTask): void {\n for (const instance of getInstances(task)) {\n if (this.queuedTaskByInstance.get(instance) === task) {\n this.queuedTaskByInstance.delete(instance);\n }\n }\n }\n\n private clearHighlightKey(task: RenderTask): void {\n if (\n task.highlightKey != null &&\n this.taskByHighlightKey.get(task.highlightKey) === task\n ) {\n this.taskByHighlightKey.delete(task.highlightKey);\n }\n }\n\n private trackInstanceRequests(task: RenderTask): void {\n for (const instance of getInstances(task)) {\n this.activeRequestByInstance.set(instance, task.id);\n }\n }\n\n private clearInstanceRequests(task: RenderTask): void {\n for (const instance of getInstances(task)) {\n if (this.activeRequestByInstance.get(instance) === task.id) {\n this.activeRequestByInstance.delete(instance);\n }\n }\n }\n\n private notifyFileInstances(\n task: RenderFileTask,\n result: ThemedFileResult,\n options: RenderFileOptions\n ): void {\n for (const instance of task.instances) {\n if (this.activeRequestByInstance.get(instance) === task.id) {\n instance.onHighlightSuccess(task.request.file, result, options);\n }\n }\n }\n\n private notifyDiffInstances(\n task: RenderDiffTask,\n result: ThemedDiffResult,\n options: RenderDiffOptions\n ): void {\n for (const instance of task.instances) {\n if (this.activeRequestByInstance.get(instance) === task.id) {\n instance.onHighlightSuccess(task.request.diff, result, options);\n }\n }\n }\n\n private notifyHighlightError(task: RenderTask, error: unknown): void {\n for (const instance of getInstances(task)) {\n if (this.activeRequestByInstance.get(instance) === task.id) {\n instance.onHighlightError(error);\n }\n }\n }\n\n private hasMatchingFileInstanceTask(\n instance: FileRendererInstance,\n file: FileContents\n ): boolean {\n for (const task of this.iterateRenderTasks()) {\n if (\n task.type === 'file' &&\n this.isCurrentRenderTask(task) &&\n task.instances.has(instance) &&\n areFilesEqual(file, task.request.file)\n ) {\n return true;\n }\n }\n return false;\n }\n\n private hasMatchingDiffInstanceTask(\n instance: DiffRendererInstance,\n diff: FileDiffMetadata\n ): boolean {\n for (const task of this.iterateRenderTasks()) {\n if (\n task.type === 'diff' &&\n this.isCurrentRenderTask(task) &&\n task.instances.has(instance) &&\n areDiffTargetsEqual(task.request.diff, diff)\n ) {\n return true;\n }\n }\n return false;\n }\n\n private getTaskByHighlightKey(highlightKey: string): RenderTask | undefined {\n const task = this.taskByHighlightKey.get(highlightKey);\n return task != null && this.isCurrentRenderTask(task) ? task : undefined;\n }\n\n private isCurrentRenderTask(task: RenderTask): boolean {\n return task.renderOptionsVersion === this.renderOptionsVersion;\n }\n\n private *iterateRenderTasks(): Generator<RenderTask> {\n for (const task of this.queuedTasks) {\n yield task;\n }\n for (const task of this.activeTaskById.values()) {\n if (isRenderTask(task)) {\n yield task;\n }\n }\n }\n\n private generateRequestId(): WorkerRequestId {\n return `req_${++this.nextRequestId}`;\n }\n}\n\nfunction shouldSyncCustomExtensions(\n request: AllWorkerTasks['request']\n): request is InitializeWorkerRequest | RenderFileRequest | RenderDiffRequest {\n return (\n request.type === 'initialize' ||\n request.type === 'file' ||\n request.type === 'diff'\n );\n}\n\nfunction getLangsFromTask(task: AllWorkerTasks): SupportedLanguages[] {\n const langs = new Set<SupportedLanguages>();\n if (task.type === 'initialize' || task.type === 'set-render-options') {\n return [];\n }\n switch (task.type) {\n case 'file': {\n langs.add(\n task.request.file.lang ??\n getFiletypeFromFileName(task.request.file.name)\n );\n break;\n }\n case 'diff': {\n langs.add(\n task.request.diff.lang ??\n getFiletypeFromFileName(task.request.diff.name)\n );\n langs.add(\n task.request.diff.lang ??\n getFiletypeFromFileName(task.request.diff.prevName ?? '-')\n );\n break;\n }\n }\n langs.delete('text');\n return Array.from(langs);\n}\n\nfunction isRenderTask(task: AllWorkerTasks | undefined): task is RenderTask {\n return task?.type === 'file' || task?.type === 'diff';\n}\n\nfunction getInstances(\n task: RenderTask\n): Set<FileRendererInstance | DiffRendererInstance> {\n return task.instances as Set<FileRendererInstance | DiffRendererInstance>;\n}\n\nfunction normalizeWorkerError(error: unknown): Error {\n return error instanceof Error ? error : new Error(String(error));\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AllWorkerTasks, DiffRendererInstance, FileRendererInstance, InitializeSuccessResponse, InitializeWorkerRequest, InitializeWorkerTask, RegisterThemeSuccessResponse, RenderDiffRequest, RenderDiffSuccessResponse, RenderDiffTask, RenderErrorResponse, RenderFileRequest, RenderFileSuccessResponse, RenderFileTask, RenderSuccessResponse, ResolvedLanguage, SetRenderOptionsWorkerRequest, SetRenderOptionsWorkerTask, SubmitRequest, WorkerInitializationRenderOptions, WorkerPoolOptions, WorkerRenderingOptions, WorkerRequest, WorkerRequestId, WorkerResponse, WorkerStats } from "./types.js";
1
+ import { AllWorkerTasks, DiffRendererInstance, FileRendererInstance, InitializeSuccessResponse, InitializeWorkerRequest, InitializeWorkerTask, RegisterThemeSuccessResponse, RenderDiffRequest, RenderDiffSuccessResponse, RenderDiffTask, RenderErrorResponse, RenderFileRequest, RenderFileSuccessResponse, RenderFileTask, RenderSuccessResponse, RenderTaskCallbacks, ResolvedLanguage, SetRenderOptionsWorkerRequest, SetRenderOptionsWorkerTask, SubmitRequest, WorkerInitializationRenderOptions, WorkerPoolOptions, WorkerRenderingOptions, WorkerRequest, WorkerRequestId, WorkerResponse, WorkerStats } from "./types.js";
2
2
  import { WorkerPoolManager } from "./WorkerPoolManager.js";
3
3
  import { SetupWorkerPoolProps, getOrCreateWorkerPoolSingleton, terminateWorkerPoolSingleton } from "./getOrCreateWorkerPoolSingleton.js";
4
- export { AllWorkerTasks, DiffRendererInstance, FileRendererInstance, InitializeSuccessResponse, InitializeWorkerRequest, InitializeWorkerTask, RegisterThemeSuccessResponse, RenderDiffRequest, RenderDiffSuccessResponse, RenderDiffTask, RenderErrorResponse, RenderFileRequest, RenderFileSuccessResponse, RenderFileTask, RenderSuccessResponse, ResolvedLanguage, SetRenderOptionsWorkerRequest, SetRenderOptionsWorkerTask, SetupWorkerPoolProps, SubmitRequest, WorkerInitializationRenderOptions, WorkerPoolManager, WorkerPoolOptions, WorkerRenderingOptions, WorkerRequest, WorkerRequestId, WorkerResponse, WorkerStats, getOrCreateWorkerPoolSingleton, terminateWorkerPoolSingleton };
4
+ export { AllWorkerTasks, DiffRendererInstance, FileRendererInstance, InitializeSuccessResponse, InitializeWorkerRequest, InitializeWorkerTask, RegisterThemeSuccessResponse, RenderDiffRequest, RenderDiffSuccessResponse, RenderDiffTask, RenderErrorResponse, RenderFileRequest, RenderFileSuccessResponse, RenderFileTask, RenderSuccessResponse, RenderTaskCallbacks, ResolvedLanguage, SetRenderOptionsWorkerRequest, SetRenderOptionsWorkerTask, SetupWorkerPoolProps, SubmitRequest, WorkerInitializationRenderOptions, WorkerPoolManager, WorkerPoolOptions, WorkerRenderingOptions, WorkerRequest, WorkerRequestId, WorkerResponse, WorkerStats, getOrCreateWorkerPoolSingleton, terminateWorkerPoolSingleton };