@openclaw/diffs 2026.9.3 → 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.
- package/assets/activity.svg +3 -0
- package/assets/icon.png +0 -0
- package/dist/{browser.runtime-DTKAejqd.js → .setup/browser.runtime-VjaO3wrj.mjs} +1 -1
- package/dist/assets/viewer-runtime.js +48 -54
- package/dist/index.js +4 -4
- package/node_modules/@pierre/diffs/dist/components/CodeView.d.ts +115 -68
- package/node_modules/@pierre/diffs/dist/components/CodeView.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/CodeView.js +189 -59
- package/node_modules/@pierre/diffs/dist/components/CodeView.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/File.d.ts +79 -15
- package/node_modules/@pierre/diffs/dist/components/File.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/File.js +244 -66
- package/node_modules/@pierre/diffs/dist/components/File.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/FileDiff.d.ts +101 -21
- package/node_modules/@pierre/diffs/dist/components/FileDiff.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/FileDiff.js +432 -102
- package/node_modules/@pierre/diffs/dist/components/FileDiff.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/FileStream.js +1 -1
- package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.d.ts +2 -2
- package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.js +2 -2
- package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.d.ts +17 -7
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.js +142 -53
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.d.ts +15 -8
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js +186 -96
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/VirtulizerDevelopment.d.ts +1 -1
- package/node_modules/@pierre/diffs/dist/components/VirtulizerDevelopment.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/edit/index.d.ts +7 -4
- package/node_modules/@pierre/diffs/dist/edit/index.js +5 -1
- package/node_modules/@pierre/diffs/dist/editor/EditStateManager.d.ts +56 -0
- package/node_modules/@pierre/diffs/dist/editor/EditStateManager.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/EditStateManager.js +135 -0
- package/node_modules/@pierre/diffs/dist/editor/EditStateManager.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/cloneRetainedDiffSessionSnapshot.d.ts +7 -0
- package/node_modules/@pierre/diffs/dist/editor/cloneRetainedDiffSessionSnapshot.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/cloneRetainedDiffSessionSnapshot.js +16 -0
- package/node_modules/@pierre/diffs/dist/editor/cloneRetainedDiffSessionSnapshot.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/editPrediction.d.ts +76 -0
- package/node_modules/@pierre/diffs/dist/editor/editPrediction.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/editPrediction.js +365 -0
- package/node_modules/@pierre/diffs/dist/editor/editPrediction.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/editStack.d.ts +19 -40
- package/node_modules/@pierre/diffs/dist/editor/editStack.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/editStack.js +67 -4
- package/node_modules/@pierre/diffs/dist/editor/editStack.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/editor.d.ts +118 -29
- package/node_modules/@pierre/diffs/dist/editor/editor.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/editor.js +1108 -384
- package/node_modules/@pierre/diffs/dist/editor/editor.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/editor2.js +1 -1
- package/node_modules/@pierre/diffs/dist/editor/languages.d.ts +3 -3
- package/node_modules/@pierre/diffs/dist/editor/languages.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/languages.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.d.ts +3 -3
- package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.js +16 -7
- package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/marker.d.ts +2 -2
- package/node_modules/@pierre/diffs/dist/editor/marker.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/marker.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/matchBrackets.d.ts +2 -2
- package/node_modules/@pierre/diffs/dist/editor/matchBrackets.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/matchBrackets.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/pieceTable.d.ts +1 -1
- package/node_modules/@pierre/diffs/dist/editor/pieceTable.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/searchPanel.d.ts +2 -2
- package/node_modules/@pierre/diffs/dist/editor/searchPanel.js +1 -1
- package/node_modules/@pierre/diffs/dist/editor/searchPanel.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/selection.d.ts +32 -23
- package/node_modules/@pierre/diffs/dist/editor/selection.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/selection.js +3 -3
- package/node_modules/@pierre/diffs/dist/editor/selection.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/selectionAction.d.ts +3 -3
- package/node_modules/@pierre/diffs/dist/editor/selectionAction.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/selectionAction.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/textDocument.d.ts +11 -8
- package/node_modules/@pierre/diffs/dist/editor/textDocument.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/textDocument.js +28 -5
- package/node_modules/@pierre/diffs/dist/editor/textDocument.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/textDocumentChangeTransaction.d.ts +15 -0
- package/node_modules/@pierre/diffs/dist/editor/textDocumentChangeTransaction.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/textDocumentChangeTransaction.js +12 -0
- package/node_modules/@pierre/diffs/dist/editor/textDocumentChangeTransaction.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/textMeasure.d.ts +5 -0
- package/node_modules/@pierre/diffs/dist/editor/textMeasure.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/textMeasure.js +10 -0
- package/node_modules/@pierre/diffs/dist/editor/textMeasure.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/tokenizer.d.ts +1 -1
- package/node_modules/@pierre/diffs/dist/editor/tokenizer.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/types.d.ts +267 -0
- package/node_modules/@pierre/diffs/dist/editor/types.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/types.js +0 -0
- package/node_modules/@pierre/diffs/dist/editor/utils.d.ts +2 -1
- package/node_modules/@pierre/diffs/dist/editor/utils.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/utils.js +4 -1
- package/node_modules/@pierre/diffs/dist/editor/utils.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/highlighter/shared_highlighter.d.ts +6 -2
- package/node_modules/@pierre/diffs/dist/highlighter/shared_highlighter.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/highlighter/shared_highlighter.js +7 -3
- package/node_modules/@pierre/diffs/dist/highlighter/shared_highlighter.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/highlighter/themes/areThemesAttached.js +1 -1
- package/node_modules/@pierre/diffs/dist/index.d.ts +8 -6
- package/node_modules/@pierre/diffs/dist/index.js +22 -21
- package/node_modules/@pierre/diffs/dist/managers/InteractionManager.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/managers/InteractionManager.js +7 -0
- package/node_modules/@pierre/diffs/dist/managers/InteractionManager.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/CodeView.d.ts +36 -25
- package/node_modules/@pierre/diffs/dist/react/CodeView.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/CodeView.js +15 -14
- package/node_modules/@pierre/diffs/dist/react/CodeView.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/EditContext.d.ts +8 -11
- package/node_modules/@pierre/diffs/dist/react/EditContext.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/EditContext.js +2 -9
- package/node_modules/@pierre/diffs/dist/react/EditContext.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/File.d.ts +10 -6
- package/node_modules/@pierre/diffs/dist/react/File.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/File.js +8 -4
- package/node_modules/@pierre/diffs/dist/react/File.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/FileDiff.d.ts +10 -5
- package/node_modules/@pierre/diffs/dist/react/FileDiff.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/FileDiff.js +8 -4
- package/node_modules/@pierre/diffs/dist/react/FileDiff.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.d.ts +8 -5
- package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.js +8 -12
- package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/PatchDiff.d.ts +7 -4
- package/node_modules/@pierre/diffs/dist/react/PatchDiff.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/PatchDiff.js +8 -4
- package/node_modules/@pierre/diffs/dist/react/PatchDiff.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.d.ts +3 -3
- package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/index.d.ts +8 -5
- package/node_modules/@pierre/diffs/dist/react/types.d.ts +46 -9
- package/node_modules/@pierre/diffs/dist/react/types.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.d.ts +14 -12
- package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.js +2 -2
- package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.d.ts +14 -12
- package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.js +2 -2
- package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.d.ts +22 -10
- package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.js +112 -22
- package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.d.ts +15 -9
- package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.js +84 -25
- package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.d.ts +30 -15
- package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js +172 -109
- package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.d.ts +27 -11
- package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js +141 -67
- package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/renderers/UnresolvedFileHunksRenderer.d.ts +2 -2
- package/node_modules/@pierre/diffs/dist/renderers/UnresolvedFileHunksRenderer.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/renderers/UnresolvedFileHunksRenderer.js +2 -2
- package/node_modules/@pierre/diffs/dist/renderers/UnresolvedFileHunksRenderer.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/shiki-stream/tokenizer.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/shiki-stream/tokenizer.js +2 -1
- package/node_modules/@pierre/diffs/dist/shiki-stream/tokenizer.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/ssr/index.d.ts +2 -2
- package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.d.ts +21 -21
- package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.js +1 -1
- package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/ssr/preloadFile.d.ts +6 -6
- package/node_modules/@pierre/diffs/dist/ssr/preloadFile.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/ssr/preloadFile.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/ssr/preloadPatchFile.d.ts +4 -4
- package/node_modules/@pierre/diffs/dist/ssr/preloadPatchFile.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/ssr/preloadPatchFile.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/style.js +1 -1
- package/node_modules/@pierre/diffs/dist/types.d.ts +13 -263
- package/node_modules/@pierre/diffs/dist/types.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/appendItems.d.ts +5 -0
- package/node_modules/@pierre/diffs/dist/utils/appendItems.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/appendItems.js +8 -0
- package/node_modules/@pierre/diffs/dist/utils/appendItems.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/areDiffTargetsEqual.js +1 -1
- package/node_modules/@pierre/diffs/dist/utils/areDiffTargetsEqual.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/areFileTargetsEqual.d.ts +7 -0
- package/node_modules/@pierre/diffs/dist/utils/areFileTargetsEqual.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/areFileTargetsEqual.js +8 -0
- package/node_modules/@pierre/diffs/dist/utils/areFileTargetsEqual.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.d.ts +1 -1
- package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/areOptionsEqual.d.ts +3 -3
- package/node_modules/@pierre/diffs/dist/utils/areOptionsEqual.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/areOptionsEqual.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.d.ts +3 -2
- package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.js +8 -5
- package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/composeCacheKey.d.ts +6 -0
- package/node_modules/@pierre/diffs/dist/utils/composeCacheKey.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/composeCacheKey.js +10 -0
- package/node_modules/@pierre/diffs/dist/utils/composeCacheKey.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/editSessionAnnotations.d.ts +69 -0
- package/node_modules/@pierre/diffs/dist/utils/editSessionAnnotations.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/editSessionAnnotations.js +64 -0
- package/node_modules/@pierre/diffs/dist/utils/editSessionAnnotations.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.d.ts +5 -3
- package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.js +7 -5
- package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.d.ts +1 -1
- package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.d.ts +1 -1
- package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.js +2 -1
- package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/lineAnnotationIdentity.d.ts +16 -0
- package/node_modules/@pierre/diffs/dist/utils/lineAnnotationIdentity.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/lineAnnotationIdentity.js +17 -0
- package/node_modules/@pierre/diffs/dist/utils/lineAnnotationIdentity.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.d.ts +2 -2
- package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js +6 -6
- package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.d.ts +6 -3
- package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js +34 -9
- package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.js +6 -5
- package/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.js +7 -4
- package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/trimPatchContext.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/trimPatchContext.js +3 -2
- package/node_modules/@pierre/diffs/dist/utils/trimPatchContext.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.js +1 -1
- package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.js +1 -1
- package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.d.ts +4 -3
- package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.js +44 -6
- package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/worker/types.d.ts +5 -0
- package/node_modules/@pierre/diffs/dist/worker/types.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/worker/worker-portable.js +14 -6
- package/node_modules/@pierre/diffs/dist/worker/worker-portable.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/worker/worker.js +14 -6
- package/node_modules/@pierre/diffs/dist/worker/worker.js.map +1 -1
- package/node_modules/@pierre/diffs/node_modules/@ungap/structured-clone/cjs/deserialize.js +12 -2
- package/node_modules/@pierre/diffs/node_modules/@ungap/structured-clone/cjs/serialize.js +5 -1
- package/node_modules/@pierre/diffs/node_modules/@ungap/structured-clone/esm/deserialize.js +12 -2
- package/node_modules/@pierre/diffs/node_modules/@ungap/structured-clone/esm/serialize.js +5 -1
- package/node_modules/@pierre/diffs/node_modules/@ungap/structured-clone/package.json +1 -1
- package/node_modules/@pierre/diffs/node_modules/@ungap/structured-clone/structured-json.js +1 -1
- package/node_modules/@pierre/diffs/package.json +9 -1
- package/node_modules/playwright-core/browsers.json +9 -32
- package/node_modules/playwright-core/lib/coreBundle.js +5402 -4419
- package/node_modules/playwright-core/lib/server/electron/loader.js +0 -2
- package/node_modules/playwright-core/lib/serverRegistry.js +1674 -7082
- package/node_modules/playwright-core/lib/serverRegistry.js.LICENSE +8 -297
- package/node_modules/playwright-core/lib/tools/cli-client/help.json +19 -6
- package/node_modules/playwright-core/lib/tools/cli-client/minimist.js +1 -1
- package/node_modules/playwright-core/lib/tools/cli-client/output.js +9 -1
- package/node_modules/playwright-core/lib/tools/cli-client/program.js +17 -3
- package/node_modules/playwright-core/lib/tools/cli-client/registry.js +9 -5
- package/node_modules/playwright-core/lib/tools/cli-client/session.js +2 -1
- package/node_modules/playwright-core/lib/tools/skills/playwright-cli/SKILL.md +5 -0
- package/node_modules/playwright-core/lib/tools/skills/playwright-cli/references/tracing.md +1 -1
- package/node_modules/playwright-core/lib/tools/skills/playwright-component-testing/SKILL.md +4 -11
- package/node_modules/playwright-core/lib/tools/skills/playwright-component-testing/references/migration.md +6 -2
- package/node_modules/playwright-core/lib/tools/skills/playwright-component-testing/references/react.md +2 -0
- package/node_modules/playwright-core/lib/tools/skills/playwright-component-testing/references/typing.md +173 -0
- package/node_modules/playwright-core/lib/tools/skills/playwright-component-testing/references/vue.md +2 -0
- package/node_modules/playwright-core/lib/tools/skills/playwright-trace/SKILL.md +6 -3
- package/node_modules/playwright-core/lib/tools/utils/extension.js +13 -2
- package/node_modules/playwright-core/lib/utilsBundle.js +1934 -7341
- package/node_modules/playwright-core/lib/utilsBundle.js.LICENSE +8 -297
- package/node_modules/playwright-core/lib/vite/dashboard/assets/codeMirrorModule--QdMvsKi.css +1 -0
- package/node_modules/playwright-core/lib/vite/{recorder/assets/codeMirrorModule-CwYYHbcZ.js → dashboard/assets/codeMirrorModule-CQ8RZGBm.js} +1 -1
- package/node_modules/playwright-core/lib/vite/dashboard/assets/index-AwgwcYie.css +1 -0
- package/node_modules/playwright-core/lib/vite/dashboard/assets/index-hRvO4yU2.js +12 -0
- package/node_modules/playwright-core/lib/vite/dashboard/index.html +2 -2
- package/node_modules/playwright-core/lib/vite/htmlReport/report.css +1 -1
- package/node_modules/playwright-core/lib/vite/htmlReport/report.js +4 -4
- package/node_modules/playwright-core/lib/vite/recorder/assets/codeMirrorModule-CVQWJZAA.js +32 -0
- package/node_modules/playwright-core/lib/vite/recorder/assets/index-BZpYJZ-P.css +1 -0
- package/node_modules/playwright-core/lib/vite/recorder/assets/index-hrlLqLtq.js +129 -0
- package/node_modules/playwright-core/lib/vite/recorder/index.html +2 -2
- package/node_modules/playwright-core/lib/vite/traceViewer/assets/{codeMirrorModule-rXmQmLUY.js → codeMirrorModule-BbkfBe3n.js} +1 -1
- package/node_modules/playwright-core/lib/vite/traceViewer/assets/defaultSettingsView-Ds6CBOo0.js +182 -0
- package/node_modules/playwright-core/lib/vite/traceViewer/assets/{xtermModule-BuZfJS5v.js → xtermModule-DywYcAf8.js} +1 -1
- package/node_modules/playwright-core/lib/vite/traceViewer/defaultSettingsView.Bqk9acqE.css +1 -0
- package/node_modules/playwright-core/lib/vite/traceViewer/index.B4cLoZK3.js +1 -0
- package/node_modules/playwright-core/lib/vite/traceViewer/index.html +3 -3
- package/node_modules/playwright-core/lib/vite/traceViewer/sw.bundle.js +3 -3
- package/node_modules/playwright-core/lib/vite/traceViewer/uiMode.CU5KtEkS.js +5 -0
- package/node_modules/playwright-core/lib/vite/traceViewer/{uiMode.C7UW1sC9.css → uiMode.CyMfwkXJ.css} +1 -1
- package/node_modules/playwright-core/lib/vite/traceViewer/uiMode.html +4 -4
- package/node_modules/playwright-core/package.json +1 -1
- package/node_modules/playwright-core/types/protocol.d.ts +201 -398
- package/node_modules/playwright-core/types/types.d.ts +771 -327
- package/node_modules/typebox/build/compile/validator.d.mts +1 -1
- package/node_modules/typebox/build/compile/validator.mjs +1 -1
- package/node_modules/typebox/build/format/idna/idn-hostname.mjs +7 -5
- package/node_modules/typebox/build/format/iri.mjs +5 -1
- package/node_modules/typebox/build/guard/emit.mjs +2 -4
- package/node_modules/typebox/build/guard/guard.mjs +6 -18
- package/node_modules/typebox/build/guard/string.mjs +16 -24
- package/node_modules/typebox/build/schema/build.mjs +2 -2
- package/node_modules/typebox/build/schema/check.mjs +1 -1
- package/node_modules/typebox/build/schema/compile.d.mts +3 -2
- package/node_modules/typebox/build/schema/compile.mjs +8 -8
- package/node_modules/typebox/build/schema/engine/_context.d.mts +6 -7
- package/node_modules/typebox/build/schema/engine/_context.mjs +23 -15
- package/node_modules/typebox/build/schema/engine/_functions.d.mts +2 -2
- package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/_reducer.d.mts +3 -3
- package/node_modules/typebox/build/schema/engine/_refine.d.mts +5 -5
- package/node_modules/typebox/build/schema/engine/_refine.mjs +4 -7
- package/node_modules/typebox/build/schema/engine/_stack.d.mts +34 -16
- package/node_modules/typebox/build/schema/engine/_stack.mjs +148 -104
- package/node_modules/typebox/build/schema/engine/additionalItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/additionalProperties.d.mts +8 -8
- package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +26 -18
- package/node_modules/typebox/build/schema/engine/allOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/allOf.mjs +3 -3
- package/node_modules/typebox/build/schema/engine/anyOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/anyOf.mjs +5 -10
- package/node_modules/typebox/build/schema/engine/boolean.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/boolean.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/const.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/const.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/contains.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/contains.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/dependencies.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dependencies.mjs +3 -6
- package/node_modules/typebox/build/schema/engine/dependentRequired.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dependentRequired.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/dependentSchemas.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +11 -7
- package/node_modules/typebox/build/schema/engine/enum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/enum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/exclusiveMaximum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/exclusiveMaximum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/exclusiveMinimum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/exclusiveMinimum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/format.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/format.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/if.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/if.mjs +7 -15
- package/node_modules/typebox/build/schema/engine/items.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/items.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/maxContains.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxContains.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maxItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxItems.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maxLength.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxLength.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maxProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxProperties.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maximum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maximum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minContains.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minContains.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minItems.d.mts +5 -5
- package/node_modules/typebox/build/schema/engine/minItems.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minLength.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minLength.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minProperties.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minimum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minimum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/multipleOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/multipleOf.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/not.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/not.mjs +4 -8
- package/node_modules/typebox/build/schema/engine/oneOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/oneOf.mjs +6 -11
- package/node_modules/typebox/build/schema/engine/pattern.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -7
- package/node_modules/typebox/build/schema/engine/patternProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/patternProperties.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/prefixItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/prefixItems.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/properties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/properties.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/propertyNames.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/propertyNames.mjs +4 -10
- package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +11 -7
- package/node_modules/typebox/build/schema/engine/ref.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/ref.mjs +19 -15
- package/node_modules/typebox/build/schema/engine/required.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/required.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/schema.d.mts +7 -7
- package/node_modules/typebox/build/schema/engine/schema.mjs +137 -133
- package/node_modules/typebox/build/schema/engine/type.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/type.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/unevaluatedItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/unevaluatedItems.mjs +5 -9
- package/node_modules/typebox/build/schema/engine/unevaluatedProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs +5 -9
- package/node_modules/typebox/build/schema/engine/uniqueItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/uniqueItems.mjs +2 -6
- package/node_modules/typebox/build/schema/errors.d.mts +2 -2
- package/node_modules/typebox/build/schema/errors.mjs +8 -14
- package/node_modules/typebox/build/schema/intern/index.d.mts +1 -0
- package/node_modules/typebox/build/schema/intern/index.mjs +1 -0
- package/node_modules/typebox/build/schema/intern/intern.d.mts +11 -0
- package/node_modules/typebox/build/schema/intern/intern.mjs +293 -0
- package/node_modules/typebox/build/schema/meta/draft_2019_09.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_2019_09.mjs +288 -0
- package/node_modules/typebox/build/schema/meta/draft_2020_12.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_2020_12.mjs +300 -0
- package/node_modules/typebox/build/schema/meta/draft_3.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_3.mjs +143 -0
- package/node_modules/typebox/build/schema/meta/draft_4.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_4.mjs +149 -0
- package/node_modules/typebox/build/schema/meta/draft_6.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_6.mjs +155 -0
- package/node_modules/typebox/build/schema/meta/draft_7.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_7.mjs +172 -0
- package/node_modules/typebox/build/schema/meta/index.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/index.mjs +2 -0
- package/node_modules/typebox/build/schema/meta/meta.d.mts +9 -0
- package/node_modules/typebox/build/schema/meta/meta.mjs +15 -0
- package/node_modules/typebox/build/schema/meta/schema.d.mts +6 -0
- package/node_modules/typebox/build/schema/meta/schema.mjs +1 -0
- package/node_modules/typebox/build/schema/parse.d.mts +1 -0
- package/node_modules/typebox/build/schema/parse.mjs +10 -5
- package/node_modules/typebox/build/schema/resolve/resolve.d.mts +8 -3
- package/node_modules/typebox/build/schema/resolve/resolve.mjs +268 -139
- package/node_modules/typebox/build/schema/schema.d.mts +2 -0
- package/node_modules/typebox/build/schema/schema.mjs +2 -0
- package/node_modules/typebox/build/value/errors/errors.d.mts +2 -12
- package/node_modules/typebox/build/value/errors/errors.mjs +2 -7
- package/node_modules/typebox/package.json +1 -1
- package/node_modules/typebox/readme.md +59 -89
- package/node_modules/zod/README.md +27 -0
- package/node_modules/zod/compile.cjs +77 -0
- package/node_modules/zod/compile.d.cts +1 -0
- package/node_modules/zod/compile.d.ts +1 -0
- package/node_modules/zod/compile.js +52 -0
- package/node_modules/zod/index.cjs +2 -2
- package/node_modules/zod/index.d.cts +1 -2
- package/node_modules/zod/index.d.ts +1 -2
- package/node_modules/zod/index.js +5 -2
- package/node_modules/zod/package.json +13 -2
- package/node_modules/zod/src/compile.ts +56 -0
- package/node_modules/zod/src/index.ts +5 -2
- package/node_modules/zod/src/v3/ZodError.ts +22 -12
- package/node_modules/zod/src/v3/tests/error.test.ts +35 -0
- package/node_modules/zod/src/v3/tests/intersection.test.ts +18 -0
- package/node_modules/zod/src/v3/tests/language-server.test.ts +1 -2
- package/node_modules/zod/src/v3/tests/object.test.ts +3 -6
- package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -80
- package/node_modules/zod/src/v3/tests/string.test.ts +6 -0
- package/node_modules/zod/src/v3/types.ts +5 -5
- package/node_modules/zod/src/v4/classic/checks.ts +1 -0
- package/node_modules/zod/src/v4/classic/compat.ts +26 -18
- package/node_modules/zod/src/v4/classic/deep-partial.ts +76 -0
- package/node_modules/zod/src/v4/classic/errors.ts +59 -44
- package/node_modules/zod/src/v4/classic/external.ts +12 -9
- package/node_modules/zod/src/v4/classic/from-json-schema.ts +140 -78
- package/node_modules/zod/src/v4/classic/in-out.ts +45 -0
- package/node_modules/zod/src/v4/classic/index.ts +2 -2
- package/node_modules/zod/src/v4/classic/iso.ts +2 -72
- package/node_modules/zod/src/v4/classic/parse.ts +10 -4
- package/node_modules/zod/src/v4/classic/schemas.ts +452 -262
- package/node_modules/zod/src/v4/classic/tests/apply.test.ts +27 -0
- package/node_modules/zod/src/v4/classic/tests/array.test.ts +2 -2
- package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +135 -0
- package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +30 -1
- package/node_modules/zod/src/v4/classic/tests/catch.test.ts +278 -0
- package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +1 -2
- package/node_modules/zod/src/v4/classic/tests/codec.test.ts +2 -1
- package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
- package/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +76 -0
- package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +720 -0
- package/node_modules/zod/src/v4/classic/tests/date.test.ts +30 -0
- package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +32 -18
- package/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +380 -0
- package/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +32 -0
- package/node_modules/zod/src/v4/classic/tests/default.test.ts +46 -0
- package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +31 -7
- package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +155 -13
- package/node_modules/zod/src/v4/classic/tests/enum.test.ts +11 -0
- package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +112 -2
- package/node_modules/zod/src/v4/classic/tests/error.test.ts +274 -6
- package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +425 -10
- package/node_modules/zod/src/v4/classic/tests/function.test.ts +31 -0
- package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +2 -9
- package/node_modules/zod/src/v4/classic/tests/hash.test.ts +1 -2
- package/node_modules/zod/src/v4/classic/tests/in-out.test.ts +159 -0
- package/node_modules/zod/src/v4/classic/tests/index.test.ts +21 -2
- package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +281 -0
- package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +47 -0
- package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +136 -0
- package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +183 -0
- package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +3 -10
- package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +36 -1
- package/node_modules/zod/src/v4/classic/tests/literal.test.ts +12 -1
- package/node_modules/zod/src/v4/classic/tests/map.test.ts +12 -0
- package/node_modules/zod/src/v4/classic/tests/number.test.ts +46 -9
- package/node_modules/zod/src/v4/classic/tests/object.test.ts +245 -12
- package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +234 -0
- package/node_modules/zod/src/v4/classic/tests/optional.test.ts +49 -16
- package/node_modules/zod/src/v4/classic/tests/partial.test.ts +51 -4
- package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +20 -2
- package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -68
- package/node_modules/zod/src/v4/classic/tests/record.test.ts +186 -18
- package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +33 -2
- package/node_modules/zod/src/v4/classic/tests/redos.test.ts +68 -0
- package/node_modules/zod/src/v4/classic/tests/refine.test.ts +60 -0
- package/node_modules/zod/src/v4/classic/tests/set.test.ts +9 -0
- package/node_modules/zod/src/v4/classic/tests/string.test.ts +127 -5
- package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +18 -0
- package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +11 -2
- package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +1585 -173
- package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +45 -30
- package/node_modules/zod/src/v4/classic/tests/union.test.ts +39 -2
- package/node_modules/zod/src/v4/classic/tests/validate.test.ts +76 -0
- package/node_modules/zod/src/v4/classic/tests/validations.test.ts +2 -2
- package/node_modules/zod/src/v4/core/api.ts +48 -12
- package/node_modules/zod/src/v4/core/checks.ts +57 -44
- package/node_modules/zod/src/v4/core/compile.ts +2188 -0
- package/node_modules/zod/src/v4/core/core.ts +98 -19
- package/node_modules/zod/src/v4/core/doc.ts +11 -7
- package/node_modules/zod/src/v4/core/errors.ts +115 -24
- package/node_modules/zod/src/v4/core/index.ts +3 -0
- package/node_modules/zod/src/v4/core/json-schema-generator.ts +6 -1
- package/node_modules/zod/src/v4/core/json-schema-processors.ts +257 -93
- package/node_modules/zod/src/v4/core/json-schema.ts +2 -1
- package/node_modules/zod/src/v4/core/memoizer.ts +284 -0
- package/node_modules/zod/src/v4/core/parse.ts +131 -38
- package/node_modules/zod/src/v4/core/regexes.ts +30 -13
- package/node_modules/zod/src/v4/core/registries.ts +2 -2
- package/node_modules/zod/src/v4/core/schemas.ts +759 -461
- package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +969 -0
- package/node_modules/zod/src/v4/core/tests/compile-global.test.ts +89 -0
- package/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +26 -0
- package/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +34 -0
- package/node_modules/zod/src/v4/core/tests/compile.test.ts +1639 -0
- package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +1 -2
- package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +1 -2
- package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +3 -3
- package/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +42 -0
- package/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +69 -0
- package/node_modules/zod/src/v4/core/tests/treeshake.test.ts +51 -0
- package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +31 -0
- package/node_modules/zod/src/v4/core/to-json-schema.ts +275 -42
- package/node_modules/zod/src/v4/core/util.ts +268 -42
- package/node_modules/zod/src/v4/core/versions.ts +2 -2
- package/node_modules/zod/src/v4/core/visit.ts +193 -0
- package/node_modules/zod/src/v4/index.ts +3 -3
- package/node_modules/zod/src/v4/locales/ar.ts +3 -0
- package/node_modules/zod/src/v4/locales/az.ts +3 -0
- package/node_modules/zod/src/v4/locales/be.ts +10 -0
- package/node_modules/zod/src/v4/locales/bg.ts +3 -0
- package/node_modules/zod/src/v4/locales/bn.ts +121 -0
- package/node_modules/zod/src/v4/locales/ca.ts +3 -0
- package/node_modules/zod/src/v4/locales/ckb.ts +138 -0
- package/node_modules/zod/src/v4/locales/cs.ts +3 -0
- package/node_modules/zod/src/v4/locales/da.ts +5 -2
- package/node_modules/zod/src/v4/locales/de.ts +3 -0
- package/node_modules/zod/src/v4/locales/el.ts +1 -0
- package/node_modules/zod/src/v4/locales/en.ts +15 -4
- package/node_modules/zod/src/v4/locales/eo.ts +3 -0
- package/node_modules/zod/src/v4/locales/es.ts +2 -0
- package/node_modules/zod/src/v4/locales/fa.ts +3 -0
- package/node_modules/zod/src/v4/locales/fi.ts +3 -0
- package/node_modules/zod/src/v4/locales/fr-CA.ts +3 -0
- package/node_modules/zod/src/v4/locales/fr.ts +19 -14
- package/node_modules/zod/src/v4/locales/gu.ts +121 -0
- package/node_modules/zod/src/v4/locales/he.ts +6 -1
- package/node_modules/zod/src/v4/locales/hi.ts +124 -0
- package/node_modules/zod/src/v4/locales/hr.ts +2 -0
- package/node_modules/zod/src/v4/locales/hu.ts +3 -0
- package/node_modules/zod/src/v4/locales/hy.ts +9 -0
- package/node_modules/zod/src/v4/locales/id.ts +3 -0
- package/node_modules/zod/src/v4/locales/index.ts +10 -0
- package/node_modules/zod/src/v4/locales/is.ts +3 -0
- package/node_modules/zod/src/v4/locales/it.ts +3 -0
- package/node_modules/zod/src/v4/locales/ja.ts +3 -0
- package/node_modules/zod/src/v4/locales/ka.ts +3 -0
- package/node_modules/zod/src/v4/locales/km.ts +3 -0
- package/node_modules/zod/src/v4/locales/kn.ts +124 -0
- package/node_modules/zod/src/v4/locales/ko.ts +3 -0
- package/node_modules/zod/src/v4/locales/lt.ts +2 -0
- package/node_modules/zod/src/v4/locales/mk.ts +3 -0
- package/node_modules/zod/src/v4/locales/ms.ts +3 -0
- package/node_modules/zod/src/v4/locales/ne.ts +126 -0
- package/node_modules/zod/src/v4/locales/nl.ts +3 -0
- package/node_modules/zod/src/v4/locales/nn.ts +119 -0
- package/node_modules/zod/src/v4/locales/no.ts +5 -2
- package/node_modules/zod/src/v4/locales/ota.ts +3 -0
- package/node_modules/zod/src/v4/locales/pl.ts +3 -0
- package/node_modules/zod/src/v4/locales/ps.ts +3 -0
- package/node_modules/zod/src/v4/locales/pt-BR.ts +159 -0
- package/node_modules/zod/src/v4/locales/pt.ts +99 -58
- package/node_modules/zod/src/v4/locales/ro.ts +1 -0
- package/node_modules/zod/src/v4/locales/ru.ts +10 -0
- package/node_modules/zod/src/v4/locales/sk.ts +121 -0
- package/node_modules/zod/src/v4/locales/sl.ts +3 -0
- package/node_modules/zod/src/v4/locales/sv.ts +5 -2
- package/node_modules/zod/src/v4/locales/ta.ts +3 -0
- package/node_modules/zod/src/v4/locales/th.ts +3 -0
- package/node_modules/zod/src/v4/locales/tk.ts +111 -0
- package/node_modules/zod/src/v4/locales/tr.ts +3 -0
- package/node_modules/zod/src/v4/locales/uk.ts +3 -0
- package/node_modules/zod/src/v4/locales/ur.ts +3 -0
- package/node_modules/zod/src/v4/locales/uz.ts +1 -0
- package/node_modules/zod/src/v4/locales/vi.ts +3 -0
- package/node_modules/zod/src/v4/locales/yo.ts +3 -0
- package/node_modules/zod/src/v4/locales/zh-CN.ts +3 -0
- package/node_modules/zod/src/v4/locales/zh-TW.ts +3 -0
- package/node_modules/zod/src/v4/mini/checks.ts +1 -0
- package/node_modules/zod/src/v4/mini/deep-partial.ts +73 -0
- package/node_modules/zod/src/v4/mini/external.ts +10 -1
- package/node_modules/zod/src/v4/mini/in-out.ts +45 -0
- package/node_modules/zod/src/v4/mini/parse.ts +2 -0
- package/node_modules/zod/src/v4/mini/schemas.ts +135 -56
- package/node_modules/zod/src/v4/mini/tests/apply.test.ts +33 -0
- package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +62 -1
- package/node_modules/zod/src/v4/mini/tests/checks.test.ts +14 -0
- package/node_modules/zod/src/v4/mini/tests/codec.test.ts +35 -1
- package/node_modules/zod/src/v4/mini/tests/cyclic-data.test.ts +84 -0
- package/node_modules/zod/src/v4/mini/tests/deep-partial.test.ts +54 -0
- package/node_modules/zod/src/v4/mini/tests/error.test.ts +23 -4
- package/node_modules/zod/src/v4/mini/tests/functions.test.ts +9 -0
- package/node_modules/zod/src/v4/mini/tests/index.test.ts +72 -5
- package/node_modules/zod/src/v4/mini/tests/number.test.ts +14 -0
- package/node_modules/zod/src/v4/mini/tests/object.test.ts +65 -0
- package/node_modules/zod/src/v4/mini/tests/string.test.ts +21 -0
- package/node_modules/zod/v3/ZodError.cjs +22 -12
- package/node_modules/zod/v3/ZodError.d.cts +1 -1
- package/node_modules/zod/v3/ZodError.d.ts +1 -1
- package/node_modules/zod/v3/ZodError.js +22 -12
- package/node_modules/zod/v3/types.cjs +7 -5
- package/node_modules/zod/v3/types.js +7 -5
- package/node_modules/zod/v4/classic/checks.cjs +2 -1
- package/node_modules/zod/v4/classic/checks.d.cts +1 -1
- package/node_modules/zod/v4/classic/checks.d.ts +1 -1
- package/node_modules/zod/v4/classic/checks.js +1 -1
- package/node_modules/zod/v4/classic/compat.d.cts +9 -11
- package/node_modules/zod/v4/classic/compat.d.ts +9 -11
- package/node_modules/zod/v4/classic/deep-partial.cjs +39 -0
- package/node_modules/zod/v4/classic/deep-partial.d.cts +14 -0
- package/node_modules/zod/v4/classic/deep-partial.d.ts +14 -0
- package/node_modules/zod/v4/classic/deep-partial.js +13 -0
- package/node_modules/zod/v4/classic/errors.cjs +43 -34
- package/node_modules/zod/v4/classic/errors.d.cts +3 -4
- package/node_modules/zod/v4/classic/errors.d.ts +3 -4
- package/node_modules/zod/v4/classic/errors.js +43 -34
- package/node_modules/zod/v4/classic/external.cjs +30 -27
- package/node_modules/zod/v4/classic/external.d.cts +5 -2
- package/node_modules/zod/v4/classic/external.d.ts +5 -2
- package/node_modules/zod/v4/classic/external.js +5 -8
- package/node_modules/zod/v4/classic/from-json-schema.cjs +136 -75
- package/node_modules/zod/v4/classic/from-json-schema.js +136 -75
- package/node_modules/zod/v4/classic/in-out.cjs +63 -0
- package/node_modules/zod/v4/classic/in-out.d.cts +8 -0
- package/node_modules/zod/v4/classic/in-out.d.ts +8 -0
- package/node_modules/zod/v4/classic/in-out.js +36 -0
- package/node_modules/zod/v4/classic/index.cjs +2 -2
- package/node_modules/zod/v4/classic/index.d.cts +1 -2
- package/node_modules/zod/v4/classic/index.d.ts +1 -2
- package/node_modules/zod/v4/classic/index.js +2 -2
- package/node_modules/zod/v4/classic/iso.cjs +11 -22
- package/node_modules/zod/v4/classic/iso.d.cts +2 -17
- package/node_modules/zod/v4/classic/iso.d.ts +2 -17
- package/node_modules/zod/v4/classic/iso.js +2 -17
- package/node_modules/zod/v4/classic/parse.cjs +4 -1
- package/node_modules/zod/v4/classic/parse.d.cts +17 -4
- package/node_modules/zod/v4/classic/parse.d.ts +17 -4
- package/node_modules/zod/v4/classic/parse.js +1 -0
- package/node_modules/zod/v4/classic/schemas.cjs +498 -398
- package/node_modules/zod/v4/classic/schemas.d.cts +53 -18
- package/node_modules/zod/v4/classic/schemas.d.ts +53 -18
- package/node_modules/zod/v4/classic/schemas.js +492 -396
- package/node_modules/zod/v4/core/api.cjs +23 -4
- package/node_modules/zod/v4/core/api.d.cts +13 -9
- package/node_modules/zod/v4/core/api.d.ts +13 -9
- package/node_modules/zod/v4/core/api.js +21 -4
- package/node_modules/zod/v4/core/checks.cjs +37 -31
- package/node_modules/zod/v4/core/checks.d.cts +13 -13
- package/node_modules/zod/v4/core/checks.d.ts +13 -13
- package/node_modules/zod/v4/core/checks.js +37 -31
- package/node_modules/zod/v4/core/compile.cjs +1813 -0
- package/node_modules/zod/v4/core/compile.d.cts +51 -0
- package/node_modules/zod/v4/core/compile.d.ts +51 -0
- package/node_modules/zod/v4/core/compile.js +1783 -0
- package/node_modules/zod/v4/core/core.cjs +81 -18
- package/node_modules/zod/v4/core/core.d.cts +16 -4
- package/node_modules/zod/v4/core/core.d.ts +16 -4
- package/node_modules/zod/v4/core/core.js +82 -19
- package/node_modules/zod/v4/core/doc.cjs +5 -7
- package/node_modules/zod/v4/core/doc.d.cts +3 -1
- package/node_modules/zod/v4/core/doc.d.ts +3 -1
- package/node_modules/zod/v4/core/doc.js +5 -7
- package/node_modules/zod/v4/core/errors.cjs +110 -25
- package/node_modules/zod/v4/core/errors.d.cts +4 -0
- package/node_modules/zod/v4/core/errors.d.ts +4 -0
- package/node_modules/zod/v4/core/errors.js +110 -25
- package/node_modules/zod/v4/core/index.cjs +5 -1
- package/node_modules/zod/v4/core/index.d.cts +3 -0
- package/node_modules/zod/v4/core/index.d.ts +3 -0
- package/node_modules/zod/v4/core/index.js +3 -0
- package/node_modules/zod/v4/core/json-schema-generator.cjs +4 -0
- package/node_modules/zod/v4/core/json-schema-generator.d.cts +2 -2
- package/node_modules/zod/v4/core/json-schema-generator.d.ts +2 -2
- package/node_modules/zod/v4/core/json-schema-generator.js +4 -0
- package/node_modules/zod/v4/core/json-schema-processors.cjs +264 -95
- package/node_modules/zod/v4/core/json-schema-processors.js +243 -97
- package/node_modules/zod/v4/core/json-schema.d.cts +2 -1
- package/node_modules/zod/v4/core/json-schema.d.ts +2 -1
- package/node_modules/zod/v4/core/memoizer.cjs +272 -0
- package/node_modules/zod/v4/core/memoizer.d.cts +15 -0
- package/node_modules/zod/v4/core/memoizer.d.ts +15 -0
- package/node_modules/zod/v4/core/memoizer.js +265 -0
- package/node_modules/zod/v4/core/parse.cjs +96 -34
- package/node_modules/zod/v4/core/parse.d.cts +14 -11
- package/node_modules/zod/v4/core/parse.d.ts +14 -11
- package/node_modules/zod/v4/core/parse.js +94 -33
- package/node_modules/zod/v4/core/regexes.cjs +27 -15
- package/node_modules/zod/v4/core/regexes.d.cts +2 -0
- package/node_modules/zod/v4/core/regexes.d.ts +2 -0
- package/node_modules/zod/v4/core/regexes.js +24 -13
- package/node_modules/zod/v4/core/registries.js +2 -2
- package/node_modules/zod/v4/core/schemas.cjs +537 -326
- package/node_modules/zod/v4/core/schemas.d.cts +100 -31
- package/node_modules/zod/v4/core/schemas.d.ts +100 -31
- package/node_modules/zod/v4/core/schemas.js +526 -325
- package/node_modules/zod/v4/core/to-json-schema.cjs +242 -39
- package/node_modules/zod/v4/core/to-json-schema.d.cts +42 -3
- package/node_modules/zod/v4/core/to-json-schema.d.ts +42 -3
- package/node_modules/zod/v4/core/to-json-schema.js +241 -39
- package/node_modules/zod/v4/core/util.cjs +212 -31
- package/node_modules/zod/v4/core/util.d.cts +58 -1
- package/node_modules/zod/v4/core/util.d.ts +58 -1
- package/node_modules/zod/v4/core/util.js +202 -30
- package/node_modules/zod/v4/core/versions.cjs +2 -2
- package/node_modules/zod/v4/core/versions.d.cts +1 -1
- package/node_modules/zod/v4/core/versions.d.ts +1 -1
- package/node_modules/zod/v4/core/versions.js +2 -2
- package/node_modules/zod/v4/core/visit.cjs +195 -0
- package/node_modules/zod/v4/core/visit.d.cts +30 -0
- package/node_modules/zod/v4/core/visit.d.ts +30 -0
- package/node_modules/zod/v4/core/visit.js +169 -0
- package/node_modules/zod/v4/index.cjs +15 -5
- package/node_modules/zod/v4/index.d.cts +2 -2
- package/node_modules/zod/v4/index.d.ts +2 -2
- package/node_modules/zod/v4/index.js +3 -2
- package/node_modules/zod/v4/locales/ar.cjs +3 -0
- package/node_modules/zod/v4/locales/ar.js +3 -0
- package/node_modules/zod/v4/locales/az.cjs +3 -0
- package/node_modules/zod/v4/locales/az.js +3 -0
- package/node_modules/zod/v4/locales/be.cjs +10 -0
- package/node_modules/zod/v4/locales/be.js +10 -0
- package/node_modules/zod/v4/locales/bg.cjs +3 -0
- package/node_modules/zod/v4/locales/bg.js +3 -0
- package/node_modules/zod/v4/locales/bn.cjs +138 -0
- package/node_modules/zod/v4/locales/bn.d.cts +5 -0
- package/node_modules/zod/v4/locales/bn.d.ts +4 -0
- package/node_modules/zod/v4/locales/bn.js +111 -0
- package/node_modules/zod/v4/locales/ca.cjs +3 -0
- package/node_modules/zod/v4/locales/ca.js +3 -0
- package/node_modules/zod/v4/locales/ckb.cjs +158 -0
- package/node_modules/zod/v4/locales/ckb.d.cts +5 -0
- package/node_modules/zod/v4/locales/ckb.d.ts +4 -0
- package/node_modules/zod/v4/locales/ckb.js +131 -0
- package/node_modules/zod/v4/locales/cs.cjs +3 -0
- package/node_modules/zod/v4/locales/cs.js +3 -0
- package/node_modules/zod/v4/locales/da.cjs +5 -2
- package/node_modules/zod/v4/locales/da.js +5 -2
- package/node_modules/zod/v4/locales/de.cjs +3 -0
- package/node_modules/zod/v4/locales/de.js +3 -0
- package/node_modules/zod/v4/locales/el.cjs +1 -0
- package/node_modules/zod/v4/locales/el.js +1 -0
- package/node_modules/zod/v4/locales/en.cjs +14 -4
- package/node_modules/zod/v4/locales/en.js +14 -4
- package/node_modules/zod/v4/locales/eo.cjs +3 -0
- package/node_modules/zod/v4/locales/eo.js +3 -0
- package/node_modules/zod/v4/locales/es.cjs +2 -0
- package/node_modules/zod/v4/locales/es.js +2 -0
- package/node_modules/zod/v4/locales/fa.cjs +3 -0
- package/node_modules/zod/v4/locales/fa.js +3 -0
- package/node_modules/zod/v4/locales/fi.cjs +3 -0
- package/node_modules/zod/v4/locales/fi.js +3 -0
- package/node_modules/zod/v4/locales/fr-CA.cjs +3 -0
- package/node_modules/zod/v4/locales/fr-CA.js +3 -0
- package/node_modules/zod/v4/locales/fr.cjs +16 -14
- package/node_modules/zod/v4/locales/fr.js +16 -14
- package/node_modules/zod/v4/locales/gu.cjs +138 -0
- package/node_modules/zod/v4/locales/gu.d.cts +5 -0
- package/node_modules/zod/v4/locales/gu.d.ts +4 -0
- package/node_modules/zod/v4/locales/gu.js +111 -0
- package/node_modules/zod/v4/locales/he.cjs +5 -0
- package/node_modules/zod/v4/locales/he.js +5 -0
- package/node_modules/zod/v4/locales/hi.cjs +136 -0
- package/node_modules/zod/v4/locales/hi.d.cts +5 -0
- package/node_modules/zod/v4/locales/hi.d.ts +4 -0
- package/node_modules/zod/v4/locales/hi.js +109 -0
- package/node_modules/zod/v4/locales/hr.cjs +2 -0
- package/node_modules/zod/v4/locales/hr.js +2 -0
- package/node_modules/zod/v4/locales/hu.cjs +3 -0
- package/node_modules/zod/v4/locales/hu.js +3 -0
- package/node_modules/zod/v4/locales/hy.cjs +9 -0
- package/node_modules/zod/v4/locales/hy.js +9 -0
- package/node_modules/zod/v4/locales/id.cjs +3 -0
- package/node_modules/zod/v4/locales/id.js +3 -0
- package/node_modules/zod/v4/locales/index.cjs +22 -2
- package/node_modules/zod/v4/locales/index.d.cts +10 -0
- package/node_modules/zod/v4/locales/index.d.ts +10 -0
- package/node_modules/zod/v4/locales/index.js +10 -0
- package/node_modules/zod/v4/locales/is.cjs +3 -0
- package/node_modules/zod/v4/locales/is.js +3 -0
- package/node_modules/zod/v4/locales/it.cjs +3 -0
- package/node_modules/zod/v4/locales/it.js +3 -0
- package/node_modules/zod/v4/locales/ja.cjs +3 -0
- package/node_modules/zod/v4/locales/ja.js +3 -0
- package/node_modules/zod/v4/locales/ka.cjs +3 -0
- package/node_modules/zod/v4/locales/ka.js +3 -0
- package/node_modules/zod/v4/locales/km.cjs +3 -0
- package/node_modules/zod/v4/locales/km.js +3 -0
- package/node_modules/zod/v4/locales/kn.cjs +141 -0
- package/node_modules/zod/v4/locales/kn.d.cts +5 -0
- package/node_modules/zod/v4/locales/kn.d.ts +4 -0
- package/node_modules/zod/v4/locales/kn.js +114 -0
- package/node_modules/zod/v4/locales/ko.cjs +3 -0
- package/node_modules/zod/v4/locales/ko.js +3 -0
- package/node_modules/zod/v4/locales/lt.cjs +2 -0
- package/node_modules/zod/v4/locales/lt.js +2 -0
- package/node_modules/zod/v4/locales/mk.cjs +3 -0
- package/node_modules/zod/v4/locales/mk.js +3 -0
- package/node_modules/zod/v4/locales/ms.cjs +3 -0
- package/node_modules/zod/v4/locales/ms.js +3 -0
- package/node_modules/zod/v4/locales/ne.cjs +136 -0
- package/node_modules/zod/v4/locales/ne.d.cts +5 -0
- package/node_modules/zod/v4/locales/ne.d.ts +4 -0
- package/node_modules/zod/v4/locales/ne.js +109 -0
- package/node_modules/zod/v4/locales/nl.cjs +3 -0
- package/node_modules/zod/v4/locales/nl.js +3 -0
- package/node_modules/zod/v4/locales/nn.cjs +138 -0
- package/node_modules/zod/v4/locales/nn.d.cts +5 -0
- package/node_modules/zod/v4/locales/nn.d.ts +4 -0
- package/node_modules/zod/v4/locales/nn.js +111 -0
- package/node_modules/zod/v4/locales/no.cjs +5 -2
- package/node_modules/zod/v4/locales/no.js +5 -2
- package/node_modules/zod/v4/locales/ota.cjs +3 -0
- package/node_modules/zod/v4/locales/ota.js +3 -0
- package/node_modules/zod/v4/locales/pl.cjs +3 -0
- package/node_modules/zod/v4/locales/pl.js +3 -0
- package/node_modules/zod/v4/locales/ps.cjs +3 -0
- package/node_modules/zod/v4/locales/ps.js +3 -0
- package/node_modules/zod/v4/locales/pt-BR.cjs +168 -0
- package/node_modules/zod/v4/locales/pt-BR.d.cts +5 -0
- package/node_modules/zod/v4/locales/pt-BR.d.ts +4 -0
- package/node_modules/zod/v4/locales/pt-BR.js +141 -0
- package/node_modules/zod/v4/locales/pt.cjs +87 -55
- package/node_modules/zod/v4/locales/pt.js +87 -55
- package/node_modules/zod/v4/locales/ro.cjs +1 -0
- package/node_modules/zod/v4/locales/ro.js +1 -0
- package/node_modules/zod/v4/locales/ru.cjs +10 -0
- package/node_modules/zod/v4/locales/ru.js +10 -0
- package/node_modules/zod/v4/locales/sk.cjs +141 -0
- package/node_modules/zod/v4/locales/sk.d.cts +5 -0
- package/node_modules/zod/v4/locales/sk.d.ts +4 -0
- package/node_modules/zod/v4/locales/sk.js +114 -0
- package/node_modules/zod/v4/locales/sl.cjs +3 -0
- package/node_modules/zod/v4/locales/sl.js +3 -0
- package/node_modules/zod/v4/locales/sv.cjs +5 -2
- package/node_modules/zod/v4/locales/sv.js +5 -2
- package/node_modules/zod/v4/locales/ta.cjs +3 -0
- package/node_modules/zod/v4/locales/ta.js +3 -0
- package/node_modules/zod/v4/locales/th.cjs +3 -0
- package/node_modules/zod/v4/locales/th.js +3 -0
- package/node_modules/zod/v4/locales/tk.cjs +132 -0
- package/node_modules/zod/v4/locales/tk.d.cts +5 -0
- package/node_modules/zod/v4/locales/tk.d.ts +4 -0
- package/node_modules/zod/v4/locales/tk.js +105 -0
- package/node_modules/zod/v4/locales/tr.cjs +3 -0
- package/node_modules/zod/v4/locales/tr.js +3 -0
- package/node_modules/zod/v4/locales/uk.cjs +3 -0
- package/node_modules/zod/v4/locales/uk.js +3 -0
- package/node_modules/zod/v4/locales/ur.cjs +3 -0
- package/node_modules/zod/v4/locales/ur.js +3 -0
- package/node_modules/zod/v4/locales/uz.cjs +1 -0
- package/node_modules/zod/v4/locales/uz.js +1 -0
- package/node_modules/zod/v4/locales/vi.cjs +3 -0
- package/node_modules/zod/v4/locales/vi.js +3 -0
- package/node_modules/zod/v4/locales/yo.cjs +3 -0
- package/node_modules/zod/v4/locales/yo.js +3 -0
- package/node_modules/zod/v4/locales/zh-CN.cjs +3 -0
- package/node_modules/zod/v4/locales/zh-CN.js +3 -0
- package/node_modules/zod/v4/locales/zh-TW.cjs +3 -0
- package/node_modules/zod/v4/locales/zh-TW.js +3 -0
- package/node_modules/zod/v4/mini/checks.cjs +2 -1
- package/node_modules/zod/v4/mini/checks.d.cts +1 -1
- package/node_modules/zod/v4/mini/checks.d.ts +1 -1
- package/node_modules/zod/v4/mini/checks.js +1 -1
- package/node_modules/zod/v4/mini/deep-partial.cjs +39 -0
- package/node_modules/zod/v4/mini/deep-partial.d.cts +14 -0
- package/node_modules/zod/v4/mini/deep-partial.d.ts +14 -0
- package/node_modules/zod/v4/mini/deep-partial.js +13 -0
- package/node_modules/zod/v4/mini/external.cjs +12 -1
- package/node_modules/zod/v4/mini/external.d.cts +5 -2
- package/node_modules/zod/v4/mini/external.d.ts +5 -2
- package/node_modules/zod/v4/mini/external.js +3 -1
- package/node_modules/zod/v4/mini/in-out.cjs +63 -0
- package/node_modules/zod/v4/mini/in-out.d.cts +8 -0
- package/node_modules/zod/v4/mini/in-out.d.ts +8 -0
- package/node_modules/zod/v4/mini/in-out.js +36 -0
- package/node_modules/zod/v4/mini/parse.cjs +3 -1
- package/node_modules/zod/v4/mini/parse.d.cts +1 -1
- package/node_modules/zod/v4/mini/parse.d.ts +1 -1
- package/node_modules/zod/v4/mini/parse.js +1 -1
- package/node_modules/zod/v4/mini/schemas.cjs +75 -47
- package/node_modules/zod/v4/mini/schemas.d.cts +43 -13
- package/node_modules/zod/v4/mini/schemas.d.ts +43 -13
- package/node_modules/zod/v4/mini/schemas.js +71 -45
- package/openclaw.plugin.json +15 -0
- package/package.json +10 -8
- package/node_modules/@pierre/diffs/dist/editor/stateStorage.d.ts +0 -15
- package/node_modules/@pierre/diffs/dist/editor/stateStorage.d.ts.map +0 -1
- package/node_modules/@pierre/diffs/dist/editor/stateStorage.js +0 -65
- package/node_modules/@pierre/diffs/dist/editor/stateStorage.js.map +0 -1
- package/node_modules/playwright-core/lib/vite/dashboard/assets/index-CyWAfh-p.js +0 -11
- package/node_modules/playwright-core/lib/vite/dashboard/assets/index-DhC616m4.css +0 -1
- package/node_modules/playwright-core/lib/vite/recorder/assets/index-DYjdXIbE.js +0 -129
- package/node_modules/playwright-core/lib/vite/recorder/assets/index-l_lX622x.css +0 -1
- package/node_modules/playwright-core/lib/vite/traceViewer/assets/defaultSettingsView-B-dXF5JN.js +0 -181
- package/node_modules/playwright-core/lib/vite/traceViewer/defaultSettingsView.BLFoOugd.css +0 -1
- package/node_modules/playwright-core/lib/vite/traceViewer/index.KZ4wOW1K.js +0 -1
- package/node_modules/playwright-core/lib/vite/traceViewer/uiMode.Dzuouizj.js +0 -5
- package/node_modules/zod/src/v4/core/config.ts +0 -15
- /package/dist/{viewer-assets-D3qrnaxI.js → .setup/viewer-assets-D3qrnaxI.mjs} +0 -0
|
@@ -1,42 +1,53 @@
|
|
|
1
|
-
import { CodeViewItem, CodeViewScrollTarget, DiffLineAnnotation,
|
|
1
|
+
import { CodeViewItem, CodeViewScrollTarget, DiffLineAnnotation, LineAnnotation } from "../types.js";
|
|
2
|
+
import { EditorChangeEvent, EditorType } from "../editor/types.js";
|
|
2
3
|
import { GetHoveredLineResult } from "../managers/InteractionManager.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
4
|
+
import { Editor, EditorOptions } from "../editor/editor.js";
|
|
5
|
+
import { CodeView as CodeView$1, CodeViewItemEditCompleteHandler, CodeViewLineSelection, CodeViewOptions } from "../components/CodeView.js";
|
|
5
6
|
import { CSSProperties, ReactNode, Ref } from "react";
|
|
6
7
|
|
|
7
8
|
//#region src/react/CodeView.d.ts
|
|
8
9
|
type CodeViewGutterUtilityGetter = (() => GetHoveredLineResult<'file'> | undefined) | (() => GetHoveredLineResult<'diff'> | undefined);
|
|
9
|
-
type CodeViewReactOptions<LAnnotation
|
|
10
|
-
interface CodeViewBaseProps<LAnnotation> {
|
|
11
|
-
options?: CodeViewReactOptions<LAnnotation>;
|
|
10
|
+
type CodeViewReactOptions<LAnnotation, Caret> = Omit<CodeViewOptions<LAnnotation, Caret>, 'controlledSelection' | 'createEditor' | 'onSelectedLinesChange'>;
|
|
11
|
+
interface CodeViewBaseProps<LAnnotation, Caret> {
|
|
12
|
+
options?: CodeViewReactOptions<LAnnotation, Caret>;
|
|
12
13
|
/**
|
|
13
14
|
* Creation-time options passed to the nearest EditProvider factory.
|
|
14
15
|
* CodeView supplies its item-specific change callback.
|
|
15
16
|
*/
|
|
16
|
-
editorOptions?: Omit<EditorOptions<LAnnotation>, 'onChange'>;
|
|
17
|
+
editorOptions?: Omit<EditorOptions<EditorType, LAnnotation, Caret>, 'onChange'>;
|
|
18
|
+
/** Resolve an in-memory retention key for an item's draft and undo history. */
|
|
19
|
+
getEditStateKey?(item: CodeViewItem<LAnnotation>): string | undefined;
|
|
17
20
|
className?: string;
|
|
18
21
|
style?: CSSProperties;
|
|
19
22
|
containerRef?: Ref<HTMLDivElement>;
|
|
20
23
|
disableWorkerPool?: boolean;
|
|
21
24
|
selectedLines?: CodeViewLineSelection | null;
|
|
22
25
|
onSelectedLinesChange?(selection: CodeViewLineSelection | null): void;
|
|
23
|
-
onScroll?(scrollTop: number, viewer: CodeView$1<LAnnotation>): void;
|
|
26
|
+
onScroll?(scrollTop: number, viewer: CodeView$1<LAnnotation, Caret>): void;
|
|
24
27
|
/** Render a non-virtualized node at the very start of the scroll content,
|
|
25
28
|
* before the first item. Always rendered; scrolls with the content. */
|
|
26
29
|
renderCodeViewHeader?(): ReactNode;
|
|
27
30
|
/** Render a non-virtualized node at the very end of the scroll content, after
|
|
28
31
|
* the last item. Always rendered; scrolls with the content. */
|
|
29
32
|
renderCodeViewFooter?(): ReactNode;
|
|
30
|
-
/** Called with the owning item on every edited-document change. */
|
|
31
|
-
onItemEditChange?(item: CodeViewItem<LAnnotation>, file: FileContents, lineAnnotations?: LineAnnotation<LAnnotation>[] | DiffLineAnnotation<LAnnotation>[]): void;
|
|
32
33
|
/**
|
|
33
|
-
* Called
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* item write carrying the new file/fileDiff (with a fresh `cacheKey`,
|
|
37
|
-
* since the contents changed) along with `edit: false`.
|
|
34
|
+
* Called with the editor's `EditorChangeEvent` and the owning item on every
|
|
35
|
+
* document change. Do not feed it directly back into the controlled item,
|
|
36
|
+
* which can create update loops.
|
|
38
37
|
*/
|
|
39
|
-
|
|
38
|
+
onItemEditChange?(event: EditorChangeEvent<EditorType, LAnnotation, Caret>, item: CodeViewItem<LAnnotation>): void;
|
|
39
|
+
/**
|
|
40
|
+
* Called once when an edit session ends: edit turned off, the item removed,
|
|
41
|
+
* or the CodeView unmounted (where the result is not installed). Collapse
|
|
42
|
+
* suspends the session instead of completing it. `nextItem` is the accepted
|
|
43
|
+
* replacement CodeView built from `item`: the event's completed
|
|
44
|
+
* `file`/`fileDiff` and annotations, `edit: false`, and a bumped `version`.
|
|
45
|
+
* Return `'accept'` to install the edit — CodeView applies `nextItem` through
|
|
46
|
+
* the item update path when the item still exists, and a controlled owner
|
|
47
|
+
* puts the same `nextItem` into its state — or `'reject'` to revert. The event
|
|
48
|
+
* is frozen; re-key the accepted value in place before accepting.
|
|
49
|
+
*/
|
|
50
|
+
onItemEditComplete?: CodeViewItemEditCompleteHandler<LAnnotation, Caret>;
|
|
40
51
|
renderCustomHeader?(item: CodeViewItem<LAnnotation>): ReactNode;
|
|
41
52
|
renderHeaderPrefix?(item: CodeViewItem<LAnnotation>): ReactNode;
|
|
42
53
|
renderHeaderFilenameSuffix?(item: CodeViewItem<LAnnotation>): ReactNode;
|
|
@@ -44,16 +55,16 @@ interface CodeViewBaseProps<LAnnotation> {
|
|
|
44
55
|
renderAnnotation?(annotation: LineAnnotation<LAnnotation> | DiffLineAnnotation<LAnnotation>, item: CodeViewItem<LAnnotation>): ReactNode;
|
|
45
56
|
renderGutterUtility?(getHoveredLine: CodeViewGutterUtilityGetter, item: CodeViewItem<LAnnotation>): ReactNode;
|
|
46
57
|
}
|
|
47
|
-
interface ControlledCodeViewProps<LAnnotation> extends CodeViewBaseProps<LAnnotation> {
|
|
58
|
+
interface ControlledCodeViewProps<LAnnotation, Caret> extends CodeViewBaseProps<LAnnotation, Caret> {
|
|
48
59
|
items: readonly CodeViewItem<LAnnotation>[];
|
|
49
60
|
initialItems?: never;
|
|
50
61
|
}
|
|
51
|
-
interface UncontrolledCodeViewProps<LAnnotation> extends CodeViewBaseProps<LAnnotation> {
|
|
62
|
+
interface UncontrolledCodeViewProps<LAnnotation, Caret> extends CodeViewBaseProps<LAnnotation, Caret> {
|
|
52
63
|
initialItems?: readonly CodeViewItem<LAnnotation>[];
|
|
53
64
|
items?: never;
|
|
54
65
|
}
|
|
55
|
-
type CodeViewProps<LAnnotation
|
|
56
|
-
interface CodeViewHandle<LAnnotation> {
|
|
66
|
+
type CodeViewProps<LAnnotation, Caret> = ControlledCodeViewProps<LAnnotation, Caret> | UncontrolledCodeViewProps<LAnnotation, Caret>;
|
|
67
|
+
interface CodeViewHandle<LAnnotation, Caret> {
|
|
57
68
|
addItems(items: readonly CodeViewItem<LAnnotation>[]): void;
|
|
58
69
|
getItem(id: string): CodeViewItem<LAnnotation> | undefined;
|
|
59
70
|
removeItem(id: string): boolean;
|
|
@@ -63,13 +74,13 @@ interface CodeViewHandle<LAnnotation> {
|
|
|
63
74
|
setSelectedLines(selection: CodeViewLineSelection | null): void;
|
|
64
75
|
getSelectedLines(): CodeViewLineSelection | null;
|
|
65
76
|
clearSelectedLines(): void;
|
|
66
|
-
getEditor(id: string):
|
|
67
|
-
getInstance(): CodeView$1<LAnnotation> | undefined;
|
|
77
|
+
getEditor(id: string): Editor<'file', LAnnotation, Caret> | Editor<'file-diff', LAnnotation, Caret> | undefined;
|
|
78
|
+
getInstance(): CodeView$1<LAnnotation, Caret> | undefined;
|
|
68
79
|
}
|
|
69
|
-
type CodeViewComponent = <LAnnotation = undefined>(props: CodeViewProps<LAnnotation> & {
|
|
70
|
-
ref?: React.Ref<CodeViewHandle<LAnnotation>>;
|
|
80
|
+
type CodeViewComponent = <LAnnotation = undefined, Caret = undefined>(props: CodeViewProps<LAnnotation, Caret> & {
|
|
81
|
+
ref?: React.Ref<CodeViewHandle<LAnnotation, Caret>>;
|
|
71
82
|
}) => React.JSX.Element;
|
|
72
83
|
declare const CodeView: CodeViewComponent;
|
|
73
84
|
//#endregion
|
|
74
|
-
export { CodeView, CodeViewHandle, CodeViewProps, CodeViewReactOptions, ControlledCodeViewProps, UncontrolledCodeViewProps };
|
|
85
|
+
export { CodeView, CodeViewHandle, type CodeViewItemEditCompleteHandler, CodeViewProps, CodeViewReactOptions, ControlledCodeViewProps, UncontrolledCodeViewProps };
|
|
75
86
|
//# sourceMappingURL=CodeView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeView.d.ts","names":[],"sources":["../../src/react/CodeView.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"CodeView.d.ts","names":[],"sources":["../../src/react/CodeView.tsx"],"mappings":";;;;;;;;KAwDK,2BAAA,UACM,oBAAA,+BACA,oBAAoB;AAAA,KAEnB,oBAAA,uBAA2C,IAAA,CACrD,eAAA,CAAgB,WAAA,EAAa,KAAA;AAAA,UAIrB,iBAAA;EACR,OAAA,GAAU,oBAAA,CAAqB,WAAA,EAAa,KAAA;;;AAfE;;EAoB9C,aAAA,GAAgB,IAAA,CACd,aAAA,CAAc,UAAA,EAAY,WAAA,EAAa,KAAA;EAfhC;EAmBT,eAAA,EAAiB,IAAA,EAAM,YAAA,CAAa,WAAA;EACpC,SAAA;EACA,KAAA,GAAQ,aAAA;EACR,YAAA,GAAe,GAAA,CAAI,cAAA;EACnB,iBAAA;EACA,aAAA,GAAgB,qBAAA;EAChB,qBAAA,EAAuB,SAAA,EAAW,qBAAA;EAClC,QAAA,EAAU,SAAA,UAAmB,MAAA,EAAQ,UAAA,CAAc,WAAA,EAAa,KAAA;EAvBP;;EA0BzD,oBAAA,KAAyB,SAAA;EA1BmB;;EA6B5C,oBAAA,KAAyB,SAAA;EA5BT;;;AAAkB;AAElC;EAgCA,gBAAA,EACE,KAAA,EAAO,iBAAA,CAAkB,UAAA,EAAY,WAAA,EAAa,KAAA,GAClD,IAAA,EAAM,YAAA,CAAa,WAAA;EAhCI;;;;;;;;;;;EA6CzB,kBAAA,GAAqB,+BAAA,CAAgC,WAAA,EAAa,KAAA;EAClE,kBAAA,EAAoB,IAAA,EAAM,YAAA,CAAa,WAAA,IAAe,SAAA;EACtD,kBAAA,EAAoB,IAAA,EAAM,YAAA,CAAa,WAAA,IAAe,SAAA;EACtD,0BAAA,EAA4B,IAAA,EAAM,YAAA,CAAa,WAAA,IAAe,SAAA;EAC9D,oBAAA,EAAsB,IAAA,EAAM,YAAA,CAAa,WAAA,IAAe,SAAA;EACxD,gBAAA,EACE,UAAA,EAAY,cAAA,CAAe,WAAA,IAAe,kBAAA,CAAmB,WAAA,GAC7D,IAAA,EAAM,YAAA,CAAa,WAAA,IAClB,SAAA;EACH,mBAAA,EACE,cAAA,EAAgB,2BAAA,EAChB,IAAA,EAAM,YAAA,CAAa,WAAA,IAClB,SAAA;AAAA;AAAA,UAGY,uBAAA,6BAGP,iBAAA,CAAkB,WAAA,EAAa,KAAA;EACvC,KAAA,WAAgB,YAAA,CAAa,WAAA;EAC7B,YAAA;AAAA;AAAA,UAGe,yBAAA,6BAGP,iBAAA,CAAkB,WAAA,EAAa,KAAA;EAGvC,YAAA,YAAwB,YAAA,CAAa,WAAA;EACrC,KAAA;AAAA;AAAA,KAGU,aAAA,uBACR,uBAAA,CAAwB,WAAA,EAAa,KAAA,IACrC,yBAAA,CAA0B,WAAA,EAAa,KAAA;AAAA,UAE1B,cAAA;EACf,QAAA,CAAS,KAAA,WAAgB,YAAA,CAAa,WAAA;EACtC,OAAA,CAAQ,EAAA,WAAa,YAAA,CAAa,WAAA;EAClC,UAAA,CAAW,EAAA;EACX,UAAA,CAAW,IAAA,EAAM,YAAA,CAAa,WAAA;EAC9B,YAAA,CAAa,KAAA,UAAe,KAAA;EAC5B,QAAA,CAAS,MAAA,EAAQ,oBAAA;EACjB,gBAAA,CAAiB,SAAA,EAAW,qBAAA;EAC5B,gBAAA,IAAoB,qBAAA;EACpB,kBAAA;EACA,SAAA,CACE,EAAA,WAEE,MAAA,SAAe,WAAA,EAAa,KAAA,IAC5B,MAAA,cAAoB,WAAA,EAAa,KAAA;EAErC,WAAA,IAAe,UAAA,CAAc,WAAA,EAAa,KAAA;AAAA;AAAA,KAGvC,iBAAA,gDACH,KAAA,EAAO,aAAA,CAAc,WAAA,EAAa,KAAA;EAChC,GAAA,GAAM,KAAA,CAAM,GAAA,CAAI,cAAA,CAAe,WAAA,EAAa,KAAA;AAAA,MAE3C,KAAA,CAAM,GAAA,CAAI,OAAA;AAAA,cAueF,QAAA,EAAwC,iBAAiB"}
|
|
@@ -23,7 +23,7 @@ function createDefaultCache(controlled) {
|
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
25
|
function CodeViewInner(props, ref) {
|
|
26
|
-
const { className, containerRef, disableWorkerPool = false, editorOptions, initialItems, items: controlledItems, onItemEditChange, onItemEditComplete, onScroll, onSelectedLinesChange, options, renderAnnotation, renderCodeViewFooter, renderCodeViewHeader, renderCustomHeader, renderGutterUtility, renderHeaderFilenameSuffix, renderHeaderMetadata, renderHeaderPrefix, selectedLines, style } = props;
|
|
26
|
+
const { className, containerRef, disableWorkerPool = false, editorOptions, getEditStateKey, initialItems, items: controlledItems, onItemEditChange, onItemEditComplete, onScroll, onSelectedLinesChange, options, renderAnnotation, renderCodeViewFooter, renderCodeViewHeader, renderCustomHeader, renderGutterUtility, renderHeaderFilenameSuffix, renderHeaderMetadata, renderHeaderPrefix, selectedLines, style } = props;
|
|
27
27
|
const controlled = controlledItems !== void 0;
|
|
28
28
|
const contextCreateEditor = useCreateEditor();
|
|
29
29
|
const poolManager = useContext(WorkerPoolContext);
|
|
@@ -39,21 +39,17 @@ function CodeViewInner(props, ref) {
|
|
|
39
39
|
onSelectedLinesChange?.(selection);
|
|
40
40
|
});
|
|
41
41
|
const controlledSelection = selectedLines !== void 0;
|
|
42
|
-
const createEditor = useStableCallback((options) => {
|
|
42
|
+
const createEditor = useStableCallback((editorType, options, editStateKey) => {
|
|
43
43
|
if (contextCreateEditor == null) throw new Error("CodeView: EditContext is not attached");
|
|
44
|
-
|
|
44
|
+
return contextCreateEditor(editorType, {
|
|
45
45
|
...editorOptions,
|
|
46
46
|
...options
|
|
47
|
-
});
|
|
48
|
-
if (editor == null) throw new Error("CodeView: EditProvider.createEditor must return an editor instance");
|
|
49
|
-
return editor;
|
|
50
|
-
});
|
|
51
|
-
const emitItemEditChange = useStableCallback((item, file, lineAnnotations) => {
|
|
52
|
-
onItemEditChange?.(item, file, lineAnnotations);
|
|
47
|
+
}, editStateKey);
|
|
53
48
|
});
|
|
54
|
-
const
|
|
55
|
-
|
|
49
|
+
const emitItemEditChange = useStableCallback((event, item) => {
|
|
50
|
+
onItemEditChange?.(event, item);
|
|
56
51
|
});
|
|
52
|
+
const emitItemEditComplete = useStableCallback((event, item, nextItem) => onItemEditComplete?.(event, item, nextItem) ?? "reject");
|
|
57
53
|
const managedOptions = useMemo(() => createManagedCodeViewOptions({
|
|
58
54
|
options,
|
|
59
55
|
hasCustomHeader,
|
|
@@ -62,6 +58,7 @@ function CodeViewInner(props, ref) {
|
|
|
62
58
|
hasCodeViewFooter,
|
|
63
59
|
onSelectedLinesChange: onSelectedLinesChange != null ? emitSelectedLinesChange : void 0,
|
|
64
60
|
controlledSelection,
|
|
61
|
+
getEditStateKey,
|
|
65
62
|
createEditor: contextCreateEditor != null ? createEditor : void 0,
|
|
66
63
|
onItemEditChange: onItemEditChange != null ? emitItemEditChange : void 0,
|
|
67
64
|
onItemEditComplete: onItemEditComplete != null ? emitItemEditComplete : void 0
|
|
@@ -76,6 +73,7 @@ function CodeViewInner(props, ref) {
|
|
|
76
73
|
hasCodeViewHeader,
|
|
77
74
|
hasCustomHeader,
|
|
78
75
|
hasGutterRenderer,
|
|
76
|
+
getEditStateKey,
|
|
79
77
|
onItemEditChange,
|
|
80
78
|
onItemEditComplete,
|
|
81
79
|
onSelectedLinesChange,
|
|
@@ -301,13 +299,14 @@ function createSlotContentStore() {
|
|
|
301
299
|
}
|
|
302
300
|
};
|
|
303
301
|
}
|
|
304
|
-
function createManagedCodeViewOptions({ options, hasCustomHeader, hasGutterRenderer, hasCodeViewHeader, hasCodeViewFooter, onSelectedLinesChange, controlledSelection, createEditor, onItemEditChange, onItemEditComplete }) {
|
|
302
|
+
function createManagedCodeViewOptions({ options, hasCustomHeader, hasGutterRenderer, hasCodeViewHeader, hasCodeViewFooter, onSelectedLinesChange, controlledSelection, getEditStateKey, createEditor, onItemEditChange, onItemEditComplete }) {
|
|
305
303
|
const managedOptions = {
|
|
306
304
|
...options,
|
|
307
305
|
controlledSelection,
|
|
308
306
|
onSelectedLinesChange,
|
|
309
307
|
createEditor
|
|
310
308
|
};
|
|
309
|
+
if (getEditStateKey != null) managedOptions.getEditStateKey = getEditStateKey;
|
|
311
310
|
if (onItemEditChange != null) managedOptions.onItemEditChange = onItemEditChange;
|
|
312
311
|
if (onItemEditComplete != null) managedOptions.onItemEditComplete = onItemEditComplete;
|
|
313
312
|
if (hasCustomHeader) managedOptions.renderCustomHeader = noopRender;
|
|
@@ -363,7 +362,8 @@ function renderCodeViewItemChildren({ renderedItem, renderCustomHeader, renderHe
|
|
|
363
362
|
renderAnnotation: renderAnnotation != null ? (annotation) => renderAnnotation(annotation, item) : void 0,
|
|
364
363
|
lineAnnotations: item.annotations,
|
|
365
364
|
renderGutterUtility: renderGutterUtility != null ? (getHoveredLine) => renderGutterUtility(getHoveredLine, item) : void 0,
|
|
366
|
-
getHoveredLine: instance.getHoveredLine
|
|
365
|
+
getHoveredLine: instance.getHoveredLine,
|
|
366
|
+
getAnnotationSlotName: instance.getAnnotationSlotName
|
|
367
367
|
});
|
|
368
368
|
} else {
|
|
369
369
|
const { item, instance } = renderedItem;
|
|
@@ -376,7 +376,8 @@ function renderCodeViewItemChildren({ renderedItem, renderCustomHeader, renderHe
|
|
|
376
376
|
renderAnnotation: renderAnnotation != null ? (annotation) => renderAnnotation(annotation, item) : void 0,
|
|
377
377
|
lineAnnotations: item.annotations,
|
|
378
378
|
renderGutterUtility: renderGutterUtility != null ? (getHoveredLine) => renderGutterUtility(getHoveredLine, item) : void 0,
|
|
379
|
-
getHoveredLine: instance.getHoveredLine
|
|
379
|
+
getHoveredLine: instance.getHoveredLine,
|
|
380
|
+
getAnnotationSlotName: instance.getAnnotationSlotName
|
|
380
381
|
});
|
|
381
382
|
}
|
|
382
383
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeView.js","names":["CodeViewClass"],"sources":["../../src/react/CodeView.tsx"],"sourcesContent":["'use client';\n\nimport {\n type CSSProperties,\n forwardRef,\n memo,\n type ReactNode,\n type Ref,\n useContext,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n useSyncExternalStore,\n} from 'react';\nimport { createPortal, flushSync } from 'react-dom';\n\nimport type { EditorOptions } from '../edit';\nimport {\n areOptionsEqual,\n CodeView as CodeViewClass,\n type CodeViewCoordinator,\n type CodeViewCreateEditorOptions,\n type CodeViewItem,\n type CodeViewLineSelection,\n type CodeViewOptions,\n type CodeViewRenderedItem,\n type CodeViewScrollTarget,\n type CodeViewSlotSnapshot,\n type DiffLineAnnotation,\n type DiffsEditor,\n type FileContents,\n type GetHoveredLineResult,\n type LineAnnotation,\n} from '../index';\nimport { areManagedSnapshotsEqual } from '../utils/areManagedSnapshotsEqual';\nimport { useCreateEditor } from './EditContext';\nimport { renderDiffChildren } from './utils/renderDiffChildren';\nimport { renderFileChildren } from './utils/renderFileChildren';\nimport { useStableCallback } from './utils/useStableCallback';\nimport { WorkerPoolContext } from './WorkerPoolContext';\n\nconst useIsomorphicLayoutEffect =\n typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\ntype CodeViewGutterUtilityGetter =\n | (() => GetHoveredLineResult<'file'> | undefined)\n | (() => GetHoveredLineResult<'diff'> | undefined);\n\nexport type CodeViewReactOptions<LAnnotation = undefined> = Omit<\n CodeViewOptions<LAnnotation>,\n 'controlledSelection' | 'createEditor' | 'onSelectedLinesChange'\n>;\n\ninterface CodeViewBaseProps<LAnnotation> {\n options?: CodeViewReactOptions<LAnnotation>;\n /**\n * Creation-time options passed to the nearest EditProvider factory.\n * CodeView supplies its item-specific change callback.\n */\n editorOptions?: Omit<EditorOptions<LAnnotation>, 'onChange'>;\n className?: string;\n style?: CSSProperties;\n containerRef?: Ref<HTMLDivElement>;\n disableWorkerPool?: boolean;\n selectedLines?: CodeViewLineSelection | null;\n onSelectedLinesChange?(selection: CodeViewLineSelection | null): void;\n onScroll?(scrollTop: number, viewer: CodeViewClass<LAnnotation>): void;\n /** Render a non-virtualized node at the very start of the scroll content,\n * before the first item. Always rendered; scrolls with the content. */\n renderCodeViewHeader?(): ReactNode;\n /** Render a non-virtualized node at the very end of the scroll content, after\n * the last item. Always rendered; scrolls with the content. */\n renderCodeViewFooter?(): ReactNode;\n /** Called with the owning item on every edited-document change. */\n onItemEditChange?(\n item: CodeViewItem<LAnnotation>,\n file: FileContents,\n lineAnnotations?:\n | LineAnnotation<LAnnotation>[]\n | DiffLineAnnotation<LAnnotation>[]\n ): void;\n /**\n * Called once with the final contents when an item's edit session ends\n * (edit turned off, item removed or collapsed). Not called for sessions\n * that produced no changes. Committing is user-space: make one combined\n * item write carrying the new file/fileDiff (with a fresh `cacheKey`,\n * since the contents changed) along with `edit: false`.\n */\n onItemEditComplete?(\n item: CodeViewItem<LAnnotation>,\n file: FileContents,\n lineAnnotations?:\n | LineAnnotation<LAnnotation>[]\n | DiffLineAnnotation<LAnnotation>[]\n ): void;\n renderCustomHeader?(item: CodeViewItem<LAnnotation>): ReactNode;\n renderHeaderPrefix?(item: CodeViewItem<LAnnotation>): ReactNode;\n renderHeaderFilenameSuffix?(item: CodeViewItem<LAnnotation>): ReactNode;\n renderHeaderMetadata?(item: CodeViewItem<LAnnotation>): ReactNode;\n renderAnnotation?(\n annotation: LineAnnotation<LAnnotation> | DiffLineAnnotation<LAnnotation>,\n item: CodeViewItem<LAnnotation>\n ): ReactNode;\n renderGutterUtility?(\n getHoveredLine: CodeViewGutterUtilityGetter,\n item: CodeViewItem<LAnnotation>\n ): ReactNode;\n}\n\nexport interface ControlledCodeViewProps<\n LAnnotation,\n> extends CodeViewBaseProps<LAnnotation> {\n items: readonly CodeViewItem<LAnnotation>[];\n initialItems?: never;\n}\n\nexport interface UncontrolledCodeViewProps<\n LAnnotation,\n> extends CodeViewBaseProps<LAnnotation> {\n // Seeds the imperative CodeView instance once. Later item changes should go\n // through the ref API instead of being reconciled from React props.\n initialItems?: readonly CodeViewItem<LAnnotation>[];\n items?: never;\n}\n\nexport type CodeViewProps<LAnnotation = undefined> =\n | ControlledCodeViewProps<LAnnotation>\n | UncontrolledCodeViewProps<LAnnotation>;\n\nexport interface CodeViewHandle<LAnnotation> {\n addItems(items: readonly CodeViewItem<LAnnotation>[]): void;\n getItem(id: string): CodeViewItem<LAnnotation> | undefined;\n removeItem(id: string): boolean;\n updateItem(item: CodeViewItem<LAnnotation>): boolean;\n updateItemId(oldId: string, newId: string): boolean;\n scrollTo(target: CodeViewScrollTarget): void;\n setSelectedLines(selection: CodeViewLineSelection | null): void;\n getSelectedLines(): CodeViewLineSelection | null;\n clearSelectedLines(): void;\n getEditor(id: string): DiffsEditor<LAnnotation> | undefined;\n getInstance(): CodeViewClass<LAnnotation> | undefined;\n}\n\ntype CodeViewComponent = <LAnnotation = undefined>(\n props: CodeViewProps<LAnnotation> & {\n ref?: React.Ref<CodeViewHandle<LAnnotation>>;\n }\n) => React.JSX.Element;\n\ntype SlotPortalsComponent = <LAnnotation = undefined>(\n props: SlotPortalsProps<LAnnotation>\n) => React.JSX.Element;\n\ninterface ManagedContentStore<LAnnotation> {\n getSnapshot(): CodeViewSlotSnapshot<LAnnotation> | undefined;\n publish(snapshot: CodeViewSlotSnapshot<LAnnotation> | undefined): void;\n subscribe(listener: () => void): () => void;\n}\n\ninterface CachedDataRef<LAnnotation> {\n instance: CodeViewClass<LAnnotation> | undefined;\n items: readonly CodeViewItem<LAnnotation>[] | undefined;\n controlled: boolean;\n managedOptions: CodeViewOptions<LAnnotation> | undefined;\n disableFlushSync: boolean;\n slotCoordinator: CodeViewCoordinator<LAnnotation> | undefined;\n}\n\nfunction createDefaultCache<LAnnotation>(\n controlled: boolean\n): CachedDataRef<LAnnotation> {\n return {\n instance: undefined,\n items: undefined,\n controlled,\n managedOptions: undefined,\n disableFlushSync: false,\n slotCoordinator: undefined,\n };\n}\n\nfunction CodeViewInner<LAnnotation = undefined>(\n props: CodeViewProps<LAnnotation>,\n ref: React.ForwardedRef<CodeViewHandle<LAnnotation>>\n): React.JSX.Element {\n const {\n className,\n containerRef,\n disableWorkerPool = false,\n editorOptions,\n initialItems,\n items: controlledItems,\n onItemEditChange,\n onItemEditComplete,\n onScroll,\n onSelectedLinesChange,\n options,\n renderAnnotation,\n renderCodeViewFooter,\n renderCodeViewHeader,\n renderCustomHeader,\n renderGutterUtility,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n renderHeaderPrefix,\n selectedLines,\n style,\n } = props;\n const controlled = controlledItems !== undefined;\n const contextCreateEditor = useCreateEditor<LAnnotation>();\n const poolManager = useContext(WorkerPoolContext);\n const cachedDataRef = useRef<CachedDataRef<LAnnotation>>(\n createDefaultCache<LAnnotation>(controlled)\n );\n const hasCustomHeader = renderCustomHeader != null;\n const hasAnnotationRenderer = renderAnnotation != null;\n const hasGutterRenderer = renderGutterUtility != null;\n const hasHeaderRenderers =\n hasCustomHeader ||\n renderHeaderPrefix != null ||\n renderHeaderFilenameSuffix != null ||\n renderHeaderMetadata != null;\n const hasRenderers =\n hasHeaderRenderers || hasAnnotationRenderer || hasGutterRenderer;\n const hasCodeViewHeader = renderCodeViewHeader != null;\n const hasCodeViewFooter = renderCodeViewFooter != null;\n const emitSelectedLinesChange = useStableCallback(\n (selection: CodeViewLineSelection | null) => {\n onSelectedLinesChange?.(selection);\n }\n );\n const controlledSelection = selectedLines !== undefined;\n\n // Keep the adapter stable so provider and editor-option changes affect the\n // next item edit session without forcing CodeView to reconcile active editors.\n const createEditor = useStableCallback(\n (\n options: CodeViewCreateEditorOptions<LAnnotation>\n ): DiffsEditor<LAnnotation> => {\n if (contextCreateEditor == null) {\n throw new Error('CodeView: EditContext is not attached');\n }\n\n const editor = contextCreateEditor({\n ...editorOptions,\n ...options,\n });\n if (editor == null) {\n throw new Error(\n 'CodeView: EditProvider.createEditor must return an editor instance'\n );\n }\n return editor;\n }\n );\n const emitItemEditChange = useStableCallback(\n (\n item: CodeViewItem<LAnnotation>,\n file: FileContents,\n lineAnnotations?:\n | LineAnnotation<LAnnotation>[]\n | DiffLineAnnotation<LAnnotation>[]\n ) => {\n onItemEditChange?.(item, file, lineAnnotations);\n }\n );\n const emitItemEditComplete = useStableCallback(\n (\n item: CodeViewItem<LAnnotation>,\n file: FileContents,\n lineAnnotations?:\n | LineAnnotation<LAnnotation>[]\n | DiffLineAnnotation<LAnnotation>[]\n ) => {\n onItemEditComplete?.(item, file, lineAnnotations);\n }\n );\n\n const managedOptions = useMemo(\n () =>\n createManagedCodeViewOptions({\n options,\n hasCustomHeader,\n hasGutterRenderer,\n hasCodeViewHeader,\n hasCodeViewFooter,\n onSelectedLinesChange:\n onSelectedLinesChange != null ? emitSelectedLinesChange : undefined,\n controlledSelection,\n createEditor: contextCreateEditor != null ? createEditor : undefined,\n onItemEditChange:\n onItemEditChange != null ? emitItemEditChange : undefined,\n onItemEditComplete:\n onItemEditComplete != null ? emitItemEditComplete : undefined,\n }),\n [\n contextCreateEditor,\n controlledSelection,\n createEditor,\n emitItemEditChange,\n emitItemEditComplete,\n emitSelectedLinesChange,\n hasCodeViewFooter,\n hasCodeViewHeader,\n hasCustomHeader,\n hasGutterRenderer,\n onItemEditChange,\n onItemEditComplete,\n onSelectedLinesChange,\n options,\n ]\n );\n\n const [slotContentStore] = useState<ManagedContentStore<LAnnotation>>(() =>\n createSlotContentStore()\n );\n const [, forceUpdate] = useState<unknown>({});\n\n const nodeRef = useStableCallback((node: HTMLDivElement | null) => {\n // If we have a pre-existing instance and there's no node or the node being\n // passed in is NOT the same as before, then we need to clean up and\n // garbage collect the old instance\n if (\n cachedDataRef.current.instance != null &&\n (node == null ||\n node !== cachedDataRef.current.instance.getContainerElement())\n ) {\n cachedDataRef.current.instance.cleanUp();\n slotContentStore.publish(undefined);\n cachedDataRef.current = createDefaultCache<LAnnotation>(controlled);\n }\n\n // If our node matches the existing node then we should not attempt to\n // setup. This is a case that should never be possible to hit, but just in\n // case, lets make sure we don't re-setup an instance that is already setup\n // properly\n if (\n node != null &&\n node !== cachedDataRef.current.instance?.getContainerElement()\n ) {\n cachedDataRef.current.instance = new CodeViewClass<LAnnotation>(\n managedOptions,\n !disableWorkerPool ? poolManager : undefined,\n true\n );\n cachedDataRef.current.instance.setup(node);\n }\n\n if (typeof containerRef === 'function') {\n containerRef(node);\n } else if (containerRef != null) {\n containerRef.current = node;\n }\n });\n\n const onSnapshotChange = useStableCallback(\n (snapshot: CodeViewSlotSnapshot<LAnnotation> | undefined) => {\n if (cachedDataRef.current.disableFlushSync) {\n slotContentStore.publish(snapshot);\n } else {\n flushSync(() => {\n slotContentStore.publish(snapshot);\n });\n }\n }\n );\n\n const slotCoordinator: CodeViewCoordinator<LAnnotation> | undefined =\n useMemo(() => {\n // A coordinator is needed whenever React portals anything — per-item\n // slots and codeview header and footer\n if (\n !hasHeaderRenderers &&\n !hasAnnotationRenderer &&\n !hasGutterRenderer &&\n !hasCodeViewHeader &&\n !hasCodeViewFooter\n ) {\n return undefined;\n } else {\n return {\n hasHeaderRenderers,\n hasAnnotationRenderer,\n hasGutterRenderer,\n onSnapshotChange,\n };\n }\n }, [\n onSnapshotChange,\n hasAnnotationRenderer,\n hasGutterRenderer,\n hasHeaderRenderers,\n hasCodeViewHeader,\n hasCodeViewFooter,\n ]);\n\n useIsomorphicLayoutEffect(() => {\n return onScroll != null\n ? cachedDataRef.current.instance?.subscribeToScroll(onScroll)\n : undefined;\n });\n\n useIsomorphicLayoutEffect(() => {\n const {\n instance,\n controlled: prevControlled,\n items: prevItems,\n managedOptions: prevManagedOptions,\n slotCoordinator: prevSlotCoordinator,\n } = cachedDataRef.current;\n if (instance == null) {\n return;\n }\n\n try {\n cachedDataRef.current.disableFlushSync = true;\n let shouldRender = false;\n\n if (!areOptionsEqual(managedOptions, prevManagedOptions)) {\n cachedDataRef.current.managedOptions = managedOptions;\n instance.setOptions(managedOptions);\n shouldRender = true;\n }\n\n if (prevControlled !== controlled) {\n console.error(\n 'CodeView: cannot switch between controlled and uncontrolled modes. Remount with a new key instead.'\n );\n return;\n }\n\n if (controlled) {\n if (controlledItems !== prevItems) {\n if (areItemListsEqual(prevItems, controlledItems)) {\n cachedDataRef.current.items = controlledItems;\n } else if (isAppendOnlyItemUpdate(prevItems, controlledItems)) {\n cachedDataRef.current.items = controlledItems;\n instance.addItems(controlledItems.slice(prevItems.length));\n } else {\n cachedDataRef.current.items = controlledItems;\n instance.setItems(controlledItems);\n shouldRender = true;\n }\n }\n }\n // If uncontrolled, we should only ever set items once, and just depend\n // on imperative instance changes going forward\n else if (prevItems == null) {\n const seedItems = initialItems ?? [];\n cachedDataRef.current.items = seedItems;\n if (seedItems.length > 0) {\n instance.setItems(seedItems);\n shouldRender = true;\n }\n }\n\n if (selectedLines !== undefined) {\n instance.setSelectedLines(selectedLines, { notify: false });\n }\n\n const slotPublish = instance.setSlotCoordinator(slotCoordinator);\n let forceInlinePublish = false;\n if (slotCoordinator !== prevSlotCoordinator) {\n if (slotCoordinator == null || prevSlotCoordinator == null) {\n forceInlinePublish = true;\n }\n cachedDataRef.current.slotCoordinator = slotCoordinator;\n }\n\n if (shouldRender || slotPublish) {\n instance.render(true);\n }\n\n // FIXME(amadeus): This feels kinda bad and flakey with regards to how\n // other things are working... it makes me think that we should\n // re-architect the slotCoordinator a bit, and maybe DON'T make it an\n // undefineable thing...\n if (slotPublish && slotCoordinator == null) {\n slotContentStore.publish(undefined);\n }\n\n if (forceInlinePublish) {\n forceUpdate({});\n }\n } finally {\n cachedDataRef.current.disableFlushSync = false;\n }\n });\n\n // Setup the ref handler\n useImperativeHandle(\n ref,\n (): CodeViewHandle<LAnnotation> => ({\n addItems(items) {\n const { controlled, instance } = cachedDataRef.current;\n assertUncontrolledCodeViewAction(controlled, 'addItems');\n if (instance == null) {\n console.error(\n 'CodeView.addItems: no valid instance to append items with',\n items\n );\n } else {\n instance.addItems(items);\n }\n },\n getItem(id) {\n const { instance } = cachedDataRef.current;\n if (instance == null) {\n console.error('CodeView.getItem: no valid instance exists', id);\n return undefined;\n } else {\n return instance.getItem(id);\n }\n },\n removeItem(id) {\n const { controlled, instance } = cachedDataRef.current;\n assertUncontrolledCodeViewAction(controlled, 'removeItem');\n if (instance == null) {\n console.error(\n 'CodeView.removeItem: no valid instance to remove item from',\n id\n );\n return false;\n }\n\n return instance.removeItem(id);\n },\n updateItem(item) {\n const { controlled, instance } = cachedDataRef.current;\n assertUncontrolledCodeViewAction(controlled, 'updateItem');\n if (instance == null) {\n console.error(\n 'CodeView.updateItem: no valid instance to update item with',\n item\n );\n return false;\n }\n\n return instance.updateItem(item);\n },\n updateItemId(oldId, newId) {\n const { controlled, instance } = cachedDataRef.current;\n assertUncontrolledCodeViewAction(controlled, 'updateItemId');\n if (instance == null) {\n console.error(\n 'CodeView.updateItemId: no valid instance to update item id with',\n oldId,\n newId\n );\n return false;\n }\n\n return instance.updateItemId(oldId, newId);\n },\n scrollTo(target) {\n const { instance } = cachedDataRef.current;\n if (instance == null) {\n console.error(\n 'CodeView.scrollTo: no valid instance to scroll with',\n target\n );\n } else {\n instance.scrollTo(target);\n }\n },\n setSelectedLines(selection) {\n const { instance } = cachedDataRef.current;\n if (instance == null) {\n console.error(\n 'CodeView.setSelectedLines: no valid instance to update selection with',\n selection\n );\n } else {\n instance.setSelectedLines(selection, { notify: false });\n emitSelectedLinesChange(selection);\n }\n },\n getSelectedLines() {\n const { instance } = cachedDataRef.current;\n if (instance == null) {\n console.error('CodeView.getSelectedLines: no valid instance exists');\n return null;\n } else {\n return instance.getSelectedLines();\n }\n },\n clearSelectedLines() {\n const { instance } = cachedDataRef.current;\n if (instance == null) {\n console.error(\n 'CodeView.clearSelectedLines: no valid instance to update selection with'\n );\n } else {\n instance.clearSelectedLines({ notify: false });\n emitSelectedLinesChange(null);\n }\n },\n getEditor(id) {\n const { instance } = cachedDataRef.current;\n if (instance == null) {\n console.error('CodeView.getEditor: no valid instance exists', id);\n return undefined;\n }\n\n return instance.getEditor(id);\n },\n getInstance() {\n return cachedDataRef.current.instance;\n },\n }),\n [emitSelectedLinesChange]\n );\n\n return (\n <>\n <div ref={nodeRef} className={className} style={style} />\n {(hasRenderers || hasCodeViewHeader || hasCodeViewFooter) && (\n <SlotPortals<LAnnotation>\n managedContentStore={slotContentStore}\n renderCustomHeader={renderCustomHeader}\n renderHeaderPrefix={renderHeaderPrefix}\n renderHeaderFilenameSuffix={renderHeaderFilenameSuffix}\n renderHeaderMetadata={renderHeaderMetadata}\n renderAnnotation={renderAnnotation}\n renderGutterUtility={renderGutterUtility}\n renderCodeViewHeader={renderCodeViewHeader}\n renderCodeViewFooter={renderCodeViewFooter}\n />\n )}\n </>\n );\n}\n\n// React was a mistake\nexport const CodeView = forwardRef(CodeViewInner) as CodeViewComponent;\n\nfunction isAppendOnlyItemUpdate<LAnnotation>(\n previousItems: readonly CodeViewItem<LAnnotation>[] | undefined,\n nextItems: readonly CodeViewItem<LAnnotation>[]\n): previousItems is readonly CodeViewItem<LAnnotation>[] {\n if (previousItems == null || nextItems.length <= previousItems.length) {\n return false;\n }\n\n if (previousItems.length === 0) {\n return true;\n }\n\n for (let index = 0; index < previousItems.length; index++) {\n if (nextItems[index] !== previousItems[index]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction areItemListsEqual<LAnnotation>(\n previousItems: readonly CodeViewItem<LAnnotation>[] | undefined,\n nextItems: readonly CodeViewItem<LAnnotation>[]\n): boolean {\n if (previousItems == null || previousItems.length !== nextItems.length) {\n return false;\n }\n\n for (let index = 0; index < previousItems.length; index++) {\n if (previousItems[index] !== nextItems[index]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction assertUncontrolledCodeViewAction(\n controlled: boolean,\n action: string\n): void {\n if (!controlled) {\n return;\n }\n\n throw new Error(\n `CodeView.${action} cannot be used when CodeView is controlled. Use initialItems for imperative item updates.`\n );\n}\n\nfunction createSlotContentStore<\n LAnnotation,\n>(): ManagedContentStore<LAnnotation> {\n let snapshot: CodeViewSlotSnapshot<LAnnotation> | undefined;\n const listeners = new Set<() => void>();\n\n return {\n getSnapshot() {\n return snapshot;\n },\n publish(nextSnapshot) {\n if (areManagedSnapshotsEqual(snapshot, nextSnapshot)) {\n return;\n }\n\n snapshot = nextSnapshot;\n for (const listener of listeners) {\n listener();\n }\n },\n subscribe(listener) {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n },\n };\n}\n\ninterface CreateManagedCodeViewOptionsProps<LAnnotation> {\n options: CodeViewReactOptions<LAnnotation> | undefined;\n hasCustomHeader: boolean;\n hasGutterRenderer: boolean;\n hasCodeViewHeader: boolean;\n hasCodeViewFooter: boolean;\n onSelectedLinesChange?(selection: CodeViewLineSelection | null): void;\n controlledSelection: boolean;\n createEditor: CodeViewOptions<LAnnotation>['createEditor'];\n onItemEditChange: CodeViewOptions<LAnnotation>['onItemEditChange'];\n onItemEditComplete: CodeViewOptions<LAnnotation>['onItemEditComplete'];\n}\n\nfunction createManagedCodeViewOptions<LAnnotation>({\n options,\n hasCustomHeader,\n hasGutterRenderer,\n hasCodeViewHeader,\n hasCodeViewFooter,\n onSelectedLinesChange,\n controlledSelection,\n createEditor,\n onItemEditChange,\n onItemEditComplete,\n}: CreateManagedCodeViewOptionsProps<LAnnotation>): CodeViewOptions<LAnnotation> {\n const managedOptions: CodeViewOptions<LAnnotation> = {\n ...options,\n controlledSelection,\n onSelectedLinesChange,\n createEditor,\n };\n\n // Prop-level editor callbacks win over their options-object counterparts,\n // but an absent prop must not clobber a value provided via `options`.\n if (onItemEditChange != null) {\n managedOptions.onItemEditChange = onItemEditChange;\n }\n if (onItemEditComplete != null) {\n managedOptions.onItemEditComplete = onItemEditComplete;\n }\n\n // The imperative CodeView adapters use this callback's presence to\n // switch file and diff headers into custom-slot mode. React portals\n // provide the actual header content, so this placeholder\n // intentionally returns nothing.\n if (hasCustomHeader) {\n managedOptions.renderCustomHeader = noopRender;\n }\n\n // The imperative CodeView adapters use this callback's presence to\n // create the custom gutter utility slot. React portals provide the\n // actual content, so this placeholder intentionally returns nothing.\n if (hasGutterRenderer) {\n managedOptions.renderGutterUtility = noopRender;\n }\n\n // The imperative CodeView adapters use these callbacks' presence to create the\n // header/footer host elements. React portals the actual content into them (via\n // the slot snapshot), so these placeholders intentionally return nothing.\n if (hasCodeViewHeader) {\n managedOptions.renderCodeViewHeader = noopRender;\n }\n if (hasCodeViewFooter) {\n managedOptions.renderCodeViewFooter = noopRender;\n }\n\n return managedOptions;\n}\n\ninterface RenderCodeViewItemChildrenProps<LAnnotation> {\n renderedItem: CodeViewRenderedItem<LAnnotation>;\n renderCustomHeader: CodeViewBaseProps<LAnnotation>['renderCustomHeader'];\n renderHeaderPrefix: CodeViewBaseProps<LAnnotation>['renderHeaderPrefix'];\n renderHeaderFilenameSuffix: CodeViewBaseProps<LAnnotation>['renderHeaderFilenameSuffix'];\n renderHeaderMetadata: CodeViewBaseProps<LAnnotation>['renderHeaderMetadata'];\n renderAnnotation: CodeViewBaseProps<LAnnotation>['renderAnnotation'];\n renderGutterUtility: CodeViewBaseProps<LAnnotation>['renderGutterUtility'];\n}\n\ninterface SlotPortalsProps<LAnnotation> {\n managedContentStore: ManagedContentStore<LAnnotation>;\n renderCustomHeader: CodeViewBaseProps<LAnnotation>['renderCustomHeader'];\n renderHeaderPrefix: CodeViewBaseProps<LAnnotation>['renderHeaderPrefix'];\n renderHeaderFilenameSuffix: CodeViewBaseProps<LAnnotation>['renderHeaderFilenameSuffix'];\n renderHeaderMetadata: CodeViewBaseProps<LAnnotation>['renderHeaderMetadata'];\n renderAnnotation: CodeViewBaseProps<LAnnotation>['renderAnnotation'];\n renderGutterUtility: CodeViewBaseProps<LAnnotation>['renderGutterUtility'];\n renderCodeViewHeader: CodeViewBaseProps<LAnnotation>['renderCodeViewHeader'];\n renderCodeViewFooter: CodeViewBaseProps<LAnnotation>['renderCodeViewFooter'];\n}\n\nconst SlotPortals = memo(function SlotPortals<LAnnotation>({\n managedContentStore,\n renderCustomHeader,\n renderHeaderPrefix,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n renderAnnotation,\n renderGutterUtility,\n renderCodeViewHeader,\n renderCodeViewFooter,\n}: SlotPortalsProps<LAnnotation>) {\n 'use no memo';\n const subscribe = useStableCallback((listener: () => void) =>\n managedContentStore.subscribe(listener)\n );\n const getSnapshot = useStableCallback(() =>\n managedContentStore.getSnapshot()\n );\n const snapshot = useSyncExternalStore<\n CodeViewSlotSnapshot<LAnnotation> | undefined\n >(subscribe, getSnapshot, getSnapshot);\n let itemKeys = '';\n for (const item of snapshot?.items ?? []) {\n itemKeys += `${item.id}:${item.version}:${item.type}`;\n }\n // NOTE(amadeus): And just like that, the react compiler do be failing us\n // lol... we need to pre-render everything for items, headers and footers to\n // not trigger needless renders while scrolling\n const renderedItems = useMemo(\n () => {\n return snapshot?.items?.map((renderedItem) =>\n createPortal(\n renderCodeViewItemChildren({\n renderedItem,\n renderCustomHeader,\n renderHeaderPrefix,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n renderAnnotation,\n renderGutterUtility,\n }),\n renderedItem.element,\n renderedItem.id\n )\n );\n },\n // oxlint-disable-next-line react-hooks/exhaustive-deps\n [\n renderCustomHeader,\n renderHeaderPrefix,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n renderAnnotation,\n renderGutterUtility,\n itemKeys,\n ]\n );\n const renderedHeader = useMemo(() => {\n return renderCodeViewHeader != null && snapshot?.header != null\n ? createPortal(renderCodeViewHeader(), snapshot.header)\n : null;\n }, [renderCodeViewHeader, snapshot?.header]);\n const renderedFooter = useMemo(() => {\n return renderCodeViewFooter != null && snapshot?.footer != null\n ? createPortal(renderCodeViewFooter(), snapshot.footer)\n : null;\n }, [renderCodeViewFooter, snapshot?.footer]);\n return (\n <>\n {renderedItems}\n {renderedHeader}\n {renderedFooter}\n </>\n );\n}) as SlotPortalsComponent;\n\nfunction renderCodeViewItemChildren<LAnnotation>({\n renderedItem,\n renderCustomHeader,\n renderHeaderPrefix,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n renderAnnotation,\n renderGutterUtility,\n}: RenderCodeViewItemChildrenProps<LAnnotation>): ReactNode {\n if (renderedItem.type === 'diff') {\n const { item, instance } = renderedItem;\n return renderDiffChildren({\n fileDiff: item.fileDiff,\n renderCustomHeader:\n renderCustomHeader != null ? () => renderCustomHeader(item) : undefined,\n renderHeaderPrefix:\n renderHeaderPrefix != null ? () => renderHeaderPrefix(item) : undefined,\n renderHeaderFilenameSuffix:\n renderHeaderFilenameSuffix != null\n ? () => renderHeaderFilenameSuffix(item)\n : undefined,\n renderHeaderMetadata:\n renderHeaderMetadata != null\n ? () => renderHeaderMetadata(item)\n : undefined,\n renderAnnotation:\n renderAnnotation != null\n ? (annotation) => renderAnnotation(annotation, item)\n : undefined,\n lineAnnotations: item.annotations,\n renderGutterUtility:\n renderGutterUtility != null\n ? (getHoveredLine) => renderGutterUtility(getHoveredLine, item)\n : undefined,\n getHoveredLine: instance.getHoveredLine,\n });\n } else {\n const { item, instance } = renderedItem;\n return renderFileChildren({\n file: item.file,\n renderCustomHeader:\n renderCustomHeader != null ? () => renderCustomHeader(item) : undefined,\n renderHeaderPrefix:\n renderHeaderPrefix != null ? () => renderHeaderPrefix(item) : undefined,\n renderHeaderFilenameSuffix:\n renderHeaderFilenameSuffix != null\n ? () => renderHeaderFilenameSuffix(item)\n : undefined,\n renderHeaderMetadata:\n renderHeaderMetadata != null\n ? () => renderHeaderMetadata(item)\n : undefined,\n renderAnnotation:\n renderAnnotation != null\n ? (annotation) => renderAnnotation(annotation, item)\n : undefined,\n lineAnnotations: item.annotations,\n renderGutterUtility:\n renderGutterUtility != null\n ? (getHoveredLine) => renderGutterUtility(getHoveredLine, item)\n : undefined,\n getHoveredLine: instance.getHoveredLine,\n });\n }\n}\n\nfunction noopRender() {\n return undefined;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CodeView.js","names":["CodeViewClass"],"sources":["../../src/react/CodeView.tsx"],"sourcesContent":["'use client';\n\nimport {\n type CSSProperties,\n forwardRef,\n memo,\n type ReactNode,\n type Ref,\n useContext,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n useSyncExternalStore,\n} from 'react';\nimport { createPortal, flushSync } from 'react-dom';\n\nimport type {\n Editor,\n EditorChangeEvent,\n EditorOptions,\n EditorType,\n} from '../edit';\nimport {\n areOptionsEqual,\n CodeView as CodeViewClass,\n type CodeViewCoordinator,\n type CodeViewCreateEditorOptions,\n type CodeViewItem,\n type CodeViewItemEditCompleteEventMap,\n type CodeViewItemEditCompleteHandler,\n type CodeViewLineSelection,\n type CodeViewMode,\n type CodeViewModeItemMap,\n type CodeViewOptions,\n type CodeViewRenderedItem,\n type CodeViewScrollTarget,\n type CodeViewSlotSnapshot,\n type DiffLineAnnotation,\n type GetHoveredLineResult,\n type LineAnnotation,\n} from '../index';\nimport { areManagedSnapshotsEqual } from '../utils/areManagedSnapshotsEqual';\nimport { useCreateEditor } from './EditContext';\nimport { renderDiffChildren } from './utils/renderDiffChildren';\nimport { renderFileChildren } from './utils/renderFileChildren';\nimport { useStableCallback } from './utils/useStableCallback';\nimport { WorkerPoolContext } from './WorkerPoolContext';\n\nexport type { CodeViewItemEditCompleteHandler };\n\nconst useIsomorphicLayoutEffect =\n typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\ntype CodeViewGutterUtilityGetter =\n | (() => GetHoveredLineResult<'file'> | undefined)\n | (() => GetHoveredLineResult<'diff'> | undefined);\n\nexport type CodeViewReactOptions<LAnnotation, Caret> = Omit<\n CodeViewOptions<LAnnotation, Caret>,\n 'controlledSelection' | 'createEditor' | 'onSelectedLinesChange'\n>;\n\ninterface CodeViewBaseProps<LAnnotation, Caret> {\n options?: CodeViewReactOptions<LAnnotation, Caret>;\n /**\n * Creation-time options passed to the nearest EditProvider factory.\n * CodeView supplies its item-specific change callback.\n */\n editorOptions?: Omit<\n EditorOptions<EditorType, LAnnotation, Caret>,\n 'onChange'\n >;\n /** Resolve an in-memory retention key for an item's draft and undo history. */\n getEditStateKey?(item: CodeViewItem<LAnnotation>): string | undefined;\n className?: string;\n style?: CSSProperties;\n containerRef?: Ref<HTMLDivElement>;\n disableWorkerPool?: boolean;\n selectedLines?: CodeViewLineSelection | null;\n onSelectedLinesChange?(selection: CodeViewLineSelection | null): void;\n onScroll?(scrollTop: number, viewer: CodeViewClass<LAnnotation, Caret>): void;\n /** Render a non-virtualized node at the very start of the scroll content,\n * before the first item. Always rendered; scrolls with the content. */\n renderCodeViewHeader?(): ReactNode;\n /** Render a non-virtualized node at the very end of the scroll content, after\n * the last item. Always rendered; scrolls with the content. */\n renderCodeViewFooter?(): ReactNode;\n /**\n * Called with the editor's `EditorChangeEvent` and the owning item on every\n * document change. Do not feed it directly back into the controlled item,\n * which can create update loops.\n */\n onItemEditChange?(\n event: EditorChangeEvent<EditorType, LAnnotation, Caret>,\n item: CodeViewItem<LAnnotation>\n ): void;\n /**\n * Called once when an edit session ends: edit turned off, the item removed,\n * or the CodeView unmounted (where the result is not installed). Collapse\n * suspends the session instead of completing it. `nextItem` is the accepted\n * replacement CodeView built from `item`: the event's completed\n * `file`/`fileDiff` and annotations, `edit: false`, and a bumped `version`.\n * Return `'accept'` to install the edit — CodeView applies `nextItem` through\n * the item update path when the item still exists, and a controlled owner\n * puts the same `nextItem` into its state — or `'reject'` to revert. The event\n * is frozen; re-key the accepted value in place before accepting.\n */\n onItemEditComplete?: CodeViewItemEditCompleteHandler<LAnnotation, Caret>;\n renderCustomHeader?(item: CodeViewItem<LAnnotation>): ReactNode;\n renderHeaderPrefix?(item: CodeViewItem<LAnnotation>): ReactNode;\n renderHeaderFilenameSuffix?(item: CodeViewItem<LAnnotation>): ReactNode;\n renderHeaderMetadata?(item: CodeViewItem<LAnnotation>): ReactNode;\n renderAnnotation?(\n annotation: LineAnnotation<LAnnotation> | DiffLineAnnotation<LAnnotation>,\n item: CodeViewItem<LAnnotation>\n ): ReactNode;\n renderGutterUtility?(\n getHoveredLine: CodeViewGutterUtilityGetter,\n item: CodeViewItem<LAnnotation>\n ): ReactNode;\n}\n\nexport interface ControlledCodeViewProps<\n LAnnotation,\n Caret,\n> extends CodeViewBaseProps<LAnnotation, Caret> {\n items: readonly CodeViewItem<LAnnotation>[];\n initialItems?: never;\n}\n\nexport interface UncontrolledCodeViewProps<\n LAnnotation,\n Caret,\n> extends CodeViewBaseProps<LAnnotation, Caret> {\n // Seeds the imperative CodeView instance once. Later item changes should go\n // through the ref API instead of being reconciled from React props.\n initialItems?: readonly CodeViewItem<LAnnotation>[];\n items?: never;\n}\n\nexport type CodeViewProps<LAnnotation, Caret> =\n | ControlledCodeViewProps<LAnnotation, Caret>\n | UncontrolledCodeViewProps<LAnnotation, Caret>;\n\nexport interface CodeViewHandle<LAnnotation, Caret> {\n addItems(items: readonly CodeViewItem<LAnnotation>[]): void;\n getItem(id: string): CodeViewItem<LAnnotation> | undefined;\n removeItem(id: string): boolean;\n updateItem(item: CodeViewItem<LAnnotation>): boolean;\n updateItemId(oldId: string, newId: string): boolean;\n scrollTo(target: CodeViewScrollTarget): void;\n setSelectedLines(selection: CodeViewLineSelection | null): void;\n getSelectedLines(): CodeViewLineSelection | null;\n clearSelectedLines(): void;\n getEditor(\n id: string\n ):\n | Editor<'file', LAnnotation, Caret>\n | Editor<'file-diff', LAnnotation, Caret>\n | undefined;\n getInstance(): CodeViewClass<LAnnotation, Caret> | undefined;\n}\n\ntype CodeViewComponent = <LAnnotation = undefined, Caret = undefined>(\n props: CodeViewProps<LAnnotation, Caret> & {\n ref?: React.Ref<CodeViewHandle<LAnnotation, Caret>>;\n }\n) => React.JSX.Element;\n\ntype SlotPortalsComponent = <LAnnotation, Caret>(\n props: SlotPortalsProps<LAnnotation, Caret>\n) => React.JSX.Element;\n\ninterface ManagedContentStore<LAnnotation, Caret> {\n getSnapshot(): CodeViewSlotSnapshot<LAnnotation, Caret> | undefined;\n publish(snapshot: CodeViewSlotSnapshot<LAnnotation, Caret> | undefined): void;\n subscribe(listener: () => void): () => void;\n}\n\ninterface CachedDataRef<LAnnotation, Caret> {\n instance: CodeViewClass<LAnnotation, Caret> | undefined;\n items: readonly CodeViewItem<LAnnotation>[] | undefined;\n controlled: boolean;\n managedOptions: CodeViewOptions<LAnnotation, Caret> | undefined;\n disableFlushSync: boolean;\n slotCoordinator: CodeViewCoordinator<LAnnotation, Caret> | undefined;\n}\n\nfunction createDefaultCache<LAnnotation, Caret>(\n controlled: boolean\n): CachedDataRef<LAnnotation, Caret> {\n return {\n instance: undefined,\n items: undefined,\n controlled,\n managedOptions: undefined,\n disableFlushSync: false,\n slotCoordinator: undefined,\n };\n}\n\nfunction CodeViewInner<LAnnotation = undefined, Caret = undefined>(\n props: CodeViewProps<LAnnotation, Caret>,\n ref: React.ForwardedRef<CodeViewHandle<LAnnotation, Caret>>\n): React.JSX.Element {\n const {\n className,\n containerRef,\n disableWorkerPool = false,\n editorOptions,\n getEditStateKey,\n initialItems,\n items: controlledItems,\n onItemEditChange,\n onItemEditComplete,\n onScroll,\n onSelectedLinesChange,\n options,\n renderAnnotation,\n renderCodeViewFooter,\n renderCodeViewHeader,\n renderCustomHeader,\n renderGutterUtility,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n renderHeaderPrefix,\n selectedLines,\n style,\n } = props;\n const controlled = controlledItems !== undefined;\n const contextCreateEditor = useCreateEditor<LAnnotation, Caret>();\n const poolManager = useContext(WorkerPoolContext);\n const cachedDataRef = useRef<CachedDataRef<LAnnotation, Caret>>(\n createDefaultCache<LAnnotation, Caret>(controlled)\n );\n const hasCustomHeader = renderCustomHeader != null;\n const hasAnnotationRenderer = renderAnnotation != null;\n const hasGutterRenderer = renderGutterUtility != null;\n const hasHeaderRenderers =\n hasCustomHeader ||\n renderHeaderPrefix != null ||\n renderHeaderFilenameSuffix != null ||\n renderHeaderMetadata != null;\n const hasRenderers =\n hasHeaderRenderers || hasAnnotationRenderer || hasGutterRenderer;\n const hasCodeViewHeader = renderCodeViewHeader != null;\n const hasCodeViewFooter = renderCodeViewFooter != null;\n const emitSelectedLinesChange = useStableCallback(\n (selection: CodeViewLineSelection | null) => {\n onSelectedLinesChange?.(selection);\n }\n );\n const controlledSelection = selectedLines !== undefined;\n\n // Keep the adapter stable so provider and editor-option changes affect the\n // next item edit session without forcing CodeView to reconcile active editors.\n const createEditor = useStableCallback(\n <EType extends EditorType>(\n editorType: EType,\n options: CodeViewCreateEditorOptions<EType, LAnnotation, Caret>,\n editStateKey?: string\n ): Editor<EType, LAnnotation, Caret> => {\n if (contextCreateEditor == null) {\n throw new Error('CodeView: EditContext is not attached');\n }\n\n const resolvedOptions = {\n ...editorOptions,\n ...options,\n } as EditorOptions<EType, LAnnotation, Caret>;\n const editor = contextCreateEditor(\n editorType,\n resolvedOptions,\n editStateKey\n );\n return editor;\n }\n );\n const emitItemEditChange = useStableCallback(\n (\n event: EditorChangeEvent<EditorType, LAnnotation, Caret>,\n item: CodeViewItem<LAnnotation>\n ) => {\n onItemEditChange?.(event, item);\n }\n );\n const emitItemEditComplete = useStableCallback(\n <TMode extends CodeViewMode>(\n event: CodeViewItemEditCompleteEventMap<LAnnotation, Caret>[TMode],\n item: CodeViewModeItemMap<LAnnotation>[TMode],\n nextItem: CodeViewModeItemMap<LAnnotation>[TMode]\n ) => onItemEditComplete?.(event, item, nextItem) ?? 'reject'\n );\n\n const managedOptions = useMemo(\n () =>\n createManagedCodeViewOptions({\n options,\n hasCustomHeader,\n hasGutterRenderer,\n hasCodeViewHeader,\n hasCodeViewFooter,\n onSelectedLinesChange:\n onSelectedLinesChange != null ? emitSelectedLinesChange : undefined,\n controlledSelection,\n getEditStateKey,\n createEditor: contextCreateEditor != null ? createEditor : undefined,\n onItemEditChange:\n onItemEditChange != null ? emitItemEditChange : undefined,\n onItemEditComplete:\n onItemEditComplete != null ? emitItemEditComplete : undefined,\n }),\n [\n contextCreateEditor,\n controlledSelection,\n createEditor,\n emitItemEditChange,\n emitItemEditComplete,\n emitSelectedLinesChange,\n hasCodeViewFooter,\n hasCodeViewHeader,\n hasCustomHeader,\n hasGutterRenderer,\n getEditStateKey,\n onItemEditChange,\n onItemEditComplete,\n onSelectedLinesChange,\n options,\n ]\n );\n\n const [slotContentStore] = useState<ManagedContentStore<LAnnotation, Caret>>(\n () => createSlotContentStore()\n );\n const [, forceUpdate] = useState<unknown>({});\n\n const nodeRef = useStableCallback((node: HTMLDivElement | null) => {\n // If we have a pre-existing instance and there's no node or the node being\n // passed in is NOT the same as before, then we need to clean up and\n // garbage collect the old instance\n if (\n cachedDataRef.current.instance != null &&\n (node == null ||\n node !== cachedDataRef.current.instance.getContainerElement())\n ) {\n cachedDataRef.current.instance.cleanUp();\n slotContentStore.publish(undefined);\n cachedDataRef.current = createDefaultCache<LAnnotation, Caret>(\n controlled\n );\n }\n\n // If our node matches the existing node then we should not attempt to\n // setup. This is a case that should never be possible to hit, but just in\n // case, lets make sure we don't re-setup an instance that is already setup\n // properly\n if (\n node != null &&\n node !== cachedDataRef.current.instance?.getContainerElement()\n ) {\n cachedDataRef.current.instance = new CodeViewClass<LAnnotation, Caret>(\n managedOptions,\n !disableWorkerPool ? poolManager : undefined,\n true\n );\n cachedDataRef.current.instance.setup(node);\n }\n\n if (typeof containerRef === 'function') {\n containerRef(node);\n } else if (containerRef != null) {\n containerRef.current = node;\n }\n });\n\n const onSnapshotChange = useStableCallback(\n (snapshot: CodeViewSlotSnapshot<LAnnotation, Caret> | undefined) => {\n if (cachedDataRef.current.disableFlushSync) {\n slotContentStore.publish(snapshot);\n } else {\n flushSync(() => {\n slotContentStore.publish(snapshot);\n });\n }\n }\n );\n\n const slotCoordinator: CodeViewCoordinator<LAnnotation, Caret> | undefined =\n useMemo(() => {\n // A coordinator is needed whenever React portals anything — per-item\n // slots and codeview header and footer\n if (\n !hasHeaderRenderers &&\n !hasAnnotationRenderer &&\n !hasGutterRenderer &&\n !hasCodeViewHeader &&\n !hasCodeViewFooter\n ) {\n return undefined;\n } else {\n return {\n hasHeaderRenderers,\n hasAnnotationRenderer,\n hasGutterRenderer,\n onSnapshotChange,\n };\n }\n }, [\n onSnapshotChange,\n hasAnnotationRenderer,\n hasGutterRenderer,\n hasHeaderRenderers,\n hasCodeViewHeader,\n hasCodeViewFooter,\n ]);\n\n useIsomorphicLayoutEffect(() => {\n return onScroll != null\n ? cachedDataRef.current.instance?.subscribeToScroll(onScroll)\n : undefined;\n });\n\n useIsomorphicLayoutEffect(() => {\n const {\n instance,\n controlled: prevControlled,\n items: prevItems,\n managedOptions: prevManagedOptions,\n slotCoordinator: prevSlotCoordinator,\n } = cachedDataRef.current;\n if (instance == null) {\n return;\n }\n\n try {\n cachedDataRef.current.disableFlushSync = true;\n let shouldRender = false;\n\n if (!areOptionsEqual(managedOptions, prevManagedOptions)) {\n cachedDataRef.current.managedOptions = managedOptions;\n instance.setOptions(managedOptions);\n shouldRender = true;\n }\n\n if (prevControlled !== controlled) {\n console.error(\n 'CodeView: cannot switch between controlled and uncontrolled modes. Remount with a new key instead.'\n );\n return;\n }\n\n if (controlled) {\n if (controlledItems !== prevItems) {\n if (areItemListsEqual(prevItems, controlledItems)) {\n cachedDataRef.current.items = controlledItems;\n } else if (isAppendOnlyItemUpdate(prevItems, controlledItems)) {\n cachedDataRef.current.items = controlledItems;\n instance.addItems(controlledItems.slice(prevItems.length));\n } else {\n cachedDataRef.current.items = controlledItems;\n instance.setItems(controlledItems);\n shouldRender = true;\n }\n }\n }\n // If uncontrolled, we should only ever set items once, and just depend\n // on imperative instance changes going forward\n else if (prevItems == null) {\n const seedItems = initialItems ?? [];\n cachedDataRef.current.items = seedItems;\n if (seedItems.length > 0) {\n instance.setItems(seedItems);\n shouldRender = true;\n }\n }\n\n if (selectedLines !== undefined) {\n instance.setSelectedLines(selectedLines, { notify: false });\n }\n\n const slotPublish = instance.setSlotCoordinator(slotCoordinator);\n let forceInlinePublish = false;\n if (slotCoordinator !== prevSlotCoordinator) {\n if (slotCoordinator == null || prevSlotCoordinator == null) {\n forceInlinePublish = true;\n }\n cachedDataRef.current.slotCoordinator = slotCoordinator;\n }\n\n if (shouldRender || slotPublish) {\n instance.render(true);\n }\n\n // FIXME(amadeus): This feels kinda bad and flakey with regards to how\n // other things are working... it makes me think that we should\n // re-architect the slotCoordinator a bit, and maybe DON'T make it an\n // undefineable thing...\n if (slotPublish && slotCoordinator == null) {\n slotContentStore.publish(undefined);\n }\n\n if (forceInlinePublish) {\n forceUpdate({});\n }\n } finally {\n cachedDataRef.current.disableFlushSync = false;\n }\n });\n\n // Setup the ref handler\n useImperativeHandle(\n ref,\n (): CodeViewHandle<LAnnotation, Caret> => ({\n addItems(items) {\n const { controlled, instance } = cachedDataRef.current;\n assertUncontrolledCodeViewAction(controlled, 'addItems');\n if (instance == null) {\n console.error(\n 'CodeView.addItems: no valid instance to append items with',\n items\n );\n } else {\n instance.addItems(items);\n }\n },\n getItem(id) {\n const { instance } = cachedDataRef.current;\n if (instance == null) {\n console.error('CodeView.getItem: no valid instance exists', id);\n return undefined;\n } else {\n return instance.getItem(id);\n }\n },\n removeItem(id) {\n const { controlled, instance } = cachedDataRef.current;\n assertUncontrolledCodeViewAction(controlled, 'removeItem');\n if (instance == null) {\n console.error(\n 'CodeView.removeItem: no valid instance to remove item from',\n id\n );\n return false;\n }\n\n return instance.removeItem(id);\n },\n updateItem(item) {\n const { controlled, instance } = cachedDataRef.current;\n assertUncontrolledCodeViewAction(controlled, 'updateItem');\n if (instance == null) {\n console.error(\n 'CodeView.updateItem: no valid instance to update item with',\n item\n );\n return false;\n }\n\n return instance.updateItem(item);\n },\n updateItemId(oldId, newId) {\n const { controlled, instance } = cachedDataRef.current;\n assertUncontrolledCodeViewAction(controlled, 'updateItemId');\n if (instance == null) {\n console.error(\n 'CodeView.updateItemId: no valid instance to update item id with',\n oldId,\n newId\n );\n return false;\n }\n\n return instance.updateItemId(oldId, newId);\n },\n scrollTo(target) {\n const { instance } = cachedDataRef.current;\n if (instance == null) {\n console.error(\n 'CodeView.scrollTo: no valid instance to scroll with',\n target\n );\n } else {\n instance.scrollTo(target);\n }\n },\n setSelectedLines(selection) {\n const { instance } = cachedDataRef.current;\n if (instance == null) {\n console.error(\n 'CodeView.setSelectedLines: no valid instance to update selection with',\n selection\n );\n } else {\n instance.setSelectedLines(selection, { notify: false });\n emitSelectedLinesChange(selection);\n }\n },\n getSelectedLines() {\n const { instance } = cachedDataRef.current;\n if (instance == null) {\n console.error('CodeView.getSelectedLines: no valid instance exists');\n return null;\n } else {\n return instance.getSelectedLines();\n }\n },\n clearSelectedLines() {\n const { instance } = cachedDataRef.current;\n if (instance == null) {\n console.error(\n 'CodeView.clearSelectedLines: no valid instance to update selection with'\n );\n } else {\n instance.clearSelectedLines({ notify: false });\n emitSelectedLinesChange(null);\n }\n },\n getEditor(id) {\n const { instance } = cachedDataRef.current;\n if (instance == null) {\n console.error('CodeView.getEditor: no valid instance exists', id);\n return undefined;\n }\n\n return instance.getEditor(id);\n },\n getInstance() {\n return cachedDataRef.current.instance;\n },\n }),\n [emitSelectedLinesChange]\n );\n\n return (\n <>\n <div ref={nodeRef} className={className} style={style} />\n {(hasRenderers || hasCodeViewHeader || hasCodeViewFooter) && (\n <SlotPortals<LAnnotation, Caret>\n managedContentStore={slotContentStore}\n renderCustomHeader={renderCustomHeader}\n renderHeaderPrefix={renderHeaderPrefix}\n renderHeaderFilenameSuffix={renderHeaderFilenameSuffix}\n renderHeaderMetadata={renderHeaderMetadata}\n renderAnnotation={renderAnnotation}\n renderGutterUtility={renderGutterUtility}\n renderCodeViewHeader={renderCodeViewHeader}\n renderCodeViewFooter={renderCodeViewFooter}\n />\n )}\n </>\n );\n}\n\n// React was a mistake\nexport const CodeView = forwardRef(CodeViewInner) as CodeViewComponent;\n\nfunction isAppendOnlyItemUpdate<LAnnotation>(\n previousItems: readonly CodeViewItem<LAnnotation>[] | undefined,\n nextItems: readonly CodeViewItem<LAnnotation>[]\n): previousItems is readonly CodeViewItem<LAnnotation>[] {\n if (previousItems == null || nextItems.length <= previousItems.length) {\n return false;\n }\n\n if (previousItems.length === 0) {\n return true;\n }\n\n for (let index = 0; index < previousItems.length; index++) {\n if (nextItems[index] !== previousItems[index]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction areItemListsEqual<LAnnotation>(\n previousItems: readonly CodeViewItem<LAnnotation>[] | undefined,\n nextItems: readonly CodeViewItem<LAnnotation>[]\n): boolean {\n if (previousItems == null || previousItems.length !== nextItems.length) {\n return false;\n }\n\n for (let index = 0; index < previousItems.length; index++) {\n if (previousItems[index] !== nextItems[index]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction assertUncontrolledCodeViewAction(\n controlled: boolean,\n action: string\n): void {\n if (!controlled) {\n return;\n }\n\n throw new Error(\n `CodeView.${action} cannot be used when CodeView is controlled. Use initialItems for imperative item updates.`\n );\n}\n\nfunction createSlotContentStore<LAnnotation, Caret>(): ManagedContentStore<\n LAnnotation,\n Caret\n> {\n let snapshot: CodeViewSlotSnapshot<LAnnotation, Caret> | undefined;\n const listeners = new Set<() => void>();\n\n return {\n getSnapshot() {\n return snapshot;\n },\n publish(nextSnapshot) {\n if (areManagedSnapshotsEqual(snapshot, nextSnapshot)) {\n return;\n }\n\n snapshot = nextSnapshot;\n for (const listener of listeners) {\n listener();\n }\n },\n subscribe(listener) {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n },\n };\n}\n\ninterface CreateManagedCodeViewOptionsProps<LAnnotation, Caret> {\n options: CodeViewReactOptions<LAnnotation, Caret> | undefined;\n hasCustomHeader: boolean;\n hasGutterRenderer: boolean;\n hasCodeViewHeader: boolean;\n hasCodeViewFooter: boolean;\n onSelectedLinesChange?(selection: CodeViewLineSelection | null): void;\n controlledSelection: boolean;\n getEditStateKey: CodeViewOptions<LAnnotation, Caret>['getEditStateKey'];\n createEditor: CodeViewOptions<LAnnotation, Caret>['createEditor'];\n onItemEditChange: CodeViewOptions<LAnnotation, Caret>['onItemEditChange'];\n onItemEditComplete: CodeViewOptions<LAnnotation, Caret>['onItemEditComplete'];\n}\n\nfunction createManagedCodeViewOptions<LAnnotation, Caret>({\n options,\n hasCustomHeader,\n hasGutterRenderer,\n hasCodeViewHeader,\n hasCodeViewFooter,\n onSelectedLinesChange,\n controlledSelection,\n getEditStateKey,\n createEditor,\n onItemEditChange,\n onItemEditComplete,\n}: CreateManagedCodeViewOptionsProps<LAnnotation, Caret>): CodeViewOptions<\n LAnnotation,\n Caret\n> {\n const managedOptions: CodeViewOptions<LAnnotation, Caret> = {\n ...options,\n controlledSelection,\n onSelectedLinesChange,\n createEditor,\n };\n\n if (getEditStateKey != null) {\n managedOptions.getEditStateKey = getEditStateKey;\n }\n\n // Prop-level editor callbacks win over their options-object counterparts,\n // but an absent prop must not clobber a value provided via `options`.\n if (onItemEditChange != null) {\n managedOptions.onItemEditChange = onItemEditChange;\n }\n if (onItemEditComplete != null) {\n managedOptions.onItemEditComplete = onItemEditComplete;\n }\n\n // The imperative CodeView adapters use this callback's presence to\n // switch file and diff headers into custom-slot mode. React portals\n // provide the actual header content, so this placeholder\n // intentionally returns nothing.\n if (hasCustomHeader) {\n managedOptions.renderCustomHeader = noopRender;\n }\n\n // The imperative CodeView adapters use this callback's presence to\n // create the custom gutter utility slot. React portals provide the\n // actual content, so this placeholder intentionally returns nothing.\n if (hasGutterRenderer) {\n managedOptions.renderGutterUtility = noopRender;\n }\n\n // The imperative CodeView adapters use these callbacks' presence to create the\n // header/footer host elements. React portals the actual content into them (via\n // the slot snapshot), so these placeholders intentionally return nothing.\n if (hasCodeViewHeader) {\n managedOptions.renderCodeViewHeader = noopRender;\n }\n if (hasCodeViewFooter) {\n managedOptions.renderCodeViewFooter = noopRender;\n }\n\n return managedOptions;\n}\n\ninterface RenderCodeViewItemChildrenProps<LAnnotation, Caret> {\n renderedItem: CodeViewRenderedItem<LAnnotation, Caret>;\n renderCustomHeader: CodeViewBaseProps<\n LAnnotation,\n Caret\n >['renderCustomHeader'];\n renderHeaderPrefix: CodeViewBaseProps<\n LAnnotation,\n Caret\n >['renderHeaderPrefix'];\n renderHeaderFilenameSuffix: CodeViewBaseProps<\n LAnnotation,\n Caret\n >['renderHeaderFilenameSuffix'];\n renderHeaderMetadata: CodeViewBaseProps<\n LAnnotation,\n Caret\n >['renderHeaderMetadata'];\n renderAnnotation: CodeViewBaseProps<LAnnotation, Caret>['renderAnnotation'];\n renderGutterUtility: CodeViewBaseProps<\n LAnnotation,\n Caret\n >['renderGutterUtility'];\n}\n\ninterface SlotPortalsProps<LAnnotation, Caret> {\n managedContentStore: ManagedContentStore<LAnnotation, Caret>;\n renderCustomHeader: CodeViewBaseProps<\n LAnnotation,\n Caret\n >['renderCustomHeader'];\n renderHeaderPrefix: CodeViewBaseProps<\n LAnnotation,\n Caret\n >['renderHeaderPrefix'];\n renderHeaderFilenameSuffix: CodeViewBaseProps<\n LAnnotation,\n Caret\n >['renderHeaderFilenameSuffix'];\n renderHeaderMetadata: CodeViewBaseProps<\n LAnnotation,\n Caret\n >['renderHeaderMetadata'];\n renderAnnotation: CodeViewBaseProps<LAnnotation, Caret>['renderAnnotation'];\n renderGutterUtility: CodeViewBaseProps<\n LAnnotation,\n Caret\n >['renderGutterUtility'];\n renderCodeViewHeader: CodeViewBaseProps<\n LAnnotation,\n Caret\n >['renderCodeViewHeader'];\n renderCodeViewFooter: CodeViewBaseProps<\n LAnnotation,\n Caret\n >['renderCodeViewFooter'];\n}\n\nconst SlotPortals = memo(function SlotPortals<LAnnotation, Caret>({\n managedContentStore,\n renderCustomHeader,\n renderHeaderPrefix,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n renderAnnotation,\n renderGutterUtility,\n renderCodeViewHeader,\n renderCodeViewFooter,\n}: SlotPortalsProps<LAnnotation, Caret>) {\n 'use no memo';\n const subscribe = useStableCallback((listener: () => void) =>\n managedContentStore.subscribe(listener)\n );\n const getSnapshot = useStableCallback(() =>\n managedContentStore.getSnapshot()\n );\n const snapshot = useSyncExternalStore<\n CodeViewSlotSnapshot<LAnnotation, Caret> | undefined\n >(subscribe, getSnapshot, getSnapshot);\n let itemKeys = '';\n for (const item of snapshot?.items ?? []) {\n itemKeys += `${item.id}:${item.version}:${item.type}`;\n }\n // NOTE(amadeus): And just like that, the react compiler do be failing us\n // lol... we need to pre-render everything for items, headers and footers to\n // not trigger needless renders while scrolling\n const renderedItems = useMemo(\n () => {\n return snapshot?.items?.map((renderedItem) =>\n createPortal(\n renderCodeViewItemChildren({\n renderedItem,\n renderCustomHeader,\n renderHeaderPrefix,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n renderAnnotation,\n renderGutterUtility,\n }),\n renderedItem.element,\n renderedItem.id\n )\n );\n },\n // oxlint-disable-next-line react-hooks/exhaustive-deps\n [\n renderCustomHeader,\n renderHeaderPrefix,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n renderAnnotation,\n renderGutterUtility,\n itemKeys,\n ]\n );\n const renderedHeader = useMemo(() => {\n return renderCodeViewHeader != null && snapshot?.header != null\n ? createPortal(renderCodeViewHeader(), snapshot.header)\n : null;\n }, [renderCodeViewHeader, snapshot?.header]);\n const renderedFooter = useMemo(() => {\n return renderCodeViewFooter != null && snapshot?.footer != null\n ? createPortal(renderCodeViewFooter(), snapshot.footer)\n : null;\n }, [renderCodeViewFooter, snapshot?.footer]);\n return (\n <>\n {renderedItems}\n {renderedHeader}\n {renderedFooter}\n </>\n );\n}) as SlotPortalsComponent;\n\nfunction renderCodeViewItemChildren<LAnnotation, Caret>({\n renderedItem,\n renderCustomHeader,\n renderHeaderPrefix,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n renderAnnotation,\n renderGutterUtility,\n}: RenderCodeViewItemChildrenProps<LAnnotation, Caret>): ReactNode {\n if (renderedItem.type === 'diff') {\n const { item, instance } = renderedItem;\n return renderDiffChildren({\n fileDiff: item.fileDiff,\n renderCustomHeader:\n renderCustomHeader != null ? () => renderCustomHeader(item) : undefined,\n renderHeaderPrefix:\n renderHeaderPrefix != null ? () => renderHeaderPrefix(item) : undefined,\n renderHeaderFilenameSuffix:\n renderHeaderFilenameSuffix != null\n ? () => renderHeaderFilenameSuffix(item)\n : undefined,\n renderHeaderMetadata:\n renderHeaderMetadata != null\n ? () => renderHeaderMetadata(item)\n : undefined,\n renderAnnotation:\n renderAnnotation != null\n ? (annotation) => renderAnnotation(annotation, item)\n : undefined,\n lineAnnotations: item.annotations,\n renderGutterUtility:\n renderGutterUtility != null\n ? (getHoveredLine) => renderGutterUtility(getHoveredLine, item)\n : undefined,\n getHoveredLine: instance.getHoveredLine,\n getAnnotationSlotName: instance.getAnnotationSlotName,\n });\n } else {\n const { item, instance } = renderedItem;\n return renderFileChildren({\n file: item.file,\n renderCustomHeader:\n renderCustomHeader != null ? () => renderCustomHeader(item) : undefined,\n renderHeaderPrefix:\n renderHeaderPrefix != null ? () => renderHeaderPrefix(item) : undefined,\n renderHeaderFilenameSuffix:\n renderHeaderFilenameSuffix != null\n ? () => renderHeaderFilenameSuffix(item)\n : undefined,\n renderHeaderMetadata:\n renderHeaderMetadata != null\n ? () => renderHeaderMetadata(item)\n : undefined,\n renderAnnotation:\n renderAnnotation != null\n ? (annotation) => renderAnnotation(annotation, item)\n : undefined,\n lineAnnotations: item.annotations,\n renderGutterUtility:\n renderGutterUtility != null\n ? (getHoveredLine) => renderGutterUtility(getHoveredLine, item)\n : undefined,\n getHoveredLine: instance.getHoveredLine,\n getAnnotationSlotName: instance.getAnnotationSlotName,\n });\n }\n}\n\nfunction noopRender() {\n return undefined;\n}\n"],"mappings":"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"}
|
|
@@ -1,20 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { EditorOptions } from "../editor/editor.js";
|
|
1
|
+
import { EditorFactory } from "../editor/types.js";
|
|
3
2
|
import { Context, PropsWithChildren } from "react";
|
|
4
3
|
|
|
5
4
|
//#region src/react/EditContext.d.ts
|
|
6
|
-
|
|
7
|
-
type CreateEditor<LAnnotation> = (options: EditorOptions<LAnnotation>) => DiffsEditor<LAnnotation>;
|
|
8
|
-
interface EditProviderProps<LAnnotation> {
|
|
5
|
+
interface EditProviderProps<LAnnotation, Caret> {
|
|
9
6
|
/** Combines shared defaults with the supplied per-surface options. */
|
|
10
|
-
createEditor:
|
|
7
|
+
createEditor: EditorFactory<LAnnotation, Caret>;
|
|
11
8
|
}
|
|
12
|
-
declare const EditContext: Context<
|
|
13
|
-
declare function EditProvider<LAnnotation>({
|
|
9
|
+
declare const EditContext: Context<EditorFactory<any, any> | undefined>;
|
|
10
|
+
declare function EditProvider<LAnnotation = undefined, Caret = undefined>({
|
|
14
11
|
children,
|
|
15
12
|
createEditor
|
|
16
|
-
}: PropsWithChildren<EditProviderProps<LAnnotation>>): React.JSX.Element;
|
|
17
|
-
declare function useCreateEditor<LAnnotation>():
|
|
13
|
+
}: PropsWithChildren<EditProviderProps<LAnnotation, Caret>>): React.JSX.Element;
|
|
14
|
+
declare function useCreateEditor<LAnnotation, Caret>(): EditorFactory<LAnnotation, Caret> | undefined;
|
|
18
15
|
//#endregion
|
|
19
|
-
export {
|
|
16
|
+
export { EditContext, EditProvider, EditProviderProps, type EditorFactory, useCreateEditor };
|
|
20
17
|
//# sourceMappingURL=EditContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditContext.d.ts","names":[],"sources":["../../src/react/EditContext.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"EditContext.d.ts","names":[],"sources":["../../src/react/EditContext.tsx"],"mappings":";;;;UAWiB,iBAAA;;EAEf,YAAA,EAAc,aAAA,CAAc,WAAA,EAAa,KAAA;AAAA;AAAA,cAG9B,WAAA,EAAa,OAAO,CAAC,aAAA;AAAA,iBAGlB,YAAA;EACd,QAAA;EACA;AAAA,GACC,iBAAA,CACD,iBAAA,CAAkB,WAAA,EAAa,KAAA,KAC7B,KAAA,CAAM,GAAA,CAAI,OAAA;AAAA,iBAgBE,eAAA,wBACZ,aAAA,CAAc,WAAA,EAAa,KAAA"}
|
|
@@ -1,18 +1,11 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useStableCallback } from "./utils/useStableCallback.js";
|
|
3
|
-
import { createContext, useContext
|
|
3
|
+
import { createContext, useContext } from "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
//#region src/react/EditContext.tsx
|
|
6
6
|
const EditContext = createContext(void 0);
|
|
7
7
|
function EditProvider({ children, createEditor }) {
|
|
8
|
-
const
|
|
9
|
-
const stableCreateEditor = useStableCallback((options) => {
|
|
10
|
-
const cached = editorCacheRef.current.get(options);
|
|
11
|
-
if (cached != null) return cached;
|
|
12
|
-
const editor = createEditor(options);
|
|
13
|
-
editorCacheRef.current.set(options, editor);
|
|
14
|
-
return editor;
|
|
15
|
-
});
|
|
8
|
+
const stableCreateEditor = useStableCallback((editorType, options, editStateKey) => createEditor(editorType, options, editStateKey));
|
|
16
9
|
return /* @__PURE__ */ jsx(EditContext.Provider, {
|
|
17
10
|
value: stableCreateEditor,
|
|
18
11
|
children
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditContext.js","names":[],"sources":["../../src/react/EditContext.tsx"],"sourcesContent":["// oxlint-disable typescript/no-explicit-any\n'use client';\n\nimport type { Context, PropsWithChildren } from 'react';\nimport { createContext, useContext
|
|
1
|
+
{"version":3,"file":"EditContext.js","names":[],"sources":["../../src/react/EditContext.tsx"],"sourcesContent":["// oxlint-disable typescript/no-explicit-any\n'use client';\n\nimport type { Context, PropsWithChildren } from 'react';\nimport { createContext, useContext } from 'react';\n\nimport type { Editor, EditorFactory, EditorOptions, EditorType } from '../edit';\nimport { useStableCallback } from './utils/useStableCallback';\n\nexport type { EditorFactory } from '../edit';\n\nexport interface EditProviderProps<LAnnotation, Caret> {\n /** Combines shared defaults with the supplied per-surface options. */\n createEditor: EditorFactory<LAnnotation, Caret>;\n}\n\nexport const EditContext: Context<EditorFactory<any, any> | undefined> =\n createContext<EditorFactory<any, any> | undefined>(undefined);\n\nexport function EditProvider<LAnnotation = undefined, Caret = undefined>({\n children,\n createEditor,\n}: PropsWithChildren<\n EditProviderProps<LAnnotation, Caret>\n>): React.JSX.Element {\n const stableCreateEditor = useStableCallback(\n <EType extends EditorType>(\n editorType: EType,\n options: EditorOptions<EType, LAnnotation, Caret>,\n editStateKey?: string\n ): Editor<EType, LAnnotation, Caret> =>\n createEditor(editorType, options, editStateKey)\n );\n return (\n <EditContext.Provider value={stableCreateEditor}>\n {children}\n </EditContext.Provider>\n );\n}\n\nexport function useCreateEditor<LAnnotation, Caret>():\n | EditorFactory<LAnnotation, Caret>\n | undefined {\n return useContext(EditContext);\n}\n"],"mappings":";;;;;AAgBA,MAAa,cACX,cAAmD,KAAA,CAAS;AAE9D,SAAgB,aAAyD,EACvE,UACA,gBAGoB;CACpB,MAAM,qBAAqB,mBAEvB,YACA,SACA,iBAEA,aAAa,YAAY,SAAS,YAAY,CAClD;CACA,OACE,oBAAC,YAAY,UAAb;EAAsB,OAAO;EAC1B;CACmB,CAAA;AAE1B;AAEA,SAAgB,kBAEF;CACZ,OAAO,WAAW,WAAW;AAC/B"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { FileEditCompleteEvent } from "../editor/types.js";
|
|
2
|
+
import { FileEditChangeHandler, FileEditCompleteHandler } from "../components/File.js";
|
|
3
|
+
import { FileOptions, FileProps } from "./types.js";
|
|
3
4
|
|
|
4
5
|
//#region src/react/File.d.ts
|
|
5
|
-
declare function File<LAnnotation = undefined>({
|
|
6
|
+
declare function File<LAnnotation = undefined, Caret = undefined>({
|
|
6
7
|
file,
|
|
7
8
|
lineAnnotations,
|
|
8
9
|
selectedLines,
|
|
9
10
|
options,
|
|
10
11
|
editorOptions,
|
|
12
|
+
editStateKey,
|
|
11
13
|
metrics,
|
|
12
14
|
className,
|
|
13
15
|
style,
|
|
@@ -19,8 +21,10 @@ declare function File<LAnnotation = undefined>({
|
|
|
19
21
|
prerenderedHTML,
|
|
20
22
|
renderGutterUtility,
|
|
21
23
|
disableWorkerPool,
|
|
22
|
-
edit
|
|
23
|
-
|
|
24
|
+
edit,
|
|
25
|
+
onEditChange,
|
|
26
|
+
onEditComplete
|
|
27
|
+
}: FileProps<LAnnotation, Caret>): React.JSX.Element;
|
|
24
28
|
//#endregion
|
|
25
|
-
export { File, type FileOptions };
|
|
29
|
+
export { File, type FileEditChangeHandler, type FileEditCompleteEvent, type FileEditCompleteHandler, type FileOptions };
|
|
26
30
|
//# sourceMappingURL=File.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"File.d.ts","names":[],"sources":["../../src/react/File.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"File.d.ts","names":[],"sources":["../../src/react/File.tsx"],"mappings":";;;;;iBAoBgB,IAAA;EACd,IAAA;EACA,eAAA;EACA,aAAA;EACA,OAAA;EACA,aAAA;EACA,YAAA;EACA,OAAA;EACA,SAAA;EACA,KAAA;EACA,gBAAA;EACA,kBAAA;EACA,kBAAA;EACA,0BAAA;EACA,oBAAA;EACA,eAAA;EACA,mBAAA;EACA,iBAAA;EACA,IAAA;EACA,YAAA;EACA;AAAA,GACC,SAAA,CAAU,WAAA,EAAa,KAAA,IAAS,KAAA,CAAM,GAAA,CAAI,OAAA"}
|
|
@@ -5,11 +5,12 @@ import { templateRender } from "./utils/templateRender.js";
|
|
|
5
5
|
import { useFileInstance } from "./utils/useFileInstance.js";
|
|
6
6
|
import { jsx } from "react/jsx-runtime";
|
|
7
7
|
//#region src/react/File.tsx
|
|
8
|
-
function File({ file, lineAnnotations, selectedLines, options, editorOptions, metrics, className, style, renderAnnotation, renderCustomHeader, renderHeaderPrefix, renderHeaderFilenameSuffix, renderHeaderMetadata, prerenderedHTML, renderGutterUtility, disableWorkerPool = false, edit = false }) {
|
|
9
|
-
const { ref, getHoveredLine } = useFileInstance({
|
|
8
|
+
function File({ file, lineAnnotations, selectedLines, options, editorOptions, editStateKey, metrics, className, style, renderAnnotation, renderCustomHeader, renderHeaderPrefix, renderHeaderFilenameSuffix, renderHeaderMetadata, prerenderedHTML, renderGutterUtility, disableWorkerPool = false, edit = false, onEditChange, onEditComplete }) {
|
|
9
|
+
const { ref, getHoveredLine, getAnnotationSlotName } = useFileInstance({
|
|
10
10
|
file,
|
|
11
11
|
options,
|
|
12
12
|
editorOptions,
|
|
13
|
+
editStateKey,
|
|
13
14
|
metrics,
|
|
14
15
|
lineAnnotations,
|
|
15
16
|
selectedLines,
|
|
@@ -17,7 +18,9 @@ function File({ file, lineAnnotations, selectedLines, options, editorOptions, me
|
|
|
17
18
|
hasGutterRenderUtility: renderGutterUtility != null,
|
|
18
19
|
hasCustomHeader: renderCustomHeader != null,
|
|
19
20
|
disableWorkerPool,
|
|
20
|
-
edit
|
|
21
|
+
edit,
|
|
22
|
+
onEditChange,
|
|
23
|
+
onEditComplete
|
|
21
24
|
});
|
|
22
25
|
return /* @__PURE__ */ jsx(DIFFS_TAG_NAME, {
|
|
23
26
|
ref,
|
|
@@ -32,7 +35,8 @@ function File({ file, lineAnnotations, selectedLines, options, editorOptions, me
|
|
|
32
35
|
renderHeaderMetadata,
|
|
33
36
|
renderGutterUtility,
|
|
34
37
|
lineAnnotations,
|
|
35
|
-
getHoveredLine
|
|
38
|
+
getHoveredLine,
|
|
39
|
+
getAnnotationSlotName
|
|
36
40
|
}), prerenderedHTML)
|
|
37
41
|
});
|
|
38
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"File.js","names":[],"sources":["../../src/react/File.tsx"],"sourcesContent":["'use client';\n\nimport { type
|
|
1
|
+
{"version":3,"file":"File.js","names":[],"sources":["../../src/react/File.tsx"],"sourcesContent":["'use client';\n\nimport {\n type FileEditChangeHandler,\n type FileEditCompleteEvent,\n type FileEditCompleteHandler,\n} from '../components/File';\nimport { DIFFS_TAG_NAME } from '../constants';\nimport type { FileProps } from './types';\nimport { renderFileChildren } from './utils/renderFileChildren';\nimport { templateRender } from './utils/templateRender';\nimport { useFileInstance } from './utils/useFileInstance';\n\nexport type {\n FileEditChangeHandler,\n FileEditCompleteEvent,\n FileEditCompleteHandler,\n};\nexport type { FileOptions } from './types';\n\nexport function File<LAnnotation = undefined, Caret = undefined>({\n file,\n lineAnnotations,\n selectedLines,\n options,\n editorOptions,\n editStateKey,\n metrics,\n className,\n style,\n renderAnnotation,\n renderCustomHeader,\n renderHeaderPrefix,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n prerenderedHTML,\n renderGutterUtility,\n disableWorkerPool = false,\n edit = false,\n onEditChange,\n onEditComplete,\n}: FileProps<LAnnotation, Caret>): React.JSX.Element {\n const { ref, getHoveredLine, getAnnotationSlotName } = useFileInstance({\n file,\n options,\n editorOptions,\n editStateKey,\n metrics,\n lineAnnotations,\n selectedLines,\n prerenderedHTML,\n hasGutterRenderUtility: renderGutterUtility != null,\n hasCustomHeader: renderCustomHeader != null,\n disableWorkerPool,\n edit,\n onEditChange,\n onEditComplete,\n });\n const children = renderFileChildren({\n file,\n renderAnnotation,\n renderCustomHeader,\n renderHeaderPrefix,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n renderGutterUtility,\n lineAnnotations,\n getHoveredLine,\n getAnnotationSlotName,\n });\n return (\n <DIFFS_TAG_NAME ref={ref} className={className} style={style}>\n {templateRender(children, prerenderedHTML)}\n </DIFFS_TAG_NAME>\n );\n}\n"],"mappings":";;;;;;;AAoBA,SAAgB,KAAiD,EAC/D,MACA,iBACA,eACA,SACA,eACA,cACA,SACA,WACA,OACA,kBACA,oBACA,oBACA,4BACA,sBACA,iBACA,qBACA,oBAAoB,OACpB,OAAO,OACP,cACA,kBACmD;CACnD,MAAM,EAAE,KAAK,gBAAgB,0BAA0B,gBAAgB;EACrE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,wBAAwB,uBAAuB;EAC/C,iBAAiB,sBAAsB;EACvC;EACA;EACA;EACA;CACF,CAAC;CAaD,OACE,oBAAC,gBAAD;EAAqB;EAAgB;EAAkB;YACpD,eAdY,mBAAmB;GAClC;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF,CAG2B,GAAG,eAAe;CAC3B,CAAA;AAEpB"}
|