@openclaw/diffs 2026.8.1-beta.3 → 2026.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/viewer-runtime.js +134 -161
- package/dist/{browser.runtime-_hkQDewM.js → browser.runtime-DTKAejqd.js} +1 -1
- package/dist/index.js +7 -6
- package/dist/{viewer-assets-DKR8WLAI.js → viewer-assets-D3qrnaxI.js} +11 -23
- package/node_modules/@pierre/diffs/README.md +9 -0
- package/node_modules/@pierre/diffs/dist/components/CodeView.d.ts +94 -7
- package/node_modules/@pierre/diffs/dist/components/CodeView.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/CodeView.js +333 -47
- package/node_modules/@pierre/diffs/dist/components/CodeView.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/File.d.ts +22 -4
- package/node_modules/@pierre/diffs/dist/components/File.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/File.js +143 -23
- package/node_modules/@pierre/diffs/dist/components/File.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/FileDiff.d.ts +83 -19
- package/node_modules/@pierre/diffs/dist/components/FileDiff.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/FileDiff.js +461 -46
- package/node_modules/@pierre/diffs/dist/components/FileDiff.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/FileStream.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/FileStream.js +2 -1
- package/node_modules/@pierre/diffs/dist/components/FileStream.js.map +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 +9 -4
- package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.d.ts +7 -3
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.js +87 -60
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.d.ts +30 -5
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js +277 -56
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/Virtualizer.d.ts +17 -3
- package/node_modules/@pierre/diffs/dist/components/Virtualizer.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/Virtualizer.js +44 -5
- package/node_modules/@pierre/diffs/dist/components/Virtualizer.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/constants.d.ts +4 -1
- package/node_modules/@pierre/diffs/dist/constants.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/constants.js +4 -1
- package/node_modules/@pierre/diffs/dist/constants.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/edit/index.d.ts +6 -0
- package/node_modules/@pierre/diffs/dist/edit/index.js +3 -0
- package/node_modules/@pierre/diffs/dist/editor/command.d.ts +15 -0
- package/node_modules/@pierre/diffs/dist/editor/command.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/command.js +128 -0
- package/node_modules/@pierre/diffs/dist/editor/command.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/editStack.d.ts +76 -0
- package/node_modules/@pierre/diffs/dist/editor/editStack.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/editStack.js +259 -0
- package/node_modules/@pierre/diffs/dist/editor/editStack.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/editor.d.ts +118 -0
- package/node_modules/@pierre/diffs/dist/editor/editor.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/editor.js +2880 -0
- package/node_modules/@pierre/diffs/dist/editor/editor.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/editor2.js +6 -0
- package/node_modules/@pierre/diffs/dist/editor/editor2.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/languages.d.ts +26 -0
- package/node_modules/@pierre/diffs/dist/editor/languages.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/languages.js +363 -0
- package/node_modules/@pierre/diffs/dist/editor/languages.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.d.ts +9 -0
- package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.js +212 -0
- package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/marker.d.ts +38 -0
- package/node_modules/@pierre/diffs/dist/editor/marker.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/marker.js +245 -0
- package/node_modules/@pierre/diffs/dist/editor/marker.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/matchBrackets.d.ts +9 -0
- package/node_modules/@pierre/diffs/dist/editor/matchBrackets.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/matchBrackets.js +138 -0
- package/node_modules/@pierre/diffs/dist/editor/matchBrackets.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/pieceTable.d.ts +40 -0
- package/node_modules/@pierre/diffs/dist/editor/pieceTable.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/pieceTable.js +706 -0
- package/node_modules/@pierre/diffs/dist/editor/pieceTable.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/platform.d.ts +11 -0
- package/node_modules/@pierre/diffs/dist/editor/platform.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/platform.js +31 -0
- package/node_modules/@pierre/diffs/dist/editor/platform.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/popover.d.ts +65 -0
- package/node_modules/@pierre/diffs/dist/editor/popover.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/popover.js +191 -0
- package/node_modules/@pierre/diffs/dist/editor/popover.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/searchPanel.d.ts +41 -0
- package/node_modules/@pierre/diffs/dist/editor/searchPanel.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/searchPanel.js +318 -0
- package/node_modules/@pierre/diffs/dist/editor/searchPanel.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/selection.d.ts +211 -0
- package/node_modules/@pierre/diffs/dist/editor/selection.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/selection.js +1626 -0
- package/node_modules/@pierre/diffs/dist/editor/selection.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/selectionAction.d.ts +47 -0
- package/node_modules/@pierre/diffs/dist/editor/selectionAction.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/selectionAction.js +66 -0
- package/node_modules/@pierre/diffs/dist/editor/selectionAction.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/sprite.d.ts +8 -0
- package/node_modules/@pierre/diffs/dist/editor/sprite.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/sprite.js +45 -0
- package/node_modules/@pierre/diffs/dist/editor/sprite.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/stateStorage.d.ts +15 -0
- package/node_modules/@pierre/diffs/dist/editor/stateStorage.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/stateStorage.js +65 -0
- package/node_modules/@pierre/diffs/dist/editor/stateStorage.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/textDocument.d.ts +67 -0
- package/node_modules/@pierre/diffs/dist/editor/textDocument.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/textDocument.js +278 -0
- package/node_modules/@pierre/diffs/dist/editor/textDocument.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/textMeasure.d.ts +61 -0
- package/node_modules/@pierre/diffs/dist/editor/textMeasure.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/textMeasure.js +209 -0
- package/node_modules/@pierre/diffs/dist/editor/textMeasure.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/tokenizer.d.ts +41 -0
- package/node_modules/@pierre/diffs/dist/editor/tokenizer.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/tokenizer.js +596 -0
- package/node_modules/@pierre/diffs/dist/editor/tokenizer.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/utils.d.ts +22 -0
- package/node_modules/@pierre/diffs/dist/editor/utils.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/utils.js +78 -0
- package/node_modules/@pierre/diffs/dist/editor/utils.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/index.d.ts +12 -9
- package/node_modules/@pierre/diffs/dist/index.js +13 -10
- package/node_modules/@pierre/diffs/dist/managers/InteractionManager.d.ts +20 -2
- package/node_modules/@pierre/diffs/dist/managers/InteractionManager.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/managers/InteractionManager.js +155 -79
- package/node_modules/@pierre/diffs/dist/managers/InteractionManager.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/managers/ResizeManager.d.ts +10 -2
- package/node_modules/@pierre/diffs/dist/managers/ResizeManager.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/managers/ResizeManager.js +33 -13
- package/node_modules/@pierre/diffs/dist/managers/ResizeManager.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.d.ts +2 -1
- package/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.js +7 -3
- package/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/CodeView.d.ts +29 -3
- package/node_modules/@pierre/diffs/dist/react/CodeView.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/CodeView.js +111 -30
- package/node_modules/@pierre/diffs/dist/react/CodeView.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/EditContext.d.ts +20 -0
- package/node_modules/@pierre/diffs/dist/react/EditContext.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/react/EditContext.js +27 -0
- package/node_modules/@pierre/diffs/dist/react/EditContext.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/react/File.d.ts +4 -1
- package/node_modules/@pierre/diffs/dist/react/File.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/File.js +5 -2
- package/node_modules/@pierre/diffs/dist/react/File.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/FileDiff.d.ts +4 -1
- package/node_modules/@pierre/diffs/dist/react/FileDiff.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/FileDiff.js +5 -2
- package/node_modules/@pierre/diffs/dist/react/FileDiff.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.d.ts +7 -5
- package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.js +5 -2
- package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/PatchDiff.d.ts +4 -1
- package/node_modules/@pierre/diffs/dist/react/PatchDiff.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/PatchDiff.js +5 -2
- package/node_modules/@pierre/diffs/dist/react/PatchDiff.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.d.ts +2 -1
- package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.js +2 -1
- package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/index.d.ts +4 -3
- package/node_modules/@pierre/diffs/dist/react/index.js +3 -2
- package/node_modules/@pierre/diffs/dist/react/types.d.ts +11 -0
- package/node_modules/@pierre/diffs/dist/react/types.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.d.ts +2 -0
- package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.js +16 -8
- package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.d.ts +2 -0
- package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.js +16 -8
- package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.d.ts +6 -2
- package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.js +21 -6
- package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.d.ts +7 -2
- package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.js +21 -6
- package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/useUnresolvedFileInstance.js +4 -4
- package/node_modules/@pierre/diffs/dist/react/utils/useUnresolvedFileInstance.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.d.ts +47 -2
- package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js +361 -37
- package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.d.ts +26 -1
- package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js +240 -55
- package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.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 +11 -10
- package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.js +17 -7
- package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/ssr/preloadFile.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/ssr/preloadFile.js +2 -0
- package/node_modules/@pierre/diffs/dist/ssr/preloadFile.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/style.js +1 -1
- package/node_modules/@pierre/diffs/dist/types.d.ts +336 -5
- package/node_modules/@pierre/diffs/dist/types.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/annotationHelpers.d.ts +20 -0
- package/node_modules/@pierre/diffs/dist/utils/annotationHelpers.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/annotationHelpers.js +29 -0
- package/node_modules/@pierre/diffs/dist/utils/annotationHelpers.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/applyLineTextWithNewline.d.ts +5 -0
- package/node_modules/@pierre/diffs/dist/utils/applyLineTextWithNewline.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/applyLineTextWithNewline.js +11 -0
- package/node_modules/@pierre/diffs/dist/utils/applyLineTextWithNewline.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/areHunkDataEqual.js +1 -1
- package/node_modules/@pierre/diffs/dist/utils/areHunkDataEqual.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.d.ts +2 -2
- package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.js +6 -1
- package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/awaitWithTimeout.d.ts +5 -0
- package/node_modules/@pierre/diffs/dist/utils/awaitWithTimeout.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/awaitWithTimeout.js +15 -0
- package/node_modules/@pierre/diffs/dist/utils/awaitWithTimeout.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/cleanLastNewline.js +6 -1
- package/node_modules/@pierre/diffs/dist/utils/cleanLastNewline.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.d.ts +7 -0
- package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.js +16 -0
- package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.d.ts +3 -1
- package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.js +8 -1
- package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/computeFileOffsets.d.ts +21 -0
- package/node_modules/@pierre/diffs/dist/utils/computeFileOffsets.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/computeFileOffsets.js +80 -0
- package/node_modules/@pierre/diffs/dist/utils/computeFileOffsets.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/createCodeViewHeaderFooterHostElement.d.ts +5 -0
- package/node_modules/@pierre/diffs/dist/utils/createCodeViewHeaderFooterHostElement.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/createCodeViewHeaderFooterHostElement.js +19 -0
- package/node_modules/@pierre/diffs/dist/utils/createCodeViewHeaderFooterHostElement.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/createFileHeaderElement.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/createFileHeaderElement.js +5 -1
- package/node_modules/@pierre/diffs/dist/utils/createFileHeaderElement.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/createTransformerWithState.js +9 -0
- package/node_modules/@pierre/diffs/dist/utils/createTransformerWithState.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.d.ts +66 -0
- package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.js +437 -0
- package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/getDiffFileInput.d.ts +14 -0
- package/node_modules/@pierre/diffs/dist/utils/getDiffFileInput.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/getDiffFileInput.js +24 -0
- package/node_modules/@pierre/diffs/dist/utils/getDiffFileInput.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.js +3 -1
- package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.js +2 -1
- package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/getFiletypeFromFileName.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/getFiletypeFromFileName.js +2 -0
- package/node_modules/@pierre/diffs/dist/utils/getFiletypeFromFileName.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.d.ts +7 -0
- package/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.js +12 -0
- package/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/getTotalLineCountFromHunks.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/getTotalLineCountFromHunks.js +2 -1
- package/node_modules/@pierre/diffs/dist/utils/getTotalLineCountFromHunks.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/guardWebKitScrollDuringRebuild.d.ts +20 -0
- package/node_modules/@pierre/diffs/dist/utils/guardWebKitScrollDuringRebuild.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/guardWebKitScrollDuringRebuild.js +34 -0
- package/node_modules/@pierre/diffs/dist/utils/guardWebKitScrollDuringRebuild.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.d.ts +10 -0
- package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.js +141 -0
- package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/isGutterUtilityPath.d.ts +5 -0
- package/node_modules/@pierre/diffs/dist/utils/isGutterUtilityPath.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/isGutterUtilityPath.js +12 -0
- package/node_modules/@pierre/diffs/dist/utils/isGutterUtilityPath.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/iterateOverDiff.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/iterateOverDiff.js +20 -15
- package/node_modules/@pierre/diffs/dist/utils/iterateOverDiff.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.d.ts +1 -1
- package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js +26 -5
- package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/parseMergeConflictDiffFromFile.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/parseMergeConflictDiffFromFile.js +9 -6
- package/node_modules/@pierre/diffs/dist/utils/parseMergeConflictDiffFromFile.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js +6 -3
- package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/platform.d.ts +14 -0
- package/node_modules/@pierre/diffs/dist/utils/platform.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/platform.js +32 -0
- package/node_modules/@pierre/diffs/dist/utils/platform.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.d.ts +33 -0
- package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.js +148 -0
- package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.js +1 -1
- package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.js +5 -14
- package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/resolveRegion.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/resolveRegion.js +18 -2
- package/node_modules/@pierre/diffs/dist/utils/resolveRegion.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/shouldUseTokenTransformer.d.ts +7 -3
- package/node_modules/@pierre/diffs/dist/utils/shouldUseTokenTransformer.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/shouldUseTokenTransformer.js +1 -1
- package/node_modules/@pierre/diffs/dist/utils/shouldUseTokenTransformer.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.d.ts +24 -0
- package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.js +236 -0
- package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.d.ts +43 -2
- package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.js +107 -5
- package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.d.ts +9 -3
- package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.js +86 -18
- package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/worker/index.d.ts +2 -2
- package/node_modules/@pierre/diffs/dist/worker/types.d.ts +11 -1
- package/node_modules/@pierre/diffs/dist/worker/types.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/worker/wasm-B9ZqxnKj.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/worker/worker-portable.js +116 -95
- package/node_modules/@pierre/diffs/dist/worker/worker-portable.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/worker/worker.js +102 -80
- package/node_modules/@pierre/diffs/dist/worker/worker.js.map +1 -1
- package/node_modules/@pierre/diffs/node_modules/@pierre/theme/LICENSE +189 -21
- package/node_modules/@pierre/diffs/node_modules/@pierre/theme/NOTICE.md +32 -0
- package/node_modules/@pierre/diffs/node_modules/@pierre/theme/package.json +3 -2
- package/node_modules/@pierre/diffs/node_modules/@pierre/theming/LICENSE.md +189 -0
- package/node_modules/@pierre/diffs/node_modules/@pierre/theming/README.md +9 -0
- package/node_modules/@pierre/diffs/node_modules/@pierre/theming/package.json +5 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/LICENSE +22 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/README.md +7 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/1c-query.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/1c-query.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/1c.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/1c.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/abap.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/abap.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/actionscript-3.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/actionscript-3.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ada.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ada.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/adoc.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/adoc.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-expression.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-expression.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-html.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-html.mjs +16 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-inline-style.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-inline-style.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-inline-template.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-inline-template.mjs +10 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-let-declaration.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-let-declaration.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-template-blocks.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-template-blocks.mjs +10 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-template.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-template.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-ts.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-ts.mjs +18 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/apache.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/apache.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/apex.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/apex.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/apl.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/apl.mjs +16 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/applescript.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/applescript.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ara.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ara.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/asciidoc.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/asciidoc.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/asm.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/asm.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/astro.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/astro.mjs +18 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/awk.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/awk.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ballerina.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ballerina.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bash.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bash.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bat.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bat.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/batch.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/batch.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/be.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/be.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/beancount.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/beancount.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/berry.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/berry.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bibtex.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bibtex.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bicep.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bicep.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bird.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bird.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bird2.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bird2.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/blade.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/blade.mjs +20 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bsl.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bsl.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/c.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/c.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/c3.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/c3.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cadence.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cadence.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cairo.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cairo.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cdc.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cdc.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cjs.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cjs.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/clarity.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/clarity.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/clj.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/clj.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/clojure.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/clojure.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/closure-templates.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/closure-templates.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cmake.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cmake.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cmd.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cmd.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cobol.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cobol.mjs +10 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/codeowners.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/codeowners.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/codeql.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/codeql.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/coffee.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/coffee.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/coffeescript.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/coffeescript.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/common-lisp.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/common-lisp.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/console.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/console.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/coq.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/coq.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cpp-macro.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cpp-macro.mjs +12 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cpp.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cpp.mjs +14 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cql.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cql.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/crystal.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/crystal.mjs +18 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cs.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cs.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/csharp.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/csharp.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/css.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/css.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/csv.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/csv.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cts.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cts.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cue.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cue.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cypher.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cypher.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/d.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/d.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dart.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dart.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dax.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dax.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/desktop.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/desktop.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/diff.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/diff.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/docker.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/docker.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dockerfile.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dockerfile.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dotenv.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dotenv.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dream-maker.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dream-maker.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/edge.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/edge.mjs +12 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/elisp.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/elisp.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/elixir.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/elixir.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/elm.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/elm.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/emacs-lisp.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/emacs-lisp.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/erb.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/erb.mjs +10 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/erl.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/erl.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/erlang.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/erlang.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-css.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-css.mjs +12 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-glsl.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-glsl.mjs +12 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-html.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-html.mjs +12 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-sql.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-sql.mjs +10 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-xml.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-xml.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f03.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f03.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f08.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f08.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f18.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f18.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f77.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f77.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f90.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f90.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f95.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f95.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fennel.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fennel.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fish.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fish.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fluent.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fluent.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/for.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/for.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fortran-fixed-form.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fortran-fixed-form.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fortran-free-form.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fortran-free-form.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fs.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fs.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fsharp.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fsharp.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fsl.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fsl.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ftl.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ftl.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gd.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gd.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gdresource.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gdresource.mjs +10 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gdscript.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gdscript.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gdshader.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gdshader.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/genie.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/genie.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gherkin.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gherkin.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/git-commit.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/git-commit.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/git-rebase.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/git-rebase.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gjs.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gjs.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gleam.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gleam.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/glimmer-js.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/glimmer-js.mjs +14 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/glimmer-ts.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/glimmer-ts.mjs +14 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/glsl.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/glsl.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gn.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gn.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gnuplot.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gnuplot.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/go.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/go.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gql.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gql.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/graphql.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/graphql.mjs +14 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/groovy.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/groovy.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gts.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gts.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hack.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hack.mjs +10 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/haml.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/haml.mjs +10 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/handlebars.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/handlebars.mjs +14 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/haskell.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/haskell.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/haxe.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/haxe.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hbs.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hbs.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hcl.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hcl.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hjson.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hjson.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hlsl.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hlsl.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hs.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hs.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/html-derivative.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/html-derivative.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/html.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/html.mjs +10 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/http.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/http.mjs +14 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hurl.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hurl.mjs +12 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hxml.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hxml.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hy.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hy.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/imba.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/imba.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/index.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/index.mjs +353 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ini.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ini.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jade.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jade.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/java.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/java.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/javascript.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/javascript.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jinja-html.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jinja-html.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jinja.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jinja.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jison.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jison.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jl.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jl.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/js.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/js.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/json.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/json.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/json5.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/json5.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsonc.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsonc.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsonl.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsonl.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsonnet.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsonnet.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jssm.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jssm.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsx.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsx.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/julia.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/julia.mjs +16 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/just.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/just.mjs +18 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kdl.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kdl.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kotlin.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kotlin.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kql.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kql.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kt.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kt.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kts.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kts.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kusto.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kusto.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/latex.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/latex.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lean.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lean.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lean4.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lean4.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/less.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/less.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/liquid.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/liquid.mjs +14 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lisp.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lisp.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lit.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lit.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/llvm.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/llvm.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/log.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/log.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/logo.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/logo.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lua.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lua.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/luau.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/luau.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/make.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/make.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/makefile.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/makefile.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/markdown-nix.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/markdown-nix.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/markdown-vue.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/markdown-vue.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/markdown.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/markdown.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/marko.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/marko.mjs +14 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/matlab.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/matlab.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mbt.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mbt.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mbti.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mbti.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/md.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/md.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mdc.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mdc.mjs +12 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mdx.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mdx.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mediawiki.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mediawiki.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mermaid.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mermaid.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mips.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mips.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mipsasm.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mipsasm.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mjs.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mjs.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mmd.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mmd.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mojo.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mojo.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/moonbit.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/moonbit.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/move.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/move.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mts.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mts.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nar.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nar.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/narrat.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/narrat.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nextflow-groovy.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nextflow-groovy.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nextflow.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nextflow.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nf.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nf.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nginx.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nginx.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nim.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nim.mjs +20 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nix.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nix.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nu.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nu.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nushell.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nushell.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/objc.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/objc.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/objective-c.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/objective-c.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/objective-cpp.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/objective-cpp.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ocaml.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ocaml.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/odin.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/odin.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/openscad.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/openscad.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pascal.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pascal.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/perl.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/perl.mjs +16 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/perl6.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/perl6.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/php.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/php.mjs +18 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pkl.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pkl.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/plsql.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/plsql.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/po.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/po.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/polar.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/polar.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/postcss.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/postcss.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pot.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pot.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/potx.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/potx.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/powerquery.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/powerquery.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/powershell.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/powershell.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/prisma.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/prisma.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/prolog.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/prolog.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/properties.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/properties.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/proto.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/proto.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/protobuf.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/protobuf.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ps.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ps.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ps1.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ps1.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pug.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pug.mjs +12 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/puppet.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/puppet.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/purescript.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/purescript.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/py.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/py.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/python.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/python.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ql.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ql.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/qml.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/qml.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/qmldir.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/qmldir.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/qss.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/qss.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/r.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/r.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/racket.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/racket.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/raku.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/raku.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/razor.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/razor.mjs +10 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rb.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rb.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/reg.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/reg.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/regex.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/regex.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/regexp.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/regexp.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rel.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rel.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/riscv.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/riscv.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ron.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ron.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rosmsg.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rosmsg.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rs.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rs.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rst.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rst.mjs +22 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ruby.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ruby.mjs +30 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rust.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rust.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sas.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sas.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sass.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sass.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scad.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scad.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scala.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scala.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scheme.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scheme.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scss.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scss.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sdbl.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sdbl.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sh.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sh.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shader.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shader.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shaderlab.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shaderlab.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shell.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shell.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shellscript.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shellscript.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shellsession.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shellsession.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/smalltalk.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/smalltalk.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/solidity.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/solidity.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/soy.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/soy.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sparql.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sparql.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/spl.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/spl.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/splunk.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/splunk.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sql.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sql.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ssh-config.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ssh-config.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/stata.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/stata.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/styl.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/styl.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/stylus.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/stylus.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/surql.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/surql.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/surrealql.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/surrealql.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/svelte.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/svelte.mjs +14 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/swift.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/swift.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/system-verilog.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/system-verilog.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/systemd.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/systemd.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/talon.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/talon.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/talonscript.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/talonscript.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tasl.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tasl.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tcl.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tcl.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/templ.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/templ.mjs +12 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/terraform.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/terraform.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tex.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tex.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tf.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tf.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tfvars.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tfvars.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/toml.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/toml.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tres.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tres.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ts-tags.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ts-tags.mjs +18 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ts.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ts.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tscn.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tscn.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tsp.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tsp.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tsv.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tsv.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tsx.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tsx.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/turtle.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/turtle.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/twig.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/twig.mjs +18 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typ.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typ.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typescript.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typescript.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typespec.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typespec.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typst.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typst.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/v.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/v.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vala.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vala.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vb.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vb.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/verilog.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/verilog.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vhdl.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vhdl.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vim.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vim.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/viml.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/viml.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vimscript.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vimscript.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-directives.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-directives.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-html.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-html.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-interpolations.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-interpolations.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-sfc-style-variable-injection.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-sfc-style-variable-injection.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-vine.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-vine.mjs +18 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue.mjs +26 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vy.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vy.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vyper.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vyper.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wasm.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wasm.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wenyan.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wenyan.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wgsl.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wgsl.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wiki.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wiki.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wikitext.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wikitext.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wit.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wit.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wl.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wl.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wolfram.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wolfram.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/xml.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/xml.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/xsl.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/xsl.mjs +8 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/yaml.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/yaml.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/yml.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/yml.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/zenscript.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/zenscript.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/zig.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/zig.mjs +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/zsh.d.mts +3 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/zsh.mjs +2 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/package.json +387 -0
- package/node_modules/@pierre/diffs/package.json +13 -4
- package/node_modules/@shikijs/langs/dist/actionscript-3.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/actionscript.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/actionscript.mjs +2 -0
- package/node_modules/@shikijs/langs/dist/ahk.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/ahk.mjs +5 -0
- package/node_modules/@shikijs/langs/dist/ahk1.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/ahk1.mjs +2 -0
- package/node_modules/@shikijs/langs/dist/ahk2.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/ahk2.mjs +5 -0
- package/node_modules/@shikijs/langs/dist/apex.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/as3.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/as3.mjs +2 -0
- package/node_modules/@shikijs/langs/dist/asciidoc.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/bat.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/bird2.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/bsl.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/c3.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/chapel.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/chapel.mjs +8 -0
- package/node_modules/@shikijs/langs/dist/chpl.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/chpl.mjs +2 -0
- package/node_modules/@shikijs/langs/dist/clarity.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/cmd.mjs +2 -2
- package/node_modules/@shikijs/langs/dist/coq.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/cpp-macro.mjs +1 -3
- package/node_modules/@shikijs/langs/dist/cpp.mjs +1 -3
- package/node_modules/@shikijs/langs/dist/emacs-lisp.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/gdscript.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/hack.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/haxe.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/hxml.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/index.mjs +14 -0
- package/node_modules/@shikijs/langs/dist/just.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/justfile.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/justfile.mjs +2 -0
- package/node_modules/@shikijs/langs/dist/llvm.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/luau.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/mdc.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/mermaid.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/mojo.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/moonbit.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/move.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/nsis.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/nsis.mjs +5 -0
- package/node_modules/@shikijs/langs/dist/nushell.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/org.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/org.mjs +100 -0
- package/node_modules/@shikijs/langs/dist/powershell.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/prisma.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/pwsh.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/pwsh.mjs +2 -0
- package/node_modules/@shikijs/langs/dist/r.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/rbs.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/rbs.mjs +5 -0
- package/node_modules/@shikijs/langs/dist/ruby-signature.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/ruby-signature.mjs +2 -0
- package/node_modules/@shikijs/langs/dist/scala.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/smalltalk.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/smithy.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/smithy.mjs +5 -0
- package/node_modules/@shikijs/langs/dist/solidity.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/surrealql.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/swift.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/system-verilog.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/twig.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/typst.mjs +116 -1
- package/node_modules/@shikijs/langs/dist/v.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/vb.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/verilog.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/vue.mjs +1 -1
- package/node_modules/@shikijs/langs/node_modules/@shikijs/types/dist/index.d.mts +0 -1
- package/node_modules/@shikijs/langs/node_modules/@shikijs/types/package.json +2 -2
- package/node_modules/@shikijs/langs/package.json +18 -4
- package/node_modules/typebox/build/format/date.d.mts +1 -1
- package/node_modules/typebox/build/format/date.mjs +1 -1
- package/node_modules/typebox/build/format/date_time.d.mts +2 -2
- package/node_modules/typebox/build/format/date_time.mjs +3 -3
- package/node_modules/typebox/build/format/email.d.mts +1 -1
- package/node_modules/typebox/build/format/email.mjs +2 -2
- package/node_modules/typebox/build/format/hostname.mjs +2 -10
- package/node_modules/typebox/build/format/idn_email.d.mts +1 -1
- package/node_modules/typebox/build/format/idn_email.mjs +3 -3
- package/node_modules/typebox/build/format/idn_hostname.d.mts +1 -0
- package/node_modules/typebox/build/format/idn_hostname.mjs +3 -11
- package/node_modules/typebox/build/format/idna/format/bidi.d.mts +3 -0
- package/node_modules/typebox/build/format/idna/format/bidi.mjs +98 -0
- package/node_modules/typebox/build/format/idna/format/puny.d.mts +3 -0
- package/node_modules/typebox/build/format/idna/format/puny.mjs +144 -0
- package/node_modules/typebox/build/format/idna/hostname.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/hostname.mjs +16 -0
- package/node_modules/typebox/build/format/idna/idn-hostname.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/idn-hostname.mjs +23 -0
- package/node_modules/typebox/build/format/idna/index.d.mts +2 -0
- package/node_modules/typebox/build/format/idna/index.mjs +2 -0
- package/node_modules/typebox/build/format/idna/label/ascii.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/label/ascii.mjs +9 -0
- package/node_modules/typebox/build/format/idna/label/puny.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/label/puny.mjs +28 -0
- package/node_modules/typebox/build/format/idna/label/unicode.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/label/unicode.mjs +106 -0
- package/node_modules/typebox/build/format/idna/pattern/pattern.d.mts +30 -0
- package/node_modules/typebox/build/format/idna/pattern/pattern.mjs +70 -0
- package/node_modules/typebox/build/format/ipv4.d.mts +0 -1
- package/node_modules/typebox/build/format/ipv4.mjs +2 -32
- package/node_modules/typebox/build/format/ipv6.mjs +2 -61
- package/node_modules/typebox/build/format/iri.d.mts +2 -2
- package/node_modules/typebox/build/format/iri.mjs +26 -8
- package/node_modules/typebox/build/format/iri_reference.d.mts +2 -2
- package/node_modules/typebox/build/format/iri_reference.mjs +9 -55
- package/node_modules/typebox/build/format/regex.d.mts +1 -2
- package/node_modules/typebox/build/format/regex.mjs +2 -6
- package/node_modules/typebox/build/format/time.d.mts +2 -2
- package/node_modules/typebox/build/format/time.mjs +19 -14
- package/node_modules/typebox/build/format/uri.d.mts +1 -1
- package/node_modules/typebox/build/format/uri.mjs +3 -130
- package/node_modules/typebox/build/format/uri_reference.d.mts +1 -1
- package/node_modules/typebox/build/format/uri_reference.mjs +2 -3
- package/node_modules/typebox/build/format/uri_template.d.mts +2 -3
- package/node_modules/typebox/build/format/uri_template.mjs +4 -5
- package/node_modules/typebox/build/format/url.d.mts +3 -3
- package/node_modules/typebox/build/format/url.mjs +4 -5
- package/node_modules/typebox/build/guard/emit.d.mts +3 -1
- package/node_modules/typebox/build/guard/emit.mjs +12 -5
- package/node_modules/typebox/build/guard/guard.d.mts +8 -2
- package/node_modules/typebox/build/guard/guard.mjs +25 -4
- package/node_modules/typebox/build/guard/string.d.mts +2 -2
- package/node_modules/typebox/build/guard/string.mjs +7 -7
- package/node_modules/typebox/build/schema/engine/_context.mjs +3 -3
- package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -2
- package/node_modules/typebox/build/schema/engine/_regexp.d.mts +2 -0
- package/node_modules/typebox/build/schema/engine/_regexp.mjs +4 -0
- package/node_modules/typebox/build/schema/engine/_stack.mjs +12 -13
- package/node_modules/typebox/build/schema/engine/additionalItems.mjs +17 -7
- package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +4 -3
- package/node_modules/typebox/build/schema/engine/contains.mjs +18 -6
- package/node_modules/typebox/build/schema/engine/enum.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/items.mjs +26 -6
- package/node_modules/typebox/build/schema/engine/maxContains.mjs +3 -3
- package/node_modules/typebox/build/schema/engine/minContains.mjs +14 -4
- package/node_modules/typebox/build/schema/engine/not.mjs +4 -2
- package/node_modules/typebox/build/schema/engine/oneOf.mjs +7 -6
- package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -2
- package/node_modules/typebox/build/schema/engine/patternProperties.mjs +4 -3
- package/node_modules/typebox/build/schema/engine/ref.mjs +1 -7
- package/node_modules/typebox/build/schema/engine/schema.mjs +13 -4
- package/node_modules/typebox/build/schema/engine/type.mjs +1 -1
- package/node_modules/typebox/build/schema/resolve/resolve.d.mts +4 -1
- package/node_modules/typebox/build/schema/resolve/resolve.mjs +202 -1
- package/node_modules/typebox/build/schema/static/propertyNames.d.mts +5 -0
- package/node_modules/typebox/build/schema/static/propertyNames.mjs +3 -0
- package/node_modules/typebox/build/schema/static/schema.d.mts +3 -0
- package/node_modules/typebox/build/schema/types/index.d.mts +0 -2
- package/node_modules/typebox/build/schema/types/index.mjs +0 -2
- package/node_modules/typebox/build/system/memory/clone.mjs +14 -11
- package/node_modules/typebox/build/system/memory/discard.mjs +6 -5
- package/node_modules/typebox/build/system/settings/settings.d.mts +9 -0
- package/node_modules/typebox/build/system/settings/settings.mjs +2 -0
- package/node_modules/typebox/build/type/engine/call/distribute_arguments.d.mts +6 -1
- package/node_modules/typebox/build/type/engine/call/distribute_arguments.mjs +16 -3
- package/node_modules/typebox/build/type/engine/call/instantiate.mjs +34 -4
- package/node_modules/typebox/build/type/engine/evaluate/broaden.d.mts +5 -5
- package/node_modules/typebox/build/type/engine/evaluate/broaden.mjs +20 -26
- package/node_modules/typebox/build/type/engine/evaluate/compare.d.mts +6 -10
- package/node_modules/typebox/build/type/engine/evaluate/compare.mjs +9 -13
- package/node_modules/typebox/build/type/engine/evaluate/composite.d.mts +7 -4
- package/node_modules/typebox/build/type/engine/evaluate/composite.mjs +12 -19
- package/node_modules/typebox/build/type/engine/evaluate/distribute.d.mts +4 -20
- package/node_modules/typebox/build/type/engine/evaluate/distribute.mjs +8 -20
- package/node_modules/typebox/build/type/engine/evaluate/evaluate.d.mts +4 -4
- package/node_modules/typebox/build/type/engine/evaluate/evaluate.mjs +11 -8
- package/node_modules/typebox/build/type/engine/evaluate/flatten.d.mts +1 -1
- package/node_modules/typebox/build/type/engine/evaluate/flatten.mjs +3 -4
- package/node_modules/typebox/build/type/engine/evaluate/narrow.d.mts +17 -2
- package/node_modules/typebox/build/type/engine/evaluate/narrow.mjs +26 -6
- package/node_modules/typebox/build/type/engine/exclude/operation.mjs +3 -4
- package/node_modules/typebox/build/type/engine/extract/operation.d.mts +1 -1
- package/node_modules/typebox/build/type/engine/extract/operation.mjs +3 -4
- package/node_modules/typebox/build/type/engine/priority/priority.d.mts +2 -2
- package/node_modules/typebox/build/type/engine/priority/priority.mjs +3 -4
- package/node_modules/typebox/build/type/script/mapping.d.mts +32 -29
- package/node_modules/typebox/build/type/script/mapping.mjs +18 -25
- package/node_modules/typebox/build/type/script/parser.d.mts +19 -25
- package/node_modules/typebox/build/type/script/parser.mjs +27 -23
- package/node_modules/typebox/build/value/errors/errors.d.mts +2 -2
- package/node_modules/typebox/build/value/errors/errors.mjs +1 -1
- package/node_modules/typebox/package.json +27 -27
- package/node_modules/typebox/readme.md +79 -82
- package/package.json +9 -8
- package/node_modules/@pierre/diffs/dist/utils/iterateOverFile.d.ts +0 -50
- package/node_modules/@pierre/diffs/dist/utils/iterateOverFile.d.ts.map +0 -1
- package/node_modules/@pierre/diffs/dist/utils/iterateOverFile.js +0 -49
- package/node_modules/@pierre/diffs/dist/utils/iterateOverFile.js.map +0 -1
- package/node_modules/typebox/build/format/_idna.d.mts +0 -2
- package/node_modules/typebox/build/format/_idna.mjs +0 -246
- package/node_modules/typebox/build/format/_puny.d.mts +0 -1
- package/node_modules/typebox/build/format/_puny.mjs +0 -77
- package/node_modules/typebox/build/schema/resolve/ref.d.mts +0 -3
- package/node_modules/typebox/build/schema/resolve/ref.mjs +0 -146
- package/node_modules/typebox/build/schema/types/contentEncoding.d.mts +0 -9
- package/node_modules/typebox/build/schema/types/contentEncoding.mjs +0 -13
- package/node_modules/typebox/build/schema/types/contentMediaType.d.mts +0 -9
- package/node_modules/typebox/build/schema/types/contentMediaType.mjs +0 -13
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { DEFAULT_VIRTUAL_FILE_METRICS } from "../constants.js";
|
|
2
2
|
import { areObjectsEqual } from "../utils/areObjectsEqual.js";
|
|
3
3
|
import { areOptionsEqual } from "../utils/areOptionsEqual.js";
|
|
4
|
-
import { getVirtualFileHeaderRegion, getVirtualFilePaddingBottom } from "../utils/computeVirtualFileMetrics.js";
|
|
4
|
+
import { computeVirtualFileMetrics, getVirtualFileHeaderRegion, getVirtualFilePaddingBottom } from "../utils/computeVirtualFileMetrics.js";
|
|
5
|
+
import { areFilesEqual } from "../utils/areFilesEqual.js";
|
|
5
6
|
import { FILE_ANNOTATION_DOM_KEY, includesFileAnnotations, shouldRenderFileAnnotations } from "../utils/includesFileAnnotations.js";
|
|
6
|
-
import { iterateOverFile } from "../utils/iterateOverFile.js";
|
|
7
7
|
import { File } from "./File.js";
|
|
8
8
|
//#region src/components/VirtualizedFile.ts
|
|
9
9
|
const LAYOUT_CHECKPOINT_INTERVAL = 5e3;
|
|
@@ -33,8 +33,9 @@ var VirtualizedFile = class extends File {
|
|
|
33
33
|
this.metrics = metrics;
|
|
34
34
|
}
|
|
35
35
|
setMetrics(metrics, force = false) {
|
|
36
|
-
|
|
37
|
-
this.metrics
|
|
36
|
+
const nextMetrics = computeVirtualFileMetrics(metrics);
|
|
37
|
+
if (!force && areObjectsEqual(this.metrics, nextMetrics)) return;
|
|
38
|
+
this.metrics = nextMetrics;
|
|
38
39
|
this.resetLayoutCache();
|
|
39
40
|
}
|
|
40
41
|
setLineAnnotations(lineAnnotations) {
|
|
@@ -70,12 +71,12 @@ var VirtualizedFile = class extends File {
|
|
|
70
71
|
if (this.isAdvancedMode()) throw new Error("VirtualizedFile.setThemeType cannot be used inside CodeView. Update CodeView options instead.");
|
|
71
72
|
super.setThemeType(themeType);
|
|
72
73
|
}
|
|
73
|
-
resetLayoutCache(recompute = false) {
|
|
74
|
+
resetLayoutCache(recompute = false, resetRenderRange = true) {
|
|
74
75
|
this.layoutDirty = true;
|
|
75
76
|
this.cache.fileAnnotationHeight = 0;
|
|
76
77
|
if (this.cache.heights.size > 0) this.cache.heights.clear();
|
|
77
78
|
if (this.cache.checkpoints.length > 0) this.cache.checkpoints.length = 0;
|
|
78
|
-
if (this.renderRange != null) this.renderRange = void 0;
|
|
79
|
+
if (this.renderRange != null && resetRenderRange) this.renderRange = void 0;
|
|
79
80
|
if (recompute && this.isSimpleMode()) this.computeApproximateSize();
|
|
80
81
|
}
|
|
81
82
|
reconcileHeights() {
|
|
@@ -129,7 +130,8 @@ var VirtualizedFile = class extends File {
|
|
|
129
130
|
};
|
|
130
131
|
prepareCodeViewItem(file, top, reset, lineAnnotations) {
|
|
131
132
|
const annotationsChanged = this.syncLineAnnotations(lineAnnotations);
|
|
132
|
-
|
|
133
|
+
const targetChanged = !areFilesEqual(this.file, file) || this.fileRenderer.hasUnkeyedFileContentsChanged(file);
|
|
134
|
+
let shouldResetLayoutCache = reset?.resetFileLayoutCache === true || targetChanged || annotationsChanged;
|
|
133
135
|
if (reset?.metrics != null) {
|
|
134
136
|
this.metrics = reset.metrics;
|
|
135
137
|
shouldResetLayoutCache = true;
|
|
@@ -149,7 +151,7 @@ var VirtualizedFile = class extends File {
|
|
|
149
151
|
getLinePosition(lineNumber) {
|
|
150
152
|
if (this.file == null || lineNumber < 1) return;
|
|
151
153
|
const { disableFileHeader = false, collapsed = false } = this.options;
|
|
152
|
-
const lastLineIndex =
|
|
154
|
+
const lastLineIndex = this.fileRenderer.getLineCount(this.file) - 1;
|
|
153
155
|
let top = getVirtualFileHeaderRegion(this.metrics, disableFileHeader);
|
|
154
156
|
if (collapsed || lastLineIndex < 0) return {
|
|
155
157
|
top,
|
|
@@ -171,11 +173,14 @@ var VirtualizedFile = class extends File {
|
|
|
171
173
|
height: this.getLineHeight(clampedLineIndex, false)
|
|
172
174
|
};
|
|
173
175
|
}
|
|
176
|
+
getEditorViewport() {
|
|
177
|
+
return this.virtualizer.type === "simple" ? this.virtualizer.getRoot() : this.virtualizer.getContainerElement();
|
|
178
|
+
}
|
|
174
179
|
getNumericScrollAnchor(localViewportTop) {
|
|
175
180
|
if (this.file == null || this.renderRange == null) return;
|
|
176
181
|
const { disableFileHeader = false, collapsed = false, overflow = "scroll" } = this.options;
|
|
177
182
|
if (collapsed || this.renderRange.totalLines <= 0) return;
|
|
178
|
-
const lastLineIndex =
|
|
183
|
+
const lastLineIndex = this.fileRenderer.getLineCount(this.file) - 1;
|
|
179
184
|
if (lastLineIndex < 0) return;
|
|
180
185
|
const headerRegion = getVirtualFileHeaderRegion(this.metrics, disableFileHeader);
|
|
181
186
|
const firstRenderedLineIndex = Math.min(this.renderRange.startingLine, lastLineIndex);
|
|
@@ -229,19 +234,19 @@ var VirtualizedFile = class extends File {
|
|
|
229
234
|
this.isSetup = false;
|
|
230
235
|
super.cleanUp(recycle);
|
|
231
236
|
}
|
|
232
|
-
computeApproximateSize(force = false) {
|
|
237
|
+
computeApproximateSize(force = false, file = this.file) {
|
|
233
238
|
const shouldValidateSize = this.isResizeDebuggingEnabled();
|
|
234
239
|
if (!force && !this.layoutDirty && !shouldValidateSize) return;
|
|
235
240
|
const isFirstCompute = this.height === 0;
|
|
236
241
|
this.height = 0;
|
|
237
242
|
this.cache.checkpoints = [];
|
|
238
|
-
if (
|
|
243
|
+
if (file == null) {
|
|
239
244
|
this.layoutDirty = false;
|
|
240
245
|
return;
|
|
241
246
|
}
|
|
242
247
|
const { disableFileHeader = false, collapsed = false, overflow = "scroll" } = this.options;
|
|
243
248
|
const { lineHeight } = this.metrics;
|
|
244
|
-
const
|
|
249
|
+
const lineCount = this.fileRenderer.getLineCount(file);
|
|
245
250
|
const headerRegion = getVirtualFileHeaderRegion(this.metrics, disableFileHeader);
|
|
246
251
|
const paddingBottom = getVirtualFilePaddingBottom(this.metrics);
|
|
247
252
|
this.height += headerRegion;
|
|
@@ -250,19 +255,16 @@ var VirtualizedFile = class extends File {
|
|
|
250
255
|
return;
|
|
251
256
|
}
|
|
252
257
|
this.height += this.cache.fileAnnotationHeight;
|
|
253
|
-
if (overflow === "scroll" && !this.hasLineAnnotations()) this.height +=
|
|
254
|
-
else
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
}
|
|
260
|
-
});
|
|
261
|
-
if (lines.length > 0) this.height += paddingBottom;
|
|
258
|
+
if (overflow === "scroll" && !this.hasLineAnnotations()) this.height += lineCount * lineHeight;
|
|
259
|
+
else for (let lineIndex = 0; lineIndex < lineCount; lineIndex++) {
|
|
260
|
+
this.addLayoutCheckpoint(lineIndex, this.height);
|
|
261
|
+
this.height += this.getLineHeight(lineIndex, false);
|
|
262
|
+
}
|
|
263
|
+
if (lineCount > 0) this.height += paddingBottom;
|
|
262
264
|
if (this.fileContainer != null && shouldValidateSize && !isFirstCompute) {
|
|
263
265
|
const rect = this.fileContainer.getBoundingClientRect();
|
|
264
266
|
if (rect.height !== this.height) console.log("VirtualizedFile.computeApproximateSize: computed height doesnt match", {
|
|
265
|
-
name:
|
|
267
|
+
name: file.name,
|
|
266
268
|
elementHeight: rect.height,
|
|
267
269
|
computedHeight: this.height
|
|
268
270
|
});
|
|
@@ -272,6 +274,7 @@ var VirtualizedFile = class extends File {
|
|
|
272
274
|
}
|
|
273
275
|
setVisibility(visible) {
|
|
274
276
|
if (this.isAdvancedMode() || this.fileContainer == null) return;
|
|
277
|
+
this.renderRange = void 0;
|
|
275
278
|
if (visible && !this.isVisible) {
|
|
276
279
|
this.top = this.getVirtualizedTop();
|
|
277
280
|
this.isVisible = true;
|
|
@@ -285,19 +288,34 @@ var VirtualizedFile = class extends File {
|
|
|
285
288
|
this.forceRenderOverride = true;
|
|
286
289
|
this.virtualizer.instanceChanged(this, false);
|
|
287
290
|
}
|
|
288
|
-
|
|
291
|
+
applyDocumentChange(textDocument, newLineAnnotations, shouldUpdateBuffer = false) {
|
|
292
|
+
const { renderRange: previousRenderRange } = this;
|
|
293
|
+
this.getAdvancedVirtualizer()?.capturePendingLayoutAnchor();
|
|
294
|
+
super.applyDocumentChange(textDocument, newLineAnnotations);
|
|
295
|
+
this.getSimpleVirtualizer()?.markDOMDirty();
|
|
296
|
+
this.resetLayoutCache(this.isSimpleMode(), false);
|
|
297
|
+
if (!this.isSimpleMode()) this.computeApproximateSize(true);
|
|
298
|
+
else if (shouldUpdateBuffer && previousRenderRange !== void 0 && this.file !== void 0) {
|
|
299
|
+
const windowSpecs = this.virtualizer.getWindowSpecs();
|
|
300
|
+
const renderRange = this.computeRenderRangeFromWindow(this.file, this.top ?? 0, windowSpecs);
|
|
301
|
+
if (renderRange.bufferAfter !== previousRenderRange.bufferAfter) this.updateBuffers(renderRange);
|
|
302
|
+
}
|
|
303
|
+
this.forceRenderOverride = true;
|
|
304
|
+
this.virtualizer.instanceChanged(this, true);
|
|
305
|
+
}
|
|
306
|
+
renderPreparedFile({ fileContainer, file, forceRender = false, lineAnnotations, ...props }) {
|
|
307
|
+
const didFileChange = this.file == null || !areFilesEqual(this.file, file) || this.fileRenderer.hasUnkeyedFileContentsChanged(file);
|
|
289
308
|
const { forceRenderOverride, isSetup } = this;
|
|
290
309
|
this.forceRenderOverride = void 0;
|
|
291
310
|
const annotationsChanged = this.syncLineAnnotations(lineAnnotations);
|
|
292
311
|
if (annotationsChanged) this.resetLayoutCache();
|
|
293
|
-
this.file ??= file;
|
|
294
312
|
fileContainer = this.getOrCreateFileContainerNode(fileContainer);
|
|
295
|
-
if (
|
|
313
|
+
if (file == null) {
|
|
296
314
|
console.error("VirtualizedFile.render: attempting to virtually render when we dont have file");
|
|
297
315
|
return false;
|
|
298
316
|
}
|
|
299
317
|
if (!isSetup) {
|
|
300
|
-
this.computeApproximateSize();
|
|
318
|
+
this.computeApproximateSize(false, file);
|
|
301
319
|
const virtualizer = this.getSimpleVirtualizer();
|
|
302
320
|
this.top ??= this.getVirtualizedTop();
|
|
303
321
|
if (this.isAdvancedMode()) this.isVisible = true;
|
|
@@ -307,19 +325,32 @@ var VirtualizedFile = class extends File {
|
|
|
307
325
|
this.isVisible = virtualizer.isInstanceVisible(this.top ?? 0, this.height);
|
|
308
326
|
}
|
|
309
327
|
this.isSetup = true;
|
|
310
|
-
} else
|
|
311
|
-
|
|
328
|
+
} else {
|
|
329
|
+
this.top ??= this.getVirtualizedTop();
|
|
330
|
+
if (didFileChange && this.isSimpleMode()) {
|
|
331
|
+
this.getSimpleVirtualizer()?.markDOMDirty();
|
|
332
|
+
this.resetLayoutCache(false);
|
|
333
|
+
this.computeApproximateSize(false, file);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
if (!this.isVisible && this.isSimpleMode() && (!didFileChange || !isSetup)) {
|
|
337
|
+
this.file = file;
|
|
338
|
+
if (didFileChange) this.cachedHeaderHTML = void 0;
|
|
339
|
+
return this.renderPlaceholder(this.height);
|
|
340
|
+
}
|
|
312
341
|
const windowSpecs = this.virtualizer.getWindowSpecs();
|
|
313
342
|
const fileTop = this.top ?? 0;
|
|
314
|
-
const renderRange = this.computeRenderRangeFromWindow(
|
|
315
|
-
|
|
316
|
-
file
|
|
343
|
+
const renderRange = this.computeRenderRangeFromWindow(file, fileTop, windowSpecs);
|
|
344
|
+
const rendered = super.renderPreparedFile({
|
|
345
|
+
file,
|
|
317
346
|
fileContainer,
|
|
318
347
|
renderRange,
|
|
319
348
|
lineAnnotations,
|
|
320
|
-
forceRender: (forceRenderOverride ?? forceRender) || annotationsChanged,
|
|
349
|
+
forceRender: (forceRenderOverride ?? forceRender) || annotationsChanged || didFileChange,
|
|
321
350
|
...props
|
|
322
351
|
});
|
|
352
|
+
if (this.isSimpleMode() && rendered) this.getSimpleVirtualizer()?.requestHeightReconcile(this);
|
|
353
|
+
return rendered;
|
|
323
354
|
}
|
|
324
355
|
syncVirtualizedTop() {
|
|
325
356
|
this.top = this.getVirtualizedTop();
|
|
@@ -327,6 +358,9 @@ var VirtualizedFile = class extends File {
|
|
|
327
358
|
shouldDisableVirtualizationBuffers() {
|
|
328
359
|
return this.isAdvancedMode() || super.shouldDisableVirtualizationBuffers();
|
|
329
360
|
}
|
|
361
|
+
shouldGuardRebuildScroll() {
|
|
362
|
+
return false;
|
|
363
|
+
}
|
|
330
364
|
isSimpleMode() {
|
|
331
365
|
return this.virtualizer.type === "simple";
|
|
332
366
|
}
|
|
@@ -383,14 +417,16 @@ var VirtualizedFile = class extends File {
|
|
|
383
417
|
getSimpleVirtualizer() {
|
|
384
418
|
return this.virtualizer.type === "simple" ? this.virtualizer : void 0;
|
|
385
419
|
}
|
|
420
|
+
getAdvancedVirtualizer() {
|
|
421
|
+
return this.virtualizer.type === "advanced" ? this.virtualizer : void 0;
|
|
422
|
+
}
|
|
386
423
|
isResizeDebuggingEnabled() {
|
|
387
424
|
return this.getSimpleVirtualizer()?.config.resizeDebugging ?? false;
|
|
388
425
|
}
|
|
389
426
|
computeRenderRangeFromWindow(file, fileTop, { top, bottom }) {
|
|
390
427
|
const { disableFileHeader = false, overflow = "scroll" } = this.options;
|
|
391
428
|
const { hunkLineCount, lineHeight } = this.metrics;
|
|
392
|
-
const
|
|
393
|
-
const lineCount = lines.length;
|
|
429
|
+
const lineCount = this.fileRenderer.getLineCount(file);
|
|
394
430
|
const fileHeight = this.height;
|
|
395
431
|
const headerRegion = getVirtualFileHeaderRegion(this.metrics, disableFileHeader);
|
|
396
432
|
const paddingBottom = lineCount > 0 ? getVirtualFilePaddingBottom(this.metrics) : 0;
|
|
@@ -413,7 +449,7 @@ var VirtualizedFile = class extends File {
|
|
|
413
449
|
bufferAfter: 0
|
|
414
450
|
};
|
|
415
451
|
const estimatedTargetLines = Math.ceil(Math.max(bottom - top, 0) / lineHeight);
|
|
416
|
-
const totalLines = Math.ceil(estimatedTargetLines / hunkLineCount) * hunkLineCount + hunkLineCount
|
|
452
|
+
const totalLines = Math.ceil(estimatedTargetLines / hunkLineCount) * hunkLineCount + hunkLineCount;
|
|
417
453
|
const totalHunks = totalLines / hunkLineCount;
|
|
418
454
|
const viewportCenter = (top + bottom) / 2;
|
|
419
455
|
if (overflow === "scroll" && !this.hasLineAnnotations()) {
|
|
@@ -447,28 +483,24 @@ var VirtualizedFile = class extends File {
|
|
|
447
483
|
let firstVisibleHunk;
|
|
448
484
|
let centerHunk;
|
|
449
485
|
let overflowCounter;
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
if (
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
if (overflowCounter <= 0) return true;
|
|
460
|
-
overflowCounter--;
|
|
461
|
-
}
|
|
486
|
+
const startingLineIndex = checkpoint?.lineIndex ?? 0;
|
|
487
|
+
for (let lineIndex = startingLineIndex; lineIndex < lineCount; lineIndex++) {
|
|
488
|
+
const isAtHunkBoundary = currentLine % hunkLineCount === 0;
|
|
489
|
+
const currentHunk = Math.floor(currentLine / hunkLineCount);
|
|
490
|
+
if (isAtHunkBoundary) {
|
|
491
|
+
hunkOffsets[currentHunk] = absoluteLineTop - (fileTop + codeRegionTop);
|
|
492
|
+
if (overflowCounter != null) {
|
|
493
|
+
if (overflowCounter <= 0) break;
|
|
494
|
+
overflowCounter--;
|
|
462
495
|
}
|
|
463
|
-
const lineHeight = this.getLineHeight(lineIndex, false);
|
|
464
|
-
if (absoluteLineTop > top - lineHeight && absoluteLineTop < bottom) firstVisibleHunk ??= currentHunk;
|
|
465
|
-
if (absoluteLineTop + lineHeight > viewportCenter) centerHunk ??= currentHunk;
|
|
466
|
-
if (overflowCounter == null && absoluteLineTop >= bottom && isAtHunkBoundary) overflowCounter = overflowHunks;
|
|
467
|
-
currentLine++;
|
|
468
|
-
absoluteLineTop += lineHeight;
|
|
469
|
-
return false;
|
|
470
496
|
}
|
|
471
|
-
|
|
497
|
+
const lineHeight = this.getLineHeight(lineIndex, false);
|
|
498
|
+
if (absoluteLineTop > top - lineHeight && absoluteLineTop < bottom) firstVisibleHunk ??= currentHunk;
|
|
499
|
+
if (absoluteLineTop + lineHeight > viewportCenter) centerHunk ??= currentHunk;
|
|
500
|
+
if (overflowCounter == null && absoluteLineTop >= bottom && isAtHunkBoundary) overflowCounter = overflowHunks;
|
|
501
|
+
currentLine++;
|
|
502
|
+
absoluteLineTop += lineHeight;
|
|
503
|
+
}
|
|
472
504
|
if (firstVisibleHunk == null) if (measuredFileAnnotationVisible) {
|
|
473
505
|
firstVisibleHunk = 0;
|
|
474
506
|
centerHunk = 0;
|
|
@@ -505,11 +537,6 @@ function measureFileAnnotationHeight(content) {
|
|
|
505
537
|
}
|
|
506
538
|
return height;
|
|
507
539
|
}
|
|
508
|
-
function getLastVisibleLineIndex(lines) {
|
|
509
|
-
const lastLine = lines.at(-1);
|
|
510
|
-
if (lastLine == null || lastLine === "" || lastLine === "\n" || lastLine === "\r\n" || lastLine === "\r") return lines.length - 2;
|
|
511
|
-
return lines.length - 1;
|
|
512
|
-
}
|
|
513
540
|
//#endregion
|
|
514
541
|
export { VirtualizedFile };
|
|
515
542
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualizedFile.js","names":[],"sources":["../../src/components/VirtualizedFile.ts"],"sourcesContent":["import { DEFAULT_VIRTUAL_FILE_METRICS } from '../constants';\nimport type {\n FileContents,\n LineAnnotation,\n NumericScrollLineAnchor,\n PendingCodeViewLayoutReset,\n RenderRange,\n RenderWindow,\n StickySpecs,\n ThemeTypes,\n VirtualFileMetrics,\n} from '../types';\nimport { areObjectsEqual } from '../utils/areObjectsEqual';\nimport { areOptionsEqual } from '../utils/areOptionsEqual';\nimport {\n getVirtualFileHeaderRegion,\n getVirtualFilePaddingBottom,\n} from '../utils/computeVirtualFileMetrics';\nimport {\n FILE_ANNOTATION_DOM_KEY,\n FILE_ANNOTATION_LINE_NUMBER,\n includesFileAnnotations,\n shouldRenderFileAnnotations,\n} from '../utils/includesFileAnnotations';\nimport { iterateOverFile } from '../utils/iterateOverFile';\nimport type { WorkerPoolManager } from '../worker';\nimport type { CodeView } from './CodeView';\nimport { File, type FileOptions, type FileRenderProps } from './File';\nimport type { Virtualizer } from './Virtualizer';\n\ninterface FileLayoutCheckpoint {\n lineIndex: number;\n top: number;\n}\n\ninterface FileLayoutCache {\n // Sparse map: line index -> measured height. Only stores lines that differ\n // from what is returned by `getLineHeight`.\n heights: Map<number, number>;\n // Sparse measured positions used to resume deep geometry scans near a target\n // line or scroll offset instead of replaying layout from the start.\n checkpoints: FileLayoutCheckpoint[];\n // Measured height for the file-level annotation row. Starts at 0 so\n // unmeasured annotations behave like all other unmeasured annotations.\n fileAnnotationHeight: number;\n}\n\nconst LAYOUT_CHECKPOINT_INTERVAL = 5_000;\n\nlet instanceId = -1;\n\nfunction hasFileLayoutOptionChanged<LAnnotation>(\n previousOptions: FileOptions<LAnnotation>,\n nextOptions: FileOptions<LAnnotation>\n): boolean {\n return (\n (previousOptions.overflow ?? 'scroll') !==\n (nextOptions.overflow ?? 'scroll') ||\n (previousOptions.collapsed ?? false) !== (nextOptions.collapsed ?? false) ||\n (previousOptions.disableLineNumbers ?? false) !==\n (nextOptions.disableLineNumbers ?? false) ||\n (previousOptions.disableFileHeader ?? false) !==\n (nextOptions.disableFileHeader ?? false) ||\n previousOptions.unsafeCSS !== nextOptions.unsafeCSS\n );\n}\n\nexport class VirtualizedFile<\n LAnnotation = undefined,\n> extends File<LAnnotation> {\n override readonly __id: string = `virtualized-file:${++instanceId}`;\n\n public top: number | undefined;\n public height: number = 0;\n private cache: FileLayoutCache = {\n heights: new Map(),\n checkpoints: [],\n fileAnnotationHeight: 0,\n };\n private isVisible: boolean = false;\n private isSetup: boolean = false;\n private layoutDirty = true;\n private forceRenderOverride: true | undefined;\n private currentCollapsed: boolean | undefined;\n\n constructor(\n options: FileOptions<LAnnotation> | undefined,\n private virtualizer: Virtualizer | CodeView<LAnnotation>,\n private metrics: VirtualFileMetrics = DEFAULT_VIRTUAL_FILE_METRICS,\n workerManager?: WorkerPoolManager,\n isContainerManaged = false\n ) {\n super(options, workerManager, isContainerManaged);\n }\n\n public setMetrics(metrics: VirtualFileMetrics, force = false): void {\n if (!force && areObjectsEqual(this.metrics, metrics)) {\n return;\n }\n\n this.metrics = metrics;\n this.resetLayoutCache();\n }\n\n override setLineAnnotations(\n lineAnnotations: LineAnnotation<LAnnotation>[]\n ): void {\n if (this.syncLineAnnotations(lineAnnotations)) {\n this.resetLayoutCache();\n }\n }\n\n private syncLineAnnotations(\n lineAnnotations: LineAnnotation<LAnnotation>[] | undefined\n ): boolean {\n if (lineAnnotations == null || lineAnnotations === this.lineAnnotations) {\n return false;\n }\n if (lineAnnotations.length === 0 && this.lineAnnotations.length === 0) {\n return false;\n }\n\n super.setLineAnnotations(lineAnnotations);\n return true;\n }\n\n private hasLineAnnotations(): boolean {\n return this.lineAnnotations.some(\n (annotation) => annotation.lineNumber > FILE_ANNOTATION_LINE_NUMBER\n );\n }\n\n // Get the height for a line, using cached value if available.\n // If not cached and hasMetadataLine is true, adds lineHeight for the\n // metadata.\n public getLineHeight(lineIndex: number, hasMetadataLine = false): number {\n const cached = this.cache.heights.get(lineIndex);\n if (cached != null) {\n return cached;\n }\n const multiplier = hasMetadataLine ? 2 : 1;\n return this.metrics.lineHeight * multiplier;\n }\n\n override setOptions(options: FileOptions<LAnnotation> | undefined): void {\n if (this.isAdvancedMode()) {\n throw new Error(\n 'VirtualizedFile.setOptions cannot be used inside CodeView. Update CodeView options instead.'\n );\n }\n\n if (options == null) return;\n const { options: previousOptions } = this;\n const optionsChanged = !areOptionsEqual(previousOptions, options);\n const layoutChanged = hasFileLayoutOptionChanged(previousOptions, options);\n\n super.setOptions(options);\n\n if (layoutChanged) {\n this.resetLayoutCache(true);\n }\n // Any option can affect rendered DOM; only layout-affecting options clear\n // the measured height cache above.\n if (optionsChanged) {\n this.forceRenderOverride = true;\n }\n if (optionsChanged) {\n this.virtualizer.instanceChanged(this, layoutChanged);\n }\n }\n\n override setThemeType(themeType: ThemeTypes): void {\n if (this.isAdvancedMode()) {\n throw new Error(\n 'VirtualizedFile.setThemeType cannot be used inside CodeView. Update CodeView options instead.'\n );\n }\n\n super.setThemeType(themeType);\n }\n\n private resetLayoutCache(recompute = false): void {\n this.layoutDirty = true;\n this.cache.fileAnnotationHeight = 0;\n if (this.cache.heights.size > 0) {\n this.cache.heights.clear();\n }\n if (this.cache.checkpoints.length > 0) {\n this.cache.checkpoints.length = 0;\n }\n if (this.renderRange != null) {\n this.renderRange = undefined;\n }\n // NOTE(amadeus): In CodeView we intentionally batch computes to all happen\n // at the same time, so we shouldn't trigger this there.\n if (recompute && this.isSimpleMode()) {\n this.computeApproximateSize();\n }\n }\n\n // Measure rendered lines and update height cache.\n // Called after render to reconcile estimated vs actual heights.\n public reconcileHeights(): boolean {\n let hasHeightChange = false;\n if (this.fileContainer == null || this.file == null) {\n if (this.height !== 0) {\n hasHeightChange = true;\n }\n this.height = 0;\n return hasHeightChange;\n }\n const { overflow = 'scroll' } = this.options;\n this.top = this.getVirtualizedTop();\n\n // If the file has no annotations and we are using the scroll variant, then\n // we can probably skip everything\n if (\n overflow === 'scroll' &&\n this.lineAnnotations.length === 0 &&\n !this.isResizeDebuggingEnabled()\n ) {\n return hasHeightChange;\n }\n\n // Single code element (no split mode)\n if (this.code == null) {\n return hasHeightChange;\n }\n const content = this.code.children[1]; // Content column (gutter is [0])\n if (!(content instanceof HTMLElement)) {\n return hasHeightChange;\n }\n\n const hasFileAnnotations = includesFileAnnotations(this.lineAnnotations);\n if (\n this.renderRange != null &&\n hasFileAnnotations &&\n shouldRenderFileAnnotations(this.renderRange)\n ) {\n const fileAnnotationHeight = measureFileAnnotationHeight(content);\n const nextFileAnnotationHeight = fileAnnotationHeight ?? 0;\n if (nextFileAnnotationHeight !== this.cache.fileAnnotationHeight) {\n this.cache.fileAnnotationHeight = nextFileAnnotationHeight;\n hasHeightChange = true;\n }\n } else if (!hasFileAnnotations && this.cache.fileAnnotationHeight !== 0) {\n this.cache.fileAnnotationHeight = 0;\n hasHeightChange = true;\n }\n\n for (const line of content.children) {\n if (!(line instanceof HTMLElement)) continue;\n\n const lineIndexAttr = line.dataset.lineIndex;\n if (lineIndexAttr == null) continue;\n\n const lineIndex = Number(lineIndexAttr);\n let measuredHeight = line.getBoundingClientRect().height;\n let hasMetadata = false;\n\n // Annotations or noNewline metadata increase the size of their attached line\n if (\n line.nextElementSibling instanceof HTMLElement &&\n ('lineAnnotation' in line.nextElementSibling.dataset ||\n 'noNewline' in line.nextElementSibling.dataset)\n ) {\n if ('noNewline' in line.nextElementSibling.dataset) {\n hasMetadata = true;\n }\n measuredHeight +=\n line.nextElementSibling.getBoundingClientRect().height;\n }\n\n const expectedHeight = this.getLineHeight(lineIndex, hasMetadata);\n\n if (measuredHeight === expectedHeight) {\n continue;\n }\n\n hasHeightChange = true;\n // Line is back to standard height (e.g., after window resize)\n // Remove from cache\n if (measuredHeight === this.metrics.lineHeight * (hasMetadata ? 2 : 1)) {\n this.cache.heights.delete(lineIndex);\n }\n // Non-standard height, cache it\n else {\n this.cache.heights.set(lineIndex, measuredHeight);\n }\n }\n\n if (hasHeightChange || this.isResizeDebuggingEnabled()) {\n this.computeApproximateSize(true);\n }\n return hasHeightChange;\n }\n\n public onRender = (dirty: boolean): boolean => {\n if (this.fileContainer == null || this.file == null) {\n return false;\n }\n if (dirty) {\n this.top = this.getVirtualizedTop();\n }\n return this.render({ file: this.file });\n };\n\n // Prepares this item for CodeView layout by binding the latest file, syncing\n // its virtualized top, and returning an approximate height. This method is\n // called while downstream items are being re-positioned, so later changes\n // should keep clean instances on a cached-height fast path.\n public prepareCodeViewItem(\n file: FileContents,\n top: number,\n reset?: PendingCodeViewLayoutReset,\n lineAnnotations?: LineAnnotation<LAnnotation>[]\n ): number {\n const annotationsChanged = this.syncLineAnnotations(lineAnnotations);\n let shouldResetLayoutCache =\n reset?.resetFileLayoutCache === true || annotationsChanged;\n if (reset?.metrics != null) {\n this.metrics = reset.metrics;\n shouldResetLayoutCache = true;\n }\n\n const { collapsed = false } = this.options;\n if (this.currentCollapsed !== collapsed) {\n this.currentCollapsed = collapsed;\n shouldResetLayoutCache = true;\n }\n\n if (shouldResetLayoutCache) {\n this.resetLayoutCache();\n }\n\n if (this.file !== file) {\n this.layoutDirty = true;\n }\n this.file = file;\n this.top = top;\n this.computeApproximateSize();\n return this.height;\n }\n\n public getLinePosition(\n lineNumber: number\n ): { top: number; height: number } | undefined {\n if (this.file == null || lineNumber < 1) {\n return undefined;\n }\n\n const { disableFileHeader = false, collapsed = false } = this.options;\n const lines = this.getOrCreateLineCache(this.file);\n const lastLineIndex = getLastVisibleLineIndex(lines);\n let top = getVirtualFileHeaderRegion(this.metrics, disableFileHeader);\n\n if (collapsed || lastLineIndex < 0) {\n return { top, height: 0 };\n }\n\n const clampedLineIndex = Math.min(\n Math.max(lineNumber - 1, 0),\n lastLineIndex\n );\n const { overflow = 'scroll' } = this.options;\n const { lineHeight } = this.metrics;\n top += this.cache.fileAnnotationHeight;\n\n if (overflow === 'scroll' && !this.hasLineAnnotations()) {\n return {\n top: top + clampedLineIndex * lineHeight,\n height: lineHeight,\n };\n }\n\n const checkpoint =\n this.getLayoutCheckpointBeforeLineIndex(clampedLineIndex);\n top = checkpoint?.top ?? top;\n for (\n let lineIndex = checkpoint?.lineIndex ?? 0;\n lineIndex < clampedLineIndex;\n lineIndex++\n ) {\n top += this.getLineHeight(lineIndex, false);\n }\n\n return {\n top,\n height: this.getLineHeight(clampedLineIndex, false),\n };\n }\n\n public getNumericScrollAnchor(\n localViewportTop: number\n ): NumericScrollLineAnchor | undefined {\n if (this.file == null || this.renderRange == null) {\n return undefined;\n }\n\n const {\n disableFileHeader = false,\n collapsed = false,\n overflow = 'scroll',\n } = this.options;\n if (collapsed || this.renderRange.totalLines <= 0) {\n return undefined;\n }\n\n const lines = this.getOrCreateLineCache(this.file);\n const lastLineIndex = getLastVisibleLineIndex(lines);\n if (lastLineIndex < 0) {\n return undefined;\n }\n\n const headerRegion = getVirtualFileHeaderRegion(\n this.metrics,\n disableFileHeader\n );\n const firstRenderedLineIndex = Math.min(\n this.renderRange.startingLine,\n lastLineIndex\n );\n const lastRenderedLineIndex = Math.min(\n firstRenderedLineIndex + this.renderRange.totalLines - 1,\n lastLineIndex\n );\n if (lastRenderedLineIndex < firstRenderedLineIndex) {\n return undefined;\n }\n const { fileAnnotationHeight } = this.cache;\n\n // If we don't allow line wrapping and have no annotations, we can just\n // multiply our way to the the correct value\n if (overflow === 'scroll' && !this.hasLineAnnotations()) {\n const { lineHeight } = this.metrics;\n const firstRenderedLineTop =\n headerRegion +\n (firstRenderedLineIndex === 0\n ? fileAnnotationHeight\n : this.renderRange.bufferBefore);\n const deltaLineCount = Math.max(\n Math.ceil((localViewportTop - firstRenderedLineTop) / lineHeight),\n 0\n );\n const lineIndex = firstRenderedLineIndex + deltaLineCount;\n if (lineIndex > lastRenderedLineIndex) {\n return undefined;\n }\n\n return {\n lineNumber: lineIndex + 1,\n top: headerRegion + fileAnnotationHeight + lineIndex * lineHeight,\n };\n }\n\n // Otherwise we gotta iterate through the range\n let top =\n headerRegion +\n (firstRenderedLineIndex === 0\n ? fileAnnotationHeight\n : this.renderRange.bufferBefore);\n for (\n let lineIndex = firstRenderedLineIndex;\n lineIndex <= lastRenderedLineIndex;\n lineIndex++\n ) {\n if (top >= localViewportTop) {\n return {\n lineNumber: lineIndex + 1,\n top,\n };\n }\n top += this.getLineHeight(lineIndex);\n }\n\n return undefined;\n }\n\n public getVirtualizedHeight(): number {\n return this.height;\n }\n\n public getAdvancedStickySpecs(\n windowSpecs?: RenderWindow\n ): StickySpecs | undefined {\n if (this.top == null || this.file == null) {\n return undefined;\n }\n if (this.options.collapsed === true) {\n return { topOffset: this.top, height: this.height };\n }\n const renderRange =\n windowSpecs != null\n ? this.computeRenderRangeFromWindow(this.file, this.top, windowSpecs)\n : this.renderRange;\n if (renderRange == null) {\n return undefined;\n }\n const { bufferBefore, bufferAfter, totalLines } = renderRange;\n // Rendered items flow contiguously in the sticky container with no buffer\n // spacers, so a header-only item (totalLines === 0, none of its rows fall\n // inside the window) must report where its header actually sits in that\n // flow, which depends on which side of the window its content is on:\n // - content ABOVE the window (item starts above window.top): the header\n // sits at the item's bottom so the following item connects, so offset by\n // bufferAfter.\n // - content BELOW the window (item starts at/after window.top, e.g. a\n // trailing header peeking in at the bottom): the header renders at the\n // item's top with nothing after it, so no offset. Always adding\n // bufferAfter here made getStickyBounds over-measure the sticky\n // container for that trailing case.\n let headerOnlyOffset = 0;\n if (totalLines === 0) {\n const activeWindow = windowSpecs ?? this.virtualizer.getWindowSpecs();\n if (this.top < activeWindow.top) {\n headerOnlyOffset = bufferAfter;\n }\n }\n return {\n topOffset: this.top + bufferBefore + headerOnlyOffset,\n height: this.height - (bufferBefore + bufferAfter),\n };\n }\n\n override cleanUp(recycle = false): void {\n if (this.fileContainer != null && this.isSimpleMode()) {\n this.getSimpleVirtualizer()?.disconnect(this.fileContainer);\n }\n if (!recycle) {\n this.resetLayoutCache();\n }\n this.isSetup = false;\n super.cleanUp(recycle);\n }\n\n // Compute the approximate size of the file using cached line heights.\n // Uses lineHeight for lines without cached measurements.\n private computeApproximateSize(force = false): void {\n const shouldValidateSize = this.isResizeDebuggingEnabled();\n if (!force && !this.layoutDirty && !shouldValidateSize) {\n return;\n }\n\n const isFirstCompute = this.height === 0;\n this.height = 0;\n this.cache.checkpoints = [];\n if (this.file == null) {\n this.layoutDirty = false;\n return;\n }\n\n const {\n disableFileHeader = false,\n collapsed = false,\n overflow = 'scroll',\n } = this.options;\n const { lineHeight } = this.metrics;\n const lines = this.getOrCreateLineCache(this.file);\n const headerRegion = getVirtualFileHeaderRegion(\n this.metrics,\n disableFileHeader\n );\n const paddingBottom = getVirtualFilePaddingBottom(this.metrics);\n\n this.height += headerRegion;\n if (collapsed) {\n this.layoutDirty = false;\n return;\n }\n\n this.height += this.cache.fileAnnotationHeight;\n\n if (overflow === 'scroll' && !this.hasLineAnnotations()) {\n this.height += this.getOrCreateLineCache(this.file).length * lineHeight;\n } else {\n iterateOverFile({\n lines,\n callback: ({ lineIndex }) => {\n this.addLayoutCheckpoint(lineIndex, this.height);\n this.height += this.getLineHeight(lineIndex, false);\n },\n });\n }\n\n if (lines.length > 0) {\n this.height += paddingBottom;\n }\n\n if (this.fileContainer != null && shouldValidateSize && !isFirstCompute) {\n const rect = this.fileContainer.getBoundingClientRect();\n if (rect.height !== this.height) {\n console.log(\n 'VirtualizedFile.computeApproximateSize: computed height doesnt match',\n {\n name: this.file.name,\n elementHeight: rect.height,\n computedHeight: this.height,\n }\n );\n } else {\n console.log(\n 'VirtualizedFile.computeApproximateSize: computed height IS CORRECT'\n );\n }\n }\n this.layoutDirty = false;\n }\n\n public setVisibility(visible: boolean): void {\n if (this.isAdvancedMode() || this.fileContainer == null) {\n return;\n }\n if (visible && !this.isVisible) {\n this.top = this.getVirtualizedTop();\n this.isVisible = true;\n } else if (!visible && this.isVisible) {\n this.isVisible = false;\n this.rerender();\n }\n }\n\n override rerender(): void {\n if (!this.enabled || this.file == null) {\n return;\n }\n this.forceRenderOverride = true;\n this.virtualizer.instanceChanged(this, false);\n }\n\n override render({\n fileContainer,\n file,\n forceRender = false,\n lineAnnotations,\n ...props\n }: FileRenderProps<LAnnotation>): boolean {\n const { forceRenderOverride, isSetup } = this;\n this.forceRenderOverride = undefined;\n const annotationsChanged = this.syncLineAnnotations(lineAnnotations);\n if (annotationsChanged) {\n this.resetLayoutCache();\n }\n\n this.file ??= file;\n\n fileContainer = this.getOrCreateFileContainerNode(fileContainer);\n\n if (this.file == null) {\n console.error(\n 'VirtualizedFile.render: attempting to virtually render when we dont have file'\n );\n return false;\n }\n\n if (!isSetup) {\n this.computeApproximateSize();\n const virtualizer = this.getSimpleVirtualizer();\n this.top ??= this.getVirtualizedTop();\n if (this.isAdvancedMode()) {\n this.isVisible = true;\n } else {\n if (virtualizer == null) {\n throw new Error(\n 'VirtualizedFile.render: simple virtualizer is not available'\n );\n }\n virtualizer.connect(fileContainer, this);\n this.isVisible = virtualizer.isInstanceVisible(\n this.top ?? 0,\n this.height\n );\n }\n this.isSetup = true;\n } else {\n this.top ??= this.getVirtualizedTop();\n }\n\n if (!this.isVisible && this.isSimpleMode()) {\n return this.renderPlaceholder(this.height);\n }\n\n const windowSpecs = this.virtualizer.getWindowSpecs();\n const fileTop = this.top ?? 0;\n const renderRange = this.computeRenderRangeFromWindow(\n this.file,\n fileTop,\n windowSpecs\n );\n return super.render({\n file: this.file,\n fileContainer,\n renderRange,\n lineAnnotations,\n forceRender: (forceRenderOverride ?? forceRender) || annotationsChanged,\n ...props,\n });\n }\n\n public syncVirtualizedTop(): void {\n this.top = this.getVirtualizedTop();\n }\n\n protected override shouldDisableVirtualizationBuffers(): boolean {\n return this.isAdvancedMode() || super.shouldDisableVirtualizationBuffers();\n }\n\n private isSimpleMode(): boolean {\n return this.virtualizer.type === 'simple';\n }\n\n private isAdvancedMode(): boolean {\n return this.virtualizer.type === 'advanced';\n }\n\n private addLayoutCheckpoint(lineIndex: number, top: number): void {\n if (lineIndex % LAYOUT_CHECKPOINT_INTERVAL !== 0) {\n return;\n }\n this.cache.checkpoints.push({ lineIndex, top });\n }\n\n // Find the nearest sparse layout checkpoint at or before a raw file line.\n // Checkpoints store measured `top` offsets every few thousand lines, so a\n // binary search lets deep line-position lookups resume from that checkpoint\n // instead of replaying layout from the start of the file.\n private getLayoutCheckpointBeforeLineIndex(\n lineIndex: number\n ): FileLayoutCheckpoint | undefined {\n if (lineIndex <= 0 || this.cache.checkpoints.length === 0) {\n return undefined;\n }\n\n let low = 0;\n let high = this.cache.checkpoints.length - 1;\n let result: FileLayoutCheckpoint | undefined;\n\n while (low <= high) {\n const mid = (low + high) >> 1;\n const checkpoint = this.cache.checkpoints[mid];\n if (checkpoint == null) {\n throw new Error('VirtualizedFile: invalid checkpoint index');\n }\n if (checkpoint.lineIndex <= lineIndex) {\n result = checkpoint;\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n\n return result;\n }\n\n // Find the nearest sparse layout checkpoint at or before a scroll offset.\n // Render-range scans start from this checkpoint so variable-height files\n // only replay the nearby measured rows. When `hunkLineCount` is provided,\n // step backward to a hunk boundary so hooks that depend on grouped lines\n // still see a complete hunk.\n private getLayoutCheckpointBeforeTop(\n top: number,\n hunkLineCount?: number\n ): FileLayoutCheckpoint | undefined {\n let low = 0;\n let high = this.cache.checkpoints.length - 1;\n let resultIndex = -1;\n\n while (low <= high) {\n const mid = (low + high) >> 1;\n const checkpoint = this.cache.checkpoints[mid];\n if (checkpoint == null) {\n throw new Error('VirtualizedFile: invalid checkpoint index');\n }\n if (checkpoint.top <= top) {\n resultIndex = mid;\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n\n if (hunkLineCount == null) {\n return resultIndex >= 0 ? this.cache.checkpoints[resultIndex] : undefined;\n }\n\n for (let index = resultIndex; index >= 0; index--) {\n const checkpoint = this.cache.checkpoints[index];\n if (checkpoint == null) {\n throw new Error('VirtualizedFile: invalid checkpoint index');\n }\n if (checkpoint.lineIndex % hunkLineCount === 0) {\n return checkpoint;\n }\n }\n\n return undefined;\n }\n\n private getVirtualizedTop(): number {\n if (this.virtualizer.type === 'advanced') {\n return this.virtualizer.getLocalTopForInstance(this);\n }\n return this.fileContainer != null\n ? this.virtualizer.getOffsetInScrollContainer(this.fileContainer)\n : 0;\n }\n\n private getSimpleVirtualizer(): Virtualizer | undefined {\n return this.virtualizer.type === 'simple' ? this.virtualizer : undefined;\n }\n\n private isResizeDebuggingEnabled(): boolean {\n return this.getSimpleVirtualizer()?.config.resizeDebugging ?? false;\n }\n\n private computeRenderRangeFromWindow(\n file: FileContents,\n fileTop: number,\n { top, bottom }: RenderWindow\n ): RenderRange {\n const { disableFileHeader = false, overflow = 'scroll' } = this.options;\n const { hunkLineCount, lineHeight } = this.metrics;\n const lines = this.getOrCreateLineCache(file);\n const lineCount = lines.length;\n const fileHeight = this.height;\n const headerRegion = getVirtualFileHeaderRegion(\n this.metrics,\n disableFileHeader\n );\n const paddingBottom =\n lineCount > 0 ? getVirtualFilePaddingBottom(this.metrics) : 0;\n const { fileAnnotationHeight } = this.cache;\n const codeRegionTop = headerRegion + fileAnnotationHeight;\n const codeRowsHeight = Math.max(\n 0,\n fileHeight - headerRegion - fileAnnotationHeight - paddingBottom\n );\n const hasFileAnnotations = includesFileAnnotations(this.lineAnnotations);\n const fileAnnotationTop = fileTop + headerRegion;\n const measuredFileAnnotationVisible =\n fileAnnotationHeight > 0 &&\n hasFileAnnotations &&\n fileAnnotationTop < bottom &&\n fileAnnotationTop + fileAnnotationHeight > top;\n\n // File is outside render window\n if (fileTop < top - fileHeight || fileTop > bottom) {\n return {\n startingLine: 0,\n totalLines: 0,\n bufferBefore: 0,\n bufferAfter: fileHeight - headerRegion - paddingBottom,\n };\n }\n\n // Small file, just render it all\n if (lineCount <= hunkLineCount) {\n return {\n startingLine: 0,\n totalLines: hunkLineCount,\n bufferBefore: 0,\n bufferAfter: 0,\n };\n }\n\n // Calculate totalLines based on viewport size\n const estimatedTargetLines = Math.ceil(\n Math.max(bottom - top, 0) / lineHeight\n );\n const totalLines =\n Math.ceil(estimatedTargetLines / hunkLineCount) * hunkLineCount +\n hunkLineCount * 2;\n const totalHunks = totalLines / hunkLineCount;\n const viewportCenter = (top + bottom) / 2;\n // Simple case: overflow scroll with no annotations - pure math!\n if (overflow === 'scroll' && !this.hasLineAnnotations()) {\n const sourceRowsTop = fileTop + codeRegionTop;\n const sourceRowsBottom = sourceRowsTop + codeRowsHeight;\n const sourceRowsVisible =\n sourceRowsTop < bottom && sourceRowsBottom > top;\n if (!measuredFileAnnotationVisible && !sourceRowsVisible) {\n return {\n startingLine: 0,\n totalLines: 0,\n bufferBefore: 0,\n bufferAfter: fileHeight - headerRegion - paddingBottom,\n };\n }\n\n // Find which line is at viewport center\n const centerLine = Math.floor(\n measuredFileAnnotationVisible &&\n viewportCenter < fileTop + codeRegionTop\n ? 0\n : (viewportCenter - (fileTop + codeRegionTop)) / lineHeight\n );\n const centerHunk = Math.floor(centerLine / hunkLineCount);\n\n // Calculate ideal start centered around viewport\n const idealStartHunk = centerHunk - Math.floor(totalHunks / 2);\n const totalHunksInFile = Math.ceil(lineCount / hunkLineCount);\n const startingLine =\n Math.max(0, Math.min(idealStartHunk, totalHunksInFile)) * hunkLineCount;\n\n const clampedTotalLines =\n idealStartHunk < 0\n ? totalLines + idealStartHunk * hunkLineCount\n : totalLines;\n\n const bufferBefore =\n startingLine === 0\n ? 0\n : fileAnnotationHeight + startingLine * lineHeight;\n const renderedLines = Math.min(\n clampedTotalLines,\n lineCount - startingLine\n );\n const bufferAfter = Math.max(\n 0,\n (lineCount - startingLine - renderedLines) * lineHeight\n );\n\n return {\n startingLine,\n totalLines: clampedTotalLines,\n bufferBefore,\n bufferAfter,\n };\n }\n\n // Complex case: need to account for line annotations or wrap overflow\n const overflowHunks = totalHunks;\n const hunkOffsets: number[] = [];\n // Start the scan before the viewport so we collect hunk offsets that may be\n // needed for bufferBefore. This only chooses the scan origin; the returned\n // render range is still computed from the visible window below.\n const checkpoint = this.getLayoutCheckpointBeforeTop(\n Math.max(0, top - fileTop - totalLines * lineHeight * 2),\n hunkLineCount\n );\n\n let absoluteLineTop = fileTop + (checkpoint?.top ?? codeRegionTop);\n let currentLine = checkpoint?.lineIndex ?? 0;\n let firstVisibleHunk: number | undefined;\n let centerHunk: number | undefined;\n let overflowCounter: number | undefined;\n\n iterateOverFile({\n lines,\n startingLine: checkpoint?.lineIndex ?? 0,\n callback: ({ lineIndex }) => {\n const isAtHunkBoundary = currentLine % hunkLineCount === 0;\n const currentHunk = Math.floor(currentLine / hunkLineCount);\n\n if (isAtHunkBoundary) {\n hunkOffsets[currentHunk] =\n absoluteLineTop - (fileTop + codeRegionTop);\n\n if (overflowCounter != null) {\n if (overflowCounter <= 0) {\n return true;\n }\n overflowCounter--;\n }\n }\n\n const lineHeight = this.getLineHeight(lineIndex, false);\n\n // Track visible region\n if (absoluteLineTop > top - lineHeight && absoluteLineTop < bottom) {\n firstVisibleHunk ??= currentHunk;\n }\n\n // Track which hunk contains the viewport center\n if (absoluteLineTop + lineHeight > viewportCenter) {\n centerHunk ??= currentHunk;\n }\n\n // Start overflow when we are out of the viewport at a hunk boundary\n if (\n overflowCounter == null &&\n absoluteLineTop >= bottom &&\n isAtHunkBoundary\n ) {\n overflowCounter = overflowHunks;\n }\n\n currentLine++;\n absoluteLineTop += lineHeight;\n\n return false;\n },\n });\n\n // No visible lines found\n if (firstVisibleHunk == null) {\n if (measuredFileAnnotationVisible) {\n firstVisibleHunk = 0;\n centerHunk = 0;\n } else {\n return {\n startingLine: 0,\n totalLines: 0,\n bufferBefore: 0,\n bufferAfter: fileHeight - headerRegion - paddingBottom,\n };\n }\n }\n\n // Calculate balanced startingLine centered around the viewport center\n centerHunk ??= firstVisibleHunk;\n const idealStartHunk = Math.round(centerHunk - totalHunks / 2);\n\n // Clamp startHunk: at the beginning, reduce totalLines; at the end, shift\n // startHunk back\n const maxStartHunk = Math.max(\n 0,\n Math.ceil(lineCount / hunkLineCount) - totalHunks\n );\n const startHunk = Math.max(0, Math.min(idealStartHunk, maxStartHunk));\n const startingLine = startHunk * hunkLineCount;\n\n // If we wanted to start before 0, reduce totalLines by the clamped amount\n const clampedTotalLines =\n idealStartHunk < 0\n ? totalLines + idealStartHunk * hunkLineCount\n : totalLines;\n\n // Use hunkOffsets array for efficient buffer calculations\n const codeBufferBefore = hunkOffsets[startHunk] ?? 0;\n const bufferBefore =\n startingLine === 0 ? 0 : fileAnnotationHeight + codeBufferBefore;\n\n // Calculate bufferAfter\n const finalHunkIndex = startHunk + clampedTotalLines / hunkLineCount;\n const bufferAfter =\n finalHunkIndex < hunkOffsets.length\n ? codeRowsHeight - hunkOffsets[finalHunkIndex]\n : codeRowsHeight - (absoluteLineTop - fileTop - codeRegionTop);\n\n return {\n startingLine,\n totalLines: clampedTotalLines,\n bufferBefore,\n bufferAfter: Math.max(0, bufferAfter),\n };\n }\n}\n\nfunction measureFileAnnotationHeight(content: HTMLElement): number | undefined {\n let height: number | undefined;\n for (const child of content.children) {\n if (!(child instanceof HTMLElement)) {\n continue;\n }\n if (child.dataset.lineAnnotation !== FILE_ANNOTATION_DOM_KEY) {\n continue;\n }\n height = Math.max(height ?? 0, child.getBoundingClientRect().height);\n }\n return height;\n}\n\nfunction getLastVisibleLineIndex(lines: string[]): number {\n const lastLine = lines.at(-1);\n if (\n lastLine == null ||\n lastLine === '' ||\n lastLine === '\\n' ||\n lastLine === '\\r\\n' ||\n lastLine === '\\r'\n ) {\n return lines.length - 2;\n }\n\n return lines.length - 1;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VirtualizedFile.js","names":[],"sources":["../../src/components/VirtualizedFile.ts"],"sourcesContent":["import { DEFAULT_VIRTUAL_FILE_METRICS } from '../constants';\nimport type {\n DiffsTextDocument,\n FileContents,\n LineAnnotation,\n NumericScrollLineAnchor,\n PendingCodeViewLayoutReset,\n RenderRange,\n RenderWindow,\n StickySpecs,\n ThemeTypes,\n VirtualFileMetrics,\n} from '../types';\nimport { areFilesEqual } from '../utils/areFilesEqual';\nimport { areObjectsEqual } from '../utils/areObjectsEqual';\nimport { areOptionsEqual } from '../utils/areOptionsEqual';\nimport {\n computeVirtualFileMetrics,\n getVirtualFileHeaderRegion,\n getVirtualFilePaddingBottom,\n} from '../utils/computeVirtualFileMetrics';\nimport {\n FILE_ANNOTATION_DOM_KEY,\n FILE_ANNOTATION_LINE_NUMBER,\n includesFileAnnotations,\n shouldRenderFileAnnotations,\n} from '../utils/includesFileAnnotations';\nimport type { WorkerPoolManager } from '../worker';\nimport type { CodeView } from './CodeView';\nimport { File, type FileOptions, type FileRenderProps } from './File';\nimport type { Virtualizer } from './Virtualizer';\n\ninterface FileLayoutCheckpoint {\n lineIndex: number;\n top: number;\n}\n\ninterface FileLayoutCache {\n // Sparse map: line index -> measured height. Only stores lines that differ\n // from what is returned by `getLineHeight`.\n heights: Map<number, number>;\n // Sparse measured positions used to resume deep geometry scans near a target\n // line or scroll offset instead of replaying layout from the start.\n checkpoints: FileLayoutCheckpoint[];\n // Measured height for the file-level annotation row. Starts at 0 so\n // unmeasured annotations behave like all other unmeasured annotations.\n fileAnnotationHeight: number;\n}\n\nconst LAYOUT_CHECKPOINT_INTERVAL = 5_000;\n\nlet instanceId = -1;\n\nfunction hasFileLayoutOptionChanged<LAnnotation>(\n previousOptions: FileOptions<LAnnotation>,\n nextOptions: FileOptions<LAnnotation>\n): boolean {\n return (\n (previousOptions.overflow ?? 'scroll') !==\n (nextOptions.overflow ?? 'scroll') ||\n (previousOptions.collapsed ?? false) !== (nextOptions.collapsed ?? false) ||\n (previousOptions.disableLineNumbers ?? false) !==\n (nextOptions.disableLineNumbers ?? false) ||\n (previousOptions.disableFileHeader ?? false) !==\n (nextOptions.disableFileHeader ?? false) ||\n previousOptions.unsafeCSS !== nextOptions.unsafeCSS\n );\n}\n\nexport class VirtualizedFile<\n LAnnotation = undefined,\n> extends File<LAnnotation> {\n override readonly __id: string = `virtualized-file:${++instanceId}`;\n\n public top: number | undefined;\n public height: number = 0;\n private cache: FileLayoutCache = {\n heights: new Map(),\n checkpoints: [],\n fileAnnotationHeight: 0,\n };\n private isVisible: boolean = false;\n private isSetup: boolean = false;\n private layoutDirty = true;\n private forceRenderOverride: true | undefined;\n private currentCollapsed: boolean | undefined;\n\n constructor(\n options: FileOptions<LAnnotation> | undefined,\n private virtualizer: Virtualizer | CodeView<LAnnotation>,\n private metrics: VirtualFileMetrics = DEFAULT_VIRTUAL_FILE_METRICS,\n workerManager?: WorkerPoolManager,\n isContainerManaged = false\n ) {\n super(options, workerManager, isContainerManaged);\n }\n\n public setMetrics(\n metrics?: Partial<VirtualFileMetrics>,\n force = false\n ): void {\n const nextMetrics = computeVirtualFileMetrics(metrics);\n if (!force && areObjectsEqual(this.metrics, nextMetrics)) {\n return;\n }\n\n this.metrics = nextMetrics;\n this.resetLayoutCache();\n }\n\n override setLineAnnotations(\n lineAnnotations: LineAnnotation<LAnnotation>[]\n ): void {\n if (this.syncLineAnnotations(lineAnnotations)) {\n this.resetLayoutCache();\n }\n }\n\n private syncLineAnnotations(\n lineAnnotations: LineAnnotation<LAnnotation>[] | undefined\n ): boolean {\n if (lineAnnotations == null || lineAnnotations === this.lineAnnotations) {\n return false;\n }\n if (lineAnnotations.length === 0 && this.lineAnnotations.length === 0) {\n return false;\n }\n\n super.setLineAnnotations(lineAnnotations);\n return true;\n }\n\n private hasLineAnnotations(): boolean {\n return this.lineAnnotations.some(\n (annotation) => annotation.lineNumber > FILE_ANNOTATION_LINE_NUMBER\n );\n }\n\n // Get the height for a line, using cached value if available.\n // If not cached and hasMetadataLine is true, adds lineHeight for the\n // metadata.\n public getLineHeight(lineIndex: number, hasMetadataLine = false): number {\n const cached = this.cache.heights.get(lineIndex);\n if (cached != null) {\n return cached;\n }\n const multiplier = hasMetadataLine ? 2 : 1;\n return this.metrics.lineHeight * multiplier;\n }\n\n override setOptions(options: FileOptions<LAnnotation> | undefined): void {\n if (this.isAdvancedMode()) {\n throw new Error(\n 'VirtualizedFile.setOptions cannot be used inside CodeView. Update CodeView options instead.'\n );\n }\n\n if (options == null) return;\n const { options: previousOptions } = this;\n const optionsChanged = !areOptionsEqual(previousOptions, options);\n const layoutChanged = hasFileLayoutOptionChanged(previousOptions, options);\n\n super.setOptions(options);\n\n if (layoutChanged) {\n this.resetLayoutCache(true);\n }\n // Any option can affect rendered DOM; only layout-affecting options clear\n // the measured height cache above.\n if (optionsChanged) {\n this.forceRenderOverride = true;\n }\n if (optionsChanged) {\n this.virtualizer.instanceChanged(this, layoutChanged);\n }\n }\n\n override setThemeType(themeType: ThemeTypes): void {\n if (this.isAdvancedMode()) {\n throw new Error(\n 'VirtualizedFile.setThemeType cannot be used inside CodeView. Update CodeView options instead.'\n );\n }\n\n super.setThemeType(themeType);\n }\n\n private resetLayoutCache(recompute = false, resetRenderRange = true): void {\n this.layoutDirty = true;\n this.cache.fileAnnotationHeight = 0;\n if (this.cache.heights.size > 0) {\n this.cache.heights.clear();\n }\n if (this.cache.checkpoints.length > 0) {\n this.cache.checkpoints.length = 0;\n }\n if (this.renderRange != null && resetRenderRange) {\n this.renderRange = undefined;\n }\n // NOTE(amadeus): In CodeView we intentionally batch computes to all happen\n // at the same time, so we shouldn't trigger this there.\n if (recompute && this.isSimpleMode()) {\n this.computeApproximateSize();\n }\n }\n\n // Measure rendered lines and update height cache.\n // Called after render to reconcile estimated vs actual heights.\n public reconcileHeights(): boolean {\n let hasHeightChange = false;\n if (this.fileContainer == null || this.file == null) {\n if (this.height !== 0) {\n hasHeightChange = true;\n }\n this.height = 0;\n return hasHeightChange;\n }\n const { overflow = 'scroll' } = this.options;\n this.top = this.getVirtualizedTop();\n\n // If the file has no annotations and we are using the scroll variant, then\n // we can probably skip everything\n if (\n overflow === 'scroll' &&\n this.lineAnnotations.length === 0 &&\n !this.isResizeDebuggingEnabled()\n ) {\n return hasHeightChange;\n }\n\n // Single code element (no split mode)\n if (this.code == null) {\n return hasHeightChange;\n }\n const content = this.code.children[1]; // Content column (gutter is [0])\n if (!(content instanceof HTMLElement)) {\n return hasHeightChange;\n }\n\n const hasFileAnnotations = includesFileAnnotations(this.lineAnnotations);\n if (\n this.renderRange != null &&\n hasFileAnnotations &&\n shouldRenderFileAnnotations(this.renderRange)\n ) {\n const fileAnnotationHeight = measureFileAnnotationHeight(content);\n const nextFileAnnotationHeight = fileAnnotationHeight ?? 0;\n if (nextFileAnnotationHeight !== this.cache.fileAnnotationHeight) {\n this.cache.fileAnnotationHeight = nextFileAnnotationHeight;\n hasHeightChange = true;\n }\n } else if (!hasFileAnnotations && this.cache.fileAnnotationHeight !== 0) {\n this.cache.fileAnnotationHeight = 0;\n hasHeightChange = true;\n }\n\n for (const line of content.children) {\n if (!(line instanceof HTMLElement)) continue;\n\n const lineIndexAttr = line.dataset.lineIndex;\n if (lineIndexAttr == null) continue;\n\n const lineIndex = Number(lineIndexAttr);\n let measuredHeight = line.getBoundingClientRect().height;\n let hasMetadata = false;\n\n // Annotations or noNewline metadata increase the size of their attached line\n if (\n line.nextElementSibling instanceof HTMLElement &&\n ('lineAnnotation' in line.nextElementSibling.dataset ||\n 'noNewline' in line.nextElementSibling.dataset)\n ) {\n if ('noNewline' in line.nextElementSibling.dataset) {\n hasMetadata = true;\n }\n measuredHeight +=\n line.nextElementSibling.getBoundingClientRect().height;\n }\n\n const expectedHeight = this.getLineHeight(lineIndex, hasMetadata);\n\n if (measuredHeight === expectedHeight) {\n continue;\n }\n\n hasHeightChange = true;\n // Line is back to standard height (e.g., after window resize)\n // Remove from cache\n if (measuredHeight === this.metrics.lineHeight * (hasMetadata ? 2 : 1)) {\n this.cache.heights.delete(lineIndex);\n }\n // Non-standard height, cache it\n else {\n this.cache.heights.set(lineIndex, measuredHeight);\n }\n }\n\n if (hasHeightChange || this.isResizeDebuggingEnabled()) {\n this.computeApproximateSize(true);\n }\n return hasHeightChange;\n }\n\n public onRender = (dirty: boolean): boolean => {\n if (this.fileContainer == null || this.file == null) {\n return false;\n }\n if (dirty) {\n this.top = this.getVirtualizedTop();\n }\n return this.render({ file: this.file });\n };\n\n // Prepares this item for CodeView layout by binding the latest file, syncing\n // its virtualized top, and returning an approximate height. This method is\n // called while downstream items are being re-positioned, so later changes\n // should keep clean instances on a cached-height fast path.\n public prepareCodeViewItem(\n file: FileContents,\n top: number,\n reset?: PendingCodeViewLayoutReset,\n lineAnnotations?: LineAnnotation<LAnnotation>[]\n ): number {\n const annotationsChanged = this.syncLineAnnotations(lineAnnotations);\n const targetChanged =\n !areFilesEqual(this.file, file) ||\n this.fileRenderer.hasUnkeyedFileContentsChanged(file);\n let shouldResetLayoutCache =\n reset?.resetFileLayoutCache === true ||\n targetChanged ||\n annotationsChanged;\n if (reset?.metrics != null) {\n this.metrics = reset.metrics;\n shouldResetLayoutCache = true;\n }\n\n const { collapsed = false } = this.options;\n if (this.currentCollapsed !== collapsed) {\n this.currentCollapsed = collapsed;\n shouldResetLayoutCache = true;\n }\n\n if (shouldResetLayoutCache) {\n this.resetLayoutCache();\n }\n\n if (this.file !== file) {\n this.layoutDirty = true;\n }\n this.file = file;\n this.top = top;\n this.computeApproximateSize();\n return this.height;\n }\n\n public getLinePosition(\n lineNumber: number\n ): { top: number; height: number } | undefined {\n if (this.file == null || lineNumber < 1) {\n return undefined;\n }\n\n const { disableFileHeader = false, collapsed = false } = this.options;\n const lastLineIndex = this.fileRenderer.getLineCount(this.file) - 1;\n let top = getVirtualFileHeaderRegion(this.metrics, disableFileHeader);\n\n if (collapsed || lastLineIndex < 0) {\n return { top, height: 0 };\n }\n\n const clampedLineIndex = Math.min(\n Math.max(lineNumber - 1, 0),\n lastLineIndex\n );\n const { overflow = 'scroll' } = this.options;\n const { lineHeight } = this.metrics;\n top += this.cache.fileAnnotationHeight;\n\n if (overflow === 'scroll' && !this.hasLineAnnotations()) {\n return {\n top: top + clampedLineIndex * lineHeight,\n height: lineHeight,\n };\n }\n\n const checkpoint =\n this.getLayoutCheckpointBeforeLineIndex(clampedLineIndex);\n top = checkpoint?.top ?? top;\n for (\n let lineIndex = checkpoint?.lineIndex ?? 0;\n lineIndex < clampedLineIndex;\n lineIndex++\n ) {\n top += this.getLineHeight(lineIndex, false);\n }\n\n return {\n top,\n height: this.getLineHeight(clampedLineIndex, false),\n };\n }\n\n public getEditorViewport(): HTMLElement | Document | undefined {\n return this.virtualizer.type === 'simple'\n ? this.virtualizer.getRoot()\n : this.virtualizer.getContainerElement();\n }\n\n public getNumericScrollAnchor(\n localViewportTop: number\n ): NumericScrollLineAnchor | undefined {\n if (this.file == null || this.renderRange == null) {\n return undefined;\n }\n\n const {\n disableFileHeader = false,\n collapsed = false,\n overflow = 'scroll',\n } = this.options;\n if (collapsed || this.renderRange.totalLines <= 0) {\n return undefined;\n }\n\n const lastLineIndex = this.fileRenderer.getLineCount(this.file) - 1;\n if (lastLineIndex < 0) {\n return undefined;\n }\n\n const headerRegion = getVirtualFileHeaderRegion(\n this.metrics,\n disableFileHeader\n );\n const firstRenderedLineIndex = Math.min(\n this.renderRange.startingLine,\n lastLineIndex\n );\n const lastRenderedLineIndex = Math.min(\n firstRenderedLineIndex + this.renderRange.totalLines - 1,\n lastLineIndex\n );\n if (lastRenderedLineIndex < firstRenderedLineIndex) {\n return undefined;\n }\n const { fileAnnotationHeight } = this.cache;\n\n // If we don't allow line wrapping and have no annotations, we can just\n // multiply our way to the the correct value\n if (overflow === 'scroll' && !this.hasLineAnnotations()) {\n const { lineHeight } = this.metrics;\n const firstRenderedLineTop =\n headerRegion +\n (firstRenderedLineIndex === 0\n ? fileAnnotationHeight\n : this.renderRange.bufferBefore);\n const deltaLineCount = Math.max(\n Math.ceil((localViewportTop - firstRenderedLineTop) / lineHeight),\n 0\n );\n const lineIndex = firstRenderedLineIndex + deltaLineCount;\n if (lineIndex > lastRenderedLineIndex) {\n return undefined;\n }\n\n return {\n lineNumber: lineIndex + 1,\n top: headerRegion + fileAnnotationHeight + lineIndex * lineHeight,\n };\n }\n\n // Otherwise we gotta iterate through the range\n let top =\n headerRegion +\n (firstRenderedLineIndex === 0\n ? fileAnnotationHeight\n : this.renderRange.bufferBefore);\n for (\n let lineIndex = firstRenderedLineIndex;\n lineIndex <= lastRenderedLineIndex;\n lineIndex++\n ) {\n if (top >= localViewportTop) {\n return {\n lineNumber: lineIndex + 1,\n top,\n };\n }\n top += this.getLineHeight(lineIndex);\n }\n\n return undefined;\n }\n\n public getVirtualizedHeight(): number {\n return this.height;\n }\n\n public getAdvancedStickySpecs(\n windowSpecs?: RenderWindow\n ): StickySpecs | undefined {\n if (this.top == null || this.file == null) {\n return undefined;\n }\n if (this.options.collapsed === true) {\n return { topOffset: this.top, height: this.height };\n }\n const renderRange =\n windowSpecs != null\n ? this.computeRenderRangeFromWindow(this.file, this.top, windowSpecs)\n : this.renderRange;\n if (renderRange == null) {\n return undefined;\n }\n const { bufferBefore, bufferAfter, totalLines } = renderRange;\n // Rendered items flow contiguously in the sticky container with no buffer\n // spacers, so a header-only item (totalLines === 0, none of its rows fall\n // inside the window) must report where its header actually sits in that\n // flow, which depends on which side of the window its content is on:\n // - content ABOVE the window (item starts above window.top): the header\n // sits at the item's bottom so the following item connects, so offset by\n // bufferAfter.\n // - content BELOW the window (item starts at/after window.top, e.g. a\n // trailing header peeking in at the bottom): the header renders at the\n // item's top with nothing after it, so no offset. Always adding\n // bufferAfter here made getStickyBounds over-measure the sticky\n // container for that trailing case.\n let headerOnlyOffset = 0;\n if (totalLines === 0) {\n const activeWindow = windowSpecs ?? this.virtualizer.getWindowSpecs();\n if (this.top < activeWindow.top) {\n headerOnlyOffset = bufferAfter;\n }\n }\n return {\n topOffset: this.top + bufferBefore + headerOnlyOffset,\n height: this.height - (bufferBefore + bufferAfter),\n };\n }\n\n override cleanUp(recycle = false): void {\n if (this.fileContainer != null && this.isSimpleMode()) {\n this.getSimpleVirtualizer()?.disconnect(this.fileContainer);\n }\n if (!recycle) {\n this.resetLayoutCache();\n }\n this.isSetup = false;\n super.cleanUp(recycle);\n }\n\n // Compute the approximate size of the file using cached line heights.\n // Uses lineHeight for lines without cached measurements.\n // The reason we refer to this as `approximate size` is because heights my\n // dynamically change for a number of reasons so we can never be fully sure\n // if the height is 100% accurate\n private computeApproximateSize(\n force = false,\n file: FileContents | undefined = this.file\n ): void {\n const shouldValidateSize = this.isResizeDebuggingEnabled();\n if (!force && !this.layoutDirty && !shouldValidateSize) {\n return;\n }\n\n const isFirstCompute = this.height === 0;\n this.height = 0;\n this.cache.checkpoints = [];\n if (file == null) {\n this.layoutDirty = false;\n return;\n }\n\n const {\n disableFileHeader = false,\n collapsed = false,\n overflow = 'scroll',\n } = this.options;\n const { lineHeight } = this.metrics;\n const lineCount = this.fileRenderer.getLineCount(file);\n const headerRegion = getVirtualFileHeaderRegion(\n this.metrics,\n disableFileHeader\n );\n const paddingBottom = getVirtualFilePaddingBottom(this.metrics);\n\n this.height += headerRegion;\n if (collapsed) {\n this.layoutDirty = false;\n return;\n }\n\n this.height += this.cache.fileAnnotationHeight;\n\n if (overflow === 'scroll' && !this.hasLineAnnotations()) {\n this.height += lineCount * lineHeight;\n } else {\n for (let lineIndex = 0; lineIndex < lineCount; lineIndex++) {\n this.addLayoutCheckpoint(lineIndex, this.height);\n this.height += this.getLineHeight(lineIndex, false);\n }\n }\n\n if (lineCount > 0) {\n this.height += paddingBottom;\n }\n\n if (this.fileContainer != null && shouldValidateSize && !isFirstCompute) {\n const rect = this.fileContainer.getBoundingClientRect();\n if (rect.height !== this.height) {\n console.log(\n 'VirtualizedFile.computeApproximateSize: computed height doesnt match',\n {\n name: file.name,\n elementHeight: rect.height,\n computedHeight: this.height,\n }\n );\n } else {\n console.log(\n 'VirtualizedFile.computeApproximateSize: computed height IS CORRECT'\n );\n }\n }\n this.layoutDirty = false;\n }\n\n public setVisibility(visible: boolean): void {\n if (this.isAdvancedMode() || this.fileContainer == null) {\n return;\n }\n this.renderRange = undefined;\n if (visible && !this.isVisible) {\n this.top = this.getVirtualizedTop();\n this.isVisible = true;\n } else if (!visible && this.isVisible) {\n this.isVisible = false;\n this.rerender();\n }\n }\n\n override rerender(): void {\n if (!this.enabled || this.file == null) {\n return;\n }\n this.forceRenderOverride = true;\n this.virtualizer.instanceChanged(this, false);\n }\n\n // normally triggered by the host when the document line count changes\n override applyDocumentChange(\n textDocument: DiffsTextDocument,\n newLineAnnotations?: LineAnnotation<LAnnotation>[],\n shouldUpdateBuffer = false\n ): void {\n const { renderRange: previousRenderRange } = this;\n // Capture the scroll anchor before the synchronous document swap and\n // layout-cache wipe below; the host's next frame resolves it against the\n // new geometry so on-screen rows do not shift.\n this.getAdvancedVirtualizer()?.capturePendingLayoutAnchor();\n super.applyDocumentChange(textDocument, newLineAnnotations);\n this.getSimpleVirtualizer()?.markDOMDirty();\n this.resetLayoutCache(this.isSimpleMode(), false);\n\n if (!this.isSimpleMode()) {\n this.computeApproximateSize(true);\n } else if (\n shouldUpdateBuffer &&\n previousRenderRange !== undefined &&\n this.file !== undefined\n ) {\n // Update the buffers caused by the line-count change to ensure the host\n // scrolls to the correct position before re-rendering.\n const windowSpecs = this.virtualizer.getWindowSpecs();\n const renderRange = this.computeRenderRangeFromWindow(\n this.file,\n this.top ?? 0,\n windowSpecs\n );\n if (renderRange.bufferAfter !== previousRenderRange.bufferAfter) {\n this.updateBuffers(renderRange);\n }\n }\n\n this.forceRenderOverride = true;\n this.virtualizer.instanceChanged(this, true);\n }\n\n protected override renderPreparedFile({\n fileContainer,\n file,\n forceRender = false,\n lineAnnotations,\n ...props\n }: FileRenderProps<LAnnotation>): boolean {\n const didFileChange =\n this.file == null ||\n !areFilesEqual(this.file, file) ||\n this.fileRenderer.hasUnkeyedFileContentsChanged(file);\n const { forceRenderOverride, isSetup } = this;\n this.forceRenderOverride = undefined;\n const annotationsChanged = this.syncLineAnnotations(lineAnnotations);\n if (annotationsChanged) {\n this.resetLayoutCache();\n }\n\n fileContainer = this.getOrCreateFileContainerNode(fileContainer);\n\n if (file == null) {\n console.error(\n 'VirtualizedFile.render: attempting to virtually render when we dont have file'\n );\n return false;\n }\n\n if (!isSetup) {\n this.computeApproximateSize(false, file);\n const virtualizer = this.getSimpleVirtualizer();\n this.top ??= this.getVirtualizedTop();\n if (this.isAdvancedMode()) {\n this.isVisible = true;\n } else {\n if (virtualizer == null) {\n throw new Error(\n 'VirtualizedFile.render: simple virtualizer is not available'\n );\n }\n virtualizer.connect(fileContainer, this);\n this.isVisible = virtualizer.isInstanceVisible(\n this.top ?? 0,\n this.height\n );\n }\n this.isSetup = true;\n } else {\n this.top ??= this.getVirtualizedTop();\n if (didFileChange && this.isSimpleMode()) {\n this.getSimpleVirtualizer()?.markDOMDirty();\n this.resetLayoutCache(false);\n this.computeApproximateSize(false, file);\n }\n }\n\n // A hidden live instance receiving a changed file falls through to the\n // full render below so the base's change detection (header cache, stored\n // file) still runs; the placeholder path only serves unchanged data.\n if (\n !this.isVisible &&\n this.isSimpleMode() &&\n (!didFileChange || !isSetup)\n ) {\n this.file = file;\n if (didFileChange) {\n this.cachedHeaderHTML = undefined;\n }\n return this.renderPlaceholder(this.height);\n }\n\n const windowSpecs = this.virtualizer.getWindowSpecs();\n const fileTop = this.top ?? 0;\n const renderRange = this.computeRenderRangeFromWindow(\n file,\n fileTop,\n windowSpecs\n );\n const rendered = super.renderPreparedFile({\n file,\n fileContainer,\n renderRange,\n lineAnnotations,\n forceRender:\n (forceRenderOverride ?? forceRender) ||\n annotationsChanged ||\n didFileChange,\n ...props,\n });\n // Renders can be driven from outside the virtualizer (host/React render\n // calls, async highlight completions), and the virtualizer only\n // auto-reconciles renders it initiated. Queue a measured-height\n // reconciliation for every applied content render so line deltas\n // (wrapped lines, annotation heights) survive layout resets.\n if (this.isSimpleMode() && rendered) {\n this.getSimpleVirtualizer()?.requestHeightReconcile(this);\n }\n return rendered;\n }\n\n public syncVirtualizedTop(): void {\n this.top = this.getVirtualizedTop();\n }\n\n protected override shouldDisableVirtualizationBuffers(): boolean {\n return this.isAdvancedMode() || super.shouldDisableVirtualizationBuffers();\n }\n\n // This WebKit dom manipulation scroll fix is not applicable in virtualized\n // environments, so we avoid the performance hit even on Webkit\n protected override shouldGuardRebuildScroll(): boolean {\n return false;\n }\n\n private isSimpleMode(): boolean {\n return this.virtualizer.type === 'simple';\n }\n\n private isAdvancedMode(): boolean {\n return this.virtualizer.type === 'advanced';\n }\n\n private addLayoutCheckpoint(lineIndex: number, top: number): void {\n if (lineIndex % LAYOUT_CHECKPOINT_INTERVAL !== 0) {\n return;\n }\n this.cache.checkpoints.push({ lineIndex, top });\n }\n\n // Find the nearest sparse layout checkpoint at or before a raw file line.\n // Checkpoints store measured `top` offsets every few thousand lines, so a\n // binary search lets deep line-position lookups resume from that checkpoint\n // instead of replaying layout from the start of the file.\n private getLayoutCheckpointBeforeLineIndex(\n lineIndex: number\n ): FileLayoutCheckpoint | undefined {\n if (lineIndex <= 0 || this.cache.checkpoints.length === 0) {\n return undefined;\n }\n\n let low = 0;\n let high = this.cache.checkpoints.length - 1;\n let result: FileLayoutCheckpoint | undefined;\n\n while (low <= high) {\n const mid = (low + high) >> 1;\n const checkpoint = this.cache.checkpoints[mid];\n if (checkpoint == null) {\n throw new Error('VirtualizedFile: invalid checkpoint index');\n }\n if (checkpoint.lineIndex <= lineIndex) {\n result = checkpoint;\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n\n return result;\n }\n\n // Find the nearest sparse layout checkpoint at or before a scroll offset.\n // Render-range scans start from this checkpoint so variable-height files\n // only replay the nearby measured rows. When `hunkLineCount` is provided,\n // step backward to a hunk boundary so hooks that depend on grouped lines\n // still see a complete hunk.\n private getLayoutCheckpointBeforeTop(\n top: number,\n hunkLineCount?: number\n ): FileLayoutCheckpoint | undefined {\n let low = 0;\n let high = this.cache.checkpoints.length - 1;\n let resultIndex = -1;\n\n while (low <= high) {\n const mid = (low + high) >> 1;\n const checkpoint = this.cache.checkpoints[mid];\n if (checkpoint == null) {\n throw new Error('VirtualizedFile: invalid checkpoint index');\n }\n if (checkpoint.top <= top) {\n resultIndex = mid;\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n\n if (hunkLineCount == null) {\n return resultIndex >= 0 ? this.cache.checkpoints[resultIndex] : undefined;\n }\n\n for (let index = resultIndex; index >= 0; index--) {\n const checkpoint = this.cache.checkpoints[index];\n if (checkpoint == null) {\n throw new Error('VirtualizedFile: invalid checkpoint index');\n }\n if (checkpoint.lineIndex % hunkLineCount === 0) {\n return checkpoint;\n }\n }\n\n return undefined;\n }\n\n private getVirtualizedTop(): number {\n if (this.virtualizer.type === 'advanced') {\n return this.virtualizer.getLocalTopForInstance(this);\n }\n return this.fileContainer != null\n ? this.virtualizer.getOffsetInScrollContainer(this.fileContainer)\n : 0;\n }\n\n private getSimpleVirtualizer(): Virtualizer | undefined {\n return this.virtualizer.type === 'simple' ? this.virtualizer : undefined;\n }\n\n private getAdvancedVirtualizer(): CodeView<LAnnotation> | undefined {\n return this.virtualizer.type === 'advanced' ? this.virtualizer : undefined;\n }\n\n private isResizeDebuggingEnabled(): boolean {\n return this.getSimpleVirtualizer()?.config.resizeDebugging ?? false;\n }\n\n private computeRenderRangeFromWindow(\n file: FileContents,\n fileTop: number,\n { top, bottom }: RenderWindow\n ): RenderRange {\n const { disableFileHeader = false, overflow = 'scroll' } = this.options;\n const { hunkLineCount, lineHeight } = this.metrics;\n const lineCount = this.fileRenderer.getLineCount(file);\n const fileHeight = this.height;\n const headerRegion = getVirtualFileHeaderRegion(\n this.metrics,\n disableFileHeader\n );\n const paddingBottom =\n lineCount > 0 ? getVirtualFilePaddingBottom(this.metrics) : 0;\n const { fileAnnotationHeight } = this.cache;\n const codeRegionTop = headerRegion + fileAnnotationHeight;\n const codeRowsHeight = Math.max(\n 0,\n fileHeight - headerRegion - fileAnnotationHeight - paddingBottom\n );\n const hasFileAnnotations = includesFileAnnotations(this.lineAnnotations);\n const fileAnnotationTop = fileTop + headerRegion;\n const measuredFileAnnotationVisible =\n fileAnnotationHeight > 0 &&\n hasFileAnnotations &&\n fileAnnotationTop < bottom &&\n fileAnnotationTop + fileAnnotationHeight > top;\n\n // File is outside render window\n if (fileTop < top - fileHeight || fileTop > bottom) {\n return {\n startingLine: 0,\n totalLines: 0,\n bufferBefore: 0,\n bufferAfter: fileHeight - headerRegion - paddingBottom,\n };\n }\n\n // Small file, just render it all\n if (lineCount <= hunkLineCount) {\n return {\n startingLine: 0,\n totalLines: hunkLineCount,\n bufferBefore: 0,\n bufferAfter: 0,\n };\n }\n\n // Calculate totalLines based on viewport size\n const estimatedTargetLines = Math.ceil(\n Math.max(bottom - top, 0) / lineHeight\n );\n const totalLines =\n Math.ceil(estimatedTargetLines / hunkLineCount) * hunkLineCount +\n hunkLineCount;\n const totalHunks = totalLines / hunkLineCount;\n const viewportCenter = (top + bottom) / 2;\n // Simple case: overflow scroll with no annotations - pure math!\n if (overflow === 'scroll' && !this.hasLineAnnotations()) {\n const sourceRowsTop = fileTop + codeRegionTop;\n const sourceRowsBottom = sourceRowsTop + codeRowsHeight;\n const sourceRowsVisible =\n sourceRowsTop < bottom && sourceRowsBottom > top;\n if (!measuredFileAnnotationVisible && !sourceRowsVisible) {\n return {\n startingLine: 0,\n totalLines: 0,\n bufferBefore: 0,\n bufferAfter: fileHeight - headerRegion - paddingBottom,\n };\n }\n\n // Find which line is at viewport center\n const centerLine = Math.floor(\n measuredFileAnnotationVisible &&\n viewportCenter < fileTop + codeRegionTop\n ? 0\n : (viewportCenter - (fileTop + codeRegionTop)) / lineHeight\n );\n const centerHunk = Math.floor(centerLine / hunkLineCount);\n\n // Calculate ideal start centered around viewport\n const idealStartHunk = centerHunk - Math.floor(totalHunks / 2);\n const totalHunksInFile = Math.ceil(lineCount / hunkLineCount);\n const startingLine =\n Math.max(0, Math.min(idealStartHunk, totalHunksInFile)) * hunkLineCount;\n\n const clampedTotalLines =\n idealStartHunk < 0\n ? totalLines + idealStartHunk * hunkLineCount\n : totalLines;\n\n const bufferBefore =\n startingLine === 0\n ? 0\n : fileAnnotationHeight + startingLine * lineHeight;\n const renderedLines = Math.min(\n clampedTotalLines,\n lineCount - startingLine\n );\n const bufferAfter = Math.max(\n 0,\n (lineCount - startingLine - renderedLines) * lineHeight\n );\n\n return {\n startingLine,\n totalLines: clampedTotalLines,\n bufferBefore,\n bufferAfter,\n };\n }\n\n // Complex case: need to account for line annotations or wrap overflow\n const overflowHunks = totalHunks;\n const hunkOffsets: number[] = [];\n // Start the scan before the viewport so we collect hunk offsets that may be\n // needed for bufferBefore. This only chooses the scan origin; the returned\n // render range is still computed from the visible window below.\n const checkpoint = this.getLayoutCheckpointBeforeTop(\n Math.max(0, top - fileTop - totalLines * lineHeight * 2),\n hunkLineCount\n );\n\n let absoluteLineTop = fileTop + (checkpoint?.top ?? codeRegionTop);\n let currentLine = checkpoint?.lineIndex ?? 0;\n let firstVisibleHunk: number | undefined;\n let centerHunk: number | undefined;\n let overflowCounter: number | undefined;\n\n const startingLineIndex = checkpoint?.lineIndex ?? 0;\n for (\n let lineIndex = startingLineIndex;\n lineIndex < lineCount;\n lineIndex++\n ) {\n const isAtHunkBoundary = currentLine % hunkLineCount === 0;\n const currentHunk = Math.floor(currentLine / hunkLineCount);\n\n if (isAtHunkBoundary) {\n hunkOffsets[currentHunk] = absoluteLineTop - (fileTop + codeRegionTop);\n\n if (overflowCounter != null) {\n if (overflowCounter <= 0) {\n break;\n }\n overflowCounter--;\n }\n }\n\n const lineHeight = this.getLineHeight(lineIndex, false);\n\n // Track visible region\n if (absoluteLineTop > top - lineHeight && absoluteLineTop < bottom) {\n firstVisibleHunk ??= currentHunk;\n }\n\n // Track which hunk contains the viewport center\n if (absoluteLineTop + lineHeight > viewportCenter) {\n centerHunk ??= currentHunk;\n }\n\n // Start overflow when we are out of the viewport at a hunk boundary\n if (\n overflowCounter == null &&\n absoluteLineTop >= bottom &&\n isAtHunkBoundary\n ) {\n overflowCounter = overflowHunks;\n }\n\n currentLine++;\n absoluteLineTop += lineHeight;\n }\n\n // No visible lines found\n if (firstVisibleHunk == null) {\n if (measuredFileAnnotationVisible) {\n firstVisibleHunk = 0;\n centerHunk = 0;\n } else {\n return {\n startingLine: 0,\n totalLines: 0,\n bufferBefore: 0,\n bufferAfter: fileHeight - headerRegion - paddingBottom,\n };\n }\n }\n\n // Calculate balanced startingLine centered around the viewport center\n centerHunk ??= firstVisibleHunk;\n const idealStartHunk = Math.round(centerHunk - totalHunks / 2);\n\n // Clamp startHunk: at the beginning, reduce totalLines; at the end, shift\n // startHunk back\n const maxStartHunk = Math.max(\n 0,\n Math.ceil(lineCount / hunkLineCount) - totalHunks\n );\n const startHunk = Math.max(0, Math.min(idealStartHunk, maxStartHunk));\n const startingLine = startHunk * hunkLineCount;\n\n // If we wanted to start before 0, reduce totalLines by the clamped amount\n const clampedTotalLines =\n idealStartHunk < 0\n ? totalLines + idealStartHunk * hunkLineCount\n : totalLines;\n\n // Use hunkOffsets array for efficient buffer calculations\n const codeBufferBefore = hunkOffsets[startHunk] ?? 0;\n const bufferBefore =\n startingLine === 0 ? 0 : fileAnnotationHeight + codeBufferBefore;\n\n // Calculate bufferAfter\n const finalHunkIndex = startHunk + clampedTotalLines / hunkLineCount;\n const bufferAfter =\n finalHunkIndex < hunkOffsets.length\n ? codeRowsHeight - hunkOffsets[finalHunkIndex]\n : codeRowsHeight - (absoluteLineTop - fileTop - codeRegionTop);\n\n return {\n startingLine,\n totalLines: clampedTotalLines,\n bufferBefore,\n bufferAfter: Math.max(0, bufferAfter),\n };\n }\n}\n\nfunction measureFileAnnotationHeight(content: HTMLElement): number | undefined {\n let height: number | undefined;\n for (const child of content.children) {\n if (!(child instanceof HTMLElement)) {\n continue;\n }\n if (child.dataset.lineAnnotation !== FILE_ANNOTATION_DOM_KEY) {\n continue;\n }\n height = Math.max(height ?? 0, child.getBoundingClientRect().height);\n }\n return height;\n}\n"],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { DiffLineAnnotation, ExpansionDirections, FileDiffMetadata, NumericScrollLineAnchor, PendingCodeViewLayoutReset, RenderWindow, SelectionSide, StickySpecs, ThemeTypes, VirtualFileMetrics } from "../types.js";
|
|
1
|
+
import { BaseDiffOptions, DiffLineAnnotation, DiffsTextDocument, ExpansionDirections, FileDiffMetadata, NumericScrollLineAnchor, PendingCodeViewLayoutReset, RenderWindow, SelectionSide, StickySpecs, ThemeTypes, VirtualFileMetrics } from "../types.js";
|
|
2
2
|
import { WorkerPoolManager } from "../worker/WorkerPoolManager.js";
|
|
3
3
|
import { FileDiff, FileDiffOptions, FileDiffRenderProps } from "./FileDiff.js";
|
|
4
4
|
import { Virtualizer } from "./Virtualizer.js";
|
|
5
5
|
import { CodeView } from "./CodeView.js";
|
|
6
6
|
|
|
7
7
|
//#region src/components/VirtualizedFileDiff.d.ts
|
|
8
|
+
type LoadedPartialDiffContents = Awaited<ReturnType<NonNullable<BaseDiffOptions['loadDiffFiles']>>>;
|
|
9
|
+
declare const VIRTUALIZED_FILE_DIFF_LAYOUT_CHECKPOINT_INTERVAL = 3000;
|
|
8
10
|
declare class VirtualizedFileDiff<LAnnotation = undefined> extends FileDiff<LAnnotation> {
|
|
9
11
|
readonly __id: string;
|
|
10
12
|
top: number | undefined;
|
|
@@ -17,6 +19,9 @@ declare class VirtualizedFileDiff<LAnnotation = undefined> extends FileDiff<LAnn
|
|
|
17
19
|
private layoutDirty;
|
|
18
20
|
private forceRenderOverride;
|
|
19
21
|
private currentCollapsed;
|
|
22
|
+
private currentExpandUnchanged;
|
|
23
|
+
private pendingHydratedDiff;
|
|
24
|
+
private pendingExpansions;
|
|
20
25
|
constructor(options: FileDiffOptions<LAnnotation> | undefined, virtualizer: Virtualizer | CodeView<LAnnotation>, metrics?: Partial<VirtualFileMetrics>, workerManager?: WorkerPoolManager, isContainerManaged?: boolean);
|
|
21
26
|
setMetrics(metrics?: Partial<VirtualFileMetrics>, force?: boolean): void;
|
|
22
27
|
setLineAnnotations(lineAnnotations: DiffLineAnnotation<LAnnotation>[]): void;
|
|
@@ -28,39 +33,58 @@ declare class VirtualizedFileDiff<LAnnotation = undefined> extends FileDiff<LAnn
|
|
|
28
33
|
setOptions(options: FileDiffOptions<LAnnotation> | undefined): void;
|
|
29
34
|
setThemeType(themeType: ThemeTypes): void;
|
|
30
35
|
private resetLayoutCache;
|
|
36
|
+
private invalidateDerivedLayoutCache;
|
|
31
37
|
reconcileHeights(): boolean;
|
|
32
38
|
onRender: (dirty: boolean) => boolean;
|
|
39
|
+
flushManagers(): void;
|
|
33
40
|
prepareCodeViewItem(fileDiff: FileDiffMetadata, top: number, reset?: PendingCodeViewLayoutReset, lineAnnotations?: DiffLineAnnotation<LAnnotation>[]): number;
|
|
34
41
|
getLinePosition(lineNumber: number, side?: SelectionSide): {
|
|
35
42
|
top: number;
|
|
36
43
|
height: number;
|
|
37
44
|
} | undefined;
|
|
45
|
+
getEditorViewport(): HTMLElement | Document | undefined;
|
|
38
46
|
getNumericScrollAnchor(localViewportTop: number): NumericScrollLineAnchor | undefined;
|
|
39
47
|
getVirtualizedHeight(): number;
|
|
40
48
|
getAdvancedStickySpecs(windowSpecs?: RenderWindow): StickySpecs | undefined;
|
|
41
49
|
cleanUp(recycle?: boolean): void;
|
|
42
50
|
expandHunk: (hunkIndex: number, direction: ExpansionDirections, expansionLineCountOverride?: number) => void;
|
|
51
|
+
protected handleFilesLoaded(expectedDiff: FileDiffMetadata, files: LoadedPartialDiffContents): Promise<void>;
|
|
52
|
+
consumeCodeViewLayoutChanges(expectedFileDiff: FileDiffMetadata): FileDiffMetadata | undefined;
|
|
53
|
+
protected loadFilesIfNecessary(): void;
|
|
54
|
+
isLineRenderable(lineNumber: number): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Invalidate layout after an edit session changed the rendered row set
|
|
57
|
+
* without a line-count change (a mid-session region change or the exit
|
|
58
|
+
* recompute): estimated heights bake the hunk shapes in, and nothing else
|
|
59
|
+
* invalidates them now that editing does not flip expandUnchanged. Public
|
|
60
|
+
* so CodeView can run it when reaping a session whose instance was already
|
|
61
|
+
* released.
|
|
62
|
+
*/
|
|
63
|
+
invalidateEditSessionLayout(): void;
|
|
64
|
+
protected escalateEditSessionRender(): void;
|
|
65
|
+
protected shouldSelfHealEditSession(): boolean;
|
|
43
66
|
setVisibility(visible: boolean): void;
|
|
44
67
|
rerender(): void;
|
|
68
|
+
applyDocumentChange(textDocument: DiffsTextDocument, newLineAnnotations?: DiffLineAnnotation<LAnnotation>[], shouldUpdateBuffer?: boolean): void;
|
|
45
69
|
private computeApproximateSize;
|
|
46
70
|
private getActiveEstimatedHeight;
|
|
47
71
|
private ensureEstimatedDiffHeights;
|
|
48
72
|
private validateComputedHeight;
|
|
49
73
|
render({
|
|
50
74
|
fileContainer,
|
|
51
|
-
oldFile,
|
|
52
|
-
newFile,
|
|
53
75
|
fileDiff,
|
|
54
76
|
forceRender,
|
|
55
77
|
lineAnnotations,
|
|
56
|
-
...
|
|
78
|
+
...fileInputProps
|
|
57
79
|
}?: FileDiffRenderProps<LAnnotation>): boolean;
|
|
58
80
|
syncVirtualizedTop(): void;
|
|
59
81
|
protected shouldDisableVirtualizationBuffers(): boolean;
|
|
82
|
+
protected shouldGuardRebuildScroll(): boolean;
|
|
60
83
|
private isSimpleMode;
|
|
61
84
|
private isAdvancedMode;
|
|
62
85
|
private getVirtualizedTop;
|
|
63
86
|
private getSimpleVirtualizer;
|
|
87
|
+
private getAdvancedVirtualizer;
|
|
64
88
|
private isResizeDebuggingEnabled;
|
|
65
89
|
private getDiffStyle;
|
|
66
90
|
private getHunkSeparatorType;
|
|
@@ -68,8 +92,9 @@ declare class VirtualizedFileDiff<LAnnotation = undefined> extends FileDiff<LAnn
|
|
|
68
92
|
private getLayoutCheckpointBeforeLineIndex;
|
|
69
93
|
private getLayoutCheckpointBeforeTop;
|
|
70
94
|
private getExpandedLineCount;
|
|
95
|
+
private getLayoutLineCount;
|
|
71
96
|
private computeRenderRangeFromWindow;
|
|
72
97
|
}
|
|
73
98
|
//#endregion
|
|
74
|
-
export { VirtualizedFileDiff };
|
|
99
|
+
export { VIRTUALIZED_FILE_DIFF_LAYOUT_CHECKPOINT_INTERVAL, VirtualizedFileDiff };
|
|
75
100
|
//# sourceMappingURL=VirtualizedFileDiff.d.ts.map
|