@openclaw/diffs 2026.9.5 → 2026.9.6

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 (837) hide show
  1. package/README.md +2 -1
  2. package/dist/assets/viewer-runtime.js +37 -37
  3. package/dist/index.js +42 -16
  4. package/node_modules/@pierre/diffs/dist/components/CodeView.d.ts +4 -4
  5. package/node_modules/@pierre/diffs/dist/components/CodeView.d.ts.map +1 -1
  6. package/node_modules/@pierre/diffs/dist/components/CodeView.js +8 -6
  7. package/node_modules/@pierre/diffs/dist/components/CodeView.js.map +1 -1
  8. package/node_modules/@pierre/diffs/dist/components/File.d.ts +3 -15
  9. package/node_modules/@pierre/diffs/dist/components/File.d.ts.map +1 -1
  10. package/node_modules/@pierre/diffs/dist/components/FileDiff.d.ts +9 -37
  11. package/node_modules/@pierre/diffs/dist/components/FileDiff.d.ts.map +1 -1
  12. package/node_modules/@pierre/diffs/dist/components/FileDiff.js +15 -12
  13. package/node_modules/@pierre/diffs/dist/components/FileDiff.js.map +1 -1
  14. package/node_modules/@pierre/diffs/dist/components/FileStream.d.ts +1 -0
  15. package/node_modules/@pierre/diffs/dist/components/FileStream.d.ts.map +1 -1
  16. package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.d.ts +1 -1
  17. package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.d.ts.map +1 -1
  18. package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.js +2 -1
  19. package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.js.map +1 -1
  20. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.d.ts +2 -8
  21. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.d.ts.map +1 -1
  22. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.js +11 -9
  23. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.js.map +1 -1
  24. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.d.ts +2 -8
  25. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  26. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js +11 -9
  27. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js.map +1 -1
  28. package/node_modules/@pierre/diffs/dist/components/Virtualizer.d.ts +1 -5
  29. package/node_modules/@pierre/diffs/dist/components/Virtualizer.d.ts.map +1 -1
  30. package/node_modules/@pierre/diffs/dist/components/Virtualizer.js.map +1 -1
  31. package/node_modules/@pierre/diffs/dist/components/VirtulizerDevelopment.d.ts +0 -1
  32. package/node_modules/@pierre/diffs/dist/components/VirtulizerDevelopment.d.ts.map +1 -1
  33. package/node_modules/@pierre/diffs/dist/components/web-components.d.ts.map +1 -1
  34. package/node_modules/@pierre/diffs/dist/components/web-components.js +2 -1
  35. package/node_modules/@pierre/diffs/dist/components/web-components.js.map +1 -1
  36. package/node_modules/@pierre/diffs/dist/constants.d.ts +0 -1
  37. package/node_modules/@pierre/diffs/dist/constants.d.ts.map +1 -1
  38. package/node_modules/@pierre/diffs/dist/editor/EditStateManager.d.ts +0 -1
  39. package/node_modules/@pierre/diffs/dist/editor/EditStateManager.d.ts.map +1 -1
  40. package/node_modules/@pierre/diffs/dist/editor/EditStateManager.js.map +1 -1
  41. package/node_modules/@pierre/diffs/dist/editor/cloneRetainedDiffSessionSnapshot.d.ts +0 -1
  42. package/node_modules/@pierre/diffs/dist/editor/cloneRetainedDiffSessionSnapshot.d.ts.map +1 -1
  43. package/node_modules/@pierre/diffs/dist/editor/command.d.ts +2 -1
  44. package/node_modules/@pierre/diffs/dist/editor/command.d.ts.map +1 -1
  45. package/node_modules/@pierre/diffs/dist/editor/editPrediction.d.ts +3 -2
  46. package/node_modules/@pierre/diffs/dist/editor/editPrediction.d.ts.map +1 -1
  47. package/node_modules/@pierre/diffs/dist/editor/editPrediction.js +11 -11
  48. package/node_modules/@pierre/diffs/dist/editor/editPrediction.js.map +1 -1
  49. package/node_modules/@pierre/diffs/dist/editor/editStack.d.ts +0 -1
  50. package/node_modules/@pierre/diffs/dist/editor/editStack.d.ts.map +1 -1
  51. package/node_modules/@pierre/diffs/dist/editor/editStack.js.map +1 -1
  52. package/node_modules/@pierre/diffs/dist/editor/editor.d.ts +1 -5
  53. package/node_modules/@pierre/diffs/dist/editor/editor.d.ts.map +1 -1
  54. package/node_modules/@pierre/diffs/dist/editor/editor.js +24 -19
  55. package/node_modules/@pierre/diffs/dist/editor/editor.js.map +1 -1
  56. package/node_modules/@pierre/diffs/dist/editor/editor2.js.map +1 -1
  57. package/node_modules/@pierre/diffs/dist/editor/languages.d.ts +0 -1
  58. package/node_modules/@pierre/diffs/dist/editor/languages.d.ts.map +1 -1
  59. package/node_modules/@pierre/diffs/dist/editor/languages.js +1 -1
  60. package/node_modules/@pierre/diffs/dist/editor/languages.js.map +1 -1
  61. package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.d.ts +0 -1
  62. package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.d.ts.map +1 -1
  63. package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.js +2 -1
  64. package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.js.map +1 -1
  65. package/node_modules/@pierre/diffs/dist/editor/marker.d.ts +0 -1
  66. package/node_modules/@pierre/diffs/dist/editor/marker.d.ts.map +1 -1
  67. package/node_modules/@pierre/diffs/dist/editor/marker.js +5 -3
  68. package/node_modules/@pierre/diffs/dist/editor/marker.js.map +1 -1
  69. package/node_modules/@pierre/diffs/dist/editor/matchBrackets.d.ts +0 -1
  70. package/node_modules/@pierre/diffs/dist/editor/matchBrackets.d.ts.map +1 -1
  71. package/node_modules/@pierre/diffs/dist/editor/pieceTable.d.ts +0 -1
  72. package/node_modules/@pierre/diffs/dist/editor/pieceTable.d.ts.map +1 -1
  73. package/node_modules/@pierre/diffs/dist/editor/pieceTable.js.map +1 -1
  74. package/node_modules/@pierre/diffs/dist/editor/platform.d.ts +1 -5
  75. package/node_modules/@pierre/diffs/dist/editor/platform.d.ts.map +1 -1
  76. package/node_modules/@pierre/diffs/dist/editor/platform.js.map +1 -1
  77. package/node_modules/@pierre/diffs/dist/editor/popover.d.ts +12 -12
  78. package/node_modules/@pierre/diffs/dist/editor/popover.d.ts.map +1 -1
  79. package/node_modules/@pierre/diffs/dist/editor/popover.js.map +1 -1
  80. package/node_modules/@pierre/diffs/dist/editor/searchPanel.d.ts +0 -1
  81. package/node_modules/@pierre/diffs/dist/editor/searchPanel.d.ts.map +1 -1
  82. package/node_modules/@pierre/diffs/dist/editor/searchPanel.js +16 -12
  83. package/node_modules/@pierre/diffs/dist/editor/searchPanel.js.map +1 -1
  84. package/node_modules/@pierre/diffs/dist/editor/selection.d.ts +0 -1
  85. package/node_modules/@pierre/diffs/dist/editor/selection.d.ts.map +1 -1
  86. package/node_modules/@pierre/diffs/dist/editor/selection.js.map +1 -1
  87. package/node_modules/@pierre/diffs/dist/editor/selectionAction.d.ts +0 -1
  88. package/node_modules/@pierre/diffs/dist/editor/selectionAction.d.ts.map +1 -1
  89. package/node_modules/@pierre/diffs/dist/editor/selectionAction.js.map +1 -1
  90. package/node_modules/@pierre/diffs/dist/editor/sprite.d.ts.map +1 -1
  91. package/node_modules/@pierre/diffs/dist/editor/textDocument.d.ts +0 -1
  92. package/node_modules/@pierre/diffs/dist/editor/textDocument.d.ts.map +1 -1
  93. package/node_modules/@pierre/diffs/dist/editor/textDocument.js.map +1 -1
  94. package/node_modules/@pierre/diffs/dist/editor/textDocumentChangeTransaction.d.ts +0 -1
  95. package/node_modules/@pierre/diffs/dist/editor/textDocumentChangeTransaction.d.ts.map +1 -1
  96. package/node_modules/@pierre/diffs/dist/editor/textMeasure.d.ts.map +1 -1
  97. package/node_modules/@pierre/diffs/dist/editor/textMeasure.js.map +1 -1
  98. package/node_modules/@pierre/diffs/dist/editor/tokenizer.d.ts +1 -11
  99. package/node_modules/@pierre/diffs/dist/editor/tokenizer.d.ts.map +1 -1
  100. package/node_modules/@pierre/diffs/dist/editor/tokenizer.js +8 -4
  101. package/node_modules/@pierre/diffs/dist/editor/tokenizer.js.map +1 -1
  102. package/node_modules/@pierre/diffs/dist/editor/types.d.ts +0 -1
  103. package/node_modules/@pierre/diffs/dist/editor/types.d.ts.map +1 -1
  104. package/node_modules/@pierre/diffs/dist/editor/utils.d.ts.map +1 -1
  105. package/node_modules/@pierre/diffs/dist/editor/utils.js +11 -7
  106. package/node_modules/@pierre/diffs/dist/editor/utils.js.map +1 -1
  107. package/node_modules/@pierre/diffs/dist/highlighter/languages/areLanguagesAttached.d.ts +0 -1
  108. package/node_modules/@pierre/diffs/dist/highlighter/languages/areLanguagesAttached.d.ts.map +1 -1
  109. package/node_modules/@pierre/diffs/dist/highlighter/languages/attachResolvedLanguages.d.ts +1 -0
  110. package/node_modules/@pierre/diffs/dist/highlighter/languages/attachResolvedLanguages.d.ts.map +1 -1
  111. package/node_modules/@pierre/diffs/dist/highlighter/languages/cleanUpResolvedLanguages.d.ts.map +1 -1
  112. package/node_modules/@pierre/diffs/dist/highlighter/languages/constants.d.ts +1 -1
  113. package/node_modules/@pierre/diffs/dist/highlighter/languages/constants.d.ts.map +1 -1
  114. package/node_modules/@pierre/diffs/dist/highlighter/languages/getResolvedLanguages.d.ts +1 -0
  115. package/node_modules/@pierre/diffs/dist/highlighter/languages/getResolvedLanguages.d.ts.map +1 -1
  116. package/node_modules/@pierre/diffs/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts +1 -0
  117. package/node_modules/@pierre/diffs/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts.map +1 -1
  118. package/node_modules/@pierre/diffs/dist/highlighter/languages/hasResolvedLanguages.d.ts +0 -1
  119. package/node_modules/@pierre/diffs/dist/highlighter/languages/hasResolvedLanguages.d.ts.map +1 -1
  120. package/node_modules/@pierre/diffs/dist/highlighter/languages/registerCustomLanguage.d.ts +0 -1
  121. package/node_modules/@pierre/diffs/dist/highlighter/languages/registerCustomLanguage.d.ts.map +1 -1
  122. package/node_modules/@pierre/diffs/dist/highlighter/languages/resolveLanguage.d.ts +1 -0
  123. package/node_modules/@pierre/diffs/dist/highlighter/languages/resolveLanguage.d.ts.map +1 -1
  124. package/node_modules/@pierre/diffs/dist/highlighter/languages/resolveLanguages.d.ts +1 -0
  125. package/node_modules/@pierre/diffs/dist/highlighter/languages/resolveLanguages.d.ts.map +1 -1
  126. package/node_modules/@pierre/diffs/dist/highlighter/shared_highlighter.d.ts +1 -6
  127. package/node_modules/@pierre/diffs/dist/highlighter/shared_highlighter.d.ts.map +1 -1
  128. package/node_modules/@pierre/diffs/dist/highlighter/themes/areThemesAttached.d.ts +0 -1
  129. package/node_modules/@pierre/diffs/dist/highlighter/themes/areThemesAttached.d.ts.map +1 -1
  130. package/node_modules/@pierre/diffs/dist/highlighter/themes/attachResolvedThemes.d.ts +0 -1
  131. package/node_modules/@pierre/diffs/dist/highlighter/themes/attachResolvedThemes.d.ts.map +1 -1
  132. package/node_modules/@pierre/diffs/dist/highlighter/themes/cleanUpResolvedThemes.d.ts.map +1 -1
  133. package/node_modules/@pierre/diffs/dist/highlighter/themes/constants.d.ts.map +1 -1
  134. package/node_modules/@pierre/diffs/dist/highlighter/themes/getResolvedOrResolveTheme.d.ts +0 -1
  135. package/node_modules/@pierre/diffs/dist/highlighter/themes/getResolvedOrResolveTheme.d.ts.map +1 -1
  136. package/node_modules/@pierre/diffs/dist/highlighter/themes/getResolvedThemes.d.ts +0 -1
  137. package/node_modules/@pierre/diffs/dist/highlighter/themes/getResolvedThemes.d.ts.map +1 -1
  138. package/node_modules/@pierre/diffs/dist/highlighter/themes/hasResolvedThemes.d.ts +0 -1
  139. package/node_modules/@pierre/diffs/dist/highlighter/themes/hasResolvedThemes.d.ts.map +1 -1
  140. package/node_modules/@pierre/diffs/dist/highlighter/themes/registerCustomCSSVariableTheme.d.ts.map +1 -1
  141. package/node_modules/@pierre/diffs/dist/highlighter/themes/registerCustomTheme.d.ts +0 -1
  142. package/node_modules/@pierre/diffs/dist/highlighter/themes/registerCustomTheme.d.ts.map +1 -1
  143. package/node_modules/@pierre/diffs/dist/highlighter/themes/resolveTheme.d.ts +0 -1
  144. package/node_modules/@pierre/diffs/dist/highlighter/themes/resolveTheme.d.ts.map +1 -1
  145. package/node_modules/@pierre/diffs/dist/highlighter/themes/resolveThemes.d.ts +0 -1
  146. package/node_modules/@pierre/diffs/dist/highlighter/themes/resolveThemes.d.ts.map +1 -1
  147. package/node_modules/@pierre/diffs/dist/highlighter/themes/themeResolution.d.ts +0 -1
  148. package/node_modules/@pierre/diffs/dist/highlighter/themes/themeResolution.d.ts.map +1 -1
  149. package/node_modules/@pierre/diffs/dist/highlighter/themes/themeResolver.d.ts +0 -1
  150. package/node_modules/@pierre/diffs/dist/highlighter/themes/themeResolver.d.ts.map +1 -1
  151. package/node_modules/@pierre/diffs/dist/index.d.ts +1 -0
  152. package/node_modules/@pierre/diffs/dist/managers/InteractionManager.d.ts +2 -26
  153. package/node_modules/@pierre/diffs/dist/managers/InteractionManager.d.ts.map +1 -1
  154. package/node_modules/@pierre/diffs/dist/managers/InteractionManager.js +1 -3
  155. package/node_modules/@pierre/diffs/dist/managers/InteractionManager.js.map +1 -1
  156. package/node_modules/@pierre/diffs/dist/managers/ResizeManager.d.ts +1 -4
  157. package/node_modules/@pierre/diffs/dist/managers/ResizeManager.d.ts.map +1 -1
  158. package/node_modules/@pierre/diffs/dist/managers/ScrollSyncManager.d.ts.map +1 -1
  159. package/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.d.ts.map +1 -1
  160. package/node_modules/@pierre/diffs/dist/node_modules/.pnpm/@types_hast@3.0.4/node_modules/@types/hast/index.d.ts +0 -1
  161. package/node_modules/@pierre/diffs/dist/node_modules/.pnpm/@types_hast@3.0.4/node_modules/@types/hast/index.d.ts.map +1 -1
  162. package/node_modules/@pierre/diffs/dist/node_modules/.pnpm/@types_unist@3.0.3/node_modules/@types/unist/index.d.ts.map +1 -1
  163. package/node_modules/@pierre/diffs/dist/react/CodeView.d.ts +9 -1
  164. package/node_modules/@pierre/diffs/dist/react/CodeView.d.ts.map +1 -1
  165. package/node_modules/@pierre/diffs/dist/react/CodeView.js +39 -33
  166. package/node_modules/@pierre/diffs/dist/react/CodeView.js.map +1 -1
  167. package/node_modules/@pierre/diffs/dist/react/EditContext.d.ts +2 -5
  168. package/node_modules/@pierre/diffs/dist/react/EditContext.d.ts.map +1 -1
  169. package/node_modules/@pierre/diffs/dist/react/File.d.ts +1 -23
  170. package/node_modules/@pierre/diffs/dist/react/File.d.ts.map +1 -1
  171. package/node_modules/@pierre/diffs/dist/react/File.js +13 -12
  172. package/node_modules/@pierre/diffs/dist/react/File.js.map +1 -1
  173. package/node_modules/@pierre/diffs/dist/react/FileDiff.d.ts +1 -23
  174. package/node_modules/@pierre/diffs/dist/react/FileDiff.d.ts.map +1 -1
  175. package/node_modules/@pierre/diffs/dist/react/FileDiff.js +13 -12
  176. package/node_modules/@pierre/diffs/dist/react/FileDiff.js.map +1 -1
  177. package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.d.ts +1 -24
  178. package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.d.ts.map +1 -1
  179. package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.js +13 -12
  180. package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.js.map +1 -1
  181. package/node_modules/@pierre/diffs/dist/react/PatchDiff.d.ts +1 -23
  182. package/node_modules/@pierre/diffs/dist/react/PatchDiff.d.ts.map +1 -1
  183. package/node_modules/@pierre/diffs/dist/react/PatchDiff.js +13 -12
  184. package/node_modules/@pierre/diffs/dist/react/PatchDiff.js.map +1 -1
  185. package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.d.ts +1 -18
  186. package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.d.ts.map +1 -1
  187. package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.js +15 -14
  188. package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.js.map +1 -1
  189. package/node_modules/@pierre/diffs/dist/react/Virtualizer.d.ts +1 -9
  190. package/node_modules/@pierre/diffs/dist/react/Virtualizer.d.ts.map +1 -1
  191. package/node_modules/@pierre/diffs/dist/react/Virtualizer.js.map +1 -1
  192. package/node_modules/@pierre/diffs/dist/react/WorkerPoolContext.d.ts +2 -6
  193. package/node_modules/@pierre/diffs/dist/react/WorkerPoolContext.d.ts.map +1 -1
  194. package/node_modules/@pierre/diffs/dist/react/constants.d.ts +0 -1
  195. package/node_modules/@pierre/diffs/dist/react/constants.d.ts.map +1 -1
  196. package/node_modules/@pierre/diffs/dist/react/jsx.d.ts +1 -0
  197. package/node_modules/@pierre/diffs/dist/react/jsx.d.ts.map +1 -1
  198. package/node_modules/@pierre/diffs/dist/react/types.d.ts +1 -1
  199. package/node_modules/@pierre/diffs/dist/react/types.d.ts.map +1 -1
  200. package/node_modules/@pierre/diffs/dist/react/utils/assignRef.d.ts +6 -0
  201. package/node_modules/@pierre/diffs/dist/react/utils/assignRef.d.ts.map +1 -0
  202. package/node_modules/@pierre/diffs/dist/react/utils/assignRef.js +9 -0
  203. package/node_modules/@pierre/diffs/dist/react/utils/assignRef.js.map +1 -0
  204. package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.d.ts +1 -16
  205. package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
  206. package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.js.map +1 -1
  207. package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.d.ts +1 -13
  208. package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.d.ts.map +1 -1
  209. package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.js.map +1 -1
  210. package/node_modules/@pierre/diffs/dist/react/utils/templateRender.d.ts +0 -1
  211. package/node_modules/@pierre/diffs/dist/react/utils/templateRender.d.ts.map +1 -1
  212. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.d.ts +2 -18
  213. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
  214. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.js +31 -17
  215. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.js.map +1 -1
  216. package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.d.ts +2 -16
  217. package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.d.ts.map +1 -1
  218. package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.js +8 -4
  219. package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.js.map +1 -1
  220. package/node_modules/@pierre/diffs/dist/react/utils/useStableCallback.d.ts.map +1 -1
  221. package/node_modules/@pierre/diffs/dist/react/utils/useUnresolvedFileInstance.d.ts +1 -12
  222. package/node_modules/@pierre/diffs/dist/react/utils/useUnresolvedFileInstance.d.ts.map +1 -1
  223. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.d.ts +4 -9
  224. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
  225. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js +28 -21
  226. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js.map +1 -1
  227. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.d.ts +1 -0
  228. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.d.ts.map +1 -1
  229. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js.map +1 -1
  230. package/node_modules/@pierre/diffs/dist/renderers/UnresolvedFileHunksRenderer.d.ts +3 -9
  231. package/node_modules/@pierre/diffs/dist/renderers/UnresolvedFileHunksRenderer.d.ts.map +1 -1
  232. package/node_modules/@pierre/diffs/dist/shiki-stream/stream.d.ts +0 -1
  233. package/node_modules/@pierre/diffs/dist/shiki-stream/stream.d.ts.map +1 -1
  234. package/node_modules/@pierre/diffs/dist/shiki-stream/stream.js.map +1 -1
  235. package/node_modules/@pierre/diffs/dist/shiki-stream/tokenizer.d.ts +0 -1
  236. package/node_modules/@pierre/diffs/dist/shiki-stream/tokenizer.d.ts.map +1 -1
  237. package/node_modules/@pierre/diffs/dist/shiki-stream/types.d.ts +0 -1
  238. package/node_modules/@pierre/diffs/dist/shiki-stream/types.d.ts.map +1 -1
  239. package/node_modules/@pierre/diffs/dist/sprite.d.ts.map +1 -1
  240. package/node_modules/@pierre/diffs/dist/ssr/FileDiffReact.d.ts +1 -8
  241. package/node_modules/@pierre/diffs/dist/ssr/FileDiffReact.d.ts.map +1 -1
  242. package/node_modules/@pierre/diffs/dist/ssr/FileDiffReact.js +8 -3
  243. package/node_modules/@pierre/diffs/dist/ssr/FileDiffReact.js.map +1 -1
  244. package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.d.ts +6 -34
  245. package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.d.ts.map +1 -1
  246. package/node_modules/@pierre/diffs/dist/ssr/preloadFile.d.ts +1 -6
  247. package/node_modules/@pierre/diffs/dist/ssr/preloadFile.d.ts.map +1 -1
  248. package/node_modules/@pierre/diffs/dist/ssr/preloadPatchFile.d.ts +1 -5
  249. package/node_modules/@pierre/diffs/dist/ssr/preloadPatchFile.d.ts.map +1 -1
  250. package/node_modules/@pierre/diffs/dist/ssr/renderHTML.d.ts +0 -1
  251. package/node_modules/@pierre/diffs/dist/ssr/renderHTML.d.ts.map +1 -1
  252. package/node_modules/@pierre/diffs/dist/string-import.d.ts.map +1 -1
  253. package/node_modules/@pierre/diffs/dist/style.js.map +1 -1
  254. package/node_modules/@pierre/diffs/dist/types.d.ts +0 -1
  255. package/node_modules/@pierre/diffs/dist/types.d.ts.map +1 -1
  256. package/node_modules/@pierre/diffs/dist/utils/annotationHelpers.d.ts +0 -1
  257. package/node_modules/@pierre/diffs/dist/utils/annotationHelpers.d.ts.map +1 -1
  258. package/node_modules/@pierre/diffs/dist/utils/appendItems.d.ts.map +1 -1
  259. package/node_modules/@pierre/diffs/dist/utils/applyLineTextWithNewline.d.ts.map +1 -1
  260. package/node_modules/@pierre/diffs/dist/utils/areDiffLineAnnotationsEqual.d.ts +0 -1
  261. package/node_modules/@pierre/diffs/dist/utils/areDiffLineAnnotationsEqual.d.ts.map +1 -1
  262. package/node_modules/@pierre/diffs/dist/utils/areDiffRenderOptionsEqual.d.ts +0 -1
  263. package/node_modules/@pierre/diffs/dist/utils/areDiffRenderOptionsEqual.d.ts.map +1 -1
  264. package/node_modules/@pierre/diffs/dist/utils/areDiffTargetsEqual.d.ts +0 -1
  265. package/node_modules/@pierre/diffs/dist/utils/areDiffTargetsEqual.d.ts.map +1 -1
  266. package/node_modules/@pierre/diffs/dist/utils/areFileRenderOptionsEqual.d.ts +0 -1
  267. package/node_modules/@pierre/diffs/dist/utils/areFileRenderOptionsEqual.d.ts.map +1 -1
  268. package/node_modules/@pierre/diffs/dist/utils/areFileTargetsEqual.d.ts +0 -1
  269. package/node_modules/@pierre/diffs/dist/utils/areFileTargetsEqual.d.ts.map +1 -1
  270. package/node_modules/@pierre/diffs/dist/utils/areFilesEqual.d.ts +0 -1
  271. package/node_modules/@pierre/diffs/dist/utils/areFilesEqual.d.ts.map +1 -1
  272. package/node_modules/@pierre/diffs/dist/utils/areHunkDataEqual.d.ts +0 -1
  273. package/node_modules/@pierre/diffs/dist/utils/areHunkDataEqual.d.ts.map +1 -1
  274. package/node_modules/@pierre/diffs/dist/utils/areLineAnnotationsEqual.d.ts +0 -1
  275. package/node_modules/@pierre/diffs/dist/utils/areLineAnnotationsEqual.d.ts.map +1 -1
  276. package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.d.ts +0 -1
  277. package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.d.ts.map +1 -1
  278. package/node_modules/@pierre/diffs/dist/utils/areMergeConflictActionsEqual.d.ts +0 -1
  279. package/node_modules/@pierre/diffs/dist/utils/areMergeConflictActionsEqual.d.ts.map +1 -1
  280. package/node_modules/@pierre/diffs/dist/utils/areObjectsEqual.d.ts.map +1 -1
  281. package/node_modules/@pierre/diffs/dist/utils/areOptionsEqual.d.ts +1 -0
  282. package/node_modules/@pierre/diffs/dist/utils/areOptionsEqual.d.ts.map +1 -1
  283. package/node_modules/@pierre/diffs/dist/utils/arePrePropertiesEqual.d.ts +0 -1
  284. package/node_modules/@pierre/diffs/dist/utils/arePrePropertiesEqual.d.ts.map +1 -1
  285. package/node_modules/@pierre/diffs/dist/utils/areRenderRangesEqual.d.ts +0 -1
  286. package/node_modules/@pierre/diffs/dist/utils/areRenderRangesEqual.d.ts.map +1 -1
  287. package/node_modules/@pierre/diffs/dist/utils/areSelectionPointsEqual.d.ts +0 -1
  288. package/node_modules/@pierre/diffs/dist/utils/areSelectionPointsEqual.d.ts.map +1 -1
  289. package/node_modules/@pierre/diffs/dist/utils/areSelectionsEqual.d.ts +0 -1
  290. package/node_modules/@pierre/diffs/dist/utils/areSelectionsEqual.d.ts.map +1 -1
  291. package/node_modules/@pierre/diffs/dist/utils/areThemesEqual.d.ts +0 -1
  292. package/node_modules/@pierre/diffs/dist/utils/areThemesEqual.d.ts.map +1 -1
  293. package/node_modules/@pierre/diffs/dist/utils/areVirtualWindowSpecsEqual.d.ts +0 -1
  294. package/node_modules/@pierre/diffs/dist/utils/areVirtualWindowSpecsEqual.d.ts.map +1 -1
  295. package/node_modules/@pierre/diffs/dist/utils/areWorkerStatsEqual.d.ts +1 -0
  296. package/node_modules/@pierre/diffs/dist/utils/areWorkerStatsEqual.d.ts.map +1 -1
  297. package/node_modules/@pierre/diffs/dist/utils/awaitWithTimeout.d.ts.map +1 -1
  298. package/node_modules/@pierre/diffs/dist/utils/cleanLastNewline.d.ts.map +1 -1
  299. package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.d.ts +0 -1
  300. package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.d.ts.map +1 -1
  301. package/node_modules/@pierre/diffs/dist/utils/composeCacheKey.d.ts.map +1 -1
  302. package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.d.ts +1 -11
  303. package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.d.ts.map +1 -1
  304. package/node_modules/@pierre/diffs/dist/utils/computeFileOffsets.d.ts.map +1 -1
  305. package/node_modules/@pierre/diffs/dist/utils/computeFileOffsets.js +9 -8
  306. package/node_modules/@pierre/diffs/dist/utils/computeFileOffsets.js.map +1 -1
  307. package/node_modules/@pierre/diffs/dist/utils/computeVirtualFileMetrics.d.ts +0 -1
  308. package/node_modules/@pierre/diffs/dist/utils/computeVirtualFileMetrics.d.ts.map +1 -1
  309. package/node_modules/@pierre/diffs/dist/utils/createAnnotationElement.d.ts +0 -1
  310. package/node_modules/@pierre/diffs/dist/utils/createAnnotationElement.d.ts.map +1 -1
  311. package/node_modules/@pierre/diffs/dist/utils/createAnnotationWrapperNode.d.ts.map +1 -1
  312. package/node_modules/@pierre/diffs/dist/utils/createCodeViewHeaderFooterHostElement.d.ts.map +1 -1
  313. package/node_modules/@pierre/diffs/dist/utils/createContentColumn.d.ts +0 -1
  314. package/node_modules/@pierre/diffs/dist/utils/createContentColumn.d.ts.map +1 -1
  315. package/node_modules/@pierre/diffs/dist/utils/createEmptyRowBuffer.d.ts +0 -1
  316. package/node_modules/@pierre/diffs/dist/utils/createEmptyRowBuffer.d.ts.map +1 -1
  317. package/node_modules/@pierre/diffs/dist/utils/createFileHeaderElement.d.ts +1 -6
  318. package/node_modules/@pierre/diffs/dist/utils/createFileHeaderElement.d.ts.map +1 -1
  319. package/node_modules/@pierre/diffs/dist/utils/createGutterUtilityContentNode.d.ts.map +1 -1
  320. package/node_modules/@pierre/diffs/dist/utils/createGutterUtilityElement.d.ts +0 -1
  321. package/node_modules/@pierre/diffs/dist/utils/createGutterUtilityElement.d.ts.map +1 -1
  322. package/node_modules/@pierre/diffs/dist/utils/createNoNewlineElement.d.ts +0 -1
  323. package/node_modules/@pierre/diffs/dist/utils/createNoNewlineElement.d.ts.map +1 -1
  324. package/node_modules/@pierre/diffs/dist/utils/createPreElement.d.ts +1 -11
  325. package/node_modules/@pierre/diffs/dist/utils/createPreElement.d.ts.map +1 -1
  326. package/node_modules/@pierre/diffs/dist/utils/createRowNodes.d.ts.map +1 -1
  327. package/node_modules/@pierre/diffs/dist/utils/createSeparator.d.ts +1 -10
  328. package/node_modules/@pierre/diffs/dist/utils/createSeparator.d.ts.map +1 -1
  329. package/node_modules/@pierre/diffs/dist/utils/createSeparator.js +12 -10
  330. package/node_modules/@pierre/diffs/dist/utils/createSeparator.js.map +1 -1
  331. package/node_modules/@pierre/diffs/dist/utils/createSpanNodeFromToken.d.ts +0 -1
  332. package/node_modules/@pierre/diffs/dist/utils/createSpanNodeFromToken.d.ts.map +1 -1
  333. package/node_modules/@pierre/diffs/dist/utils/createSpanNodeFromToken.js +2 -1
  334. package/node_modules/@pierre/diffs/dist/utils/createSpanNodeFromToken.js.map +1 -1
  335. package/node_modules/@pierre/diffs/dist/utils/createStyleElement.d.ts +0 -1
  336. package/node_modules/@pierre/diffs/dist/utils/createStyleElement.d.ts.map +1 -1
  337. package/node_modules/@pierre/diffs/dist/utils/createTransformerWithState.d.ts +0 -1
  338. package/node_modules/@pierre/diffs/dist/utils/createTransformerWithState.d.ts.map +1 -1
  339. package/node_modules/@pierre/diffs/dist/utils/createUnsafeCSSStyleNode.d.ts.map +1 -1
  340. package/node_modules/@pierre/diffs/dist/utils/createWindowFromScrollPosition.d.ts +1 -9
  341. package/node_modules/@pierre/diffs/dist/utils/createWindowFromScrollPosition.d.ts.map +1 -1
  342. package/node_modules/@pierre/diffs/dist/utils/cssWrappers.d.ts +0 -1
  343. package/node_modules/@pierre/diffs/dist/utils/cssWrappers.d.ts.map +1 -1
  344. package/node_modules/@pierre/diffs/dist/utils/cssWrappers.js +5 -3
  345. package/node_modules/@pierre/diffs/dist/utils/cssWrappers.js.map +1 -1
  346. package/node_modules/@pierre/diffs/dist/utils/detachString.d.ts.map +1 -1
  347. package/node_modules/@pierre/diffs/dist/utils/diffAcceptRejectHunk.d.ts +0 -1
  348. package/node_modules/@pierre/diffs/dist/utils/diffAcceptRejectHunk.d.ts.map +1 -1
  349. package/node_modules/@pierre/diffs/dist/utils/editSessionAnnotations.d.ts +0 -1
  350. package/node_modules/@pierre/diffs/dist/utils/editSessionAnnotations.d.ts.map +1 -1
  351. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.d.ts +0 -1
  352. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.d.ts.map +1 -1
  353. package/node_modules/@pierre/diffs/dist/utils/formatCSSVariablePrefix.d.ts.map +1 -1
  354. package/node_modules/@pierre/diffs/dist/utils/getDiffFileInput.d.ts +1 -5
  355. package/node_modules/@pierre/diffs/dist/utils/getDiffFileInput.d.ts.map +1 -1
  356. package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.d.ts +0 -1
  357. package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.d.ts.map +1 -1
  358. package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.d.ts +0 -1
  359. package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.d.ts.map +1 -1
  360. package/node_modules/@pierre/diffs/dist/utils/getFiletypeFromFileName.d.ts +0 -1
  361. package/node_modules/@pierre/diffs/dist/utils/getFiletypeFromFileName.d.ts.map +1 -1
  362. package/node_modules/@pierre/diffs/dist/utils/getFiletypeFromFileName.js.map +1 -1
  363. package/node_modules/@pierre/diffs/dist/utils/getHighlighterOptions.d.ts +1 -5
  364. package/node_modules/@pierre/diffs/dist/utils/getHighlighterOptions.d.ts.map +1 -1
  365. package/node_modules/@pierre/diffs/dist/utils/getHighlighterOptions.js +1 -1
  366. package/node_modules/@pierre/diffs/dist/utils/getHighlighterOptions.js.map +1 -1
  367. package/node_modules/@pierre/diffs/dist/utils/getHighlighterThemeStyles.d.ts +1 -6
  368. package/node_modules/@pierre/diffs/dist/utils/getHighlighterThemeStyles.d.ts.map +1 -1
  369. package/node_modules/@pierre/diffs/dist/utils/getHunkSeparatorSlotName.d.ts +0 -1
  370. package/node_modules/@pierre/diffs/dist/utils/getHunkSeparatorSlotName.d.ts.map +1 -1
  371. package/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.d.ts.map +1 -1
  372. package/node_modules/@pierre/diffs/dist/utils/getIconForType.d.ts +0 -1
  373. package/node_modules/@pierre/diffs/dist/utils/getIconForType.d.ts.map +1 -1
  374. package/node_modules/@pierre/diffs/dist/utils/getLineAnnotationName.d.ts +0 -1
  375. package/node_modules/@pierre/diffs/dist/utils/getLineAnnotationName.d.ts.map +1 -1
  376. package/node_modules/@pierre/diffs/dist/utils/getLineEndingType.d.ts.map +1 -1
  377. package/node_modules/@pierre/diffs/dist/utils/getLineNodes.d.ts +0 -1
  378. package/node_modules/@pierre/diffs/dist/utils/getLineNodes.d.ts.map +1 -1
  379. package/node_modules/@pierre/diffs/dist/utils/getMergeConflictActionSlotName.d.ts +1 -5
  380. package/node_modules/@pierre/diffs/dist/utils/getMergeConflictActionSlotName.d.ts.map +1 -1
  381. package/node_modules/@pierre/diffs/dist/utils/getMergeConflictLineTypes.d.ts +0 -1
  382. package/node_modules/@pierre/diffs/dist/utils/getMergeConflictLineTypes.d.ts.map +1 -1
  383. package/node_modules/@pierre/diffs/dist/utils/getOrCreateCodeNode.d.ts +1 -7
  384. package/node_modules/@pierre/diffs/dist/utils/getOrCreateCodeNode.d.ts.map +1 -1
  385. package/node_modules/@pierre/diffs/dist/utils/getSingularPatch.d.ts +0 -1
  386. package/node_modules/@pierre/diffs/dist/utils/getSingularPatch.d.ts.map +1 -1
  387. package/node_modules/@pierre/diffs/dist/utils/getThemes.d.ts +0 -1
  388. package/node_modules/@pierre/diffs/dist/utils/getThemes.d.ts.map +1 -1
  389. package/node_modules/@pierre/diffs/dist/utils/getTotalLineCountFromHunks.d.ts +0 -1
  390. package/node_modules/@pierre/diffs/dist/utils/getTotalLineCountFromHunks.d.ts.map +1 -1
  391. package/node_modules/@pierre/diffs/dist/utils/guardWebKitScrollDuringRebuild.d.ts.map +1 -1
  392. package/node_modules/@pierre/diffs/dist/utils/hast_utils.d.ts +2 -12
  393. package/node_modules/@pierre/diffs/dist/utils/hast_utils.d.ts.map +1 -1
  394. package/node_modules/@pierre/diffs/dist/utils/hostTheme.d.ts +1 -5
  395. package/node_modules/@pierre/diffs/dist/utils/hostTheme.d.ts.map +1 -1
  396. package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.d.ts +0 -1
  397. package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.d.ts.map +1 -1
  398. package/node_modules/@pierre/diffs/dist/utils/includesFileAnnotations.d.ts +0 -1
  399. package/node_modules/@pierre/diffs/dist/utils/includesFileAnnotations.d.ts.map +1 -1
  400. package/node_modules/@pierre/diffs/dist/utils/isDefaultRenderRange.d.ts +0 -1
  401. package/node_modules/@pierre/diffs/dist/utils/isDefaultRenderRange.d.ts.map +1 -1
  402. package/node_modules/@pierre/diffs/dist/utils/isDiffPlainText.d.ts +0 -1
  403. package/node_modules/@pierre/diffs/dist/utils/isDiffPlainText.d.ts.map +1 -1
  404. package/node_modules/@pierre/diffs/dist/utils/isFilePlainText.d.ts +0 -1
  405. package/node_modules/@pierre/diffs/dist/utils/isFilePlainText.d.ts.map +1 -1
  406. package/node_modules/@pierre/diffs/dist/utils/isGutterUtilityPath.d.ts.map +1 -1
  407. package/node_modules/@pierre/diffs/dist/utils/isStyleNode.d.ts.map +1 -1
  408. package/node_modules/@pierre/diffs/dist/utils/isWorkerContext.d.ts.map +1 -1
  409. package/node_modules/@pierre/diffs/dist/utils/iterateOverDiff.d.ts +1 -10
  410. package/node_modules/@pierre/diffs/dist/utils/iterateOverDiff.d.ts.map +1 -1
  411. package/node_modules/@pierre/diffs/dist/utils/iterateOverDiff.js +5 -3
  412. package/node_modules/@pierre/diffs/dist/utils/iterateOverDiff.js.map +1 -1
  413. package/node_modules/@pierre/diffs/dist/utils/lineAnnotationIdentity.d.ts +0 -1
  414. package/node_modules/@pierre/diffs/dist/utils/lineAnnotationIdentity.d.ts.map +1 -1
  415. package/node_modules/@pierre/diffs/dist/utils/normalizeDiffResolution.d.ts +0 -1
  416. package/node_modules/@pierre/diffs/dist/utils/normalizeDiffResolution.d.ts.map +1 -1
  417. package/node_modules/@pierre/diffs/dist/utils/parseDiffDecorations.d.ts +2 -13
  418. package/node_modules/@pierre/diffs/dist/utils/parseDiffDecorations.d.ts.map +1 -1
  419. package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.d.ts +0 -1
  420. package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.d.ts.map +1 -1
  421. package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js +2 -1
  422. package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js.map +1 -1
  423. package/node_modules/@pierre/diffs/dist/utils/parseLineType.d.ts +0 -1
  424. package/node_modules/@pierre/diffs/dist/utils/parseLineType.d.ts.map +1 -1
  425. package/node_modules/@pierre/diffs/dist/utils/parseMergeConflictDiffFromFile.d.ts +0 -1
  426. package/node_modules/@pierre/diffs/dist/utils/parseMergeConflictDiffFromFile.d.ts.map +1 -1
  427. package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.d.ts +0 -1
  428. package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.d.ts.map +1 -1
  429. package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js +8 -5
  430. package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js.map +1 -1
  431. package/node_modules/@pierre/diffs/dist/utils/platform.d.ts.map +1 -1
  432. package/node_modules/@pierre/diffs/dist/utils/prefersReducedMotion.d.ts.map +1 -1
  433. package/node_modules/@pierre/diffs/dist/utils/prerenderHTMLIfNecessary.d.ts.map +1 -1
  434. package/node_modules/@pierre/diffs/dist/utils/processLine.d.ts +0 -1
  435. package/node_modules/@pierre/diffs/dist/utils/processLine.d.ts.map +1 -1
  436. package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.d.ts +0 -1
  437. package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.d.ts.map +1 -1
  438. package/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.d.ts +1 -8
  439. package/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.d.ts.map +1 -1
  440. package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.d.ts +1 -11
  441. package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
  442. package/node_modules/@pierre/diffs/dist/utils/resolveConflict.d.ts +0 -1
  443. package/node_modules/@pierre/diffs/dist/utils/resolveConflict.d.ts.map +1 -1
  444. package/node_modules/@pierre/diffs/dist/utils/resolveRegion.d.ts +0 -1
  445. package/node_modules/@pierre/diffs/dist/utils/resolveRegion.d.ts.map +1 -1
  446. package/node_modules/@pierre/diffs/dist/utils/roundToDevicePixel.d.ts.map +1 -1
  447. package/node_modules/@pierre/diffs/dist/utils/scrollbarGutter.d.ts.map +1 -1
  448. package/node_modules/@pierre/diffs/dist/utils/scrollbarGutter.js +2 -1
  449. package/node_modules/@pierre/diffs/dist/utils/scrollbarGutter.js.map +1 -1
  450. package/node_modules/@pierre/diffs/dist/utils/setLanguageOverride.d.ts +0 -1
  451. package/node_modules/@pierre/diffs/dist/utils/setLanguageOverride.d.ts.map +1 -1
  452. package/node_modules/@pierre/diffs/dist/utils/setWrapperNodeProps.d.ts +1 -11
  453. package/node_modules/@pierre/diffs/dist/utils/setWrapperNodeProps.d.ts.map +1 -1
  454. package/node_modules/@pierre/diffs/dist/utils/setWrapperNodeProps.js +1 -3
  455. package/node_modules/@pierre/diffs/dist/utils/setWrapperNodeProps.js.map +1 -1
  456. package/node_modules/@pierre/diffs/dist/utils/shouldUseTokenTransformer.d.ts +0 -1
  457. package/node_modules/@pierre/diffs/dist/utils/shouldUseTokenTransformer.d.ts.map +1 -1
  458. package/node_modules/@pierre/diffs/dist/utils/splitFileContents.d.ts.map +1 -1
  459. package/node_modules/@pierre/diffs/dist/utils/trimPatchContext.d.ts.map +1 -1
  460. package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.d.ts +0 -1
  461. package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.d.ts.map +1 -1
  462. package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.d.ts +10 -55
  463. package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.d.ts.map +1 -1
  464. package/node_modules/@pierre/diffs/dist/utils/wrapTokenFragments.d.ts +0 -1
  465. package/node_modules/@pierre/diffs/dist/utils/wrapTokenFragments.d.ts.map +1 -1
  466. package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.d.ts +2 -17
  467. package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.d.ts.map +1 -1
  468. package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.js +8 -5
  469. package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.js.map +1 -1
  470. package/node_modules/@pierre/diffs/dist/worker/getOrCreateWorkerPoolSingleton.d.ts +1 -5
  471. package/node_modules/@pierre/diffs/dist/worker/getOrCreateWorkerPoolSingleton.d.ts.map +1 -1
  472. package/node_modules/@pierre/diffs/dist/worker/types.d.ts +0 -1
  473. package/node_modules/@pierre/diffs/dist/worker/types.d.ts.map +1 -1
  474. package/node_modules/@pierre/diffs/dist/worker/worker-portable.d.ts +1 -1
  475. package/node_modules/@pierre/diffs/dist/worker/worker-portable.js +113 -354
  476. package/node_modules/@pierre/diffs/dist/worker/worker-portable.js.map +1 -1
  477. package/node_modules/@pierre/diffs/dist/worker/worker.d.ts +1 -1
  478. package/node_modules/@pierre/diffs/dist/worker/worker.js +14 -11
  479. package/node_modules/@pierre/diffs/dist/worker/worker.js.map +1 -1
  480. package/node_modules/@pierre/diffs/package.json +4 -5
  481. package/node_modules/zod/README.md +2 -2
  482. package/node_modules/zod/compile.cjs +19 -0
  483. package/node_modules/zod/index.cjs +19 -0
  484. package/node_modules/zod/locales/index.cjs +19 -0
  485. package/node_modules/zod/mini/index.cjs +19 -0
  486. package/node_modules/zod/package.json +8 -7
  487. package/node_modules/zod/src/v3/helpers/errorUtil.ts +1 -1
  488. package/node_modules/zod/src/v4/classic/external.ts +2 -0
  489. package/node_modules/zod/src/v4/classic/from-json-schema.ts +248 -25
  490. package/node_modules/zod/src/v4/classic/schemas.ts +243 -168
  491. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +60 -9
  492. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +6 -0
  493. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
  494. package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +265 -0
  495. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +112 -6
  496. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +9 -0
  497. package/node_modules/zod/src/v4/classic/tests/error.test.ts +130 -1
  498. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +157 -0
  499. package/node_modules/zod/src/v4/classic/tests/iban.test.ts +81 -0
  500. package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +40 -2
  501. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +27 -7
  502. package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +88 -56
  503. package/node_modules/zod/src/v4/classic/tests/number.test.ts +39 -0
  504. package/node_modules/zod/src/v4/classic/tests/object.test.ts +56 -0
  505. package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +3 -2
  506. package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +70 -0
  507. package/node_modules/zod/src/v4/classic/tests/properties.test.ts +141 -0
  508. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +46 -1
  509. package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +19 -0
  510. package/node_modules/zod/src/v4/classic/tests/string.test.ts +95 -1
  511. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +33 -1
  512. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +234 -38
  513. package/node_modules/zod/src/v4/classic/tests/validate.test.ts +569 -0
  514. package/node_modules/zod/src/v4/core/api.ts +44 -28
  515. package/node_modules/zod/src/v4/core/checks.ts +62 -102
  516. package/node_modules/zod/src/v4/core/compile.ts +218 -93
  517. package/node_modules/zod/src/v4/core/core.ts +1 -3
  518. package/node_modules/zod/src/v4/core/doc.ts +6 -2
  519. package/node_modules/zod/src/v4/core/errors.ts +3 -6
  520. package/node_modules/zod/src/v4/core/json-schema-generator.ts +2 -2
  521. package/node_modules/zod/src/v4/core/json-schema-processors.ts +185 -81
  522. package/node_modules/zod/src/v4/core/memoizer.ts +75 -28
  523. package/node_modules/zod/src/v4/core/parse.ts +37 -16
  524. package/node_modules/zod/src/v4/core/regexes.ts +14 -4
  525. package/node_modules/zod/src/v4/core/schemas.ts +296 -132
  526. package/node_modules/zod/src/v4/core/tests/cached.test.ts +54 -0
  527. package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +35 -0
  528. package/node_modules/zod/src/v4/core/tests/compile-generative.test.ts +445 -0
  529. package/node_modules/zod/src/v4/core/tests/compile.test.ts +399 -2
  530. package/node_modules/zod/src/v4/core/tests/email-regex.test.ts +140 -0
  531. package/node_modules/zod/src/v4/core/tests/locales/tg.test.ts +85 -0
  532. package/node_modules/zod/src/v4/core/tests/polyfill-collision.test.ts +46 -0
  533. package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +118 -16
  534. package/node_modules/zod/src/v4/core/to-json-schema.ts +9 -7
  535. package/node_modules/zod/src/v4/core/util.ts +218 -147
  536. package/node_modules/zod/src/v4/core/versions.ts +2 -2
  537. package/node_modules/zod/src/v4/locales/ar.ts +2 -0
  538. package/node_modules/zod/src/v4/locales/az.ts +2 -0
  539. package/node_modules/zod/src/v4/locales/be.ts +2 -0
  540. package/node_modules/zod/src/v4/locales/bg.ts +2 -0
  541. package/node_modules/zod/src/v4/locales/bn.ts +2 -0
  542. package/node_modules/zod/src/v4/locales/ca.ts +2 -0
  543. package/node_modules/zod/src/v4/locales/ckb.ts +2 -0
  544. package/node_modules/zod/src/v4/locales/cs.ts +2 -0
  545. package/node_modules/zod/src/v4/locales/da.ts +2 -0
  546. package/node_modules/zod/src/v4/locales/de.ts +2 -0
  547. package/node_modules/zod/src/v4/locales/el.ts +2 -0
  548. package/node_modules/zod/src/v4/locales/en.ts +2 -0
  549. package/node_modules/zod/src/v4/locales/eo.ts +2 -0
  550. package/node_modules/zod/src/v4/locales/es.ts +2 -0
  551. package/node_modules/zod/src/v4/locales/fa.ts +2 -0
  552. package/node_modules/zod/src/v4/locales/fi.ts +2 -0
  553. package/node_modules/zod/src/v4/locales/fr-CA.ts +2 -0
  554. package/node_modules/zod/src/v4/locales/fr.ts +2 -0
  555. package/node_modules/zod/src/v4/locales/gu.ts +2 -0
  556. package/node_modules/zod/src/v4/locales/he.ts +2 -0
  557. package/node_modules/zod/src/v4/locales/hi.ts +2 -0
  558. package/node_modules/zod/src/v4/locales/hr.ts +2 -0
  559. package/node_modules/zod/src/v4/locales/hu.ts +2 -0
  560. package/node_modules/zod/src/v4/locales/hy.ts +2 -0
  561. package/node_modules/zod/src/v4/locales/id.ts +2 -0
  562. package/node_modules/zod/src/v4/locales/index.ts +1 -0
  563. package/node_modules/zod/src/v4/locales/is.ts +2 -0
  564. package/node_modules/zod/src/v4/locales/it.ts +2 -0
  565. package/node_modules/zod/src/v4/locales/ja.ts +2 -0
  566. package/node_modules/zod/src/v4/locales/ka.ts +2 -0
  567. package/node_modules/zod/src/v4/locales/km.ts +2 -0
  568. package/node_modules/zod/src/v4/locales/kn.ts +2 -0
  569. package/node_modules/zod/src/v4/locales/ko.ts +2 -0
  570. package/node_modules/zod/src/v4/locales/lt.ts +2 -0
  571. package/node_modules/zod/src/v4/locales/mk.ts +2 -0
  572. package/node_modules/zod/src/v4/locales/ms.ts +2 -0
  573. package/node_modules/zod/src/v4/locales/ne.ts +2 -0
  574. package/node_modules/zod/src/v4/locales/nl.ts +2 -0
  575. package/node_modules/zod/src/v4/locales/nn.ts +2 -0
  576. package/node_modules/zod/src/v4/locales/no.ts +2 -0
  577. package/node_modules/zod/src/v4/locales/ota.ts +2 -0
  578. package/node_modules/zod/src/v4/locales/pl.ts +2 -0
  579. package/node_modules/zod/src/v4/locales/ps.ts +2 -0
  580. package/node_modules/zod/src/v4/locales/pt-BR.ts +2 -0
  581. package/node_modules/zod/src/v4/locales/pt.ts +2 -0
  582. package/node_modules/zod/src/v4/locales/ro.ts +2 -0
  583. package/node_modules/zod/src/v4/locales/ru.ts +2 -0
  584. package/node_modules/zod/src/v4/locales/sk.ts +2 -0
  585. package/node_modules/zod/src/v4/locales/sl.ts +2 -0
  586. package/node_modules/zod/src/v4/locales/sv.ts +2 -0
  587. package/node_modules/zod/src/v4/locales/ta.ts +2 -0
  588. package/node_modules/zod/src/v4/locales/tg.ts +135 -0
  589. package/node_modules/zod/src/v4/locales/th.ts +2 -0
  590. package/node_modules/zod/src/v4/locales/tk.ts +2 -0
  591. package/node_modules/zod/src/v4/locales/tr.ts +2 -0
  592. package/node_modules/zod/src/v4/locales/uk.ts +2 -0
  593. package/node_modules/zod/src/v4/locales/ur.ts +2 -0
  594. package/node_modules/zod/src/v4/locales/uz.ts +2 -0
  595. package/node_modules/zod/src/v4/locales/vi.ts +2 -0
  596. package/node_modules/zod/src/v4/locales/yo.ts +2 -0
  597. package/node_modules/zod/src/v4/locales/zh-CN.ts +2 -0
  598. package/node_modules/zod/src/v4/locales/zh-TW.ts +2 -0
  599. package/node_modules/zod/src/v4/mini/external.ts +2 -0
  600. package/node_modules/zod/src/v4/mini/schemas.ts +32 -7
  601. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +1 -1
  602. package/node_modules/zod/src/v4/mini/tests/computed.test.ts +11 -17
  603. package/node_modules/zod/src/v4/mini/tests/index.test.ts +86 -0
  604. package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +16 -0
  605. package/node_modules/zod/src/v4/mini/tests/string.test.ts +23 -0
  606. package/node_modules/zod/v3/ZodError.cjs +19 -0
  607. package/node_modules/zod/v3/errors.cjs +19 -0
  608. package/node_modules/zod/v3/external.cjs +19 -0
  609. package/node_modules/zod/v3/helpers/enumUtil.cjs +19 -0
  610. package/node_modules/zod/v3/helpers/errorUtil.cjs +20 -1
  611. package/node_modules/zod/v3/helpers/errorUtil.js +1 -1
  612. package/node_modules/zod/v3/helpers/parseUtil.cjs +19 -0
  613. package/node_modules/zod/v3/helpers/partialUtil.cjs +19 -0
  614. package/node_modules/zod/v3/helpers/typeAliases.cjs +19 -0
  615. package/node_modules/zod/v3/helpers/util.cjs +19 -0
  616. package/node_modules/zod/v3/index.cjs +19 -0
  617. package/node_modules/zod/v3/standard-schema.cjs +19 -0
  618. package/node_modules/zod/v3/types.cjs +19 -0
  619. package/node_modules/zod/v4/classic/checks.cjs +19 -0
  620. package/node_modules/zod/v4/classic/coerce.cjs +19 -0
  621. package/node_modules/zod/v4/classic/compat.cjs +19 -0
  622. package/node_modules/zod/v4/classic/deep-partial.cjs +19 -0
  623. package/node_modules/zod/v4/classic/errors.cjs +19 -0
  624. package/node_modules/zod/v4/classic/external.cjs +22 -1
  625. package/node_modules/zod/v4/classic/external.d.cts +1 -1
  626. package/node_modules/zod/v4/classic/external.d.ts +1 -1
  627. package/node_modules/zod/v4/classic/external.js +1 -1
  628. package/node_modules/zod/v4/classic/from-json-schema.cjs +264 -24
  629. package/node_modules/zod/v4/classic/from-json-schema.js +245 -24
  630. package/node_modules/zod/v4/classic/in-out.cjs +19 -0
  631. package/node_modules/zod/v4/classic/index.cjs +19 -0
  632. package/node_modules/zod/v4/classic/iso.cjs +19 -0
  633. package/node_modules/zod/v4/classic/parse.cjs +19 -0
  634. package/node_modules/zod/v4/classic/schemas.cjs +100 -35
  635. package/node_modules/zod/v4/classic/schemas.d.cts +15 -1
  636. package/node_modules/zod/v4/classic/schemas.d.ts +15 -1
  637. package/node_modules/zod/v4/classic/schemas.js +77 -33
  638. package/node_modules/zod/v4/core/api.cjs +45 -22
  639. package/node_modules/zod/v4/core/api.d.cts +12 -6
  640. package/node_modules/zod/v4/core/api.d.ts +12 -6
  641. package/node_modules/zod/v4/core/api.js +25 -22
  642. package/node_modules/zod/v4/core/checks.cjs +51 -97
  643. package/node_modules/zod/v4/core/checks.d.cts +17 -1
  644. package/node_modules/zod/v4/core/checks.d.ts +17 -1
  645. package/node_modules/zod/v4/core/checks.js +31 -96
  646. package/node_modules/zod/v4/core/compile.cjs +173 -78
  647. package/node_modules/zod/v4/core/compile.d.cts +18 -4
  648. package/node_modules/zod/v4/core/compile.d.ts +18 -4
  649. package/node_modules/zod/v4/core/compile.js +154 -79
  650. package/node_modules/zod/v4/core/core.cjs +20 -1
  651. package/node_modules/zod/v4/core/core.js +1 -1
  652. package/node_modules/zod/v4/core/doc.cjs +26 -2
  653. package/node_modules/zod/v4/core/doc.js +7 -2
  654. package/node_modules/zod/v4/core/errors.cjs +21 -5
  655. package/node_modules/zod/v4/core/errors.js +2 -5
  656. package/node_modules/zod/v4/core/index.cjs +19 -0
  657. package/node_modules/zod/v4/core/json-schema-generator.cjs +20 -1
  658. package/node_modules/zod/v4/core/json-schema-generator.js +2 -2
  659. package/node_modules/zod/v4/core/json-schema-processors.cjs +188 -72
  660. package/node_modules/zod/v4/core/json-schema-processors.d.cts +16 -0
  661. package/node_modules/zod/v4/core/json-schema-processors.d.ts +16 -0
  662. package/node_modules/zod/v4/core/json-schema-processors.js +170 -74
  663. package/node_modules/zod/v4/core/json-schema.cjs +19 -0
  664. package/node_modules/zod/v4/core/memoizer.cjs +111 -23
  665. package/node_modules/zod/v4/core/memoizer.js +69 -23
  666. package/node_modules/zod/v4/core/parse.cjs +56 -16
  667. package/node_modules/zod/v4/core/parse.js +37 -16
  668. package/node_modules/zod/v4/core/regexes.cjs +31 -6
  669. package/node_modules/zod/v4/core/regexes.d.cts +3 -0
  670. package/node_modules/zod/v4/core/regexes.d.ts +3 -0
  671. package/node_modules/zod/v4/core/regexes.js +10 -4
  672. package/node_modules/zod/v4/core/registries.cjs +19 -0
  673. package/node_modules/zod/v4/core/schemas.cjs +302 -114
  674. package/node_modules/zod/v4/core/schemas.d.cts +28 -8
  675. package/node_modules/zod/v4/core/schemas.d.ts +28 -8
  676. package/node_modules/zod/v4/core/schemas.js +279 -113
  677. package/node_modules/zod/v4/core/standard-schema.cjs +19 -0
  678. package/node_modules/zod/v4/core/to-json-schema.cjs +28 -7
  679. package/node_modules/zod/v4/core/to-json-schema.d.cts +4 -3
  680. package/node_modules/zod/v4/core/to-json-schema.d.ts +4 -3
  681. package/node_modules/zod/v4/core/to-json-schema.js +7 -6
  682. package/node_modules/zod/v4/core/util.cjs +177 -143
  683. package/node_modules/zod/v4/core/util.d.cts +25 -4
  684. package/node_modules/zod/v4/core/util.d.ts +25 -4
  685. package/node_modules/zod/v4/core/util.js +156 -143
  686. package/node_modules/zod/v4/core/versions.cjs +21 -2
  687. package/node_modules/zod/v4/core/versions.d.cts +1 -1
  688. package/node_modules/zod/v4/core/versions.d.ts +1 -1
  689. package/node_modules/zod/v4/core/versions.js +2 -2
  690. package/node_modules/zod/v4/core/visit.cjs +19 -0
  691. package/node_modules/zod/v4/index.cjs +19 -0
  692. package/node_modules/zod/v4/locales/ar.cjs +2 -0
  693. package/node_modules/zod/v4/locales/ar.js +2 -0
  694. package/node_modules/zod/v4/locales/az.cjs +2 -0
  695. package/node_modules/zod/v4/locales/az.js +2 -0
  696. package/node_modules/zod/v4/locales/be.cjs +2 -0
  697. package/node_modules/zod/v4/locales/be.js +2 -0
  698. package/node_modules/zod/v4/locales/bg.cjs +2 -0
  699. package/node_modules/zod/v4/locales/bg.js +2 -0
  700. package/node_modules/zod/v4/locales/bn.cjs +2 -0
  701. package/node_modules/zod/v4/locales/bn.js +2 -0
  702. package/node_modules/zod/v4/locales/ca.cjs +2 -0
  703. package/node_modules/zod/v4/locales/ca.js +2 -0
  704. package/node_modules/zod/v4/locales/ckb.cjs +2 -0
  705. package/node_modules/zod/v4/locales/ckb.js +2 -0
  706. package/node_modules/zod/v4/locales/cs.cjs +2 -0
  707. package/node_modules/zod/v4/locales/cs.js +2 -0
  708. package/node_modules/zod/v4/locales/da.cjs +2 -0
  709. package/node_modules/zod/v4/locales/da.js +2 -0
  710. package/node_modules/zod/v4/locales/de.cjs +2 -0
  711. package/node_modules/zod/v4/locales/de.js +2 -0
  712. package/node_modules/zod/v4/locales/el.cjs +2 -0
  713. package/node_modules/zod/v4/locales/el.js +2 -0
  714. package/node_modules/zod/v4/locales/en.cjs +2 -0
  715. package/node_modules/zod/v4/locales/en.js +2 -0
  716. package/node_modules/zod/v4/locales/eo.cjs +2 -0
  717. package/node_modules/zod/v4/locales/eo.js +2 -0
  718. package/node_modules/zod/v4/locales/es.cjs +2 -0
  719. package/node_modules/zod/v4/locales/es.js +2 -0
  720. package/node_modules/zod/v4/locales/fa.cjs +2 -0
  721. package/node_modules/zod/v4/locales/fa.js +2 -0
  722. package/node_modules/zod/v4/locales/fi.cjs +2 -0
  723. package/node_modules/zod/v4/locales/fi.js +2 -0
  724. package/node_modules/zod/v4/locales/fr-CA.cjs +2 -0
  725. package/node_modules/zod/v4/locales/fr-CA.js +2 -0
  726. package/node_modules/zod/v4/locales/fr.cjs +2 -0
  727. package/node_modules/zod/v4/locales/fr.js +2 -0
  728. package/node_modules/zod/v4/locales/gu.cjs +2 -0
  729. package/node_modules/zod/v4/locales/gu.js +2 -0
  730. package/node_modules/zod/v4/locales/he.cjs +2 -0
  731. package/node_modules/zod/v4/locales/he.js +2 -0
  732. package/node_modules/zod/v4/locales/hi.cjs +2 -0
  733. package/node_modules/zod/v4/locales/hi.js +2 -0
  734. package/node_modules/zod/v4/locales/hr.cjs +2 -0
  735. package/node_modules/zod/v4/locales/hr.js +2 -0
  736. package/node_modules/zod/v4/locales/hu.cjs +2 -0
  737. package/node_modules/zod/v4/locales/hu.js +2 -0
  738. package/node_modules/zod/v4/locales/hy.cjs +2 -0
  739. package/node_modules/zod/v4/locales/hy.js +2 -0
  740. package/node_modules/zod/v4/locales/id.cjs +2 -0
  741. package/node_modules/zod/v4/locales/id.js +2 -0
  742. package/node_modules/zod/v4/locales/index.cjs +22 -1
  743. package/node_modules/zod/v4/locales/index.d.cts +1 -0
  744. package/node_modules/zod/v4/locales/index.d.ts +1 -0
  745. package/node_modules/zod/v4/locales/index.js +1 -0
  746. package/node_modules/zod/v4/locales/is.cjs +2 -0
  747. package/node_modules/zod/v4/locales/is.js +2 -0
  748. package/node_modules/zod/v4/locales/it.cjs +2 -0
  749. package/node_modules/zod/v4/locales/it.js +2 -0
  750. package/node_modules/zod/v4/locales/ja.cjs +2 -0
  751. package/node_modules/zod/v4/locales/ja.js +2 -0
  752. package/node_modules/zod/v4/locales/ka.cjs +2 -0
  753. package/node_modules/zod/v4/locales/ka.js +2 -0
  754. package/node_modules/zod/v4/locales/km.cjs +2 -0
  755. package/node_modules/zod/v4/locales/km.js +2 -0
  756. package/node_modules/zod/v4/locales/kn.cjs +2 -0
  757. package/node_modules/zod/v4/locales/kn.js +2 -0
  758. package/node_modules/zod/v4/locales/ko.cjs +2 -0
  759. package/node_modules/zod/v4/locales/ko.js +2 -0
  760. package/node_modules/zod/v4/locales/lt.cjs +2 -0
  761. package/node_modules/zod/v4/locales/lt.js +2 -0
  762. package/node_modules/zod/v4/locales/mk.cjs +2 -0
  763. package/node_modules/zod/v4/locales/mk.js +2 -0
  764. package/node_modules/zod/v4/locales/ms.cjs +2 -0
  765. package/node_modules/zod/v4/locales/ms.js +2 -0
  766. package/node_modules/zod/v4/locales/ne.cjs +2 -0
  767. package/node_modules/zod/v4/locales/ne.js +2 -0
  768. package/node_modules/zod/v4/locales/nl.cjs +2 -0
  769. package/node_modules/zod/v4/locales/nl.js +2 -0
  770. package/node_modules/zod/v4/locales/nn.cjs +2 -0
  771. package/node_modules/zod/v4/locales/nn.js +2 -0
  772. package/node_modules/zod/v4/locales/no.cjs +2 -0
  773. package/node_modules/zod/v4/locales/no.js +2 -0
  774. package/node_modules/zod/v4/locales/ota.cjs +2 -0
  775. package/node_modules/zod/v4/locales/ota.js +2 -0
  776. package/node_modules/zod/v4/locales/pl.cjs +2 -0
  777. package/node_modules/zod/v4/locales/pl.js +2 -0
  778. package/node_modules/zod/v4/locales/ps.cjs +2 -0
  779. package/node_modules/zod/v4/locales/ps.js +2 -0
  780. package/node_modules/zod/v4/locales/pt-BR.cjs +2 -0
  781. package/node_modules/zod/v4/locales/pt-BR.js +2 -0
  782. package/node_modules/zod/v4/locales/pt.cjs +2 -0
  783. package/node_modules/zod/v4/locales/pt.js +2 -0
  784. package/node_modules/zod/v4/locales/ro.cjs +2 -0
  785. package/node_modules/zod/v4/locales/ro.js +2 -0
  786. package/node_modules/zod/v4/locales/ru.cjs +2 -0
  787. package/node_modules/zod/v4/locales/ru.js +2 -0
  788. package/node_modules/zod/v4/locales/sk.cjs +2 -0
  789. package/node_modules/zod/v4/locales/sk.js +2 -0
  790. package/node_modules/zod/v4/locales/sl.cjs +2 -0
  791. package/node_modules/zod/v4/locales/sl.js +2 -0
  792. package/node_modules/zod/v4/locales/sv.cjs +2 -0
  793. package/node_modules/zod/v4/locales/sv.js +2 -0
  794. package/node_modules/zod/v4/locales/ta.cjs +2 -0
  795. package/node_modules/zod/v4/locales/ta.js +2 -0
  796. package/node_modules/zod/v4/locales/tg.cjs +144 -0
  797. package/node_modules/zod/v4/locales/tg.d.cts +5 -0
  798. package/node_modules/zod/v4/locales/tg.d.ts +4 -0
  799. package/node_modules/zod/v4/locales/tg.js +117 -0
  800. package/node_modules/zod/v4/locales/th.cjs +2 -0
  801. package/node_modules/zod/v4/locales/th.js +2 -0
  802. package/node_modules/zod/v4/locales/tk.cjs +2 -0
  803. package/node_modules/zod/v4/locales/tk.js +2 -0
  804. package/node_modules/zod/v4/locales/tr.cjs +2 -0
  805. package/node_modules/zod/v4/locales/tr.js +2 -0
  806. package/node_modules/zod/v4/locales/uk.cjs +2 -0
  807. package/node_modules/zod/v4/locales/uk.js +2 -0
  808. package/node_modules/zod/v4/locales/ur.cjs +2 -0
  809. package/node_modules/zod/v4/locales/ur.js +2 -0
  810. package/node_modules/zod/v4/locales/uz.cjs +2 -0
  811. package/node_modules/zod/v4/locales/uz.js +2 -0
  812. package/node_modules/zod/v4/locales/vi.cjs +2 -0
  813. package/node_modules/zod/v4/locales/vi.js +2 -0
  814. package/node_modules/zod/v4/locales/yo.cjs +2 -0
  815. package/node_modules/zod/v4/locales/yo.js +2 -0
  816. package/node_modules/zod/v4/locales/zh-CN.cjs +2 -0
  817. package/node_modules/zod/v4/locales/zh-CN.js +2 -0
  818. package/node_modules/zod/v4/locales/zh-TW.cjs +2 -0
  819. package/node_modules/zod/v4/locales/zh-TW.js +2 -0
  820. package/node_modules/zod/v4/mini/checks.cjs +19 -0
  821. package/node_modules/zod/v4/mini/coerce.cjs +19 -0
  822. package/node_modules/zod/v4/mini/deep-partial.cjs +19 -0
  823. package/node_modules/zod/v4/mini/external.cjs +22 -1
  824. package/node_modules/zod/v4/mini/external.d.cts +1 -1
  825. package/node_modules/zod/v4/mini/external.d.ts +1 -1
  826. package/node_modules/zod/v4/mini/external.js +1 -1
  827. package/node_modules/zod/v4/mini/in-out.cjs +19 -0
  828. package/node_modules/zod/v4/mini/index.cjs +19 -0
  829. package/node_modules/zod/v4/mini/iso.cjs +19 -0
  830. package/node_modules/zod/v4/mini/parse.cjs +19 -0
  831. package/node_modules/zod/v4/mini/schemas.cjs +44 -8
  832. package/node_modules/zod/v4/mini/schemas.d.cts +6 -1
  833. package/node_modules/zod/v4/mini/schemas.d.ts +6 -1
  834. package/node_modules/zod/v4/mini/schemas.js +21 -6
  835. package/node_modules/zod/v4-mini/index.cjs +19 -0
  836. package/openclaw.plugin.json +4 -2
  837. package/package.json +6 -6
@@ -1,3 +1,5 @@
1
+ import v8 from "node:v8";
2
+ import vm from "node:vm";
1
3
  import { expect, test } from "vitest";
2
4
  import * as z from "zod/v4";
3
5
 
@@ -718,3 +720,266 @@ test("detects a cycle through a user-defined container type", () => {
718
720
  const out: any = Node.parse(input);
719
721
  expect(out.boxed.v).toBe(out);
720
722
  });
723
+
724
+ // #6526: a factory returns fresh instances, so the identity walk never revisits a node; it descends until the stack overflows unless it stops at the deferred edge
725
+ test("parses a factory-built recursive schema", () => {
726
+ const Node = (): any =>
727
+ z.object({
728
+ id: z.number(),
729
+ get kids() {
730
+ return z.array(Node());
731
+ },
732
+ });
733
+
734
+ const S = z.object({ root: Node() });
735
+ const out = S.parse({ root: { id: 1, kids: [{ id: 2, kids: [] }] } });
736
+ expect(out.root.kids[0].id).toBe(2);
737
+ expect(S.safeParse({ root: { id: 1, kids: [{ id: "x", kids: [] }] } }).success).toBe(false);
738
+ });
739
+
740
+ test("parses a factory-built recursive discriminated union at the root and nested", () => {
741
+ const Geometry = (): any =>
742
+ z.discriminatedUnion("type", [
743
+ z.object({ type: z.literal("Point"), coordinates: z.array(z.number()) }),
744
+ z.looseObject({
745
+ type: z.literal("GeometryCollection"),
746
+ get geometries() {
747
+ return z.array(Geometry());
748
+ },
749
+ }),
750
+ ]);
751
+
752
+ const collection = { type: "GeometryCollection", geometries: [{ type: "Point", coordinates: [1, 2] }] };
753
+ expect(Geometry().parse(collection).geometries[0].coordinates).toEqual([1, 2]);
754
+ expect(z.object({ g: Geometry() }).parse({ g: collection }).g.type).toBe("GeometryCollection");
755
+ });
756
+
757
+ test("the walk reports a cycle for a deferred edge instead of resolving it", () => {
758
+ const Node = (): any =>
759
+ z.object({
760
+ get self() {
761
+ return Node();
762
+ },
763
+ });
764
+ expect(z.core.isRecursiveSchema(Node())).toBe(true);
765
+
766
+ // conservative by design: a getter that closes no cycle is reported too, and pays only the memoizer it keeps
767
+ const Leaf = z.object({ id: z.string() });
768
+ const forward: any = z.object({
769
+ get leaf() {
770
+ return Leaf;
771
+ },
772
+ });
773
+ expect(z.core.isRecursiveSchema(forward)).toBe(true);
774
+
775
+ // a lazy is followed one hop, which is what lets z.compile see past it; past that hop it is deferred like any other edge
776
+ expect(z.core.isRecursiveSchema(z.lazy(() => Leaf) as any)).toBe(false);
777
+ expect(z.core.isRecursiveSchema(z.lazy(() => z.lazy(() => Leaf)) as any)).toBe(true);
778
+ });
779
+
780
+ // the builders answer `shape` from an accessor that resolves the source's getters, so the walk has to reach the source schema itself
781
+ test("parses a factory-built recursive schema through every object builder", () => {
782
+ const wraps: [string, (base: () => any) => any][] = [
783
+ ["extend", (b) => b().extend({ x: z.string() })],
784
+ ["safeExtend", (b) => b().safeExtend({ x: z.string() })],
785
+ ["merge", (b) => z.object({ x: z.string() }).merge(b())],
786
+ ["partial", (b) => b().partial()],
787
+ ["required", (b) => b().required()],
788
+ ["pick", (b) => b().pick({ self: true })],
789
+ ["omit", (b) => b().omit({ y: true })],
790
+ ["chained", (b) => b().extend({ x: z.string() }).partial()],
791
+ // rebuilds the def without touching the shape, so the clone carries the source's accessor rather than a shape of its own
792
+ ["strict", (b) => b().extend({ x: z.string() }).strict()],
793
+ ["catchall", (b) => b().extend({ x: z.string() }).catchall(z.unknown())],
794
+ ["meta", (b) => b().extend({ x: z.string() }).meta({ id: "node" })],
795
+ ];
796
+
797
+ for (const [name, wrap] of wraps) {
798
+ const Node = (): any =>
799
+ wrap(() =>
800
+ z.object({
801
+ y: z.string(),
802
+ get self() {
803
+ return z.optional(Node());
804
+ },
805
+ })
806
+ );
807
+ const S = z.object({ r: Node() });
808
+ for (const attempt of ["first", "second"]) {
809
+ expect(() => S.safeParse({ r: { y: "s", x: "s" } }), `${name} (${attempt} parse)`).not.toThrow();
810
+ }
811
+ }
812
+ });
813
+
814
+ test("an ordinary builder stays exact, so it still compiles", () => {
815
+ const plain = z.object({ a: z.string(), b: z.number() });
816
+ const derived: [string, any][] = [
817
+ ["extend", plain.extend({ c: z.boolean() })],
818
+ ["merge", plain.merge(z.object({ d: z.string() }))],
819
+ ["partial", plain.partial()],
820
+ ["required", plain.partial().required()],
821
+ ["pick", plain.pick({ a: true })],
822
+ ["omit", plain.omit({ a: true })],
823
+ ["strict", plain.extend({ c: z.boolean() }).strict()],
824
+ ["catchall", plain.extend({ c: z.boolean() }).catchall(z.unknown())],
825
+ ["meta", plain.extend({ c: z.boolean() }).meta({ id: "plain" })],
826
+ ];
827
+ for (const [name, schema] of derived) {
828
+ expect(z.core.isRecursiveSchema(schema), name).toBe(false);
829
+ expect(() => z.compile(schema, { strict: true }), name).not.toThrow();
830
+ }
831
+ });
832
+
833
+ // a derived shape mirrors its source's descriptors, so dropping or overwriting the key that carries the cycle leaves nothing deferred and the walk is exact before anything parses
834
+ test("a builder that drops the recursive key ends up exact", () => {
835
+ const Node: any = z.object({
836
+ id: z.number(),
837
+ get self() {
838
+ return z.optional(Node);
839
+ },
840
+ });
841
+
842
+ const derived: [string, any, any][] = [
843
+ ["omit", Node.omit({ self: true }), { id: 1 }],
844
+ ["pick", Node.pick({ id: true }), { id: 1 }],
845
+ ["extend overwrites it", Node.extend({ self: z.string() }), { id: 1, self: "x" }],
846
+ ];
847
+ for (const [name, schema, input] of derived) {
848
+ expect(z.core.isRecursiveSchema(schema), name).toBe(false);
849
+ expect(() => z.compile(schema, { strict: true }), name).not.toThrow();
850
+ expect(schema.parse(input), name).toEqual(input);
851
+ }
852
+
853
+ // the branch that stays is still found
854
+ const kept = Node.extend({ x: z.string() });
855
+ expect(z.core.isRecursiveSchema(kept)).toBe(true);
856
+ });
857
+
858
+ // resolving a lazy runs user code, which can re-enter the walk; a walk that kept its certainty outside its own frames would have the inner one clobber the outer
859
+ test("a nested walk can't corrupt the one that resolved into it", () => {
860
+ const Node: any = z.object({
861
+ id: z.number(),
862
+ self: z.lazy(() => {
863
+ z.compile(z.string(), { strict: true });
864
+ return z.optional(Node);
865
+ }),
866
+ });
867
+
868
+ const omitted = Node.omit({ self: true });
869
+ // exact before anything parses: the mirrored shape kept only `id`, so nothing here is deferred
870
+ expect(z.core.isRecursiveSchema(omitted)).toBe(false);
871
+ omitted.parse({ id: 1 });
872
+ expect(z.core.isRecursiveSchema(omitted)).toBe(false);
873
+ expect(() => z.compile(omitted, { strict: true })).not.toThrow();
874
+
875
+ const shared = { id: 1 };
876
+ const out: any = z.object({ a: omitted, b: omitted }).parse({ a: shared, b: shared });
877
+ expect(out.a).not.toBe(out.b);
878
+ expect(z.core.isRecursiveSchema(Node)).toBe(true);
879
+ });
880
+
881
+ test("detects a cycle that closes through a builder", () => {
882
+ const Node: any = z
883
+ .object({
884
+ id: z.number(),
885
+ get self() {
886
+ return z.optional(Node);
887
+ },
888
+ })
889
+ .extend({ x: z.string() });
890
+
891
+ const input: any = { id: 1, x: "s" };
892
+ input.self = input;
893
+ const out = Node.parse(input);
894
+ expect(out.self).toBe(out);
895
+ });
896
+
897
+ test("a deferred edge stops being assumed a cycle once the graph resolves", () => {
898
+ const Leaf = z.object({ n: z.number() });
899
+ const Forward: any = z.object({
900
+ get a() {
901
+ return Leaf;
902
+ },
903
+ });
904
+ expect(z.core.isRecursiveSchema(Forward)).toBe(true);
905
+ Forward.parse({ a: { n: 1 } });
906
+ // the parse resolved the getter, so the walk can follow it and drop the assumption
907
+ expect(z.core.isRecursiveSchema(Forward)).toBe(false);
908
+
909
+ // a factory hands back a fresh subtree every time, so no parse ever resolves it into a finite graph
910
+ const Node = (): any =>
911
+ z.object({
912
+ get kids() {
913
+ return z.array(Node());
914
+ },
915
+ });
916
+ const Generated = Node();
917
+ expect(z.core.isRecursiveSchema(Generated)).toBe(true);
918
+ Generated.parse({ kids: [] });
919
+ expect(z.core.isRecursiveSchema(Generated)).toBe(true);
920
+
921
+ // a lazy that closes a real cycle stays recursive however often it resolves
922
+ const Cyclic: any = z.object({ id: z.number(), self: z.lazy(() => z.optional(Cyclic)) });
923
+ Cyclic.parse({ id: 1 });
924
+ expect(z.core.isRecursiveSchema(Cyclic)).toBe(true);
925
+ });
926
+
927
+ // `z.object` resolves its shape by spread, so a non-enumerable key is no part of it
928
+ test("a non-enumerable key does not count for z.object", () => {
929
+ const object = (enumerable: boolean) => {
930
+ const shape: Record<string, any> = { id: z.number() };
931
+ const O: any = z.object(shape);
932
+ Object.defineProperty(shape, "next", { value: z.lazy(() => z.optional(O)), enumerable, configurable: true });
933
+ return O;
934
+ };
935
+ expect(z.core.isRecursiveSchema(object(true))).toBe(true);
936
+ // the spread drops it, so nothing can ever parse it
937
+ expect(z.core.isRecursiveSchema(object(false))).toBe(false);
938
+ });
939
+
940
+ test("the walk stays exact where nothing is deferred", () => {
941
+ let deep: any = z.string();
942
+ for (let i = 0; i < 300; i++) deep = z.object({ v: deep });
943
+ expect(z.core.isRecursiveSchema(deep)).toBe(false);
944
+ });
945
+
946
+ test("parses a factory-built recursive schema through z.lazy", () => {
947
+ const Node = (): any =>
948
+ z.object({
949
+ id: z.number(),
950
+ child: z.lazy(() => z.optional(Node())),
951
+ });
952
+
953
+ const out = z.object({ root: Node() }).parse({ root: { id: 1, child: { id: 2, child: undefined } } });
954
+ expect(out.root.child.id).toBe(2);
955
+ });
956
+
957
+ test("a finished parse pins nothing on the schema", async () => {
958
+ // es2020 is the target, and its lib predates WeakRef
959
+ type Weak<T extends object> = { deref(): T | undefined };
960
+ const { WeakRef: Weak } = globalThis as unknown as { WeakRef: new <T extends object>(target: T) => Weak<T> };
961
+ // vitest carries no --expose-gc, so reach the collector the way node's own tests do
962
+ v8.setFlagsFromString("--expose-gc");
963
+ const gc = vm.runInNewContext("gc") as () => void;
964
+
965
+ const Node: any = z.object({
966
+ id: z.number(),
967
+ get next() {
968
+ return z.optional(Node);
969
+ },
970
+ });
971
+
972
+ const ref = ((): Weak<object> => {
973
+ const input = { id: 1, next: { id: 2, next: undefined } };
974
+ Node.parse(input);
975
+ return new Weak(input);
976
+ })();
977
+
978
+ for (let attempt = 0; attempt < 10 && ref.deref(); attempt++) {
979
+ // the input stays on the stack until a macrotask boundary
980
+ await new Promise((resolve) => setTimeout(resolve, 0));
981
+ gc();
982
+ }
983
+
984
+ expect(ref.deref()).toBeUndefined();
985
+ });
@@ -740,6 +740,26 @@ test("encode with codec discriminator", () => {
740
740
  expect(encoded).toEqual({ type: 1, value: "hello" });
741
741
  });
742
742
 
743
+ test("nested encoding does not select a sibling from forward discriminator values", async () => {
744
+ const tag = (value: "a" | "b") =>
745
+ z.codec(z.literal(value).default(value), z.undefined(), {
746
+ decode: () => undefined,
747
+ encode: () => value,
748
+ });
749
+ const inner = z.discriminatedUnion("type", [
750
+ z.object({ type: tag("a"), value: z.literal("a") }),
751
+ z.object({ type: tag("b"), value: z.literal("b") }),
752
+ ]);
753
+ const outer = z.discriminatedUnion("type", [inner, z.object({ type: z.undefined(), value: z.string() })]);
754
+ for (const value of ["a", "b"] as const) {
755
+ const input = { type: undefined, value };
756
+ const expected = { type: value, value };
757
+ expect(z.encode(inner, input)).toEqual(expected);
758
+ expect(z.encode(outer, input)).toEqual(expected);
759
+ expect(await z.encodeAsync(outer, input)).toEqual(expected);
760
+ }
761
+ });
762
+
743
763
  test("getDiscriminatedOption", () => {
744
764
  const fruit = z.object({ type: z.literal("fruit"), seeds: z.boolean() });
745
765
  const veg = z.object({ type: z.literal("vegetable"), leafy: z.boolean() });
@@ -811,9 +831,14 @@ test.each(["__proto__", "constructor", "toString", "hasOwnProperty", "valueOf"])
811
831
  }
812
832
  );
813
833
 
814
- // An omittable discriminator reads back as undefined at the lookup, exactly as TypeScript sees it: `{ k?: "a" } | { k?: "c" }` does not narrow on `k === undefined`.
815
834
  test("an omittable discriminator claims undefined", () => {
816
- const omittable = [z.exactOptional(z.literal("a")), z.optional(z.literal("a")), z.literal("a").default("a")];
835
+ const omittable = [
836
+ z.exactOptional(z.literal("a")),
837
+ z.optional(z.literal("a")),
838
+ z.literal("a").default("a"),
839
+ z.literal("a").prefault("a"),
840
+ z.literal("a").catch("a"),
841
+ ];
817
842
  for (const k of omittable) {
818
843
  expect(z.object({ k })._zod.propValues.k).toEqual(new Set(["a", undefined]));
819
844
  }
@@ -827,10 +852,91 @@ test("an omittable discriminator claims undefined", () => {
827
852
  expect(z.union(options).safeParse({ x: "s" }).success).toEqual(true);
828
853
  expect(z.discriminatedUnion("k", options).safeParse({ k: "b", y: 1 }).success).toEqual(true);
829
854
 
830
- // two options omit the key: both claim undefined, so they are not discriminable on it
855
+ // ambiguous absence does not prevent explicit tags from routing
831
856
  for (const k of omittable) {
832
- expect(() =>
833
- z.discriminatedUnion("k", [z.object({ k }), z.object({ k: z.exactOptional(z.literal("c")) })]).parse({})
834
- ).toThrow(/Duplicate discriminator value "undefined"/);
857
+ const schema = z.discriminatedUnion("k", [z.object({ k }), z.object({ k: z.exactOptional(z.literal("c")) })]);
858
+ expect(schema.parse({ k: "a" })).toEqual({ k: "a" });
859
+ expect(schema.parse({ k: "c" })).toEqual({ k: "c" });
860
+ expect(schema.safeParse({}).success).toBe(false);
861
+ }
862
+ });
863
+
864
+ test("defaulted discriminators preserve tagged parsing without guessing a member", async () => {
865
+ const a = z.object({ type: z.literal("a").default("a"), x: z.number().positive() });
866
+ const b = z.object({ type: z.literal("b").default("b"), y: z.string() });
867
+ const c = z.object({ type: z.literal("c").default("c"), z: z.boolean() });
868
+ for (const options of [
869
+ [a, b, c],
870
+ [c, b, a],
871
+ ] as const) {
872
+ const schema = z.discriminatedUnion("type", options);
873
+ for (const input of [a.parse({ x: 1 }), b.parse({ y: "s" }), c.parse({ z: true })]) {
874
+ expect(schema.parse(input)).toEqual(input);
875
+ expect((await schema.safeParseAsync(input)).success).toBe(true);
876
+ }
877
+ for (const input of [{ x: 1, y: "s", z: true }, { type: undefined }, { type: "other" }, { type: "a", x: -1 }]) {
878
+ expect(schema.safeParse(input).success).toBe(false);
879
+ expect((await schema.safeParseAsync(input)).success).toBe(false);
880
+ }
881
+ const result = schema.safeParse({});
882
+ expect(result.error?.issues[0]).toMatchObject({
883
+ code: "invalid_union",
884
+ path: ["type"],
885
+ options: options.map((o) => o.shape.type.unwrap().value),
886
+ });
887
+ expect(z.getDiscriminatedOption(schema, "a")).toBe(a);
888
+ }
889
+ const unique = z.discriminatedUnion("type", [a, b.safeExtend({ type: b.shape.type.unwrap() })]);
890
+ expect(unique.parse({ x: 1 })).toEqual({ type: "a", x: 1 });
891
+ });
892
+
893
+ test("undefined collisions are value-based and discriminator lookup rejects ambiguity", () => {
894
+ const a = z.object({ type: z.literal("a").optional() });
895
+ const absent = z.object({ type: z.undefined() });
896
+ for (const options of [
897
+ [a, absent],
898
+ [absent, a],
899
+ [absent, absent, a],
900
+ ] as const) {
901
+ const schema = z.discriminatedUnion("type", options);
902
+ expect(schema.parse({ type: "a" })).toEqual({ type: "a" });
903
+ expect(schema.safeParse({}).success).toBe(false);
904
+ expect(() => z.getDiscriminatedOption(schema, undefined)).toThrow('Ambiguous discriminator value "undefined"');
905
+ }
906
+ const unique = z.discriminatedUnion("type", [absent, z.object({ type: z.literal("a") })]);
907
+ expect(unique.parse({ type: undefined })).toEqual({ type: undefined });
908
+ expect(z.getDiscriminatedOption(unique, undefined)).toBe(absent);
909
+ });
910
+
911
+ test("non-undefined discriminator collisions remain schema errors", () => {
912
+ for (const tag of [z.literal("a").default("a"), z.literal(["a", "b"]), z.literal("a").nullable()]) {
913
+ const schema = z.discriminatedUnion("type", [z.object({ type: tag }), z.object({ type: tag })]);
914
+ expect(() => schema.safeParse({ type: "a" })).toThrow(/Duplicate discriminator value/);
915
+ expect(() => z.encode(schema, { type: "a" })).toThrow(/Duplicate discriminator value/);
916
+ expect(() => z.getDiscriminatedOption(schema, "a")).toThrow(/Duplicate discriminator value/);
917
+ }
918
+ const nullable = z.discriminatedUnion("type", [
919
+ z.object({ type: z.literal("a").nullable() }),
920
+ z.object({ type: z.literal("b").nullable() }),
921
+ ]);
922
+ expect(() => nullable.safeParse({ type: "a" })).toThrow('Duplicate discriminator value "null"');
923
+ });
924
+
925
+ test("nested defaulted unions only advertise routable discriminator values", () => {
926
+ const a = z.object({ type: z.literal("a").default("a"), group: z.literal("inner") });
927
+ const b = z.object({ type: z.literal("b").default("b"), group: z.literal("inner") });
928
+ const inner = z.discriminatedUnion("type", [a, b]);
929
+ const c = z.object({ type: z.literal("c").default("c"), group: z.literal("outer") });
930
+ expect(inner._zod.propValues.type).toEqual(new Set(["a", "b"]));
931
+ for (const schema of [
932
+ z.discriminatedUnion("type", [z.lazy(() => inner), c]),
933
+ z.discriminatedUnion("group", [inner, c]),
934
+ ]) {
935
+ expect(schema.parse({ type: "a", group: "inner" })).toEqual({ type: "a", group: "inner" });
936
+ expect(schema.parse({ group: "outer" })).toEqual({ type: "c", group: "outer" });
937
+ expect(schema.safeParse({ group: "inner" }).success).toBe(false);
835
938
  }
939
+ const fallback = z.discriminatedUnion("type", [a, b], { unionFallback: true });
940
+ expect(fallback._zod.propValues.type.has(undefined)).toBe(true);
941
+ expect(fallback.parse({ group: "inner" })).toEqual({ type: "a", group: "inner" });
836
942
  });
@@ -87,6 +87,15 @@ test("enum from non-const inputs", () => {
87
87
 
88
88
  test("get options", () => {
89
89
  expect(z.enum(["tuna", "trout"]).options).toEqual(["tuna", "trout"]);
90
+
91
+ enum Fish {
92
+ Tuna = 0,
93
+ Trout = 1,
94
+ }
95
+
96
+ // numeric enums carry reverse-mapping keys; options lists only what parse accepts
97
+ expect(z.enum(Fish).options).toEqual([Fish.Tuna, Fish.Trout]);
98
+ expect(z.enum(Fish).safeParse("Tuna").success).toEqual(false);
90
99
  });
91
100
 
92
101
  test("readonly enum", () => {
@@ -1,5 +1,7 @@
1
1
  import { inspect, types } from "node:util";
2
- import { afterEach, expect, test, vi } from "vitest";
2
+ import v8 from "node:v8";
3
+ import vm from "node:vm";
4
+ import { afterEach, describe, expect, test, vi } from "vitest";
3
5
  import * as z from "zod/v4";
4
6
 
5
7
  // Several tests install a global error map. Resetting on the last line of each leaks it into every later test in the file whenever an assertion above that line fails, which turns one real failure into a cascade.
@@ -977,3 +979,130 @@ test("error initializer never installs onto an intrinsic prototype", () => {
977
979
  expect({}.toString()).toEqual("[object Object]");
978
980
  expect(String(new Error("boom"))).toEqual("Error: boom");
979
981
  });
982
+
983
+ describe("safeParse builds the error on first read", () => {
984
+ class CountingError {
985
+ static constructed = 0;
986
+ constructor(public issues: unknown[]) {
987
+ CountingError.constructed++;
988
+ }
989
+ }
990
+
991
+ test("constructs once, on read", () => {
992
+ CountingError.constructed = 0;
993
+ const result = z.core._safeParse(CountingError as any)(z.string(), 1) as any;
994
+ expect(result.success).toBe(false);
995
+ expect(CountingError.constructed).toBe(0);
996
+ const err = result.error;
997
+ expect(CountingError.constructed).toBe(1);
998
+ expect(result.error).toBe(err);
999
+ expect(CountingError.constructed).toBe(1);
1000
+ expect(err.issues[0].code).toBe("invalid_type");
1001
+ });
1002
+
1003
+ test("async variant", async () => {
1004
+ CountingError.constructed = 0;
1005
+ const result = (await z.core._safeParseAsync(CountingError as any)(z.string(), 1)) as any;
1006
+ expect(CountingError.constructed).toBe(0);
1007
+ expect(result.error).toBeInstanceOf(CountingError);
1008
+ expect(CountingError.constructed).toBe(1);
1009
+ });
1010
+
1011
+ test("result stays plain data", () => {
1012
+ const result = z.string().safeParse(1);
1013
+ expect(Object.keys(result)).toEqual(["success", "error"]);
1014
+ expect(result).toEqual({ success: false, error: expect.any(z.ZodError) });
1015
+ expect(structuredClone(result).error).toBeInstanceOf(Error);
1016
+ const replaced = new z.ZodError([]);
1017
+ (result as any).error = replaced;
1018
+ expect(result.error).toBe(replaced);
1019
+ });
1020
+
1021
+ test("reading the error releases the parsed input", async () => {
1022
+ // es2020 is the target, and its lib predates WeakRef
1023
+ type Weak<T extends object> = { deref(): T | undefined };
1024
+ const { WeakRef: Weak } = globalThis as unknown as { WeakRef: new <T extends object>(target: T) => Weak<T> };
1025
+ // vitest carries no --expose-gc, so reach the collector the way node's own tests do
1026
+ v8.setFlagsFromString("--expose-gc");
1027
+ const gc = vm.runInNewContext("gc") as () => void;
1028
+
1029
+ const schema = z.string();
1030
+ const refs: Weak<object>[] = [];
1031
+ const results: unknown[] = [];
1032
+ for (let i = 0; i < 50; i++) {
1033
+ const input = { i, blob: new Array(500).fill(i) };
1034
+ refs.push(new Weak(input));
1035
+ const result = schema.safeParse(input);
1036
+ // half read the error, half replace it without ever reading; both have to release
1037
+ if (i % 2) void result.error;
1038
+ else (result as { error: z.core.$ZodError }).error = new z.ZodError([]);
1039
+ results.push(result);
1040
+ }
1041
+ // the collector decides when it runs, so give it several passes; a retained input never clears no matter how many it gets
1042
+ const live = () => refs.filter((ref) => ref.deref() !== undefined).length;
1043
+ for (let attempt = 0; attempt < 10 && live() > 1; attempt++) {
1044
+ // the loop's last input stays on the stack until a macrotask boundary
1045
+ await new Promise((resolve) => setTimeout(resolve, 0));
1046
+ gc();
1047
+ }
1048
+ expect(live()).toBeLessThanOrEqual(1);
1049
+ expect(results).toHaveLength(50);
1050
+ });
1051
+
1052
+ test("no reader frames leak into the error, however late it is read", async () => {
1053
+ const result = z.string().safeParse(12) as { error: z.core.$ZodError };
1054
+
1055
+ // the constructor runs at THIS read: a macrotask later and twenty frames deeper than the parse
1056
+ await new Promise((resolve) => setTimeout(resolve, 0));
1057
+ const readDeep = <T>(n: number, make: () => T): T => (n ? readDeep(n - 1, make) : make());
1058
+ const error = readDeep(20, () => result.error) as unknown as Error;
1059
+
1060
+ // control: a plain Error at that same depth does carry the frames, so the assertions below discriminate rather than pass vacuously
1061
+ const control = readDeep(20, () => new Error("control"));
1062
+ expect(control.stack!.split("\n").some((line) => line.trim().startsWith("at "))).toBe(true);
1063
+ expect(control.stack!).toContain("readDeep");
1064
+
1065
+ expect(error.stack!.startsWith("ZodError: [")).toBe(true);
1066
+ expect(error.stack!.split("\n").some((line) => line.trim().startsWith("at "))).toBe(false);
1067
+ expect(error.stack!).not.toContain("readDeep");
1068
+ });
1069
+
1070
+ test("a lazy build gives back the caller's stackTraceLimit, not the parse-time one", () => {
1071
+ const result = z.string().safeParse(12) as { error: z.core.$ZodError };
1072
+ const ambient = Error.stackTraceLimit;
1073
+ // changed between the parse and the read, so restoring a value captured at parse time would clobber it
1074
+ Error.stackTraceLimit = ambient + 7;
1075
+ try {
1076
+ void result.error;
1077
+ expect(Error.stackTraceLimit).toBe(ambient + 7);
1078
+ } finally {
1079
+ Error.stackTraceLimit = ambient;
1080
+ }
1081
+ });
1082
+ });
1083
+
1084
+ test("a finalized issue copies the raw issue's own keys only", () => {
1085
+ const proto = { inherited: true };
1086
+ const schema = z.string().check((ctx) => {
1087
+ const raw = Object.create(proto);
1088
+ Object.assign(raw, { code: "custom", message: "own", input: ctx.value, extra: 1 });
1089
+ ctx.issues.push(raw);
1090
+ });
1091
+ const issue = schema.safeParse("x").error!.issues[0];
1092
+ expect(issue).toStrictEqual({ code: "custom", message: "own", path: [], extra: 1 });
1093
+ expect("inherited" in issue).toBe(false);
1094
+ // own symbol-keyed fields are not copied either; nothing in zod produces one and the walk stays a string-key walk
1095
+ const sym = Symbol("meta");
1096
+ const symbolic = z.string().check((ctx) => {
1097
+ ctx.issues.push({ code: "custom", message: "sym", input: ctx.value, [sym]: 1 } as never);
1098
+ });
1099
+ expect(Object.getOwnPropertySymbols(symbolic.safeParse("x").error!.issues[0])).toEqual([]);
1100
+ // an own __proto__ key, as JSON.parse produces, neither swaps the prototype nor survives
1101
+ const parsed = z.string().check((ctx) => {
1102
+ ctx.issues.push(JSON.parse('{"code":"custom","message":"json","__proto__":{"polluted":true}}'));
1103
+ });
1104
+ const fromJson = parsed.safeParse("x").error!.issues[0];
1105
+ expect(Object.getPrototypeOf(fromJson)).toBe(Object.prototype);
1106
+ expect(Object.prototype.hasOwnProperty.call(fromJson, "__proto__")).toBe(false);
1107
+ expect("polluted" in fromJson).toBe(false);
1108
+ });