@openclaw/diffs 2026.9.4 → 2026.9.5

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 (950) hide show
  1. package/assets/activity.svg +3 -0
  2. package/assets/icon.png +0 -0
  3. package/dist/{browser.runtime-DTKAejqd.js → .setup/browser.runtime-VjaO3wrj.mjs} +1 -1
  4. package/dist/assets/viewer-runtime.js +48 -54
  5. package/dist/index.js +4 -4
  6. package/node_modules/@pierre/diffs/dist/components/CodeView.d.ts +115 -68
  7. package/node_modules/@pierre/diffs/dist/components/CodeView.d.ts.map +1 -1
  8. package/node_modules/@pierre/diffs/dist/components/CodeView.js +189 -59
  9. package/node_modules/@pierre/diffs/dist/components/CodeView.js.map +1 -1
  10. package/node_modules/@pierre/diffs/dist/components/File.d.ts +79 -15
  11. package/node_modules/@pierre/diffs/dist/components/File.d.ts.map +1 -1
  12. package/node_modules/@pierre/diffs/dist/components/File.js +244 -66
  13. package/node_modules/@pierre/diffs/dist/components/File.js.map +1 -1
  14. package/node_modules/@pierre/diffs/dist/components/FileDiff.d.ts +101 -21
  15. package/node_modules/@pierre/diffs/dist/components/FileDiff.d.ts.map +1 -1
  16. package/node_modules/@pierre/diffs/dist/components/FileDiff.js +432 -102
  17. package/node_modules/@pierre/diffs/dist/components/FileDiff.js.map +1 -1
  18. package/node_modules/@pierre/diffs/dist/components/FileStream.js +1 -1
  19. package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.d.ts +2 -2
  20. package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.d.ts.map +1 -1
  21. package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.js +2 -2
  22. package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.js.map +1 -1
  23. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.d.ts +17 -7
  24. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.d.ts.map +1 -1
  25. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.js +142 -53
  26. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.js.map +1 -1
  27. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.d.ts +15 -8
  28. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  29. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js +186 -96
  30. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js.map +1 -1
  31. package/node_modules/@pierre/diffs/dist/components/VirtulizerDevelopment.d.ts +1 -1
  32. package/node_modules/@pierre/diffs/dist/components/VirtulizerDevelopment.d.ts.map +1 -1
  33. package/node_modules/@pierre/diffs/dist/edit/index.d.ts +7 -4
  34. package/node_modules/@pierre/diffs/dist/edit/index.js +5 -1
  35. package/node_modules/@pierre/diffs/dist/editor/EditStateManager.d.ts +56 -0
  36. package/node_modules/@pierre/diffs/dist/editor/EditStateManager.d.ts.map +1 -0
  37. package/node_modules/@pierre/diffs/dist/editor/EditStateManager.js +135 -0
  38. package/node_modules/@pierre/diffs/dist/editor/EditStateManager.js.map +1 -0
  39. package/node_modules/@pierre/diffs/dist/editor/cloneRetainedDiffSessionSnapshot.d.ts +7 -0
  40. package/node_modules/@pierre/diffs/dist/editor/cloneRetainedDiffSessionSnapshot.d.ts.map +1 -0
  41. package/node_modules/@pierre/diffs/dist/editor/cloneRetainedDiffSessionSnapshot.js +16 -0
  42. package/node_modules/@pierre/diffs/dist/editor/cloneRetainedDiffSessionSnapshot.js.map +1 -0
  43. package/node_modules/@pierre/diffs/dist/editor/editPrediction.d.ts +76 -0
  44. package/node_modules/@pierre/diffs/dist/editor/editPrediction.d.ts.map +1 -0
  45. package/node_modules/@pierre/diffs/dist/editor/editPrediction.js +365 -0
  46. package/node_modules/@pierre/diffs/dist/editor/editPrediction.js.map +1 -0
  47. package/node_modules/@pierre/diffs/dist/editor/editStack.d.ts +19 -40
  48. package/node_modules/@pierre/diffs/dist/editor/editStack.d.ts.map +1 -1
  49. package/node_modules/@pierre/diffs/dist/editor/editStack.js +67 -4
  50. package/node_modules/@pierre/diffs/dist/editor/editStack.js.map +1 -1
  51. package/node_modules/@pierre/diffs/dist/editor/editor.d.ts +118 -29
  52. package/node_modules/@pierre/diffs/dist/editor/editor.d.ts.map +1 -1
  53. package/node_modules/@pierre/diffs/dist/editor/editor.js +1108 -384
  54. package/node_modules/@pierre/diffs/dist/editor/editor.js.map +1 -1
  55. package/node_modules/@pierre/diffs/dist/editor/editor2.js +1 -1
  56. package/node_modules/@pierre/diffs/dist/editor/languages.d.ts +3 -3
  57. package/node_modules/@pierre/diffs/dist/editor/languages.d.ts.map +1 -1
  58. package/node_modules/@pierre/diffs/dist/editor/languages.js.map +1 -1
  59. package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.d.ts +3 -3
  60. package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.d.ts.map +1 -1
  61. package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.js +16 -7
  62. package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.js.map +1 -1
  63. package/node_modules/@pierre/diffs/dist/editor/marker.d.ts +2 -2
  64. package/node_modules/@pierre/diffs/dist/editor/marker.d.ts.map +1 -1
  65. package/node_modules/@pierre/diffs/dist/editor/marker.js.map +1 -1
  66. package/node_modules/@pierre/diffs/dist/editor/matchBrackets.d.ts +2 -2
  67. package/node_modules/@pierre/diffs/dist/editor/matchBrackets.d.ts.map +1 -1
  68. package/node_modules/@pierre/diffs/dist/editor/matchBrackets.js.map +1 -1
  69. package/node_modules/@pierre/diffs/dist/editor/pieceTable.d.ts +1 -1
  70. package/node_modules/@pierre/diffs/dist/editor/pieceTable.js.map +1 -1
  71. package/node_modules/@pierre/diffs/dist/editor/searchPanel.d.ts +2 -2
  72. package/node_modules/@pierre/diffs/dist/editor/searchPanel.js +1 -1
  73. package/node_modules/@pierre/diffs/dist/editor/searchPanel.js.map +1 -1
  74. package/node_modules/@pierre/diffs/dist/editor/selection.d.ts +32 -23
  75. package/node_modules/@pierre/diffs/dist/editor/selection.d.ts.map +1 -1
  76. package/node_modules/@pierre/diffs/dist/editor/selection.js +3 -3
  77. package/node_modules/@pierre/diffs/dist/editor/selection.js.map +1 -1
  78. package/node_modules/@pierre/diffs/dist/editor/selectionAction.d.ts +3 -3
  79. package/node_modules/@pierre/diffs/dist/editor/selectionAction.d.ts.map +1 -1
  80. package/node_modules/@pierre/diffs/dist/editor/selectionAction.js.map +1 -1
  81. package/node_modules/@pierre/diffs/dist/editor/textDocument.d.ts +11 -8
  82. package/node_modules/@pierre/diffs/dist/editor/textDocument.d.ts.map +1 -1
  83. package/node_modules/@pierre/diffs/dist/editor/textDocument.js +28 -5
  84. package/node_modules/@pierre/diffs/dist/editor/textDocument.js.map +1 -1
  85. package/node_modules/@pierre/diffs/dist/editor/textDocumentChangeTransaction.d.ts +15 -0
  86. package/node_modules/@pierre/diffs/dist/editor/textDocumentChangeTransaction.d.ts.map +1 -0
  87. package/node_modules/@pierre/diffs/dist/editor/textDocumentChangeTransaction.js +12 -0
  88. package/node_modules/@pierre/diffs/dist/editor/textDocumentChangeTransaction.js.map +1 -0
  89. package/node_modules/@pierre/diffs/dist/editor/textMeasure.d.ts +5 -0
  90. package/node_modules/@pierre/diffs/dist/editor/textMeasure.d.ts.map +1 -1
  91. package/node_modules/@pierre/diffs/dist/editor/textMeasure.js +10 -0
  92. package/node_modules/@pierre/diffs/dist/editor/textMeasure.js.map +1 -1
  93. package/node_modules/@pierre/diffs/dist/editor/tokenizer.d.ts +1 -1
  94. package/node_modules/@pierre/diffs/dist/editor/tokenizer.js.map +1 -1
  95. package/node_modules/@pierre/diffs/dist/editor/types.d.ts +267 -0
  96. package/node_modules/@pierre/diffs/dist/editor/types.d.ts.map +1 -0
  97. package/node_modules/@pierre/diffs/dist/editor/types.js +0 -0
  98. package/node_modules/@pierre/diffs/dist/editor/utils.d.ts +2 -1
  99. package/node_modules/@pierre/diffs/dist/editor/utils.d.ts.map +1 -1
  100. package/node_modules/@pierre/diffs/dist/editor/utils.js +4 -1
  101. package/node_modules/@pierre/diffs/dist/editor/utils.js.map +1 -1
  102. package/node_modules/@pierre/diffs/dist/highlighter/shared_highlighter.d.ts +6 -2
  103. package/node_modules/@pierre/diffs/dist/highlighter/shared_highlighter.d.ts.map +1 -1
  104. package/node_modules/@pierre/diffs/dist/highlighter/shared_highlighter.js +7 -3
  105. package/node_modules/@pierre/diffs/dist/highlighter/shared_highlighter.js.map +1 -1
  106. package/node_modules/@pierre/diffs/dist/highlighter/themes/areThemesAttached.js +1 -1
  107. package/node_modules/@pierre/diffs/dist/index.d.ts +8 -6
  108. package/node_modules/@pierre/diffs/dist/index.js +22 -21
  109. package/node_modules/@pierre/diffs/dist/managers/InteractionManager.d.ts.map +1 -1
  110. package/node_modules/@pierre/diffs/dist/managers/InteractionManager.js +7 -0
  111. package/node_modules/@pierre/diffs/dist/managers/InteractionManager.js.map +1 -1
  112. package/node_modules/@pierre/diffs/dist/react/CodeView.d.ts +36 -25
  113. package/node_modules/@pierre/diffs/dist/react/CodeView.d.ts.map +1 -1
  114. package/node_modules/@pierre/diffs/dist/react/CodeView.js +15 -14
  115. package/node_modules/@pierre/diffs/dist/react/CodeView.js.map +1 -1
  116. package/node_modules/@pierre/diffs/dist/react/EditContext.d.ts +8 -11
  117. package/node_modules/@pierre/diffs/dist/react/EditContext.d.ts.map +1 -1
  118. package/node_modules/@pierre/diffs/dist/react/EditContext.js +2 -9
  119. package/node_modules/@pierre/diffs/dist/react/EditContext.js.map +1 -1
  120. package/node_modules/@pierre/diffs/dist/react/File.d.ts +10 -6
  121. package/node_modules/@pierre/diffs/dist/react/File.d.ts.map +1 -1
  122. package/node_modules/@pierre/diffs/dist/react/File.js +8 -4
  123. package/node_modules/@pierre/diffs/dist/react/File.js.map +1 -1
  124. package/node_modules/@pierre/diffs/dist/react/FileDiff.d.ts +10 -5
  125. package/node_modules/@pierre/diffs/dist/react/FileDiff.d.ts.map +1 -1
  126. package/node_modules/@pierre/diffs/dist/react/FileDiff.js +8 -4
  127. package/node_modules/@pierre/diffs/dist/react/FileDiff.js.map +1 -1
  128. package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.d.ts +8 -5
  129. package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.d.ts.map +1 -1
  130. package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.js +8 -12
  131. package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.js.map +1 -1
  132. package/node_modules/@pierre/diffs/dist/react/PatchDiff.d.ts +7 -4
  133. package/node_modules/@pierre/diffs/dist/react/PatchDiff.d.ts.map +1 -1
  134. package/node_modules/@pierre/diffs/dist/react/PatchDiff.js +8 -4
  135. package/node_modules/@pierre/diffs/dist/react/PatchDiff.js.map +1 -1
  136. package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.d.ts +3 -3
  137. package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.d.ts.map +1 -1
  138. package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.js.map +1 -1
  139. package/node_modules/@pierre/diffs/dist/react/index.d.ts +8 -5
  140. package/node_modules/@pierre/diffs/dist/react/types.d.ts +46 -9
  141. package/node_modules/@pierre/diffs/dist/react/types.d.ts.map +1 -1
  142. package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.d.ts +14 -12
  143. package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
  144. package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.js +2 -2
  145. package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.js.map +1 -1
  146. package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.d.ts +14 -12
  147. package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.d.ts.map +1 -1
  148. package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.js +2 -2
  149. package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.js.map +1 -1
  150. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.d.ts +22 -10
  151. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
  152. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.js +112 -22
  153. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.js.map +1 -1
  154. package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.d.ts +15 -9
  155. package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.d.ts.map +1 -1
  156. package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.js +84 -25
  157. package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.js.map +1 -1
  158. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.d.ts +30 -15
  159. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
  160. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js +172 -109
  161. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js.map +1 -1
  162. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.d.ts +27 -11
  163. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.d.ts.map +1 -1
  164. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js +141 -67
  165. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js.map +1 -1
  166. package/node_modules/@pierre/diffs/dist/renderers/UnresolvedFileHunksRenderer.d.ts +2 -2
  167. package/node_modules/@pierre/diffs/dist/renderers/UnresolvedFileHunksRenderer.d.ts.map +1 -1
  168. package/node_modules/@pierre/diffs/dist/renderers/UnresolvedFileHunksRenderer.js +2 -2
  169. package/node_modules/@pierre/diffs/dist/renderers/UnresolvedFileHunksRenderer.js.map +1 -1
  170. package/node_modules/@pierre/diffs/dist/shiki-stream/tokenizer.d.ts.map +1 -1
  171. package/node_modules/@pierre/diffs/dist/shiki-stream/tokenizer.js +2 -1
  172. package/node_modules/@pierre/diffs/dist/shiki-stream/tokenizer.js.map +1 -1
  173. package/node_modules/@pierre/diffs/dist/ssr/index.d.ts +2 -2
  174. package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.d.ts +21 -21
  175. package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.d.ts.map +1 -1
  176. package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.js +1 -1
  177. package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.js.map +1 -1
  178. package/node_modules/@pierre/diffs/dist/ssr/preloadFile.d.ts +6 -6
  179. package/node_modules/@pierre/diffs/dist/ssr/preloadFile.d.ts.map +1 -1
  180. package/node_modules/@pierre/diffs/dist/ssr/preloadFile.js.map +1 -1
  181. package/node_modules/@pierre/diffs/dist/ssr/preloadPatchFile.d.ts +4 -4
  182. package/node_modules/@pierre/diffs/dist/ssr/preloadPatchFile.d.ts.map +1 -1
  183. package/node_modules/@pierre/diffs/dist/ssr/preloadPatchFile.js.map +1 -1
  184. package/node_modules/@pierre/diffs/dist/style.js +1 -1
  185. package/node_modules/@pierre/diffs/dist/types.d.ts +13 -263
  186. package/node_modules/@pierre/diffs/dist/types.d.ts.map +1 -1
  187. package/node_modules/@pierre/diffs/dist/utils/appendItems.d.ts +5 -0
  188. package/node_modules/@pierre/diffs/dist/utils/appendItems.d.ts.map +1 -0
  189. package/node_modules/@pierre/diffs/dist/utils/appendItems.js +8 -0
  190. package/node_modules/@pierre/diffs/dist/utils/appendItems.js.map +1 -0
  191. package/node_modules/@pierre/diffs/dist/utils/areDiffTargetsEqual.js +1 -1
  192. package/node_modules/@pierre/diffs/dist/utils/areDiffTargetsEqual.js.map +1 -1
  193. package/node_modules/@pierre/diffs/dist/utils/areFileTargetsEqual.d.ts +7 -0
  194. package/node_modules/@pierre/diffs/dist/utils/areFileTargetsEqual.d.ts.map +1 -0
  195. package/node_modules/@pierre/diffs/dist/utils/areFileTargetsEqual.js +8 -0
  196. package/node_modules/@pierre/diffs/dist/utils/areFileTargetsEqual.js.map +1 -0
  197. package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.d.ts +1 -1
  198. package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.d.ts.map +1 -1
  199. package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.js.map +1 -1
  200. package/node_modules/@pierre/diffs/dist/utils/areOptionsEqual.d.ts +3 -3
  201. package/node_modules/@pierre/diffs/dist/utils/areOptionsEqual.d.ts.map +1 -1
  202. package/node_modules/@pierre/diffs/dist/utils/areOptionsEqual.js.map +1 -1
  203. package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.d.ts +3 -2
  204. package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.d.ts.map +1 -1
  205. package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.js +8 -5
  206. package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.js.map +1 -1
  207. package/node_modules/@pierre/diffs/dist/utils/composeCacheKey.d.ts +6 -0
  208. package/node_modules/@pierre/diffs/dist/utils/composeCacheKey.d.ts.map +1 -0
  209. package/node_modules/@pierre/diffs/dist/utils/composeCacheKey.js +10 -0
  210. package/node_modules/@pierre/diffs/dist/utils/composeCacheKey.js.map +1 -0
  211. package/node_modules/@pierre/diffs/dist/utils/editSessionAnnotations.d.ts +69 -0
  212. package/node_modules/@pierre/diffs/dist/utils/editSessionAnnotations.d.ts.map +1 -0
  213. package/node_modules/@pierre/diffs/dist/utils/editSessionAnnotations.js +64 -0
  214. package/node_modules/@pierre/diffs/dist/utils/editSessionAnnotations.js.map +1 -0
  215. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.d.ts +5 -3
  216. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.d.ts.map +1 -1
  217. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.js +7 -5
  218. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.js.map +1 -1
  219. package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.d.ts +1 -1
  220. package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.d.ts.map +1 -1
  221. package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.js.map +1 -1
  222. package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.d.ts +1 -1
  223. package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.d.ts.map +1 -1
  224. package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.js.map +1 -1
  225. package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.d.ts.map +1 -1
  226. package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.js +2 -1
  227. package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.js.map +1 -1
  228. package/node_modules/@pierre/diffs/dist/utils/lineAnnotationIdentity.d.ts +16 -0
  229. package/node_modules/@pierre/diffs/dist/utils/lineAnnotationIdentity.d.ts.map +1 -0
  230. package/node_modules/@pierre/diffs/dist/utils/lineAnnotationIdentity.js +17 -0
  231. package/node_modules/@pierre/diffs/dist/utils/lineAnnotationIdentity.js.map +1 -0
  232. package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.d.ts +2 -2
  233. package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.d.ts.map +1 -1
  234. package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js +6 -6
  235. package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js.map +1 -1
  236. package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.d.ts +6 -3
  237. package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.d.ts.map +1 -1
  238. package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js +34 -9
  239. package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js.map +1 -1
  240. package/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.d.ts.map +1 -1
  241. package/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.js +6 -5
  242. package/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.js.map +1 -1
  243. package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
  244. package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.js +7 -4
  245. package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.js.map +1 -1
  246. package/node_modules/@pierre/diffs/dist/utils/trimPatchContext.d.ts.map +1 -1
  247. package/node_modules/@pierre/diffs/dist/utils/trimPatchContext.js +3 -2
  248. package/node_modules/@pierre/diffs/dist/utils/trimPatchContext.js.map +1 -1
  249. package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.js +1 -1
  250. package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.js +1 -1
  251. package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.d.ts +4 -3
  252. package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.d.ts.map +1 -1
  253. package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.js +44 -6
  254. package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.js.map +1 -1
  255. package/node_modules/@pierre/diffs/dist/worker/types.d.ts +5 -0
  256. package/node_modules/@pierre/diffs/dist/worker/types.d.ts.map +1 -1
  257. package/node_modules/@pierre/diffs/dist/worker/worker-portable.js +14 -6
  258. package/node_modules/@pierre/diffs/dist/worker/worker-portable.js.map +1 -1
  259. package/node_modules/@pierre/diffs/dist/worker/worker.js +14 -6
  260. package/node_modules/@pierre/diffs/dist/worker/worker.js.map +1 -1
  261. package/node_modules/@pierre/diffs/node_modules/@ungap/structured-clone/cjs/deserialize.js +12 -2
  262. package/node_modules/@pierre/diffs/node_modules/@ungap/structured-clone/cjs/serialize.js +5 -1
  263. package/node_modules/@pierre/diffs/node_modules/@ungap/structured-clone/esm/deserialize.js +12 -2
  264. package/node_modules/@pierre/diffs/node_modules/@ungap/structured-clone/esm/serialize.js +5 -1
  265. package/node_modules/@pierre/diffs/node_modules/@ungap/structured-clone/package.json +1 -1
  266. package/node_modules/@pierre/diffs/node_modules/@ungap/structured-clone/structured-json.js +1 -1
  267. package/node_modules/@pierre/diffs/package.json +9 -1
  268. package/node_modules/playwright-core/browsers.json +9 -32
  269. package/node_modules/playwright-core/lib/coreBundle.js +5402 -4419
  270. package/node_modules/playwright-core/lib/server/electron/loader.js +0 -2
  271. package/node_modules/playwright-core/lib/serverRegistry.js +1674 -7082
  272. package/node_modules/playwright-core/lib/serverRegistry.js.LICENSE +8 -297
  273. package/node_modules/playwright-core/lib/tools/cli-client/help.json +19 -6
  274. package/node_modules/playwright-core/lib/tools/cli-client/minimist.js +1 -1
  275. package/node_modules/playwright-core/lib/tools/cli-client/output.js +9 -1
  276. package/node_modules/playwright-core/lib/tools/cli-client/program.js +17 -3
  277. package/node_modules/playwright-core/lib/tools/cli-client/registry.js +9 -5
  278. package/node_modules/playwright-core/lib/tools/cli-client/session.js +2 -1
  279. package/node_modules/playwright-core/lib/tools/skills/playwright-cli/SKILL.md +5 -0
  280. package/node_modules/playwright-core/lib/tools/skills/playwright-cli/references/tracing.md +1 -1
  281. package/node_modules/playwright-core/lib/tools/skills/playwright-component-testing/SKILL.md +4 -11
  282. package/node_modules/playwright-core/lib/tools/skills/playwright-component-testing/references/migration.md +6 -2
  283. package/node_modules/playwright-core/lib/tools/skills/playwright-component-testing/references/react.md +2 -0
  284. package/node_modules/playwright-core/lib/tools/skills/playwright-component-testing/references/typing.md +173 -0
  285. package/node_modules/playwright-core/lib/tools/skills/playwright-component-testing/references/vue.md +2 -0
  286. package/node_modules/playwright-core/lib/tools/skills/playwright-trace/SKILL.md +6 -3
  287. package/node_modules/playwright-core/lib/tools/utils/extension.js +13 -2
  288. package/node_modules/playwright-core/lib/utilsBundle.js +1934 -7341
  289. package/node_modules/playwright-core/lib/utilsBundle.js.LICENSE +8 -297
  290. package/node_modules/playwright-core/lib/vite/dashboard/assets/codeMirrorModule--QdMvsKi.css +1 -0
  291. package/node_modules/playwright-core/lib/vite/{recorder/assets/codeMirrorModule-CwYYHbcZ.js → dashboard/assets/codeMirrorModule-CQ8RZGBm.js} +1 -1
  292. package/node_modules/playwright-core/lib/vite/dashboard/assets/index-AwgwcYie.css +1 -0
  293. package/node_modules/playwright-core/lib/vite/dashboard/assets/index-hRvO4yU2.js +12 -0
  294. package/node_modules/playwright-core/lib/vite/dashboard/index.html +2 -2
  295. package/node_modules/playwright-core/lib/vite/htmlReport/report.css +1 -1
  296. package/node_modules/playwright-core/lib/vite/htmlReport/report.js +4 -4
  297. package/node_modules/playwright-core/lib/vite/recorder/assets/codeMirrorModule-CVQWJZAA.js +32 -0
  298. package/node_modules/playwright-core/lib/vite/recorder/assets/index-BZpYJZ-P.css +1 -0
  299. package/node_modules/playwright-core/lib/vite/recorder/assets/index-hrlLqLtq.js +129 -0
  300. package/node_modules/playwright-core/lib/vite/recorder/index.html +2 -2
  301. package/node_modules/playwright-core/lib/vite/traceViewer/assets/{codeMirrorModule-rXmQmLUY.js → codeMirrorModule-BbkfBe3n.js} +1 -1
  302. package/node_modules/playwright-core/lib/vite/traceViewer/assets/defaultSettingsView-Ds6CBOo0.js +182 -0
  303. package/node_modules/playwright-core/lib/vite/traceViewer/assets/{xtermModule-BuZfJS5v.js → xtermModule-DywYcAf8.js} +1 -1
  304. package/node_modules/playwright-core/lib/vite/traceViewer/defaultSettingsView.Bqk9acqE.css +1 -0
  305. package/node_modules/playwright-core/lib/vite/traceViewer/index.B4cLoZK3.js +1 -0
  306. package/node_modules/playwright-core/lib/vite/traceViewer/index.html +3 -3
  307. package/node_modules/playwright-core/lib/vite/traceViewer/sw.bundle.js +3 -3
  308. package/node_modules/playwright-core/lib/vite/traceViewer/uiMode.CU5KtEkS.js +5 -0
  309. package/node_modules/playwright-core/lib/vite/traceViewer/{uiMode.C7UW1sC9.css → uiMode.CyMfwkXJ.css} +1 -1
  310. package/node_modules/playwright-core/lib/vite/traceViewer/uiMode.html +4 -4
  311. package/node_modules/playwright-core/package.json +1 -1
  312. package/node_modules/playwright-core/types/protocol.d.ts +201 -398
  313. package/node_modules/playwright-core/types/types.d.ts +771 -327
  314. package/node_modules/typebox/build/compile/validator.d.mts +1 -1
  315. package/node_modules/typebox/build/compile/validator.mjs +1 -1
  316. package/node_modules/typebox/build/format/idna/idn-hostname.mjs +7 -5
  317. package/node_modules/typebox/build/format/iri.mjs +5 -1
  318. package/node_modules/typebox/build/guard/emit.mjs +2 -4
  319. package/node_modules/typebox/build/guard/guard.mjs +6 -18
  320. package/node_modules/typebox/build/guard/string.mjs +16 -24
  321. package/node_modules/typebox/build/schema/build.mjs +2 -2
  322. package/node_modules/typebox/build/schema/check.mjs +1 -1
  323. package/node_modules/typebox/build/schema/compile.d.mts +3 -2
  324. package/node_modules/typebox/build/schema/compile.mjs +8 -8
  325. package/node_modules/typebox/build/schema/engine/_context.d.mts +6 -7
  326. package/node_modules/typebox/build/schema/engine/_context.mjs +23 -15
  327. package/node_modules/typebox/build/schema/engine/_functions.d.mts +2 -2
  328. package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -1
  329. package/node_modules/typebox/build/schema/engine/_reducer.d.mts +3 -3
  330. package/node_modules/typebox/build/schema/engine/_refine.d.mts +5 -5
  331. package/node_modules/typebox/build/schema/engine/_refine.mjs +4 -7
  332. package/node_modules/typebox/build/schema/engine/_stack.d.mts +34 -16
  333. package/node_modules/typebox/build/schema/engine/_stack.mjs +148 -104
  334. package/node_modules/typebox/build/schema/engine/additionalItems.d.mts +4 -4
  335. package/node_modules/typebox/build/schema/engine/additionalProperties.d.mts +8 -8
  336. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +26 -18
  337. package/node_modules/typebox/build/schema/engine/allOf.d.mts +4 -4
  338. package/node_modules/typebox/build/schema/engine/allOf.mjs +3 -3
  339. package/node_modules/typebox/build/schema/engine/anyOf.d.mts +4 -4
  340. package/node_modules/typebox/build/schema/engine/anyOf.mjs +5 -10
  341. package/node_modules/typebox/build/schema/engine/boolean.d.mts +4 -4
  342. package/node_modules/typebox/build/schema/engine/boolean.mjs +2 -6
  343. package/node_modules/typebox/build/schema/engine/const.d.mts +4 -4
  344. package/node_modules/typebox/build/schema/engine/const.mjs +2 -6
  345. package/node_modules/typebox/build/schema/engine/contains.d.mts +4 -4
  346. package/node_modules/typebox/build/schema/engine/contains.mjs +2 -6
  347. package/node_modules/typebox/build/schema/engine/dependencies.d.mts +4 -4
  348. package/node_modules/typebox/build/schema/engine/dependencies.mjs +3 -6
  349. package/node_modules/typebox/build/schema/engine/dependentRequired.d.mts +4 -4
  350. package/node_modules/typebox/build/schema/engine/dependentRequired.mjs +2 -6
  351. package/node_modules/typebox/build/schema/engine/dependentSchemas.d.mts +4 -4
  352. package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +4 -4
  353. package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +11 -7
  354. package/node_modules/typebox/build/schema/engine/enum.d.mts +4 -4
  355. package/node_modules/typebox/build/schema/engine/enum.mjs +2 -6
  356. package/node_modules/typebox/build/schema/engine/exclusiveMaximum.d.mts +4 -4
  357. package/node_modules/typebox/build/schema/engine/exclusiveMaximum.mjs +2 -6
  358. package/node_modules/typebox/build/schema/engine/exclusiveMinimum.d.mts +4 -4
  359. package/node_modules/typebox/build/schema/engine/exclusiveMinimum.mjs +2 -6
  360. package/node_modules/typebox/build/schema/engine/format.d.mts +4 -4
  361. package/node_modules/typebox/build/schema/engine/format.mjs +2 -6
  362. package/node_modules/typebox/build/schema/engine/if.d.mts +4 -4
  363. package/node_modules/typebox/build/schema/engine/if.mjs +7 -15
  364. package/node_modules/typebox/build/schema/engine/items.d.mts +4 -4
  365. package/node_modules/typebox/build/schema/engine/items.mjs +1 -1
  366. package/node_modules/typebox/build/schema/engine/maxContains.d.mts +4 -4
  367. package/node_modules/typebox/build/schema/engine/maxContains.mjs +2 -6
  368. package/node_modules/typebox/build/schema/engine/maxItems.d.mts +4 -4
  369. package/node_modules/typebox/build/schema/engine/maxItems.mjs +2 -6
  370. package/node_modules/typebox/build/schema/engine/maxLength.d.mts +4 -4
  371. package/node_modules/typebox/build/schema/engine/maxLength.mjs +2 -6
  372. package/node_modules/typebox/build/schema/engine/maxProperties.d.mts +4 -4
  373. package/node_modules/typebox/build/schema/engine/maxProperties.mjs +2 -6
  374. package/node_modules/typebox/build/schema/engine/maximum.d.mts +4 -4
  375. package/node_modules/typebox/build/schema/engine/maximum.mjs +2 -6
  376. package/node_modules/typebox/build/schema/engine/minContains.d.mts +4 -4
  377. package/node_modules/typebox/build/schema/engine/minContains.mjs +2 -6
  378. package/node_modules/typebox/build/schema/engine/minItems.d.mts +5 -5
  379. package/node_modules/typebox/build/schema/engine/minItems.mjs +2 -6
  380. package/node_modules/typebox/build/schema/engine/minLength.d.mts +4 -4
  381. package/node_modules/typebox/build/schema/engine/minLength.mjs +2 -6
  382. package/node_modules/typebox/build/schema/engine/minProperties.d.mts +4 -4
  383. package/node_modules/typebox/build/schema/engine/minProperties.mjs +2 -6
  384. package/node_modules/typebox/build/schema/engine/minimum.d.mts +4 -4
  385. package/node_modules/typebox/build/schema/engine/minimum.mjs +2 -6
  386. package/node_modules/typebox/build/schema/engine/multipleOf.d.mts +4 -4
  387. package/node_modules/typebox/build/schema/engine/multipleOf.mjs +2 -6
  388. package/node_modules/typebox/build/schema/engine/not.d.mts +4 -4
  389. package/node_modules/typebox/build/schema/engine/not.mjs +4 -8
  390. package/node_modules/typebox/build/schema/engine/oneOf.d.mts +4 -4
  391. package/node_modules/typebox/build/schema/engine/oneOf.mjs +6 -11
  392. package/node_modules/typebox/build/schema/engine/pattern.d.mts +4 -4
  393. package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -7
  394. package/node_modules/typebox/build/schema/engine/patternProperties.d.mts +4 -4
  395. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +1 -1
  396. package/node_modules/typebox/build/schema/engine/prefixItems.d.mts +4 -4
  397. package/node_modules/typebox/build/schema/engine/prefixItems.mjs +1 -1
  398. package/node_modules/typebox/build/schema/engine/properties.d.mts +4 -4
  399. package/node_modules/typebox/build/schema/engine/properties.mjs +1 -1
  400. package/node_modules/typebox/build/schema/engine/propertyNames.d.mts +4 -4
  401. package/node_modules/typebox/build/schema/engine/propertyNames.mjs +4 -10
  402. package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +4 -4
  403. package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +11 -7
  404. package/node_modules/typebox/build/schema/engine/ref.d.mts +4 -4
  405. package/node_modules/typebox/build/schema/engine/ref.mjs +19 -15
  406. package/node_modules/typebox/build/schema/engine/required.d.mts +4 -4
  407. package/node_modules/typebox/build/schema/engine/required.mjs +2 -6
  408. package/node_modules/typebox/build/schema/engine/schema.d.mts +7 -7
  409. package/node_modules/typebox/build/schema/engine/schema.mjs +137 -133
  410. package/node_modules/typebox/build/schema/engine/type.d.mts +4 -4
  411. package/node_modules/typebox/build/schema/engine/type.mjs +2 -6
  412. package/node_modules/typebox/build/schema/engine/unevaluatedItems.d.mts +4 -4
  413. package/node_modules/typebox/build/schema/engine/unevaluatedItems.mjs +5 -9
  414. package/node_modules/typebox/build/schema/engine/unevaluatedProperties.d.mts +4 -4
  415. package/node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs +5 -9
  416. package/node_modules/typebox/build/schema/engine/uniqueItems.d.mts +4 -4
  417. package/node_modules/typebox/build/schema/engine/uniqueItems.mjs +2 -6
  418. package/node_modules/typebox/build/schema/errors.d.mts +2 -2
  419. package/node_modules/typebox/build/schema/errors.mjs +8 -14
  420. package/node_modules/typebox/build/schema/intern/index.d.mts +1 -0
  421. package/node_modules/typebox/build/schema/intern/index.mjs +1 -0
  422. package/node_modules/typebox/build/schema/intern/intern.d.mts +11 -0
  423. package/node_modules/typebox/build/schema/intern/intern.mjs +293 -0
  424. package/node_modules/typebox/build/schema/meta/draft_2019_09.d.mts +2 -0
  425. package/node_modules/typebox/build/schema/meta/draft_2019_09.mjs +288 -0
  426. package/node_modules/typebox/build/schema/meta/draft_2020_12.d.mts +2 -0
  427. package/node_modules/typebox/build/schema/meta/draft_2020_12.mjs +300 -0
  428. package/node_modules/typebox/build/schema/meta/draft_3.d.mts +2 -0
  429. package/node_modules/typebox/build/schema/meta/draft_3.mjs +143 -0
  430. package/node_modules/typebox/build/schema/meta/draft_4.d.mts +2 -0
  431. package/node_modules/typebox/build/schema/meta/draft_4.mjs +149 -0
  432. package/node_modules/typebox/build/schema/meta/draft_6.d.mts +2 -0
  433. package/node_modules/typebox/build/schema/meta/draft_6.mjs +155 -0
  434. package/node_modules/typebox/build/schema/meta/draft_7.d.mts +2 -0
  435. package/node_modules/typebox/build/schema/meta/draft_7.mjs +172 -0
  436. package/node_modules/typebox/build/schema/meta/index.d.mts +2 -0
  437. package/node_modules/typebox/build/schema/meta/index.mjs +2 -0
  438. package/node_modules/typebox/build/schema/meta/meta.d.mts +9 -0
  439. package/node_modules/typebox/build/schema/meta/meta.mjs +15 -0
  440. package/node_modules/typebox/build/schema/meta/schema.d.mts +6 -0
  441. package/node_modules/typebox/build/schema/meta/schema.mjs +1 -0
  442. package/node_modules/typebox/build/schema/parse.d.mts +1 -0
  443. package/node_modules/typebox/build/schema/parse.mjs +10 -5
  444. package/node_modules/typebox/build/schema/resolve/resolve.d.mts +8 -3
  445. package/node_modules/typebox/build/schema/resolve/resolve.mjs +268 -139
  446. package/node_modules/typebox/build/schema/schema.d.mts +2 -0
  447. package/node_modules/typebox/build/schema/schema.mjs +2 -0
  448. package/node_modules/typebox/build/value/errors/errors.d.mts +2 -12
  449. package/node_modules/typebox/build/value/errors/errors.mjs +2 -7
  450. package/node_modules/typebox/package.json +1 -1
  451. package/node_modules/typebox/readme.md +59 -89
  452. package/node_modules/zod/README.md +27 -0
  453. package/node_modules/zod/compile.cjs +77 -0
  454. package/node_modules/zod/compile.d.cts +1 -0
  455. package/node_modules/zod/compile.d.ts +1 -0
  456. package/node_modules/zod/compile.js +52 -0
  457. package/node_modules/zod/index.cjs +2 -2
  458. package/node_modules/zod/index.d.cts +1 -2
  459. package/node_modules/zod/index.d.ts +1 -2
  460. package/node_modules/zod/index.js +5 -2
  461. package/node_modules/zod/package.json +13 -2
  462. package/node_modules/zod/src/compile.ts +56 -0
  463. package/node_modules/zod/src/index.ts +5 -2
  464. package/node_modules/zod/src/v3/ZodError.ts +22 -12
  465. package/node_modules/zod/src/v3/tests/error.test.ts +35 -0
  466. package/node_modules/zod/src/v3/tests/intersection.test.ts +18 -0
  467. package/node_modules/zod/src/v3/tests/language-server.test.ts +1 -2
  468. package/node_modules/zod/src/v3/tests/object.test.ts +3 -6
  469. package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -80
  470. package/node_modules/zod/src/v3/tests/string.test.ts +6 -0
  471. package/node_modules/zod/src/v3/types.ts +5 -5
  472. package/node_modules/zod/src/v4/classic/checks.ts +1 -0
  473. package/node_modules/zod/src/v4/classic/compat.ts +26 -18
  474. package/node_modules/zod/src/v4/classic/deep-partial.ts +76 -0
  475. package/node_modules/zod/src/v4/classic/errors.ts +59 -44
  476. package/node_modules/zod/src/v4/classic/external.ts +12 -9
  477. package/node_modules/zod/src/v4/classic/from-json-schema.ts +140 -78
  478. package/node_modules/zod/src/v4/classic/in-out.ts +45 -0
  479. package/node_modules/zod/src/v4/classic/index.ts +2 -2
  480. package/node_modules/zod/src/v4/classic/iso.ts +2 -72
  481. package/node_modules/zod/src/v4/classic/parse.ts +10 -4
  482. package/node_modules/zod/src/v4/classic/schemas.ts +452 -262
  483. package/node_modules/zod/src/v4/classic/tests/apply.test.ts +27 -0
  484. package/node_modules/zod/src/v4/classic/tests/array.test.ts +2 -2
  485. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +135 -0
  486. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +30 -1
  487. package/node_modules/zod/src/v4/classic/tests/catch.test.ts +278 -0
  488. package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +1 -2
  489. package/node_modules/zod/src/v4/classic/tests/codec.test.ts +2 -1
  490. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
  491. package/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +76 -0
  492. package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +720 -0
  493. package/node_modules/zod/src/v4/classic/tests/date.test.ts +30 -0
  494. package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +32 -18
  495. package/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +380 -0
  496. package/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +32 -0
  497. package/node_modules/zod/src/v4/classic/tests/default.test.ts +46 -0
  498. package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +31 -7
  499. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +155 -13
  500. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +11 -0
  501. package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +112 -2
  502. package/node_modules/zod/src/v4/classic/tests/error.test.ts +274 -6
  503. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +425 -10
  504. package/node_modules/zod/src/v4/classic/tests/function.test.ts +31 -0
  505. package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +2 -9
  506. package/node_modules/zod/src/v4/classic/tests/hash.test.ts +1 -2
  507. package/node_modules/zod/src/v4/classic/tests/in-out.test.ts +159 -0
  508. package/node_modules/zod/src/v4/classic/tests/index.test.ts +21 -2
  509. package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +281 -0
  510. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +47 -0
  511. package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +136 -0
  512. package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +183 -0
  513. package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +3 -10
  514. package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +36 -1
  515. package/node_modules/zod/src/v4/classic/tests/literal.test.ts +12 -1
  516. package/node_modules/zod/src/v4/classic/tests/map.test.ts +12 -0
  517. package/node_modules/zod/src/v4/classic/tests/number.test.ts +46 -9
  518. package/node_modules/zod/src/v4/classic/tests/object.test.ts +245 -12
  519. package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +234 -0
  520. package/node_modules/zod/src/v4/classic/tests/optional.test.ts +49 -16
  521. package/node_modules/zod/src/v4/classic/tests/partial.test.ts +51 -4
  522. package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +20 -2
  523. package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -68
  524. package/node_modules/zod/src/v4/classic/tests/record.test.ts +186 -18
  525. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +33 -2
  526. package/node_modules/zod/src/v4/classic/tests/redos.test.ts +68 -0
  527. package/node_modules/zod/src/v4/classic/tests/refine.test.ts +60 -0
  528. package/node_modules/zod/src/v4/classic/tests/set.test.ts +9 -0
  529. package/node_modules/zod/src/v4/classic/tests/string.test.ts +127 -5
  530. package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +18 -0
  531. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +11 -2
  532. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +1585 -173
  533. package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +45 -30
  534. package/node_modules/zod/src/v4/classic/tests/union.test.ts +39 -2
  535. package/node_modules/zod/src/v4/classic/tests/validate.test.ts +76 -0
  536. package/node_modules/zod/src/v4/classic/tests/validations.test.ts +2 -2
  537. package/node_modules/zod/src/v4/core/api.ts +48 -12
  538. package/node_modules/zod/src/v4/core/checks.ts +57 -44
  539. package/node_modules/zod/src/v4/core/compile.ts +2188 -0
  540. package/node_modules/zod/src/v4/core/core.ts +98 -19
  541. package/node_modules/zod/src/v4/core/doc.ts +11 -7
  542. package/node_modules/zod/src/v4/core/errors.ts +115 -24
  543. package/node_modules/zod/src/v4/core/index.ts +3 -0
  544. package/node_modules/zod/src/v4/core/json-schema-generator.ts +6 -1
  545. package/node_modules/zod/src/v4/core/json-schema-processors.ts +257 -93
  546. package/node_modules/zod/src/v4/core/json-schema.ts +2 -1
  547. package/node_modules/zod/src/v4/core/memoizer.ts +284 -0
  548. package/node_modules/zod/src/v4/core/parse.ts +131 -38
  549. package/node_modules/zod/src/v4/core/regexes.ts +30 -13
  550. package/node_modules/zod/src/v4/core/registries.ts +2 -2
  551. package/node_modules/zod/src/v4/core/schemas.ts +759 -461
  552. package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +969 -0
  553. package/node_modules/zod/src/v4/core/tests/compile-global.test.ts +89 -0
  554. package/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +26 -0
  555. package/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +34 -0
  556. package/node_modules/zod/src/v4/core/tests/compile.test.ts +1639 -0
  557. package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +1 -2
  558. package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +1 -2
  559. package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +3 -3
  560. package/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +42 -0
  561. package/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +69 -0
  562. package/node_modules/zod/src/v4/core/tests/treeshake.test.ts +51 -0
  563. package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +31 -0
  564. package/node_modules/zod/src/v4/core/to-json-schema.ts +275 -42
  565. package/node_modules/zod/src/v4/core/util.ts +268 -42
  566. package/node_modules/zod/src/v4/core/versions.ts +2 -2
  567. package/node_modules/zod/src/v4/core/visit.ts +193 -0
  568. package/node_modules/zod/src/v4/index.ts +3 -3
  569. package/node_modules/zod/src/v4/locales/ar.ts +3 -0
  570. package/node_modules/zod/src/v4/locales/az.ts +3 -0
  571. package/node_modules/zod/src/v4/locales/be.ts +10 -0
  572. package/node_modules/zod/src/v4/locales/bg.ts +3 -0
  573. package/node_modules/zod/src/v4/locales/bn.ts +121 -0
  574. package/node_modules/zod/src/v4/locales/ca.ts +3 -0
  575. package/node_modules/zod/src/v4/locales/ckb.ts +138 -0
  576. package/node_modules/zod/src/v4/locales/cs.ts +3 -0
  577. package/node_modules/zod/src/v4/locales/da.ts +5 -2
  578. package/node_modules/zod/src/v4/locales/de.ts +3 -0
  579. package/node_modules/zod/src/v4/locales/el.ts +1 -0
  580. package/node_modules/zod/src/v4/locales/en.ts +15 -4
  581. package/node_modules/zod/src/v4/locales/eo.ts +3 -0
  582. package/node_modules/zod/src/v4/locales/es.ts +2 -0
  583. package/node_modules/zod/src/v4/locales/fa.ts +3 -0
  584. package/node_modules/zod/src/v4/locales/fi.ts +3 -0
  585. package/node_modules/zod/src/v4/locales/fr-CA.ts +3 -0
  586. package/node_modules/zod/src/v4/locales/fr.ts +19 -14
  587. package/node_modules/zod/src/v4/locales/gu.ts +121 -0
  588. package/node_modules/zod/src/v4/locales/he.ts +6 -1
  589. package/node_modules/zod/src/v4/locales/hi.ts +124 -0
  590. package/node_modules/zod/src/v4/locales/hr.ts +2 -0
  591. package/node_modules/zod/src/v4/locales/hu.ts +3 -0
  592. package/node_modules/zod/src/v4/locales/hy.ts +9 -0
  593. package/node_modules/zod/src/v4/locales/id.ts +3 -0
  594. package/node_modules/zod/src/v4/locales/index.ts +10 -0
  595. package/node_modules/zod/src/v4/locales/is.ts +3 -0
  596. package/node_modules/zod/src/v4/locales/it.ts +3 -0
  597. package/node_modules/zod/src/v4/locales/ja.ts +3 -0
  598. package/node_modules/zod/src/v4/locales/ka.ts +3 -0
  599. package/node_modules/zod/src/v4/locales/km.ts +3 -0
  600. package/node_modules/zod/src/v4/locales/kn.ts +124 -0
  601. package/node_modules/zod/src/v4/locales/ko.ts +3 -0
  602. package/node_modules/zod/src/v4/locales/lt.ts +2 -0
  603. package/node_modules/zod/src/v4/locales/mk.ts +3 -0
  604. package/node_modules/zod/src/v4/locales/ms.ts +3 -0
  605. package/node_modules/zod/src/v4/locales/ne.ts +126 -0
  606. package/node_modules/zod/src/v4/locales/nl.ts +3 -0
  607. package/node_modules/zod/src/v4/locales/nn.ts +119 -0
  608. package/node_modules/zod/src/v4/locales/no.ts +5 -2
  609. package/node_modules/zod/src/v4/locales/ota.ts +3 -0
  610. package/node_modules/zod/src/v4/locales/pl.ts +3 -0
  611. package/node_modules/zod/src/v4/locales/ps.ts +3 -0
  612. package/node_modules/zod/src/v4/locales/pt-BR.ts +159 -0
  613. package/node_modules/zod/src/v4/locales/pt.ts +99 -58
  614. package/node_modules/zod/src/v4/locales/ro.ts +1 -0
  615. package/node_modules/zod/src/v4/locales/ru.ts +10 -0
  616. package/node_modules/zod/src/v4/locales/sk.ts +121 -0
  617. package/node_modules/zod/src/v4/locales/sl.ts +3 -0
  618. package/node_modules/zod/src/v4/locales/sv.ts +5 -2
  619. package/node_modules/zod/src/v4/locales/ta.ts +3 -0
  620. package/node_modules/zod/src/v4/locales/th.ts +3 -0
  621. package/node_modules/zod/src/v4/locales/tk.ts +111 -0
  622. package/node_modules/zod/src/v4/locales/tr.ts +3 -0
  623. package/node_modules/zod/src/v4/locales/uk.ts +3 -0
  624. package/node_modules/zod/src/v4/locales/ur.ts +3 -0
  625. package/node_modules/zod/src/v4/locales/uz.ts +1 -0
  626. package/node_modules/zod/src/v4/locales/vi.ts +3 -0
  627. package/node_modules/zod/src/v4/locales/yo.ts +3 -0
  628. package/node_modules/zod/src/v4/locales/zh-CN.ts +3 -0
  629. package/node_modules/zod/src/v4/locales/zh-TW.ts +3 -0
  630. package/node_modules/zod/src/v4/mini/checks.ts +1 -0
  631. package/node_modules/zod/src/v4/mini/deep-partial.ts +73 -0
  632. package/node_modules/zod/src/v4/mini/external.ts +10 -1
  633. package/node_modules/zod/src/v4/mini/in-out.ts +45 -0
  634. package/node_modules/zod/src/v4/mini/parse.ts +2 -0
  635. package/node_modules/zod/src/v4/mini/schemas.ts +135 -56
  636. package/node_modules/zod/src/v4/mini/tests/apply.test.ts +33 -0
  637. package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +62 -1
  638. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +14 -0
  639. package/node_modules/zod/src/v4/mini/tests/codec.test.ts +35 -1
  640. package/node_modules/zod/src/v4/mini/tests/cyclic-data.test.ts +84 -0
  641. package/node_modules/zod/src/v4/mini/tests/deep-partial.test.ts +54 -0
  642. package/node_modules/zod/src/v4/mini/tests/error.test.ts +23 -4
  643. package/node_modules/zod/src/v4/mini/tests/functions.test.ts +9 -0
  644. package/node_modules/zod/src/v4/mini/tests/index.test.ts +72 -5
  645. package/node_modules/zod/src/v4/mini/tests/number.test.ts +14 -0
  646. package/node_modules/zod/src/v4/mini/tests/object.test.ts +65 -0
  647. package/node_modules/zod/src/v4/mini/tests/string.test.ts +21 -0
  648. package/node_modules/zod/v3/ZodError.cjs +22 -12
  649. package/node_modules/zod/v3/ZodError.d.cts +1 -1
  650. package/node_modules/zod/v3/ZodError.d.ts +1 -1
  651. package/node_modules/zod/v3/ZodError.js +22 -12
  652. package/node_modules/zod/v3/types.cjs +7 -5
  653. package/node_modules/zod/v3/types.js +7 -5
  654. package/node_modules/zod/v4/classic/checks.cjs +2 -1
  655. package/node_modules/zod/v4/classic/checks.d.cts +1 -1
  656. package/node_modules/zod/v4/classic/checks.d.ts +1 -1
  657. package/node_modules/zod/v4/classic/checks.js +1 -1
  658. package/node_modules/zod/v4/classic/compat.d.cts +9 -11
  659. package/node_modules/zod/v4/classic/compat.d.ts +9 -11
  660. package/node_modules/zod/v4/classic/deep-partial.cjs +39 -0
  661. package/node_modules/zod/v4/classic/deep-partial.d.cts +14 -0
  662. package/node_modules/zod/v4/classic/deep-partial.d.ts +14 -0
  663. package/node_modules/zod/v4/classic/deep-partial.js +13 -0
  664. package/node_modules/zod/v4/classic/errors.cjs +43 -34
  665. package/node_modules/zod/v4/classic/errors.d.cts +3 -4
  666. package/node_modules/zod/v4/classic/errors.d.ts +3 -4
  667. package/node_modules/zod/v4/classic/errors.js +43 -34
  668. package/node_modules/zod/v4/classic/external.cjs +30 -27
  669. package/node_modules/zod/v4/classic/external.d.cts +5 -2
  670. package/node_modules/zod/v4/classic/external.d.ts +5 -2
  671. package/node_modules/zod/v4/classic/external.js +5 -8
  672. package/node_modules/zod/v4/classic/from-json-schema.cjs +136 -75
  673. package/node_modules/zod/v4/classic/from-json-schema.js +136 -75
  674. package/node_modules/zod/v4/classic/in-out.cjs +63 -0
  675. package/node_modules/zod/v4/classic/in-out.d.cts +8 -0
  676. package/node_modules/zod/v4/classic/in-out.d.ts +8 -0
  677. package/node_modules/zod/v4/classic/in-out.js +36 -0
  678. package/node_modules/zod/v4/classic/index.cjs +2 -2
  679. package/node_modules/zod/v4/classic/index.d.cts +1 -2
  680. package/node_modules/zod/v4/classic/index.d.ts +1 -2
  681. package/node_modules/zod/v4/classic/index.js +2 -2
  682. package/node_modules/zod/v4/classic/iso.cjs +11 -22
  683. package/node_modules/zod/v4/classic/iso.d.cts +2 -17
  684. package/node_modules/zod/v4/classic/iso.d.ts +2 -17
  685. package/node_modules/zod/v4/classic/iso.js +2 -17
  686. package/node_modules/zod/v4/classic/parse.cjs +4 -1
  687. package/node_modules/zod/v4/classic/parse.d.cts +17 -4
  688. package/node_modules/zod/v4/classic/parse.d.ts +17 -4
  689. package/node_modules/zod/v4/classic/parse.js +1 -0
  690. package/node_modules/zod/v4/classic/schemas.cjs +498 -398
  691. package/node_modules/zod/v4/classic/schemas.d.cts +53 -18
  692. package/node_modules/zod/v4/classic/schemas.d.ts +53 -18
  693. package/node_modules/zod/v4/classic/schemas.js +492 -396
  694. package/node_modules/zod/v4/core/api.cjs +23 -4
  695. package/node_modules/zod/v4/core/api.d.cts +13 -9
  696. package/node_modules/zod/v4/core/api.d.ts +13 -9
  697. package/node_modules/zod/v4/core/api.js +21 -4
  698. package/node_modules/zod/v4/core/checks.cjs +37 -31
  699. package/node_modules/zod/v4/core/checks.d.cts +13 -13
  700. package/node_modules/zod/v4/core/checks.d.ts +13 -13
  701. package/node_modules/zod/v4/core/checks.js +37 -31
  702. package/node_modules/zod/v4/core/compile.cjs +1813 -0
  703. package/node_modules/zod/v4/core/compile.d.cts +51 -0
  704. package/node_modules/zod/v4/core/compile.d.ts +51 -0
  705. package/node_modules/zod/v4/core/compile.js +1783 -0
  706. package/node_modules/zod/v4/core/core.cjs +81 -18
  707. package/node_modules/zod/v4/core/core.d.cts +16 -4
  708. package/node_modules/zod/v4/core/core.d.ts +16 -4
  709. package/node_modules/zod/v4/core/core.js +82 -19
  710. package/node_modules/zod/v4/core/doc.cjs +5 -7
  711. package/node_modules/zod/v4/core/doc.d.cts +3 -1
  712. package/node_modules/zod/v4/core/doc.d.ts +3 -1
  713. package/node_modules/zod/v4/core/doc.js +5 -7
  714. package/node_modules/zod/v4/core/errors.cjs +110 -25
  715. package/node_modules/zod/v4/core/errors.d.cts +4 -0
  716. package/node_modules/zod/v4/core/errors.d.ts +4 -0
  717. package/node_modules/zod/v4/core/errors.js +110 -25
  718. package/node_modules/zod/v4/core/index.cjs +5 -1
  719. package/node_modules/zod/v4/core/index.d.cts +3 -0
  720. package/node_modules/zod/v4/core/index.d.ts +3 -0
  721. package/node_modules/zod/v4/core/index.js +3 -0
  722. package/node_modules/zod/v4/core/json-schema-generator.cjs +4 -0
  723. package/node_modules/zod/v4/core/json-schema-generator.d.cts +2 -2
  724. package/node_modules/zod/v4/core/json-schema-generator.d.ts +2 -2
  725. package/node_modules/zod/v4/core/json-schema-generator.js +4 -0
  726. package/node_modules/zod/v4/core/json-schema-processors.cjs +264 -95
  727. package/node_modules/zod/v4/core/json-schema-processors.js +243 -97
  728. package/node_modules/zod/v4/core/json-schema.d.cts +2 -1
  729. package/node_modules/zod/v4/core/json-schema.d.ts +2 -1
  730. package/node_modules/zod/v4/core/memoizer.cjs +272 -0
  731. package/node_modules/zod/v4/core/memoizer.d.cts +15 -0
  732. package/node_modules/zod/v4/core/memoizer.d.ts +15 -0
  733. package/node_modules/zod/v4/core/memoizer.js +265 -0
  734. package/node_modules/zod/v4/core/parse.cjs +96 -34
  735. package/node_modules/zod/v4/core/parse.d.cts +14 -11
  736. package/node_modules/zod/v4/core/parse.d.ts +14 -11
  737. package/node_modules/zod/v4/core/parse.js +94 -33
  738. package/node_modules/zod/v4/core/regexes.cjs +27 -15
  739. package/node_modules/zod/v4/core/regexes.d.cts +2 -0
  740. package/node_modules/zod/v4/core/regexes.d.ts +2 -0
  741. package/node_modules/zod/v4/core/regexes.js +24 -13
  742. package/node_modules/zod/v4/core/registries.js +2 -2
  743. package/node_modules/zod/v4/core/schemas.cjs +537 -326
  744. package/node_modules/zod/v4/core/schemas.d.cts +100 -31
  745. package/node_modules/zod/v4/core/schemas.d.ts +100 -31
  746. package/node_modules/zod/v4/core/schemas.js +526 -325
  747. package/node_modules/zod/v4/core/to-json-schema.cjs +242 -39
  748. package/node_modules/zod/v4/core/to-json-schema.d.cts +42 -3
  749. package/node_modules/zod/v4/core/to-json-schema.d.ts +42 -3
  750. package/node_modules/zod/v4/core/to-json-schema.js +241 -39
  751. package/node_modules/zod/v4/core/util.cjs +212 -31
  752. package/node_modules/zod/v4/core/util.d.cts +58 -1
  753. package/node_modules/zod/v4/core/util.d.ts +58 -1
  754. package/node_modules/zod/v4/core/util.js +202 -30
  755. package/node_modules/zod/v4/core/versions.cjs +2 -2
  756. package/node_modules/zod/v4/core/versions.d.cts +1 -1
  757. package/node_modules/zod/v4/core/versions.d.ts +1 -1
  758. package/node_modules/zod/v4/core/versions.js +2 -2
  759. package/node_modules/zod/v4/core/visit.cjs +195 -0
  760. package/node_modules/zod/v4/core/visit.d.cts +30 -0
  761. package/node_modules/zod/v4/core/visit.d.ts +30 -0
  762. package/node_modules/zod/v4/core/visit.js +169 -0
  763. package/node_modules/zod/v4/index.cjs +15 -5
  764. package/node_modules/zod/v4/index.d.cts +2 -2
  765. package/node_modules/zod/v4/index.d.ts +2 -2
  766. package/node_modules/zod/v4/index.js +3 -2
  767. package/node_modules/zod/v4/locales/ar.cjs +3 -0
  768. package/node_modules/zod/v4/locales/ar.js +3 -0
  769. package/node_modules/zod/v4/locales/az.cjs +3 -0
  770. package/node_modules/zod/v4/locales/az.js +3 -0
  771. package/node_modules/zod/v4/locales/be.cjs +10 -0
  772. package/node_modules/zod/v4/locales/be.js +10 -0
  773. package/node_modules/zod/v4/locales/bg.cjs +3 -0
  774. package/node_modules/zod/v4/locales/bg.js +3 -0
  775. package/node_modules/zod/v4/locales/bn.cjs +138 -0
  776. package/node_modules/zod/v4/locales/bn.d.cts +5 -0
  777. package/node_modules/zod/v4/locales/bn.d.ts +4 -0
  778. package/node_modules/zod/v4/locales/bn.js +111 -0
  779. package/node_modules/zod/v4/locales/ca.cjs +3 -0
  780. package/node_modules/zod/v4/locales/ca.js +3 -0
  781. package/node_modules/zod/v4/locales/ckb.cjs +158 -0
  782. package/node_modules/zod/v4/locales/ckb.d.cts +5 -0
  783. package/node_modules/zod/v4/locales/ckb.d.ts +4 -0
  784. package/node_modules/zod/v4/locales/ckb.js +131 -0
  785. package/node_modules/zod/v4/locales/cs.cjs +3 -0
  786. package/node_modules/zod/v4/locales/cs.js +3 -0
  787. package/node_modules/zod/v4/locales/da.cjs +5 -2
  788. package/node_modules/zod/v4/locales/da.js +5 -2
  789. package/node_modules/zod/v4/locales/de.cjs +3 -0
  790. package/node_modules/zod/v4/locales/de.js +3 -0
  791. package/node_modules/zod/v4/locales/el.cjs +1 -0
  792. package/node_modules/zod/v4/locales/el.js +1 -0
  793. package/node_modules/zod/v4/locales/en.cjs +14 -4
  794. package/node_modules/zod/v4/locales/en.js +14 -4
  795. package/node_modules/zod/v4/locales/eo.cjs +3 -0
  796. package/node_modules/zod/v4/locales/eo.js +3 -0
  797. package/node_modules/zod/v4/locales/es.cjs +2 -0
  798. package/node_modules/zod/v4/locales/es.js +2 -0
  799. package/node_modules/zod/v4/locales/fa.cjs +3 -0
  800. package/node_modules/zod/v4/locales/fa.js +3 -0
  801. package/node_modules/zod/v4/locales/fi.cjs +3 -0
  802. package/node_modules/zod/v4/locales/fi.js +3 -0
  803. package/node_modules/zod/v4/locales/fr-CA.cjs +3 -0
  804. package/node_modules/zod/v4/locales/fr-CA.js +3 -0
  805. package/node_modules/zod/v4/locales/fr.cjs +16 -14
  806. package/node_modules/zod/v4/locales/fr.js +16 -14
  807. package/node_modules/zod/v4/locales/gu.cjs +138 -0
  808. package/node_modules/zod/v4/locales/gu.d.cts +5 -0
  809. package/node_modules/zod/v4/locales/gu.d.ts +4 -0
  810. package/node_modules/zod/v4/locales/gu.js +111 -0
  811. package/node_modules/zod/v4/locales/he.cjs +5 -0
  812. package/node_modules/zod/v4/locales/he.js +5 -0
  813. package/node_modules/zod/v4/locales/hi.cjs +136 -0
  814. package/node_modules/zod/v4/locales/hi.d.cts +5 -0
  815. package/node_modules/zod/v4/locales/hi.d.ts +4 -0
  816. package/node_modules/zod/v4/locales/hi.js +109 -0
  817. package/node_modules/zod/v4/locales/hr.cjs +2 -0
  818. package/node_modules/zod/v4/locales/hr.js +2 -0
  819. package/node_modules/zod/v4/locales/hu.cjs +3 -0
  820. package/node_modules/zod/v4/locales/hu.js +3 -0
  821. package/node_modules/zod/v4/locales/hy.cjs +9 -0
  822. package/node_modules/zod/v4/locales/hy.js +9 -0
  823. package/node_modules/zod/v4/locales/id.cjs +3 -0
  824. package/node_modules/zod/v4/locales/id.js +3 -0
  825. package/node_modules/zod/v4/locales/index.cjs +22 -2
  826. package/node_modules/zod/v4/locales/index.d.cts +10 -0
  827. package/node_modules/zod/v4/locales/index.d.ts +10 -0
  828. package/node_modules/zod/v4/locales/index.js +10 -0
  829. package/node_modules/zod/v4/locales/is.cjs +3 -0
  830. package/node_modules/zod/v4/locales/is.js +3 -0
  831. package/node_modules/zod/v4/locales/it.cjs +3 -0
  832. package/node_modules/zod/v4/locales/it.js +3 -0
  833. package/node_modules/zod/v4/locales/ja.cjs +3 -0
  834. package/node_modules/zod/v4/locales/ja.js +3 -0
  835. package/node_modules/zod/v4/locales/ka.cjs +3 -0
  836. package/node_modules/zod/v4/locales/ka.js +3 -0
  837. package/node_modules/zod/v4/locales/km.cjs +3 -0
  838. package/node_modules/zod/v4/locales/km.js +3 -0
  839. package/node_modules/zod/v4/locales/kn.cjs +141 -0
  840. package/node_modules/zod/v4/locales/kn.d.cts +5 -0
  841. package/node_modules/zod/v4/locales/kn.d.ts +4 -0
  842. package/node_modules/zod/v4/locales/kn.js +114 -0
  843. package/node_modules/zod/v4/locales/ko.cjs +3 -0
  844. package/node_modules/zod/v4/locales/ko.js +3 -0
  845. package/node_modules/zod/v4/locales/lt.cjs +2 -0
  846. package/node_modules/zod/v4/locales/lt.js +2 -0
  847. package/node_modules/zod/v4/locales/mk.cjs +3 -0
  848. package/node_modules/zod/v4/locales/mk.js +3 -0
  849. package/node_modules/zod/v4/locales/ms.cjs +3 -0
  850. package/node_modules/zod/v4/locales/ms.js +3 -0
  851. package/node_modules/zod/v4/locales/ne.cjs +136 -0
  852. package/node_modules/zod/v4/locales/ne.d.cts +5 -0
  853. package/node_modules/zod/v4/locales/ne.d.ts +4 -0
  854. package/node_modules/zod/v4/locales/ne.js +109 -0
  855. package/node_modules/zod/v4/locales/nl.cjs +3 -0
  856. package/node_modules/zod/v4/locales/nl.js +3 -0
  857. package/node_modules/zod/v4/locales/nn.cjs +138 -0
  858. package/node_modules/zod/v4/locales/nn.d.cts +5 -0
  859. package/node_modules/zod/v4/locales/nn.d.ts +4 -0
  860. package/node_modules/zod/v4/locales/nn.js +111 -0
  861. package/node_modules/zod/v4/locales/no.cjs +5 -2
  862. package/node_modules/zod/v4/locales/no.js +5 -2
  863. package/node_modules/zod/v4/locales/ota.cjs +3 -0
  864. package/node_modules/zod/v4/locales/ota.js +3 -0
  865. package/node_modules/zod/v4/locales/pl.cjs +3 -0
  866. package/node_modules/zod/v4/locales/pl.js +3 -0
  867. package/node_modules/zod/v4/locales/ps.cjs +3 -0
  868. package/node_modules/zod/v4/locales/ps.js +3 -0
  869. package/node_modules/zod/v4/locales/pt-BR.cjs +168 -0
  870. package/node_modules/zod/v4/locales/pt-BR.d.cts +5 -0
  871. package/node_modules/zod/v4/locales/pt-BR.d.ts +4 -0
  872. package/node_modules/zod/v4/locales/pt-BR.js +141 -0
  873. package/node_modules/zod/v4/locales/pt.cjs +87 -55
  874. package/node_modules/zod/v4/locales/pt.js +87 -55
  875. package/node_modules/zod/v4/locales/ro.cjs +1 -0
  876. package/node_modules/zod/v4/locales/ro.js +1 -0
  877. package/node_modules/zod/v4/locales/ru.cjs +10 -0
  878. package/node_modules/zod/v4/locales/ru.js +10 -0
  879. package/node_modules/zod/v4/locales/sk.cjs +141 -0
  880. package/node_modules/zod/v4/locales/sk.d.cts +5 -0
  881. package/node_modules/zod/v4/locales/sk.d.ts +4 -0
  882. package/node_modules/zod/v4/locales/sk.js +114 -0
  883. package/node_modules/zod/v4/locales/sl.cjs +3 -0
  884. package/node_modules/zod/v4/locales/sl.js +3 -0
  885. package/node_modules/zod/v4/locales/sv.cjs +5 -2
  886. package/node_modules/zod/v4/locales/sv.js +5 -2
  887. package/node_modules/zod/v4/locales/ta.cjs +3 -0
  888. package/node_modules/zod/v4/locales/ta.js +3 -0
  889. package/node_modules/zod/v4/locales/th.cjs +3 -0
  890. package/node_modules/zod/v4/locales/th.js +3 -0
  891. package/node_modules/zod/v4/locales/tk.cjs +132 -0
  892. package/node_modules/zod/v4/locales/tk.d.cts +5 -0
  893. package/node_modules/zod/v4/locales/tk.d.ts +4 -0
  894. package/node_modules/zod/v4/locales/tk.js +105 -0
  895. package/node_modules/zod/v4/locales/tr.cjs +3 -0
  896. package/node_modules/zod/v4/locales/tr.js +3 -0
  897. package/node_modules/zod/v4/locales/uk.cjs +3 -0
  898. package/node_modules/zod/v4/locales/uk.js +3 -0
  899. package/node_modules/zod/v4/locales/ur.cjs +3 -0
  900. package/node_modules/zod/v4/locales/ur.js +3 -0
  901. package/node_modules/zod/v4/locales/uz.cjs +1 -0
  902. package/node_modules/zod/v4/locales/uz.js +1 -0
  903. package/node_modules/zod/v4/locales/vi.cjs +3 -0
  904. package/node_modules/zod/v4/locales/vi.js +3 -0
  905. package/node_modules/zod/v4/locales/yo.cjs +3 -0
  906. package/node_modules/zod/v4/locales/yo.js +3 -0
  907. package/node_modules/zod/v4/locales/zh-CN.cjs +3 -0
  908. package/node_modules/zod/v4/locales/zh-CN.js +3 -0
  909. package/node_modules/zod/v4/locales/zh-TW.cjs +3 -0
  910. package/node_modules/zod/v4/locales/zh-TW.js +3 -0
  911. package/node_modules/zod/v4/mini/checks.cjs +2 -1
  912. package/node_modules/zod/v4/mini/checks.d.cts +1 -1
  913. package/node_modules/zod/v4/mini/checks.d.ts +1 -1
  914. package/node_modules/zod/v4/mini/checks.js +1 -1
  915. package/node_modules/zod/v4/mini/deep-partial.cjs +39 -0
  916. package/node_modules/zod/v4/mini/deep-partial.d.cts +14 -0
  917. package/node_modules/zod/v4/mini/deep-partial.d.ts +14 -0
  918. package/node_modules/zod/v4/mini/deep-partial.js +13 -0
  919. package/node_modules/zod/v4/mini/external.cjs +12 -1
  920. package/node_modules/zod/v4/mini/external.d.cts +5 -2
  921. package/node_modules/zod/v4/mini/external.d.ts +5 -2
  922. package/node_modules/zod/v4/mini/external.js +3 -1
  923. package/node_modules/zod/v4/mini/in-out.cjs +63 -0
  924. package/node_modules/zod/v4/mini/in-out.d.cts +8 -0
  925. package/node_modules/zod/v4/mini/in-out.d.ts +8 -0
  926. package/node_modules/zod/v4/mini/in-out.js +36 -0
  927. package/node_modules/zod/v4/mini/parse.cjs +3 -1
  928. package/node_modules/zod/v4/mini/parse.d.cts +1 -1
  929. package/node_modules/zod/v4/mini/parse.d.ts +1 -1
  930. package/node_modules/zod/v4/mini/parse.js +1 -1
  931. package/node_modules/zod/v4/mini/schemas.cjs +75 -47
  932. package/node_modules/zod/v4/mini/schemas.d.cts +43 -13
  933. package/node_modules/zod/v4/mini/schemas.d.ts +43 -13
  934. package/node_modules/zod/v4/mini/schemas.js +71 -45
  935. package/openclaw.plugin.json +15 -1
  936. package/package.json +10 -8
  937. package/node_modules/@pierre/diffs/dist/editor/stateStorage.d.ts +0 -15
  938. package/node_modules/@pierre/diffs/dist/editor/stateStorage.d.ts.map +0 -1
  939. package/node_modules/@pierre/diffs/dist/editor/stateStorage.js +0 -65
  940. package/node_modules/@pierre/diffs/dist/editor/stateStorage.js.map +0 -1
  941. package/node_modules/playwright-core/lib/vite/dashboard/assets/index-CyWAfh-p.js +0 -11
  942. package/node_modules/playwright-core/lib/vite/dashboard/assets/index-DhC616m4.css +0 -1
  943. package/node_modules/playwright-core/lib/vite/recorder/assets/index-DYjdXIbE.js +0 -129
  944. package/node_modules/playwright-core/lib/vite/recorder/assets/index-l_lX622x.css +0 -1
  945. package/node_modules/playwright-core/lib/vite/traceViewer/assets/defaultSettingsView-B-dXF5JN.js +0 -181
  946. package/node_modules/playwright-core/lib/vite/traceViewer/defaultSettingsView.BLFoOugd.css +0 -1
  947. package/node_modules/playwright-core/lib/vite/traceViewer/index.KZ4wOW1K.js +0 -1
  948. package/node_modules/playwright-core/lib/vite/traceViewer/uiMode.Dzuouizj.js +0 -5
  949. package/node_modules/zod/src/v4/core/config.ts +0 -15
  950. /package/dist/{viewer-assets-D3qrnaxI.js → .setup/viewer-assets-D3qrnaxI.mjs} +0 -0
@@ -1,16 +1,15 @@
1
1
  import { CUSTOM_HEADER_SLOT_ID, DEFAULT_THEMES, EMPTY_RENDER_RANGE, HEADER_FILENAME_SUFFIX_SLOT_ID, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID } from "../constants.js";
2
+ import { getThemes } from "../utils/getThemes.js";
3
+ import { getHighlighterIfLoaded, getSharedHighlighter } from "../highlighter/shared_highlighter.js";
2
4
  import { dequeueRender, queueRender } from "../managers/UniversalRenderingManager.js";
3
5
  import { areThemesEqual } from "../utils/areThemesEqual.js";
4
- import { getHunkSideStartBoundary } from "../utils/getHunkSideBoundaries.js";
5
- import { parseDiffFromFile } from "../utils/parseDiffFromFile.js";
6
- import { getExpandedRegion, getHunkAdditionLineRange, getNearestRenderableAdditionLine, getTrailingExpandedRegion, isAdditionLineRenderable } from "../utils/virtualDiffLayout.js";
7
- import { captureExpansionAnchors, finishEditSessionForDiff, rebuildExpansionFromAnchors } from "../utils/editSessionHunks.js";
8
6
  import { isStyleNode } from "../utils/isStyleNode.js";
9
- import { areFilesEqual } from "../utils/areFilesEqual.js";
10
7
  import { InteractionManager, pluckInteractionOptions } from "../managers/InteractionManager.js";
11
8
  import { ResizeManager } from "../managers/ResizeManager.js";
12
9
  import { areRenderRangesEqual } from "../utils/areRenderRangesEqual.js";
10
+ import { getFiletypeFromFileName } from "../utils/getFiletypeFromFileName.js";
13
11
  import { getLineAnnotationName } from "../utils/getLineAnnotationName.js";
12
+ import { isDefaultRenderRange } from "../utils/isDefaultRenderRange.js";
14
13
  import { SVGSpriteSheet } from "../sprite.js";
15
14
  import { arePrePropertiesEqual } from "../utils/arePrePropertiesEqual.js";
16
15
  import { createAnnotationWrapperNode } from "../utils/createAnnotationWrapperNode.js";
@@ -18,6 +17,7 @@ import { createGutterUtilityContentNode } from "../utils/createGutterUtilityCont
18
17
  import { createUnsafeCSSStyleNode } from "../utils/createUnsafeCSSStyleNode.js";
19
18
  import { getMeasuredScrollbarGutter } from "../utils/scrollbarGutter.js";
20
19
  import { patchScrollbarGutterSize, wrapThemeCSS, wrapUnsafeCSS } from "../utils/cssWrappers.js";
20
+ import { adoptEditSessionAnnotations, resolveEditSessionSlotName, writeEditSessionAnnotations } from "../utils/editSessionAnnotations.js";
21
21
  import { getOrCreateCodeNode } from "../utils/getOrCreateCodeNode.js";
22
22
  import { guardWebKitScrollDuringRebuild } from "../utils/guardWebKitScrollDuringRebuild.js";
23
23
  import { upsertHostThemeStyle } from "../utils/hostTheme.js";
@@ -25,12 +25,20 @@ import { isSafari } from "../utils/platform.js";
25
25
  import { prerenderHTMLIfNecessary } from "../utils/prerenderHTMLIfNecessary.js";
26
26
  import { setPreNodeProperties } from "../utils/setWrapperNodeProps.js";
27
27
  import "./web-components.js";
28
+ import { areDiffTargetsEqual } from "../utils/areDiffTargetsEqual.js";
29
+ import { areFilesEqual } from "../utils/areFilesEqual.js";
28
30
  import { awaitWithTimeout } from "../utils/awaitWithTimeout.js";
31
+ import { getHunkSideStartBoundary } from "../utils/getHunkSideBoundaries.js";
32
+ import { getExpandedRegion, getHunkAdditionLineRange, getNearestRenderableAdditionLine, getTrailingExpandedRegion, isAdditionLineRenderable } from "../utils/virtualDiffLayout.js";
29
33
  import { getDiffFileInput } from "../utils/getDiffFileInput.js";
34
+ import { cloneFileDiffMetadata, cloneHunks } from "../utils/cloneFileDiffMetadata.js";
35
+ import { splitFileContents } from "../utils/splitFileContents.js";
30
36
  import { hydratePartialDiff } from "../utils/hydratePartialDiff.js";
31
37
  import { iterateOverDiff } from "../utils/iterateOverDiff.js";
38
+ import { parseDiffFromFile } from "../utils/parseDiffFromFile.js";
32
39
  import { ScrollSyncManager } from "../managers/ScrollSyncManager.js";
33
- import { isDefaultRenderRange } from "../utils/isDefaultRenderRange.js";
40
+ import { recomputeDiffRenderLineCounts } from "../utils/updateDiffHunks.js";
41
+ import { captureExpansionAnchors, finishEditSessionForDiff, rebuildExpansionFromAnchors } from "../utils/editSessionHunks.js";
34
42
  import { isDiffPlainText } from "../utils/isDiffPlainText.js";
35
43
  import { DiffHunksRenderer } from "../renderers/DiffHunksRenderer.js";
36
44
  import { areDiffLineAnnotationsEqual } from "../utils/areDiffLineAnnotationsEqual.js";
@@ -41,6 +49,28 @@ import { toHtml } from "hast-util-to-html";
41
49
  function canHydrateDiff(fileDiff) {
42
50
  return fileDiff.isPartial && (fileDiff.type === "change" || fileDiff.type === "rename-changed" || fileDiff.type === "rename-pure");
43
51
  }
52
+ function createEditSessionDiff(fileDiff) {
53
+ const editSessionDiff = { ...fileDiff };
54
+ delete editSessionDiff.cacheKey;
55
+ return editSessionDiff;
56
+ }
57
+ function shouldResetUndoState(prevDiff, nextDiff) {
58
+ if (prevDiff.isPartial || nextDiff.isPartial) throw new Error("FileDiff.shouldResetEditorForExternalDiff: diffs must be fully hydrated");
59
+ const prevLanguage = prevDiff.lang ?? getFiletypeFromFileName(prevDiff.name);
60
+ const nextLanguage = nextDiff.lang ?? getFiletypeFromFileName(nextDiff.name);
61
+ const prevHasOldFile = prevDiff.type !== "new";
62
+ const nextHasOldFile = nextDiff.type !== "new";
63
+ if (prevDiff.name !== nextDiff.name || prevLanguage !== nextLanguage || prevHasOldFile !== nextHasOldFile || prevDiff.deletionLines.length !== nextDiff.deletionLines.length) return true;
64
+ return prevDiff.deletionLines.some((line, index) => line !== nextDiff.deletionLines[index]);
65
+ }
66
+ function areLinesEqual(first, second) {
67
+ return first.length === second.length && first.every((line, index) => line === second[index]);
68
+ }
69
+ function canRestoreDiffSession(snapshot, externalDiff) {
70
+ const { oldFile } = snapshot;
71
+ if (oldFile == null) return externalDiff.type === "new";
72
+ return externalDiff.type !== "new" && oldFile.name === (externalDiff.prevName ?? externalDiff.name) && areLinesEqual(oldFile.lines, externalDiff.deletionLines);
73
+ }
44
74
  let instanceId = -1;
45
75
  var FileDiff = class {
46
76
  options;
@@ -81,11 +111,16 @@ var FileDiff = class {
81
111
  deletionFile;
82
112
  additionFile;
83
113
  fileDiff;
114
+ editSession;
115
+ renderedDiff;
84
116
  renderRange;
85
117
  pendingFiles;
86
118
  appliedPreAttributes;
87
- lastRenderedHeaderHTML;
88
- cachedHeaderHTML;
119
+ headerCache = {
120
+ lastRenderedHTML: void 0,
121
+ html: void 0,
122
+ fileDiff: void 0
123
+ };
89
124
  lastRowCount;
90
125
  mounted = false;
91
126
  enabled = true;
@@ -108,14 +143,22 @@ var FileDiff = class {
108
143
  handleHighlightRender = () => {
109
144
  this.rerender();
110
145
  };
146
+ getTheme() {
147
+ return this.workerManager?.getDiffRenderOptions().theme ?? this.options.theme ?? DEFAULT_THEMES;
148
+ }
111
149
  getHunksRendererOptions(options) {
112
150
  return getDiffHunksRendererOptions(options);
113
151
  }
114
152
  createHunksRenderer(options) {
115
- return new DiffHunksRenderer(this.getHunksRendererOptions(options), this.handleHighlightRender, this.workerManager);
153
+ return new DiffHunksRenderer(this.getHunksRendererOptions(options), this.getAnnotationSlotName, this.handleHighlightRender, this.workerManager);
116
154
  }
117
155
  getLineIndex = (lineNumber, side = "additions") => {
118
- const fileDiff = this.fileDiffCache;
156
+ return this.getLineIndexForDiff(this.getDiffForLineIndex(), lineNumber, side);
157
+ };
158
+ getDiffForLineIndex() {
159
+ return this.getRenderedDiff();
160
+ }
161
+ getLineIndexForDiff(fileDiff, lineNumber, side) {
119
162
  if (fileDiff == null) return;
120
163
  const lastHunk = fileDiff.hunks.at(-1);
121
164
  let targetUnifiedIndex;
@@ -168,11 +211,11 @@ var FileDiff = class {
168
211
  }
169
212
  if (targetUnifiedIndex == null || targetSplitIndex == null) return;
170
213
  return [targetUnifiedIndex, targetSplitIndex];
171
- };
214
+ }
172
215
  setOptions(options) {
173
216
  if (options == null) return;
174
217
  this.options = options;
175
- this.cachedHeaderHTML = void 0;
218
+ this.clearReusableHeader();
176
219
  this.hunksRenderer.setOptions(this.getHunksRendererOptions(options));
177
220
  this.syncInteractionOptions();
178
221
  }
@@ -198,13 +241,39 @@ var FileDiff = class {
198
241
  return true;
199
242
  }
200
243
  hasThemeChanged() {
201
- return this.appliedThemeCSS != null && !areThemesEqual(this.appliedThemeCSS.theme, this.options.theme ?? DEFAULT_THEMES);
244
+ return this.appliedThemeCSS != null && !areThemesEqual(this.appliedThemeCSS.theme, this.getTheme());
202
245
  }
203
246
  getHoveredLine = () => {
204
247
  return this.interactionManager.getHoveredLine();
205
248
  };
249
+ getAnnotationSlotName = (annotation) => {
250
+ return resolveEditSessionSlotName(this.editSession?.annotations, annotation, getLineAnnotationName);
251
+ };
252
+ getLatestAnnotations() {
253
+ return this.editSession?.annotations?.current ?? this.lineAnnotations;
254
+ }
255
+ isNewAnnotations(lineAnnotations) {
256
+ const session = this.editSession?.annotations;
257
+ if (lineAnnotations === this.lineAnnotations) return false;
258
+ return session == null || lineAnnotations !== session.provided && lineAnnotations !== session.current;
259
+ }
206
260
  setLineAnnotations(lineAnnotations) {
261
+ const sessionAnnotations = this.editSession?.annotations;
262
+ if (sessionAnnotations == null) {
263
+ this.lineAnnotations = lineAnnotations;
264
+ return;
265
+ }
266
+ if (!this.isNewAnnotations(lineAnnotations)) return;
207
267
  this.lineAnnotations = lineAnnotations;
268
+ writeEditSessionAnnotations(sessionAnnotations, lineAnnotations, getLineAnnotationName);
269
+ }
270
+ syncEditSessionAnnotationsFromEditor(lineAnnotations) {
271
+ const session = this.editSession?.annotations;
272
+ if (session == null || lineAnnotations === session.current) return false;
273
+ session.current = lineAnnotations;
274
+ this.hunksRenderer.setLineAnnotations(lineAnnotations);
275
+ this.renderAnnotations();
276
+ return true;
208
277
  }
209
278
  canPartiallyRender(forceRender, annotationsChanged, didContentChange) {
210
279
  if (forceRender || annotationsChanged || didContentChange || typeof this.options.hunkSeparators === "function") return false;
@@ -246,7 +315,7 @@ var FileDiff = class {
246
315
  }
247
316
  shouldApplyColumnVariables(overflow) {
248
317
  if (typeof this.options.hunkSeparators === "function") return true;
249
- return overflow === "scroll" && (this.lineAnnotations.length > 0 || this.pre?.hasAttribute("data-has-merge-conflict") === true);
318
+ return overflow === "scroll" && (this.getLatestAnnotations().length > 0 || this.pre?.hasAttribute("data-has-merge-conflict") === true);
250
319
  }
251
320
  getCodeScrollLeft() {
252
321
  return Math.max(this.codeUnified?.scrollLeft ?? 0, this.codeDeletions?.scrollLeft ?? 0, this.codeAdditions?.scrollLeft ?? 0);
@@ -263,17 +332,18 @@ var FileDiff = class {
263
332
  };
264
333
  }
265
334
  cleanUp(recycle = false) {
335
+ const { editor } = this;
266
336
  dequeueRender(this.handleEditSessionRender);
267
337
  this.emitPostRender(true);
268
- this.editor?.cleanUp(recycle);
269
- this.editor = void 0;
338
+ editor?.cleanUp(recycle ? "recycle" : "discard");
339
+ if (!recycle) this.editor = void 0;
270
340
  this.resizeManager.cleanUp();
271
341
  this.interactionManager.cleanUp();
272
342
  this.scrollSyncManager.cleanUp();
273
343
  this.managersDirty = false;
274
344
  this.workerManager?.unsubscribeToThemeChanges(this);
275
345
  this.renderRange = void 0;
276
- this.pendingFiles = void 0;
346
+ if (!recycle) this.pendingFiles = void 0;
277
347
  if (!this.isContainerManaged) this.fileContainer?.remove();
278
348
  this.fileContainer = void 0;
279
349
  this.mounted = false;
@@ -296,8 +366,8 @@ var FileDiff = class {
296
366
  this.headerCustom = void 0;
297
367
  this.placeHolder?.remove();
298
368
  this.placeHolder = void 0;
299
- this.lastRenderedHeaderHTML = void 0;
300
- if (!recycle) this.cachedHeaderHTML = void 0;
369
+ this.headerCache.lastRenderedHTML = void 0;
370
+ if (!recycle) this.clearReusableHeader();
301
371
  this.errorWrapper?.remove();
302
372
  this.errorWrapper = void 0;
303
373
  this.spriteSVG = void 0;
@@ -312,6 +382,8 @@ var FileDiff = class {
312
382
  this.hunksRenderer.cleanUp();
313
383
  this.workerManager = void 0;
314
384
  this.fileDiff = void 0;
385
+ this.editSession = void 0;
386
+ this.renderedDiff = void 0;
315
387
  this.deletionFile = void 0;
316
388
  this.additionFile = void 0;
317
389
  }
@@ -335,7 +407,8 @@ var FileDiff = class {
335
407
  const oldFile = fileInput?.oldFile;
336
408
  const newFile = fileInput?.newFile;
337
409
  this.hydrateElements(fileContainer, prerenderedHTML);
338
- if (shouldRenderCode(this.pre, hasDiffContent({
410
+ const forceEditorRender = this.editor != null;
411
+ if (forceEditorRender || shouldRenderCode(this.pre, hasDiffContent({
339
412
  fileDiff,
340
413
  oldFile,
341
414
  newFile
@@ -348,6 +421,7 @@ var FileDiff = class {
348
421
  fileContainer,
349
422
  lineAnnotations,
350
423
  fileDiff,
424
+ forceRender: forceEditorRender || fileInputProps.forceRender,
351
425
  preventEmit: true
352
426
  });
353
427
  else this.hydrationSetup({
@@ -405,6 +479,7 @@ var FileDiff = class {
405
479
  if (this.pre == null) return;
406
480
  this.syncInteractionOptions();
407
481
  this.hunksRenderer.hydrate(this.fileDiff);
482
+ this.renderedDiff = this.fileDiff;
408
483
  this.renderAnnotations();
409
484
  this.renderGutterUtility();
410
485
  this.injectUnsafeCSS();
@@ -433,10 +508,15 @@ var FileDiff = class {
433
508
  loadFilesIfNecessary() {
434
509
  const { fileDiff, options: { loadDiffFiles } } = this;
435
510
  if (fileDiff == null || loadDiffFiles == null || !canHydrateDiff(fileDiff) || this.pendingFiles?.fileDiff === fileDiff) return;
436
- this.pendingFiles = {
511
+ const promise = this.loadFilesForDiff(fileDiff, loadDiffFiles);
512
+ const pendingFiles = this.pendingFiles = {
437
513
  fileDiff,
438
- promise: this.loadFilesForDiff(fileDiff, loadDiffFiles)
514
+ promise
515
+ };
516
+ const clearPendingFiles = () => {
517
+ if (this.pendingFiles === pendingFiles) this.pendingFiles = void 0;
439
518
  };
519
+ pendingFiles.promise = promise.finally(clearPendingFiles);
440
520
  }
441
521
  async loadFilesForDiff(fileDiff, loadDiffFiles) {
442
522
  try {
@@ -446,18 +526,74 @@ var FileDiff = class {
446
526
  } catch (error) {
447
527
  if (this.options.disableErrorHandling === true) throw error;
448
528
  console.error(error);
449
- } finally {
450
- if (this.pendingFiles?.fileDiff === fileDiff) this.pendingFiles = void 0;
451
529
  }
452
530
  }
453
531
  async handleFilesLoaded(expectedDiff, files) {
454
532
  if (this.fileDiff !== expectedDiff || !expectedDiff.isPartial) return;
455
533
  hydratePartialDiff("merge", expectedDiff, files);
456
534
  this.setHydratedState(files);
535
+ if (this.startHydratedEditSession(expectedDiff)) {
536
+ this.rerender();
537
+ return;
538
+ }
457
539
  await awaitWithTimeout(() => this.primeHighlightCache(expectedDiff));
458
540
  if (!this.enabled || this.fileDiff !== expectedDiff) return;
459
541
  this.rerender();
460
542
  }
543
+ startHydratedEditSession(expectedDiff) {
544
+ if (expectedDiff.isPartial) throw new Error("FileDiff.startHydratedEditSession: diffs cannot be partial for editing");
545
+ if (this.fileDiff !== expectedDiff) return false;
546
+ const { editor } = this;
547
+ if (this.editSession?.outgoingDiff != null) {
548
+ this.installEditSession(expectedDiff);
549
+ return true;
550
+ }
551
+ if (editor == null || this.editSession != null) return false;
552
+ this.installEditSession(expectedDiff, editor.__getDocumentContents(getAdditionFile(expectedDiff)), editor.__getDocumentSessionState());
553
+ return true;
554
+ }
555
+ updateExternalDiff(incomingExternalDiff, lineAnnotations) {
556
+ if (areDiffTargetsEqual(this.fileDiff, incomingExternalDiff)) return false;
557
+ const outgoingDiff = this.editSession?.outgoingDiff ?? this.editSession?.diff;
558
+ this.fileDiff = incomingExternalDiff;
559
+ if (outgoingDiff != null) {
560
+ if (incomingExternalDiff.isPartial) this.loadFilesIfNecessary();
561
+ else this.installEditSession(incomingExternalDiff);
562
+ if (this.editSession != null) this.editSession.outgoingDiff = outgoingDiff;
563
+ } else if (this.editor != null) if (incomingExternalDiff.isPartial) this.loadFilesIfNecessary();
564
+ else this.installEditSession(incomingExternalDiff, this.editor.__getDocumentContents(getAdditionFile(incomingExternalDiff)), this.editor.__getDocumentSessionState());
565
+ if (this.editSession?.annotations != null && lineAnnotations != null) {
566
+ this.lineAnnotations = lineAnnotations;
567
+ this.editSession.annotations = adoptEditSessionAnnotations(lineAnnotations, getLineAnnotationName, this.editSession.annotations);
568
+ }
569
+ return true;
570
+ }
571
+ installEditSession(externalDiff, retainedDocument, retainedSession) {
572
+ const externalContents = externalDiff.additionLines.join("");
573
+ const retainedLines = retainedDocument != null ? splitFileContents(retainedDocument.contents) : void 0;
574
+ const restoreRetainedSession = retainedSession != null && canRestoreDiffSession(retainedSession, externalDiff);
575
+ if (retainedSession != null && !restoreRetainedSession) throw new Error("FileDiff: retained session cannot resume against a different old file");
576
+ if (retainedDocument != null && retainedDocument.contents !== externalContents && !restoreRetainedSession) throw new Error("FileDiff: retained edits are missing their diff session state");
577
+ const usesExternalDocument = retainedDocument == null || retainedDocument.name === externalDiff.name && retainedDocument.lang === externalDiff.lang && retainedDocument.contents === externalContents;
578
+ const sessionDiff = createEditSessionDiff(externalDiff);
579
+ if (retainedDocument != null && retainedLines != null && !usesExternalDocument) {
580
+ sessionDiff.name = retainedDocument.name;
581
+ sessionDiff.lang = retainedDocument.lang;
582
+ }
583
+ if (restoreRetainedSession && retainedSession != null && retainedLines != null) {
584
+ sessionDiff.additionLines = retainedLines;
585
+ sessionDiff.type = retainedSession.type;
586
+ sessionDiff.hunks = retainedSession.hunks;
587
+ sessionDiff.editSessionDirty = true;
588
+ recomputeDiffRenderLineCounts(sessionDiff);
589
+ }
590
+ this.editSession = {
591
+ diff: sessionDiff,
592
+ annotations: this.editSession?.annotations ?? adoptEditSessionAnnotations(this.lineAnnotations, getLineAnnotationName),
593
+ outgoingDiff: this.editSession?.outgoingDiff
594
+ };
595
+ this.hunksRenderer.beginEditSession(sessionDiff, usesExternalDocument && !restoreRetainedSession ? externalDiff : void 0);
596
+ }
461
597
  setHydratedState(files) {
462
598
  this.deletionFile = files.oldFile;
463
599
  this.additionFile = files.newFile;
@@ -465,20 +601,23 @@ var FileDiff = class {
465
601
  this.hunksRenderer.clearRenderCache();
466
602
  }
467
603
  render({ fileDiff, deferManagers = false, forceRender = false, preventEmit = false, lineAnnotations, fileContainer, containerWrapper, renderRange, ...fileInputProps }) {
604
+ if (!this.enabled) throw new Error("FileDiff.render: attempting to call render after cleaned up");
468
605
  const fileInput = getDiffFileInput(fileInputProps, "FileDiff.render");
469
606
  const oldFile = fileInput?.oldFile;
470
607
  const newFile = fileInput?.newFile;
471
- if (!this.enabled) throw new Error("FileDiff.render: attempting to call render after cleaned up");
472
- if (fileDiff != null && fileDiff.cacheKey === void 0) fileDiff.cacheKey = fileDiff.prevName != null ? fileDiff.prevName + ":" + fileDiff.name : fileDiff.name;
473
608
  this.editor?.__postponeBgTokenizeToNextFrame();
474
609
  const { collapsed = false, themeType = "system", expandUnchanged = false } = this.options;
475
610
  const nextRenderRange = collapsed ? void 0 : renderRange;
476
611
  const themeChanged = this.hasThemeChanged();
477
612
  const hasFileInput = fileInput != null;
478
613
  const filesDidChange = hasFileInput && (!areOptionalFilesEqual(oldFile, this.deletionFile) || !areOptionalFilesEqual(newFile, this.additionFile));
479
- let diffDidChange = fileDiff != null && fileDiff !== this.fileDiff;
480
- const annotationsChanged = lineAnnotations != null && (lineAnnotations.length > 0 || this.lineAnnotations.length > 0) ? lineAnnotations !== this.lineAnnotations : false;
481
- if (!collapsed && areRenderRangesEqual(nextRenderRange, this.renderRange) && !forceRender && !annotationsChanged && !themeChanged && (fileDiff != null && fileDiff === this.fileDiff || fileDiff == null && !filesDidChange)) return this.applyCachedThemeState(themeType);
614
+ let diffDidChange = fileDiff != null && !areDiffTargetsEqual(fileDiff, this.fileDiff);
615
+ const annotationsChanged = lineAnnotations != null && (lineAnnotations.length > 0 || this.getLatestAnnotations().length > 0) ? this.isNewAnnotations(lineAnnotations) : false;
616
+ if (!collapsed && areRenderRangesEqual(nextRenderRange, this.renderRange) && !forceRender && !annotationsChanged && !themeChanged && (fileDiff != null && !diffDidChange || fileDiff == null && !filesDidChange)) {
617
+ const rendered = this.applyCachedThemeState(themeType);
618
+ if (rendered) this.finalizeRender();
619
+ return rendered;
620
+ }
482
621
  let nextParsedFileDiff;
483
622
  if (fileDiff == null && hasFileInput && (filesDidChange || this.fileDiff == null)) nextParsedFileDiff = parseDiffFromFile(fileInput.oldFile, fileInput.newFile, this.options.parseDiffOptions);
484
623
  const { renderRange: previousRenderRange } = this;
@@ -490,28 +629,29 @@ var FileDiff = class {
490
629
  this.deletionFile = void 0;
491
630
  this.additionFile = void 0;
492
631
  }
493
- if (fileDiff != null) this.fileDiff = fileDiff;
632
+ if (fileDiff != null && diffDidChange) this.updateExternalDiff(fileDiff, lineAnnotations);
494
633
  else if (nextParsedFileDiff != null) {
495
634
  diffDidChange = true;
496
- this.fileDiff = nextParsedFileDiff;
635
+ this.updateExternalDiff(nextParsedFileDiff, lineAnnotations);
497
636
  }
498
- if (diffDidChange) this.cachedHeaderHTML = void 0;
637
+ if (diffDidChange) this.clearReusableHeader();
499
638
  if (lineAnnotations != null) this.setLineAnnotations(lineAnnotations);
500
- if (this.fileDiff == null) return false;
501
- if (this.fileDiff.editSessionDirty === true && this.shouldSelfHealEditSession()) {
502
- finishEditSessionForDiff(this.fileDiff, this.options.parseDiffOptions);
639
+ const latestDiff = this.getLatestDiff();
640
+ if (latestDiff == null) return false;
641
+ if (latestDiff.editSessionDirty === true && this.shouldSelfHealEditSession()) {
642
+ finishEditSessionForDiff(latestDiff, this.options.parseDiffOptions);
503
643
  this.hunksRenderer.refreshHighlightedResult();
504
644
  }
505
645
  if (expandUnchanged) this.loadFilesIfNecessary();
506
646
  this.hunksRenderer.setOptions(this.getHunksRendererOptions(this.options));
507
647
  this.syncInteractionOptions();
508
- this.hunksRenderer.setLineAnnotations(this.lineAnnotations);
648
+ this.hunksRenderer.setLineAnnotations(this.getLatestAnnotations());
509
649
  const { disableErrorHandling = false, disableFileHeader = false } = this.options;
510
650
  if (disableFileHeader) {
511
651
  if (this.headerElement != null) {
512
652
  this.headerElement.remove();
513
653
  this.headerElement = void 0;
514
- this.lastRenderedHeaderHTML = void 0;
654
+ this.headerCache.lastRenderedHTML = void 0;
515
655
  }
516
656
  this.clearHeaderSlots();
517
657
  }
@@ -521,38 +661,42 @@ var FileDiff = class {
521
661
  this.removeRenderedCode();
522
662
  this.clearAuxiliaryNodes();
523
663
  try {
524
- const hunksResult = this.hunksRenderer.renderDiff(this.fileDiff, EMPTY_RENDER_RANGE);
664
+ const hunksResult = this.hunksRenderer.renderDiff(latestDiff, EMPTY_RENDER_RANGE);
525
665
  if (hunksResult != null) this.applyThemeState(fileContainer, hunksResult.themeStyles, themeType, hunksResult.baseThemeType);
526
- if (hunksResult?.headerElement != null) this.applyHeaderToDOM(hunksResult.headerElement, fileContainer);
666
+ if (hunksResult?.headerElement != null) this.applyHeaderToDOM(hunksResult.headerElement, fileContainer, hunksResult.fileDiff);
527
667
  this.renderSeparators([]);
668
+ this.renderedDiff = hunksResult?.fileDiff ?? latestDiff;
528
669
  this.injectUnsafeCSS();
529
670
  } catch (error) {
530
671
  if (disableErrorHandling) throw error;
531
672
  console.error(error);
532
673
  if (error instanceof Error) this.applyErrorToDOM(error, fileContainer);
533
674
  }
675
+ this.finalizeRender();
534
676
  if (!preventEmit) this.emitPostRender();
535
677
  return true;
536
678
  }
537
679
  try {
538
680
  const pre = this.getOrCreatePreNode(fileContainer);
539
- if (!(this.canPartiallyRender(forceRender, annotationsChanged, filesDidChange || diffDidChange || themeChanged) && this.applyPartialRender({
681
+ if (!(this.canPartiallyRender(forceRender, annotationsChanged, filesDidChange || diffDidChange || themeChanged || !areDiffTargetsEqual(this.renderedDiff, latestDiff)) && this.applyPartialRender({
682
+ fileDiff: latestDiff,
540
683
  previousRenderRange,
541
684
  renderRange: nextRenderRange
542
685
  }))) {
543
- const hunksResult = this.hunksRenderer.renderDiff(this.fileDiff, nextRenderRange);
686
+ const hunksResult = this.hunksRenderer.renderDiff(latestDiff, nextRenderRange);
544
687
  if (hunksResult == null) {
545
- if (this.workerManager?.isInitialized() === false) this.workerManager.initialize().then(() => this.rerender());
688
+ if (this.workerManager?.isInitialized() === false && this.workerManager.isWorkingPool()) this.workerManager.initialize().catch(() => {}).then(() => this.rerender());
546
689
  return false;
547
690
  }
548
691
  this.applyThemeState(fileContainer, hunksResult.themeStyles, themeType, hunksResult.baseThemeType);
549
- if (hunksResult.headerElement != null) this.applyHeaderToDOM(hunksResult.headerElement, fileContainer);
692
+ if (hunksResult.headerElement != null) this.applyHeaderToDOM(hunksResult.headerElement, fileContainer, hunksResult.fileDiff);
550
693
  if (hunksResult.additionsContentAST != null || hunksResult.deletionsContentAST != null || hunksResult.unifiedContentAST != null) this.applyHunksToDOM(pre, hunksResult);
551
694
  else if (this.pre != null) {
552
695
  this.pre.remove();
553
696
  this.pre = void 0;
554
697
  }
555
698
  this.renderSeparators(hunksResult.hunkData);
699
+ this.renderedDiff = hunksResult.fileDiff;
556
700
  }
557
701
  this.applyBuffers(pre, nextRenderRange);
558
702
  this.injectUnsafeCSS();
@@ -560,6 +704,7 @@ var FileDiff = class {
560
704
  this.renderGutterUtility();
561
705
  this.managersDirty = true;
562
706
  if (!deferManagers) this.flushManagers();
707
+ this.finalizeRender();
563
708
  if (this.editor != null) this.syncRenderViewToEditor();
564
709
  } catch (error) {
565
710
  if (disableErrorHandling) throw error;
@@ -569,6 +714,7 @@ var FileDiff = class {
569
714
  if (!preventEmit) this.emitPostRender();
570
715
  return true;
571
716
  }
717
+ finalizeRender() {}
572
718
  emitPostRender(unmount = false) {
573
719
  const { fileContainer, options: { onPostRender } } = this;
574
720
  if (unmount) {
@@ -583,22 +729,49 @@ var FileDiff = class {
583
729
  this.mounted = true;
584
730
  onPostRender?.(fileContainer, this, phase);
585
731
  }
586
- get fileDiffCache() {
587
- return this.hunksRenderer.diffCache ?? this.fileDiff;
732
+ getLatestDiff(fileDiff = this.fileDiff) {
733
+ return this.editSession?.diff ?? fileDiff;
734
+ }
735
+ getRenderedDiff() {
736
+ return this.renderedDiff;
588
737
  }
589
738
  syncRenderViewToEditor() {
590
- const editor = this.editor;
591
- const fileContainer = this.fileContainer;
592
- const fileDiff = this.fileDiffCache;
593
- const lineAnnotations = this.lineAnnotations;
739
+ const { editor, fileContainer } = this;
740
+ const lineAnnotations = this.getLatestAnnotations();
594
741
  const renderRange = this.computeEditorRenderRange(this.renderRange);
595
- if (editor != null && fileContainer != null && fileDiff != null && !fileDiff.isPartial) this.hunksRenderer.initializeHighlighter().then((highlighter) => {
596
- if (!this.enabled || this.editor !== editor || this.fileContainer !== fileContainer || this.fileDiffCache !== fileDiff) return;
597
- editor.__syncRenderView(highlighter, fileContainer, fileDiff, lineAnnotations, renderRange);
742
+ const fileDiff = this.getLatestDiff();
743
+ if (editor == null || fileContainer == null || fileDiff == null || fileDiff.isPartial) return;
744
+ const sync = (highlighter) => {
745
+ if (!this.enabled || this.editor !== editor || this.fileContainer !== fileContainer || this.getLatestDiff() !== fileDiff) return;
746
+ const replacement = this.editSession?.outgoingDiff;
747
+ const externalDiff = this.fileDiff;
748
+ const externalDocument = replacement != null && externalDiff != null && replacement !== fileDiff;
749
+ const resetHistory = externalDocument ? shouldResetUndoState(replacement, externalDiff) : false;
750
+ editor.__syncRenderView({
751
+ highlighter,
752
+ fileContainer,
753
+ fileDiff,
754
+ lineAnnotations,
755
+ renderRange,
756
+ externalDocument,
757
+ resetHistory
758
+ });
759
+ };
760
+ const theme = this.getTheme();
761
+ const lang = fileDiff.lang ?? getFiletypeFromFileName(fileDiff.name);
762
+ const highlighter = getHighlighterIfLoaded({
763
+ theme,
764
+ lang
598
765
  });
766
+ if (highlighter != null) sync(highlighter);
767
+ else getSharedHighlighter({
768
+ themes: getThemes(theme),
769
+ langs: ["text", lang],
770
+ preferredHighlighter: this.workerManager?.getPreferredHighlighter() ?? this.options.preferredHighlighter
771
+ }).then(sync);
599
772
  }
600
773
  computeEditorRenderRange(renderRange) {
601
- const fileDiff = this.fileDiffCache;
774
+ const fileDiff = this.getLatestDiff();
602
775
  if (renderRange == null || fileDiff == null || isDefaultRenderRange(renderRange)) return renderRange;
603
776
  const { diffStyle = "split", expandUnchanged = false, collapsedContextThreshold = 1 } = this.options;
604
777
  let firstLineNumber;
@@ -628,37 +801,172 @@ var FileDiff = class {
628
801
  totalLines: lastLineNumber - firstLineNumber + 1
629
802
  };
630
803
  }
631
- attachEditor(editor) {
632
- if (this.type !== "file-diff") throw new Error(`FileDiff.attachEditor: cannot attach an editor to a "${this.type}" diff`);
633
- this.editor?.cleanUp();
634
- this.editor = editor;
635
- this.hunksRenderer.beginEditSession();
636
- if (this.fileDiff?.isPartial === true) this.loadFilesIfNecessary();
637
- if (this.hunksRenderer.editorRenderReady()) this.syncRenderViewToEditor();
638
- else this.rerender();
639
- return (recycle) => {
804
+ /** @internal The editor applied or edited past the pending external replacement. */
805
+ __acknowledgeDocumentUpdate() {
806
+ if (this.editSession != null) this.editSession.outgoingDiff = void 0;
807
+ }
808
+ /** @internal Settle annotations locally. */
809
+ __acceptEditorChange(event) {
810
+ const { lineAnnotations } = event;
811
+ if (lineAnnotations != null) this.syncEditSessionAnnotationsFromEditor(lineAnnotations);
812
+ }
813
+ emitEditChange(event) {
814
+ const { onEditChange } = this.options;
815
+ onEditChange?.(event);
816
+ }
817
+ /**
818
+ * @internal Capture the current diff session, or return `undefined` when no
819
+ * complete compatible session exists.
820
+ *
821
+ * When `clone` is true, the returned lines and hunks are copied.
822
+ */
823
+ __captureDocumentSessionState(clone = true) {
824
+ let { fileDiff, editSession: { diff: sessionDiff, outgoingDiff } = {} } = this;
825
+ if (outgoingDiff != null && fileDiff != null) {
826
+ if (!fileDiff.isPartial && shouldResetUndoState(outgoingDiff, fileDiff)) return;
827
+ sessionDiff = outgoingDiff;
828
+ }
829
+ if (sessionDiff == null || sessionDiff.isPartial) return;
830
+ return {
831
+ diffSession: {
832
+ oldFile: sessionDiff.type !== "new" ? {
833
+ name: sessionDiff.prevName ?? sessionDiff.name,
834
+ lines: clone ? [...sessionDiff.deletionLines] : sessionDiff.deletionLines
835
+ } : null,
836
+ type: sessionDiff.type,
837
+ hunks: clone ? cloneHunks(sessionDiff.hunks) : sessionDiff.hunks
838
+ },
839
+ hasChanges: sessionDiff.editSessionDirty === true
840
+ };
841
+ }
842
+ /** @internal Associate this component with its editor for a render lifecycle. */
843
+ __attachEditor(editor) {
844
+ if (this.type !== "file-diff") throw new Error(`FileDiff.__attachEditor: cannot attach an editor to a "${this.type}" diff`);
845
+ if (this.editor != null) throw new Error("FileDiff.__attachEditor: an editor is already attached");
846
+ const detach = () => {
640
847
  this.editor = void 0;
641
- if (recycle !== true) this.finishEditSession();
848
+ this.finishEditSession();
642
849
  };
850
+ try {
851
+ this.resumeEditorRendering(editor);
852
+ return detach;
853
+ } catch (error) {
854
+ detach();
855
+ throw error;
856
+ }
857
+ }
858
+ /** @internal Resume rendering for the editor already associated with this component. */
859
+ __resumeEditor(editor) {
860
+ if (this.editor !== editor) throw new Error("FileDiff.__resumeEditor: editor association changed");
861
+ this.resumeEditorRendering(editor);
862
+ }
863
+ resumeEditorRendering(editor) {
864
+ const { fileDiff: externalDiff } = this;
865
+ const pendingReplacement = this.editSession?.outgoingDiff;
866
+ if (pendingReplacement != null && externalDiff != null && !externalDiff.isPartial && this.editSession?.diff === pendingReplacement) this.installEditSession(externalDiff);
867
+ const initialExternalDiff = this.editSession == null && externalDiff != null && !externalDiff.isPartial ? externalDiff : void 0;
868
+ if (initialExternalDiff != null) this.installEditSession(initialExternalDiff, editor.__getDocumentContents(getAdditionFile(initialExternalDiff)), editor.__getDocumentSessionState());
869
+ else if (this.editSession != null) this.hunksRenderer.beginEditSession(this.editSession.diff);
870
+ this.editor = editor;
871
+ if (this.fileDiff?.isPartial === true) this.loadFilesIfNecessary();
872
+ const editSessionDiff = this.editSession?.diff;
873
+ if (this.hunksRenderer.editorRenderReady()) {
874
+ if (editSessionDiff != null && this.hunksRenderer.diffCache === editSessionDiff) this.renderedDiff = editSessionDiff;
875
+ this.syncRenderViewToEditor();
876
+ } else this.rerender();
643
877
  }
644
878
  finishEditSession() {
645
879
  this.hunksRenderer.endEditSession();
646
- this.completeEditSession();
880
+ this.finalizeEditSessionHunks();
881
+ }
882
+ /**
883
+ * @internal
884
+ *
885
+ * Ends the edit session and settles which diff this component renders.
886
+ * Requires the editor to be detached first. Does nothing when no session
887
+ * exists, so callers can invoke it again safely after it has settled.
888
+ *
889
+ * `onEditComplete` receives the completed diff, current external diff,
890
+ * complete file pair, and both annotation collections even when the final
891
+ * text is unchanged. In `install` mode, accepting installs the completed diff
892
+ * and its annotations; rejecting or having no handler restores the external
893
+ * values. `discard` mode always restores the external values. An accepted
894
+ * diff cannot reuse the replaced diff's `cacheKey`.
895
+ */
896
+ __completeEditSession(editor, mode) {
897
+ this.settleEditSession(mode === "install", editor);
898
+ }
899
+ settleEditSession(installResult, editor) {
900
+ const { editSession, fileDiff: externalDiff, lineAnnotations: externalAnnotations } = this;
901
+ if (editSession == null || externalDiff == null) return;
902
+ const { diff: editSessionDiff, annotations: editSessionAnnotations } = editSession;
903
+ if (this.editor != null) throw new Error("FileDiff.__completeEditSession: detach the editor before completing the session");
904
+ this.hunksRenderer.endEditSession();
905
+ this.finalizeEditSessionHunks();
906
+ const sessionAnnotationsCurrent = editSessionAnnotations?.current;
907
+ let acceptedDiff;
908
+ let acceptedOldFile = null;
909
+ let acceptedNewFile = null;
910
+ let failed = false;
911
+ let failure;
912
+ if (editor == null) throw new Error("FileDiff.__completeEditSession: editor is required for completion");
913
+ const completedDiff = cloneFileDiffMetadata(editSessionDiff);
914
+ const newFile = {
915
+ name: completedDiff.name,
916
+ contents: completedDiff.additionLines.join("")
917
+ };
918
+ if (completedDiff.lang != null) newFile.lang = completedDiff.lang;
919
+ const event = {
920
+ fileDiff: completedDiff,
921
+ editor,
922
+ originalFileDiff: externalDiff,
923
+ oldFile: completedDiff.type === "new" ? null : {
924
+ name: completedDiff.prevName ?? completedDiff.name,
925
+ contents: completedDiff.deletionLines.join("")
926
+ },
927
+ newFile,
928
+ lineAnnotations: sessionAnnotationsCurrent,
929
+ originalLineAnnotations: externalAnnotations
930
+ };
931
+ Object.freeze(event);
932
+ try {
933
+ editor.__emitEditComplete(event);
934
+ if (this.options.onEditComplete?.(event) === "accept") {
935
+ if (completedDiff.cacheKey != null && completedDiff.cacheKey === externalDiff.cacheKey) throw new Error("FileDiff.__completeEditSession: an accepted diff must not reuse the replaced diff cacheKey");
936
+ acceptedDiff = completedDiff;
937
+ acceptedOldFile = event.oldFile;
938
+ acceptedNewFile = event.newFile;
939
+ }
940
+ } catch (error) {
941
+ failed = true;
942
+ failure = error;
943
+ }
944
+ if (installResult && acceptedDiff != null) {
945
+ this.fileDiff = acceptedDiff;
946
+ if (this.additionFile != null) {
947
+ this.deletionFile = acceptedOldFile;
948
+ this.additionFile = acceptedNewFile;
949
+ }
950
+ if (sessionAnnotationsCurrent != null) this.lineAnnotations = sessionAnnotationsCurrent;
951
+ }
952
+ this.editSession = void 0;
953
+ if (installResult && this.fileContainer != null) this.rerender();
954
+ if (failed) throw failure;
647
955
  }
648
956
  /**
649
- * Run the genuine session-end recompute: restore recompute-shaped hunks (a
957
+ * Run the session-end recompute: restore recompute-shaped hunks (a
650
958
  * context-only region collapses away, boundaries re-derive), preserve
651
959
  * expansion state best-effort via old-side anchors, and repaint through
652
960
  * the session render path — which also invalidates virtualized layout,
653
961
  * since nothing else does at exit now that editing does not flip
654
962
  * expandUnchanged. Marker-guarded and idempotent; CodeView also calls this
655
- * when reaping a session whose detach closure was consumed by a recycle.
963
+ * when ending a session whose detach closure was consumed by a recycle.
656
964
  * Safe on a cleaned-up instance: the recompute is pure metadata work and
657
965
  * the deferred rerender is enabled-guarded. Returns true when a recompute
658
966
  * ran.
659
967
  */
660
- completeEditSession() {
661
- const fileDiff = this.fileDiffCache;
968
+ finalizeEditSessionHunks() {
969
+ const fileDiff = this.getLatestDiff();
662
970
  if (fileDiff == null || fileDiff.editSessionDirty !== true) return false;
663
971
  const { collapsedContextThreshold = 1 } = this.options;
664
972
  const anchors = captureExpansionAnchors(fileDiff, this.hunksRenderer.getExpandedHunksMap(), collapsedContextThreshold);
@@ -669,22 +977,20 @@ var FileDiff = class {
669
977
  return true;
670
978
  }
671
979
  applyDocumentChange(textDocument, newLineAnnotations) {
980
+ const editSessionDiff = this.editSession?.diff;
981
+ if (editSessionDiff == null) throw new Error("FileDiff.applyDocumentChange: requires an active edit session");
982
+ this.detachAdditionLines();
983
+ this.hunksRenderer.beginEditSession(editSessionDiff);
672
984
  this.hunksRenderer.applyDocumentChange(textDocument);
673
- const fileDiff = this.hunksRenderer.diffCache;
674
- if (fileDiff != null) {
675
- const cacheKey = this.fileDiff?.cacheKey;
676
- if (cacheKey != null && fileDiff.cacheKey == null) fileDiff.cacheKey = cacheKey;
677
- this.fileDiff = fileDiff;
678
- }
679
- if (newLineAnnotations !== void 0 && newLineAnnotations !== this.lineAnnotations) {
680
- this.setLineAnnotations(newLineAnnotations);
681
- this.hunksRenderer.setLineAnnotations(this.lineAnnotations);
682
- this.renderAnnotations();
683
- }
985
+ if (newLineAnnotations != null) this.syncEditSessionAnnotationsFromEditor(newLineAnnotations);
684
986
  this.rerender();
685
987
  this.interactionManager.setSelectionDirty();
686
988
  }
687
989
  updateRenderCache(dirtyLines, themeType, options = {}) {
990
+ const editSessionDiff = this.editSession?.diff;
991
+ if (editSessionDiff == null) throw new Error("FileDiff.updateRenderCache: requires an active edit session");
992
+ this.detachAdditionLines();
993
+ this.hunksRenderer.beginEditSession(editSessionDiff);
688
994
  const { shouldRefreshDiffsView, lineCountChangeInFlight } = options;
689
995
  if (this.hunksRenderer.updateRenderCache(dirtyLines, themeType, lineCountChangeInFlight)) {
690
996
  if (this.refreshViewTimeout != null) {
@@ -706,8 +1012,13 @@ var FileDiff = class {
706
1012
  }, 150);
707
1013
  }
708
1014
  }
1015
+ detachAdditionLines() {
1016
+ const editSessionDiff = this.editSession?.diff;
1017
+ const { fileDiff } = this;
1018
+ if (editSessionDiff != null && (editSessionDiff.additionLines === fileDiff?.additionLines || editSessionDiff.additionLines === editSessionDiff.deletionLines)) editSessionDiff.additionLines = [...editSessionDiff.additionLines];
1019
+ }
709
1020
  isLineRenderable(lineNumber) {
710
- const fileDiff = this.fileDiffCache;
1021
+ const fileDiff = this.getRenderedDiff();
711
1022
  if (fileDiff == null) return true;
712
1023
  const { expandUnchanged = false, collapsedContextThreshold = 1 } = this.options;
713
1024
  return isAdditionLineRenderable({
@@ -718,7 +1029,7 @@ var FileDiff = class {
718
1029
  });
719
1030
  }
720
1031
  getNearestRenderableLine(lineNumber, direction) {
721
- const fileDiff = this.fileDiffCache;
1032
+ const fileDiff = this.getRenderedDiff();
722
1033
  if (fileDiff == null) return lineNumber;
723
1034
  const { expandUnchanged = false, collapsedContextThreshold = 1 } = this.options;
724
1035
  return getNearestRenderableAdditionLine({
@@ -730,7 +1041,7 @@ var FileDiff = class {
730
1041
  });
731
1042
  }
732
1043
  revealLine(lineNumber) {
733
- const fileDiff = this.fileDiffCache;
1044
+ const fileDiff = this.getRenderedDiff();
734
1045
  const { expandUnchanged = false, collapsedContextThreshold = 1, expansionLineCount = 100 } = this.options;
735
1046
  if (fileDiff == null || fileDiff.isPartial || expandUnchanged) return false;
736
1047
  const expandedHunks = this.hunksRenderer.getExpandedHunksMap();
@@ -865,7 +1176,7 @@ var FileDiff = class {
865
1176
  this.hasAdoptedThemeCSS = false;
866
1177
  this.unsafeCSSStyle = void 0;
867
1178
  this.appliedUnsafeCSS = void 0;
868
- this.lastRenderedHeaderHTML = void 0;
1179
+ this.headerCache.lastRenderedHTML = void 0;
869
1180
  this.lastRowCount = void 0;
870
1181
  this.mounted = false;
871
1182
  }
@@ -909,15 +1220,17 @@ var FileDiff = class {
909
1220
  }
910
1221
  const staleAnnotations = new Map(this.annotationCache);
911
1222
  const { renderAnnotation } = this.options;
912
- if (renderAnnotation != null && this.lineAnnotations.length > 0) for (const [index, annotation] of this.lineAnnotations.entries()) {
913
- const id = `${index}-${getLineAnnotationName(annotation)}`;
1223
+ const lineAnnotations = this.getLatestAnnotations();
1224
+ if (renderAnnotation != null && lineAnnotations.length > 0) for (const [index, annotation] of lineAnnotations.entries()) {
1225
+ const name = this.getAnnotationSlotName(annotation);
1226
+ const id = `${index}-${name}`;
914
1227
  let cache = this.annotationCache.get(id);
915
1228
  if (cache == null || !areDiffLineAnnotationsEqual(annotation, cache.annotation)) {
916
1229
  cache?.element.remove();
917
1230
  const content = renderAnnotation(annotation);
918
1231
  if (content == null) continue;
919
1232
  cache = {
920
- element: createAnnotationWrapperNode(getLineAnnotationName(annotation)),
1233
+ element: createAnnotationWrapperNode(name),
921
1234
  annotation
922
1235
  };
923
1236
  cache.element.appendChild(content);
@@ -958,7 +1271,7 @@ var FileDiff = class {
958
1271
  if (containerChanged) this.emitPostRender(true);
959
1272
  this.fileContainer = nextContainer;
960
1273
  if (previousContainer != null && containerChanged) {
961
- this.lastRenderedHeaderHTML = void 0;
1274
+ this.headerCache.lastRenderedHTML = void 0;
962
1275
  this.headerElement = void 0;
963
1276
  }
964
1277
  if (parentNode != null && this.fileContainer.parentNode !== parentNode) parentNode.appendChild(this.fileContainer);
@@ -1017,14 +1330,15 @@ var FileDiff = class {
1017
1330
  else if (child.hasAttribute("data-additions")) this.codeAdditions = child;
1018
1331
  }
1019
1332
  }
1020
- applyHeaderToDOM(headerAST, container) {
1333
+ applyHeaderToDOM(headerAST, container, fileDiff) {
1021
1334
  this.cleanupErrorWrapper();
1022
1335
  this.placeHolder?.remove();
1023
1336
  this.placeHolder = void 0;
1024
- const { fileDiff } = this;
1025
- const headerHTML = this.cachedHeaderHTML ?? toHtml(headerAST);
1026
- this.cachedHeaderHTML = headerHTML;
1027
- if (headerHTML !== this.lastRenderedHeaderHTML) {
1337
+ const { headerCache: { fileDiff: cachedHeaderDiff, html: cachedHeaderHTML, lastRenderedHTML } } = this;
1338
+ const headerHTML = (fileDiff !== this.editSession?.diff && areDiffTargetsEqual(cachedHeaderDiff, fileDiff) ? cachedHeaderHTML : void 0) ?? toHtml(headerAST);
1339
+ this.headerCache.html = headerHTML;
1340
+ this.headerCache.fileDiff = fileDiff;
1341
+ if (headerHTML !== lastRenderedHTML) {
1028
1342
  const tempDiv = document.createElement("div");
1029
1343
  tempDiv.innerHTML = headerHTML;
1030
1344
  const newHeader = tempDiv.firstElementChild;
@@ -1032,9 +1346,9 @@ var FileDiff = class {
1032
1346
  if (this.headerElement != null) container.shadowRoot?.replaceChild(newHeader, this.headerElement);
1033
1347
  else container.shadowRoot?.prepend(newHeader);
1034
1348
  this.headerElement = newHeader;
1035
- this.lastRenderedHeaderHTML = headerHTML;
1349
+ this.headerCache.lastRenderedHTML = headerHTML;
1036
1350
  }
1037
- if (this.isContainerManaged || fileDiff == null) return;
1351
+ if (this.isContainerManaged) return;
1038
1352
  const { renderCustomHeader, renderHeaderPrefix, renderHeaderFilenameSuffix, renderHeaderMetadata } = this.options;
1039
1353
  if (renderCustomHeader != null) {
1040
1354
  const content = renderCustomHeader(fileDiff) ?? void 0;
@@ -1056,6 +1370,10 @@ var FileDiff = class {
1056
1370
  this.headerCustom?.remove();
1057
1371
  this.headerCustom = void 0;
1058
1372
  }
1373
+ clearReusableHeader() {
1374
+ this.headerCache.html = void 0;
1375
+ this.headerCache.fileDiff = void 0;
1376
+ }
1059
1377
  clearHeaderSlots() {
1060
1378
  this.headerPrefix?.remove();
1061
1379
  this.headerFilenameSuffix?.remove();
@@ -1107,7 +1425,7 @@ var FileDiff = class {
1107
1425
  applyThemeState(container, themeStyles, themeType, baseThemeType) {
1108
1426
  const shadowRoot = container.shadowRoot ?? container.attachShadow({ mode: "open" });
1109
1427
  const effectiveThemeType = baseThemeType ?? themeType;
1110
- const currentTheme = this.options.theme ?? DEFAULT_THEMES;
1428
+ const currentTheme = this.getTheme();
1111
1429
  const theme = typeof currentTheme === "string" ? currentTheme : { ...currentTheme };
1112
1430
  const scrollbarGutter = getMeasuredScrollbarGutter(shadowRoot);
1113
1431
  if (this.themeCSSStyle?.parentNode === shadowRoot && this.appliedThemeCSS?.themeStyles === themeStyles && this.appliedThemeCSS.themeType === effectiveThemeType && this.appliedThemeCSS.scrollbarGutter === scrollbarGutter) {
@@ -1235,7 +1553,7 @@ var FileDiff = class {
1235
1553
  else if (shouldReplace) pre.replaceChildren(...codeElements);
1236
1554
  this.lastRowCount = result.rowCount;
1237
1555
  }
1238
- applyPartialRender({ previousRenderRange, renderRange }) {
1556
+ applyPartialRender({ fileDiff, previousRenderRange, renderRange }) {
1239
1557
  const { pre, codeUnified, codeAdditions, codeDeletions, options: { diffStyle = "split" } } = this;
1240
1558
  if (pre == null || previousRenderRange == null || renderRange == null || !Number.isFinite(previousRenderRange.totalLines) || !Number.isFinite(renderRange.totalLines) || this.lastRowCount == null) return false;
1241
1559
  const codeElements = this.getCodeColumns(diffStyle, codeUnified, codeDeletions, codeAdditions);
@@ -1262,8 +1580,8 @@ var FileDiff = class {
1262
1580
  if (this.lastRowCount < trimResult) throw new Error("FileDiff.applyPartialRender: trimmed beyond DOM row count");
1263
1581
  let rowCount = this.lastRowCount - trimResult;
1264
1582
  const renderChunk = (startingLine, totalLines) => {
1265
- if (totalLines <= 0 || this.fileDiff == null) return;
1266
- return this.hunksRenderer.renderDiff(this.fileDiff, {
1583
+ if (totalLines <= 0) return;
1584
+ return this.hunksRenderer.renderDiff(fileDiff, {
1267
1585
  startingLine,
1268
1586
  totalLines,
1269
1587
  bufferBefore: 0,
@@ -1280,6 +1598,7 @@ var FileDiff = class {
1280
1598
  else if (diffStyle === "split" && Array.isArray(codeElements)) this.insertPartialHTML(diffStyle, codeElements, result, insertPosition);
1281
1599
  else throw new Error("FileDiff.applyPartialRender.applyChunk: invalid chunk application");
1282
1600
  rowCount += result.rowCount;
1601
+ this.renderedDiff = result.fileDiff;
1283
1602
  };
1284
1603
  this.cleanupErrorWrapper();
1285
1604
  applyChunk(prependResult, "afterbegin");
@@ -1302,8 +1621,9 @@ var FileDiff = class {
1302
1621
  } else throw new Error("FileDiff.insertPartialHTML: Invalid argument composition");
1303
1622
  }
1304
1623
  refreshSplitDiffView() {
1305
- if (this.options.diffStyle !== "split") return;
1306
- const hunksResult = this.hunksRenderer.renderDiff(this.fileDiff, this.renderRange);
1624
+ const fileDiff = this.getLatestDiff();
1625
+ if (this.options.diffStyle !== "split" || fileDiff == null) return;
1626
+ const hunksResult = this.hunksRenderer.renderDiff(fileDiff, this.renderRange);
1307
1627
  if (hunksResult == null) return;
1308
1628
  const columns = this.getCodeColumns("split", this.codeUnified, this.codeDeletions, this.codeAdditions);
1309
1629
  if (!Array.isArray(columns)) return;
@@ -1320,10 +1640,12 @@ var FileDiff = class {
1320
1640
  };
1321
1641
  applyLineType("deletions", columns[0]);
1322
1642
  applyLineType("additions", columns[1]);
1643
+ this.renderedDiff = hunksResult.fileDiff;
1323
1644
  }
1324
1645
  refreshUnifiedDiffView() {
1325
- if (this.options.diffStyle !== "unified") return;
1326
- const hunksResult = this.hunksRenderer.renderDiff(this.fileDiff, this.renderRange);
1646
+ const fileDiff = this.getLatestDiff();
1647
+ if (this.options.diffStyle !== "unified" || fileDiff == null) return;
1648
+ const hunksResult = this.hunksRenderer.renderDiff(fileDiff, this.renderRange);
1327
1649
  if (hunksResult == null) return;
1328
1650
  const columns = this.getCodeColumns("unified", this.codeUnified, this.codeDeletions, this.codeAdditions);
1329
1651
  if (columns == null || Array.isArray(columns)) return;
@@ -1336,6 +1658,7 @@ var FileDiff = class {
1336
1658
  this.applyRowSpan("unified", columns, hunksResult.rowCount);
1337
1659
  this.lastRowCount = hunksResult.rowCount;
1338
1660
  }
1661
+ this.renderedDiff = hunksResult.fileDiff;
1339
1662
  };
1340
1663
  if (this.shouldGuardRebuildScroll()) guardWebKitScrollDuringRebuild(this.pre, applyColumns);
1341
1664
  else applyColumns();
@@ -1626,6 +1949,13 @@ var FileDiff = class {
1626
1949
  this.errorWrapper = void 0;
1627
1950
  }
1628
1951
  };
1952
+ function getAdditionFile(fileDiff) {
1953
+ return {
1954
+ name: fileDiff.name,
1955
+ lang: fileDiff.lang,
1956
+ contents: fileDiff.additionLines.join("")
1957
+ };
1958
+ }
1629
1959
  function areOptionalFilesEqual(fileA, fileB) {
1630
1960
  if (fileA == null || fileB == null) return fileA == null && fileB == null;
1631
1961
  return areFilesEqual(fileA, fileB);