@openclaw/diffs 2026.8.1-beta.3 → 2026.8.2
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 +129 -156
- package/dist/{browser.runtime-_hkQDewM.js → browser.runtime-DTKAejqd.js} +1 -1
- package/dist/index.js +18 -16
- 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/core/dist/index.d.mts +0 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/core/dist/index.mjs +22 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/core/package.json +4 -4
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/{engine-compile-CMRQUZTL.d.mts → engine-compile-Bdn9ihA2.d.mts} +0 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/engine-compile.d.mts +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/engine-raw.d.mts +0 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/index.d.mts +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/package.json +2 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-oniguruma/package.json +2 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/primitive/dist/index.d.mts +0 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/primitive/package.json +3 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/catppuccin-frappe.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/catppuccin-latte.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/catppuccin-macchiato.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/catppuccin-mocha.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/kanagawa-dragon.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/kanagawa-lotus.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/kanagawa-wave.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/monokai.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/red.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/rose-pine-dawn.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/rose-pine-moon.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/rose-pine.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/solarized-dark.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/solarized-light.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/package.json +3 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/transformers/dist/index.d.mts +0 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/transformers/dist/index.mjs +2 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/transformers/package.json +3 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/types/dist/index.d.mts +0 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/types/package.json +2 -2
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/bundle-full.d.mts +4 -7
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/bundle-full.mjs +3 -19
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/bundle-web.d.mts +5 -6
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/bundle-web.mjs +7 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/core-CaxrMD1A.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/core.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/index.d.mts +3 -9
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/index.mjs +3 -24
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/actionscript.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/actionscript.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ahk.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ahk.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ahk1.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ahk1.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ahk2.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ahk2.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/as3.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/as3.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/chapel.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/chapel.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/chpl.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/chpl.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/justfile.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/justfile.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/nsis.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/nsis.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/org.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/org.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/pwsh.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/pwsh.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/rbs.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/rbs.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ruby-signature.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ruby-signature.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/smithy.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/smithy.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs-B38xGbib.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs-bundle-full-B4n9xYHw.d.mts +13 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/{langs-bundle-full-4noeO3oH.mjs → langs-bundle-full-xQVO1Cek.mjs} +48 -5
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs.d.mts +2 -1
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/{themes-NeZbxnKu.d.mts → themes-BKdFAJ1v.d.mts} +0 -1
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/themes.d.mts +1 -1
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/types.d.mts +3 -3
- package/node_modules/@pierre/diffs/node_modules/shiki/package.json +10 -10
- 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 +41 -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/@pierre/diffs/node_modules/shiki/dist/core-BVVgDSdq.d.mts +0 -1
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs-BVVgDSdq.d.mts +0 -1
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs-bundle-full-WSWgUeqW.d.mts +0 -14
- 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
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import { getGraphemeSegmenter, h, round } from "./utils.js";
|
|
2
|
+
//#region src/editor/textMeasure.ts
|
|
3
|
+
const TEXT_WIDTH_CACHE_LIMIT = 4096;
|
|
4
|
+
const COMBINING_MARK_PATTERN = /\p{Mark}/u;
|
|
5
|
+
var Metrics = class {
|
|
6
|
+
#root;
|
|
7
|
+
#canvasCtx;
|
|
8
|
+
#font;
|
|
9
|
+
#textWidthCache = /* @__PURE__ */ new Map();
|
|
10
|
+
/** Width of the '0' character. */
|
|
11
|
+
ch = -1;
|
|
12
|
+
/** Size of a tab(\t) character. */
|
|
13
|
+
tabSize = 2;
|
|
14
|
+
/** Height of the code line. */
|
|
15
|
+
lineHeight = 20;
|
|
16
|
+
/** Padding top of the root element. */
|
|
17
|
+
paddingTop = 0;
|
|
18
|
+
/** initialize the metrics */
|
|
19
|
+
init(root) {
|
|
20
|
+
if (this.#root === root && this.#canvasCtx !== void 0 && this.ch !== -1) return;
|
|
21
|
+
this.#root = root;
|
|
22
|
+
this.#canvasCtx ??= document.createElement("canvas").getContext("2d") ?? void 0;
|
|
23
|
+
if (this.#canvasCtx === void 0) throw new Error("Could not get canvas context");
|
|
24
|
+
const parent = root.parentElement;
|
|
25
|
+
if (parent !== null) {
|
|
26
|
+
const { paddingTop } = getComputedStyle(parent);
|
|
27
|
+
if (paddingTop.endsWith("px")) this.paddingTop = parseFloat(paddingTop.slice(0, -2));
|
|
28
|
+
}
|
|
29
|
+
const { fontSize, fontFamily, tabSize, lineHeight } = getComputedStyle(root);
|
|
30
|
+
if (lineHeight.endsWith("px")) this.lineHeight = parseFloat(lineHeight.slice(0, -2));
|
|
31
|
+
else if (fontSize.endsWith("px")) this.lineHeight = round(parseFloat(fontSize.slice(0, -2)) * parseFloat(lineHeight));
|
|
32
|
+
const font = fontSize + " " + fontFamily;
|
|
33
|
+
if (this.#font !== font || this.ch === -1) {
|
|
34
|
+
this.#font = font;
|
|
35
|
+
this.#canvasCtx.font = font;
|
|
36
|
+
this.ch = this.canvasMeasureTextWidth("0");
|
|
37
|
+
this.clearTextWidthCache();
|
|
38
|
+
}
|
|
39
|
+
const nextTabSize = parseInt(tabSize, 10);
|
|
40
|
+
if (!Number.isNaN(nextTabSize)) this.tabSize = nextTabSize;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Re-measure the '0' character width against the font that is loaded right
|
|
44
|
+
* now, returning true when measurement-dependent UI should refresh.
|
|
45
|
+
*
|
|
46
|
+
* A custom web font can finish loading after the editor first renders.
|
|
47
|
+
* Until then canvas measureText reports the fallback font's width, and
|
|
48
|
+
* getComputedStyle returns the same font-family string before and after the
|
|
49
|
+
* file arrives, so init()'s font guard never re-measures on its own. Call
|
|
50
|
+
* this once fonts have settled (e.g. on document.fonts.ready) to replace a
|
|
51
|
+
* width measured against the fallback font with the real glyph width. Font
|
|
52
|
+
* completion can also change DOM-measured emoji/ZWJ widths while leaving the
|
|
53
|
+
* ASCII width unchanged, and the computed font string stays the same in both
|
|
54
|
+
* cases. The boolean return lets the caller skip re-rendering when there is no
|
|
55
|
+
* measured state to refresh.
|
|
56
|
+
*/
|
|
57
|
+
remeasureCharacterWidth() {
|
|
58
|
+
if (this.#canvasCtx === void 0 || this.#font === void 0) return false;
|
|
59
|
+
this.#canvasCtx.font = this.#font;
|
|
60
|
+
const ch = this.canvasMeasureTextWidth("0");
|
|
61
|
+
const characterWidthChanged = ch !== this.ch;
|
|
62
|
+
if (characterWidthChanged) this.ch = ch;
|
|
63
|
+
const textWidthCacheCleared = this.#clearTextWidthCache();
|
|
64
|
+
return characterWidthChanged || textWidthCacheCleared;
|
|
65
|
+
}
|
|
66
|
+
/** measure the width of the text */
|
|
67
|
+
measureTextWidth(text) {
|
|
68
|
+
if (!text.includes(" ")) return this.#measureTextWidthWithoutTabs(text);
|
|
69
|
+
if (this.#canvasCtx === void 0) throw new Error("Metrics not initialized");
|
|
70
|
+
const asciiColumns = getExpandedAsciiTextColumns(text, this.tabSize);
|
|
71
|
+
if (asciiColumns !== -1) return asciiColumns * this.ch;
|
|
72
|
+
let width = 0;
|
|
73
|
+
let runStart = 0;
|
|
74
|
+
const tabStopWidth = this.tabSize * this.ch;
|
|
75
|
+
for (let i = 0; i < text.length; i++) {
|
|
76
|
+
if (text.charCodeAt(i) !== 9) continue;
|
|
77
|
+
if (i > runStart) width += this.#measureTextWidthWithoutTabs(text.slice(runStart, i));
|
|
78
|
+
if (tabStopWidth > 0) {
|
|
79
|
+
const remainder = width % tabStopWidth;
|
|
80
|
+
width += remainder === 0 ? tabStopWidth : tabStopWidth - remainder;
|
|
81
|
+
}
|
|
82
|
+
runStart = i + 1;
|
|
83
|
+
}
|
|
84
|
+
if (runStart < text.length) width += this.#measureTextWidthWithoutTabs(text.slice(runStart));
|
|
85
|
+
return round(width);
|
|
86
|
+
}
|
|
87
|
+
#measureTextWidthWithoutTabs(text) {
|
|
88
|
+
if (needsDomTextMeasurement(text)) return this.domMeasureTextWidth(text);
|
|
89
|
+
return this.canvasMeasureTextWidth(text);
|
|
90
|
+
}
|
|
91
|
+
/** measure the width of the text using the canvas measureText API */
|
|
92
|
+
canvasMeasureTextWidth(text) {
|
|
93
|
+
if (this.#canvasCtx === void 0) throw new Error("Metrics not initialized");
|
|
94
|
+
return round(this.#canvasCtx.measureText(text).width);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* measure the width of the text using the DOM
|
|
98
|
+
* this is slow because it cause a reflow, use it for non-ascii text;
|
|
99
|
+
* results are memoized per text so repeated measurements skip the reflow
|
|
100
|
+
*/
|
|
101
|
+
domMeasureTextWidth(text) {
|
|
102
|
+
if (this.#root === void 0) throw new Error("Metrics not initialized");
|
|
103
|
+
const cacheKey = text + "|" + this.#font;
|
|
104
|
+
const cached = this.#textWidthCache.get(cacheKey);
|
|
105
|
+
if (cached !== void 0) return cached;
|
|
106
|
+
const measureEl = h("span", {
|
|
107
|
+
style: {
|
|
108
|
+
position: "absolute",
|
|
109
|
+
top: "0",
|
|
110
|
+
left: "0",
|
|
111
|
+
visibility: "hidden",
|
|
112
|
+
pointerEvents: "none",
|
|
113
|
+
whiteSpace: "pre",
|
|
114
|
+
font: "inherit"
|
|
115
|
+
},
|
|
116
|
+
textContent: text
|
|
117
|
+
}, this.#root);
|
|
118
|
+
let width;
|
|
119
|
+
try {
|
|
120
|
+
width = round(measureEl.getBoundingClientRect().width);
|
|
121
|
+
} finally {
|
|
122
|
+
measureEl.remove();
|
|
123
|
+
}
|
|
124
|
+
if (this.#textWidthCache.size >= TEXT_WIDTH_CACHE_LIMIT) {
|
|
125
|
+
const oldestKey = this.#textWidthCache.keys().next().value;
|
|
126
|
+
if (oldestKey !== void 0) this.#textWidthCache.delete(oldestKey);
|
|
127
|
+
}
|
|
128
|
+
this.#textWidthCache.set(cacheKey, width);
|
|
129
|
+
return width;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* discard memoized DOM text widths
|
|
133
|
+
* call this when the inherited font may have changed without re-running
|
|
134
|
+
* init(), e.g. on a layout reflow, so stale widths are not reused
|
|
135
|
+
*/
|
|
136
|
+
clearTextWidthCache() {
|
|
137
|
+
this.#clearTextWidthCache();
|
|
138
|
+
}
|
|
139
|
+
#clearTextWidthCache() {
|
|
140
|
+
const hadCachedTextWidths = this.#textWidthCache.size > 0;
|
|
141
|
+
this.#textWidthCache.clear();
|
|
142
|
+
return hadCachedTextWidths;
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
/** Check if the text needs DOM text measurement. */
|
|
146
|
+
function needsDomTextMeasurement(text) {
|
|
147
|
+
for (let i = 0; i < text.length; i++) {
|
|
148
|
+
const code = text.charCodeAt(i);
|
|
149
|
+
if (code >= 55296 && code <= 57343 || code === 8205 || code === 65038 || code === 65039 || code > 127 && COMBINING_MARK_PATTERN.test(text.charAt(i))) return true;
|
|
150
|
+
}
|
|
151
|
+
return false;
|
|
152
|
+
}
|
|
153
|
+
/** snap the text offset to the Unicode boundary */
|
|
154
|
+
function snapTextOffsetToUnicodeBoundary(text, offset) {
|
|
155
|
+
const boundedOffset = Math.max(0, Math.min(offset, text.length));
|
|
156
|
+
if (boundedOffset === 0 || boundedOffset === text.length || !needsDomTextMeasurement(text)) return boundedOffset;
|
|
157
|
+
const segmenter = getGraphemeSegmenter();
|
|
158
|
+
if (segmenter !== void 0) {
|
|
159
|
+
for (const segment of segmenter.segment(text)) {
|
|
160
|
+
const segmentStart = segment.index;
|
|
161
|
+
const segmentEnd = segmentStart + segment.segment.length;
|
|
162
|
+
if (boundedOffset > segmentStart && boundedOffset < segmentEnd) return segmentEnd;
|
|
163
|
+
if (boundedOffset <= segmentStart) break;
|
|
164
|
+
}
|
|
165
|
+
return boundedOffset;
|
|
166
|
+
}
|
|
167
|
+
let segmentStart = 0;
|
|
168
|
+
for (const codePoint of text) {
|
|
169
|
+
const segmentEnd = segmentStart + codePoint.length;
|
|
170
|
+
if (boundedOffset > segmentStart && boundedOffset < segmentEnd) return segmentEnd;
|
|
171
|
+
if (boundedOffset <= segmentStart) break;
|
|
172
|
+
segmentStart = segmentEnd;
|
|
173
|
+
}
|
|
174
|
+
return boundedOffset;
|
|
175
|
+
}
|
|
176
|
+
/** get the offsets of the Unicode grapheme clusters in the text */
|
|
177
|
+
function getUnicodeMeasurementOffsets(text) {
|
|
178
|
+
if (!needsDomTextMeasurement(text)) return;
|
|
179
|
+
const offsets = [0];
|
|
180
|
+
const segmenter = getGraphemeSegmenter();
|
|
181
|
+
if (segmenter !== void 0) {
|
|
182
|
+
for (const segment of segmenter.segment(text)) offsets.push(segment.index + segment.segment.length);
|
|
183
|
+
return offsets;
|
|
184
|
+
}
|
|
185
|
+
let offset = 0;
|
|
186
|
+
for (const codePoint of text) {
|
|
187
|
+
offset += codePoint.length;
|
|
188
|
+
offsets.push(offset);
|
|
189
|
+
}
|
|
190
|
+
return offsets;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Count the rendered columns of ASCII text, advancing each tab to the next
|
|
194
|
+
* fixed tab stop (a multiple of tabSize) to match CSS `tab-size`. Returns -1
|
|
195
|
+
* for non-ASCII text, which must be measured glyph-by-glyph instead.
|
|
196
|
+
*/
|
|
197
|
+
function getExpandedAsciiTextColumns(text, tabSize) {
|
|
198
|
+
let columns = 0;
|
|
199
|
+
for (let i = 0; i < text.length; i++) {
|
|
200
|
+
const code = text.charCodeAt(i);
|
|
201
|
+
if (code > 127) return -1;
|
|
202
|
+
columns += code === 9 ? tabSize - columns % tabSize : 1;
|
|
203
|
+
}
|
|
204
|
+
return columns;
|
|
205
|
+
}
|
|
206
|
+
//#endregion
|
|
207
|
+
export { Metrics, getExpandedAsciiTextColumns, getUnicodeMeasurementOffsets, needsDomTextMeasurement, snapTextOffsetToUnicodeBoundary };
|
|
208
|
+
|
|
209
|
+
//# sourceMappingURL=textMeasure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textMeasure.js","names":["#root","#canvasCtx","#font","#clearTextWidthCache","#measureTextWidthWithoutTabs","#textWidthCache"],"sources":["../../src/editor/textMeasure.ts"],"sourcesContent":["import { getGraphemeSegmenter, h, round } from './utils';\n\n// Upper bound on cached DOM text-width measurements. The cache only holds\n// non-ASCII runs (emoji, ZWJ sequences, variation selectors, combining marks),\n// so it stays small for ordinary code, but capping it prevents unbounded growth\n// on emoji-heavy documents. Past the cap the oldest entry is evicted.\nconst TEXT_WIDTH_CACHE_LIMIT = 4096;\n\nconst COMBINING_MARK_PATTERN = /\\p{Mark}/u;\n\nexport class Metrics {\n #root?: HTMLElement;\n #canvasCtx?: CanvasRenderingContext2D;\n #font?: string;\n\n // Memoizes domMeasureTextWidth() results\n #textWidthCache = new Map<string, number>();\n\n /** Width of the '0' character. */\n ch: number = -1;\n /** Size of a tab(\\t) character. */\n tabSize: number = 2;\n /** Height of the code line. */\n lineHeight: number = 20;\n /** Padding top of the root element. */\n paddingTop: number = 0;\n\n /** initialize the metrics */\n init(root: HTMLElement): void {\n if (\n this.#root === root &&\n this.#canvasCtx !== undefined &&\n this.ch !== -1\n ) {\n // already initialized\n return;\n }\n\n this.#root = root;\n this.#canvasCtx ??=\n document.createElement('canvas').getContext('2d') ?? undefined;\n if (this.#canvasCtx === undefined) {\n throw new Error('Could not get canvas context');\n }\n\n const parent = root.parentElement;\n if (parent !== null) {\n const { paddingTop } = getComputedStyle(parent);\n if (paddingTop.endsWith('px')) {\n this.paddingTop = parseFloat(paddingTop.slice(0, -2));\n }\n }\n\n const { fontSize, fontFamily, tabSize, lineHeight } =\n getComputedStyle(root);\n if (lineHeight.endsWith('px')) {\n this.lineHeight = parseFloat(lineHeight.slice(0, -2));\n } else if (fontSize.endsWith('px')) {\n this.lineHeight = round(\n parseFloat(fontSize.slice(0, -2)) * parseFloat(lineHeight)\n );\n }\n const font = fontSize + ' ' + fontFamily;\n if (this.#font !== font || this.ch === -1) {\n this.#font = font;\n this.#canvasCtx.font = font;\n this.ch = this.canvasMeasureTextWidth('0');\n // Cached DOM widths were measured against the previous font.\n this.clearTextWidthCache();\n }\n const nextTabSize = parseInt(tabSize, 10);\n if (!Number.isNaN(nextTabSize)) {\n this.tabSize = nextTabSize;\n }\n }\n\n /**\n * Re-measure the '0' character width against the font that is loaded right\n * now, returning true when measurement-dependent UI should refresh.\n *\n * A custom web font can finish loading after the editor first renders.\n * Until then canvas measureText reports the fallback font's width, and\n * getComputedStyle returns the same font-family string before and after the\n * file arrives, so init()'s font guard never re-measures on its own. Call\n * this once fonts have settled (e.g. on document.fonts.ready) to replace a\n * width measured against the fallback font with the real glyph width. Font\n * completion can also change DOM-measured emoji/ZWJ widths while leaving the\n * ASCII width unchanged, and the computed font string stays the same in both\n * cases. The boolean return lets the caller skip re-rendering when there is no\n * measured state to refresh.\n */\n remeasureCharacterWidth(): boolean {\n if (this.#canvasCtx === undefined || this.#font === undefined) {\n return false;\n }\n this.#canvasCtx.font = this.#font;\n const ch = this.canvasMeasureTextWidth('0');\n const characterWidthChanged = ch !== this.ch;\n if (characterWidthChanged) {\n this.ch = ch;\n }\n const textWidthCacheCleared = this.#clearTextWidthCache();\n return characterWidthChanged || textWidthCacheCleared;\n }\n\n /** measure the width of the text */\n measureTextWidth(text: string): number {\n if (!text.includes('\\t')) {\n return this.#measureTextWidthWithoutTabs(text);\n }\n if (this.#canvasCtx === undefined) {\n throw new Error('Metrics not initialized');\n }\n const asciiColumns = getExpandedAsciiTextColumns(text, this.tabSize);\n if (asciiColumns !== -1) {\n return asciiColumns * this.ch;\n }\n\n let width = 0;\n let runStart = 0;\n const tabStopWidth = this.tabSize * this.ch;\n for (let i = 0; i < text.length; i++) {\n if (text.charCodeAt(i) !== /* '\\t' */ 9) {\n continue;\n }\n\n if (i > runStart) {\n width += this.#measureTextWidthWithoutTabs(text.slice(runStart, i));\n }\n // CSS tab stops are pixel positions, so wide glyphs before a tab must\n // contribute their measured width rather than one logical column.\n if (tabStopWidth > 0) {\n const remainder = width % tabStopWidth;\n width += remainder === 0 ? tabStopWidth : tabStopWidth - remainder;\n }\n runStart = i + 1;\n }\n\n if (runStart < text.length) {\n width += this.#measureTextWidthWithoutTabs(text.slice(runStart));\n }\n return round(width);\n }\n\n #measureTextWidthWithoutTabs(text: string): number {\n if (needsDomTextMeasurement(text)) {\n return this.domMeasureTextWidth(text);\n }\n return this.canvasMeasureTextWidth(text);\n }\n\n /** measure the width of the text using the canvas measureText API */\n canvasMeasureTextWidth(text: string): number {\n if (this.#canvasCtx === undefined) {\n throw new Error('Metrics not initialized');\n }\n return round(this.#canvasCtx.measureText(text).width);\n }\n\n /**\n * measure the width of the text using the DOM\n * this is slow because it cause a reflow, use it for non-ascii text;\n * results are memoized per text so repeated measurements skip the reflow\n */\n domMeasureTextWidth(text: string): number {\n if (this.#root === undefined) {\n throw new Error('Metrics not initialized');\n }\n const cacheKey = text + '|' + this.#font;\n const cached = this.#textWidthCache.get(cacheKey);\n if (cached !== undefined) {\n return cached;\n }\n const measureEl = h(\n 'span',\n {\n style: {\n position: 'absolute',\n top: '0',\n left: '0',\n visibility: 'hidden',\n pointerEvents: 'none',\n whiteSpace: 'pre',\n font: 'inherit',\n },\n textContent: text,\n },\n this.#root\n );\n let width: number;\n try {\n // round() to match canvasMeasureTextWidth and ch; otherwise the DOM path\n // returns raw sub-pixel widths and caret/selection offsets drift between\n // ASCII and non-ASCII runs on the same line.\n width = round(measureEl.getBoundingClientRect().width);\n } finally {\n measureEl.remove();\n }\n if (this.#textWidthCache.size >= TEXT_WIDTH_CACHE_LIMIT) {\n const oldestKey = this.#textWidthCache.keys().next().value;\n if (oldestKey !== undefined) {\n this.#textWidthCache.delete(oldestKey);\n }\n }\n this.#textWidthCache.set(cacheKey, width);\n return width;\n }\n\n /**\n * discard memoized DOM text widths\n * call this when the inherited font may have changed without re-running\n * init(), e.g. on a layout reflow, so stale widths are not reused\n */\n clearTextWidthCache(): void {\n this.#clearTextWidthCache();\n }\n\n #clearTextWidthCache(): boolean {\n const hadCachedTextWidths = this.#textWidthCache.size > 0;\n this.#textWidthCache.clear();\n return hadCachedTextWidths;\n }\n}\n\n/** Check if the text needs DOM text measurement. */\nexport function needsDomTextMeasurement(text: string): boolean {\n for (let i = 0; i < text.length; i++) {\n const code = text.charCodeAt(i);\n if (\n (code >= 0xd800 && code <= 0xdfff) ||\n code === 0x200d ||\n code === 0xfe0e ||\n code === 0xfe0f ||\n (code > 0x7f && COMBINING_MARK_PATTERN.test(text.charAt(i)))\n ) {\n return true;\n }\n }\n return false;\n}\n\n/** snap the text offset to the Unicode boundary */\nexport function snapTextOffsetToUnicodeBoundary(\n text: string,\n offset: number\n): number {\n const boundedOffset = Math.max(0, Math.min(offset, text.length));\n if (\n boundedOffset === 0 ||\n boundedOffset === text.length ||\n !needsDomTextMeasurement(text)\n ) {\n return boundedOffset;\n }\n // Avoid measuring a caret position inside one visual emoji/grapheme.\n // Browser caret movement can report offsets around UTF-16 surrogate\n // pairs and emoji joiners; measuring a partial sequence gives a\n // replacement-glyph width.\n const segmenter = getGraphemeSegmenter();\n if (segmenter !== undefined) {\n for (const segment of segmenter.segment(text)) {\n const segmentStart = segment.index;\n const segmentEnd = segmentStart + segment.segment.length;\n if (boundedOffset > segmentStart && boundedOffset < segmentEnd) {\n return segmentEnd;\n }\n if (boundedOffset <= segmentStart) {\n break;\n }\n }\n return boundedOffset;\n }\n // Degraded path for engines lacking Intl.Segmenter: snap out of a\n // surrogate pair by stepping over code points.\n let segmentStart = 0;\n for (const codePoint of text) {\n const segmentEnd = segmentStart + codePoint.length;\n if (boundedOffset > segmentStart && boundedOffset < segmentEnd) {\n return segmentEnd;\n }\n if (boundedOffset <= segmentStart) {\n break;\n }\n segmentStart = segmentEnd;\n }\n return boundedOffset;\n}\n\n/** get the offsets of the Unicode grapheme clusters in the text */\nexport function getUnicodeMeasurementOffsets(\n text: string\n): number[] | undefined {\n if (!needsDomTextMeasurement(text)) {\n return undefined;\n }\n const offsets = [0];\n const segmenter = getGraphemeSegmenter();\n if (segmenter !== undefined) {\n for (const segment of segmenter.segment(text)) {\n offsets.push(segment.index + segment.segment.length);\n }\n return offsets;\n }\n // Degraded path for engines lacking Intl.Segmenter: step by code point.\n let offset = 0;\n for (const codePoint of text) {\n offset += codePoint.length;\n offsets.push(offset);\n }\n return offsets;\n}\n\n/**\n * Count the rendered columns of ASCII text, advancing each tab to the next\n * fixed tab stop (a multiple of tabSize) to match CSS `tab-size`. Returns -1\n * for non-ASCII text, which must be measured glyph-by-glyph instead.\n */\nexport function getExpandedAsciiTextColumns(\n text: string,\n tabSize: number\n): number {\n let columns = 0;\n for (let i = 0; i < text.length; i++) {\n const code = text.charCodeAt(i);\n if (code > 127) {\n return -1;\n }\n columns += code === /* '\\t' */ 9 ? tabSize - (columns % tabSize) : 1;\n }\n return columns;\n}\n"],"mappings":";;AAMA,MAAM,yBAAyB;AAE/B,MAAM,yBAAyB;AAE/B,IAAa,UAAb,MAAqB;CACnB;CACA;CACA;CAGA,kCAAkB,IAAI,IAAoB;;CAG1C,KAAa;;CAEb,UAAkB;;CAElB,aAAqB;;CAErB,aAAqB;;CAGrB,KAAK,MAAyB;EAC5B,IACE,KAAKA,UAAU,QACf,KAAKC,eAAe,KAAA,KACpB,KAAK,OAAO,IAGZ;EAGF,KAAKD,QAAQ;EACb,KAAKC,eACH,SAAS,cAAc,QAAQ,CAAC,CAAC,WAAW,IAAI,KAAK,KAAA;EACvD,IAAI,KAAKA,eAAe,KAAA,GACtB,MAAM,IAAI,MAAM,8BAA8B;EAGhD,MAAM,SAAS,KAAK;EACpB,IAAI,WAAW,MAAM;GACnB,MAAM,EAAE,eAAe,iBAAiB,MAAM;GAC9C,IAAI,WAAW,SAAS,IAAI,GAC1B,KAAK,aAAa,WAAW,WAAW,MAAM,GAAG,EAAE,CAAC;EAExD;EAEA,MAAM,EAAE,UAAU,YAAY,SAAS,eACrC,iBAAiB,IAAI;EACvB,IAAI,WAAW,SAAS,IAAI,GAC1B,KAAK,aAAa,WAAW,WAAW,MAAM,GAAG,EAAE,CAAC;OAC/C,IAAI,SAAS,SAAS,IAAI,GAC/B,KAAK,aAAa,MAChB,WAAW,SAAS,MAAM,GAAG,EAAE,CAAC,IAAI,WAAW,UAAU,CAC3D;EAEF,MAAM,OAAO,WAAW,MAAM;EAC9B,IAAI,KAAKC,UAAU,QAAQ,KAAK,OAAO,IAAI;GACzC,KAAKA,QAAQ;GACb,KAAKD,WAAW,OAAO;GACvB,KAAK,KAAK,KAAK,uBAAuB,GAAG;GAEzC,KAAK,oBAAoB;EAC3B;EACA,MAAM,cAAc,SAAS,SAAS,EAAE;EACxC,IAAI,CAAC,OAAO,MAAM,WAAW,GAC3B,KAAK,UAAU;CAEnB;;;;;;;;;;;;;;;;CAiBA,0BAAmC;EACjC,IAAI,KAAKA,eAAe,KAAA,KAAa,KAAKC,UAAU,KAAA,GAClD,OAAO;EAET,KAAKD,WAAW,OAAO,KAAKC;EAC5B,MAAM,KAAK,KAAK,uBAAuB,GAAG;EAC1C,MAAM,wBAAwB,OAAO,KAAK;EAC1C,IAAI,uBACF,KAAK,KAAK;EAEZ,MAAM,wBAAwB,KAAKC,qBAAqB;EACxD,OAAO,yBAAyB;CAClC;;CAGA,iBAAiB,MAAsB;EACrC,IAAI,CAAC,KAAK,SAAS,GAAI,GACrB,OAAO,KAAKC,6BAA6B,IAAI;EAE/C,IAAI,KAAKH,eAAe,KAAA,GACtB,MAAM,IAAI,MAAM,yBAAyB;EAE3C,MAAM,eAAe,4BAA4B,MAAM,KAAK,OAAO;EACnE,IAAI,iBAAiB,IACnB,OAAO,eAAe,KAAK;EAG7B,IAAI,QAAQ;EACZ,IAAI,WAAW;EACf,MAAM,eAAe,KAAK,UAAU,KAAK;EACzC,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;GACpC,IAAI,KAAK,WAAW,CAAC,MAAiB,GACpC;GAGF,IAAI,IAAI,UACN,SAAS,KAAKG,6BAA6B,KAAK,MAAM,UAAU,CAAC,CAAC;GAIpE,IAAI,eAAe,GAAG;IACpB,MAAM,YAAY,QAAQ;IAC1B,SAAS,cAAc,IAAI,eAAe,eAAe;GAC3D;GACA,WAAW,IAAI;EACjB;EAEA,IAAI,WAAW,KAAK,QAClB,SAAS,KAAKA,6BAA6B,KAAK,MAAM,QAAQ,CAAC;EAEjE,OAAO,MAAM,KAAK;CACpB;CAEA,6BAA6B,MAAsB;EACjD,IAAI,wBAAwB,IAAI,GAC9B,OAAO,KAAK,oBAAoB,IAAI;EAEtC,OAAO,KAAK,uBAAuB,IAAI;CACzC;;CAGA,uBAAuB,MAAsB;EAC3C,IAAI,KAAKH,eAAe,KAAA,GACtB,MAAM,IAAI,MAAM,yBAAyB;EAE3C,OAAO,MAAM,KAAKA,WAAW,YAAY,IAAI,CAAC,CAAC,KAAK;CACtD;;;;;;CAOA,oBAAoB,MAAsB;EACxC,IAAI,KAAKD,UAAU,KAAA,GACjB,MAAM,IAAI,MAAM,yBAAyB;EAE3C,MAAM,WAAW,OAAO,MAAM,KAAKE;EACnC,MAAM,SAAS,KAAKG,gBAAgB,IAAI,QAAQ;EAChD,IAAI,WAAW,KAAA,GACb,OAAO;EAET,MAAM,YAAY,EAChB,QACA;GACE,OAAO;IACL,UAAU;IACV,KAAK;IACL,MAAM;IACN,YAAY;IACZ,eAAe;IACf,YAAY;IACZ,MAAM;GACR;GACA,aAAa;EACf,GACA,KAAKL,KACP;EACA,IAAI;EACJ,IAAI;GAIF,QAAQ,MAAM,UAAU,sBAAsB,CAAC,CAAC,KAAK;EACvD,UAAU;GACR,UAAU,OAAO;EACnB;EACA,IAAI,KAAKK,gBAAgB,QAAQ,wBAAwB;GACvD,MAAM,YAAY,KAAKA,gBAAgB,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;GACrD,IAAI,cAAc,KAAA,GAChB,KAAKA,gBAAgB,OAAO,SAAS;EAEzC;EACA,KAAKA,gBAAgB,IAAI,UAAU,KAAK;EACxC,OAAO;CACT;;;;;;CAOA,sBAA4B;EAC1B,KAAKF,qBAAqB;CAC5B;CAEA,uBAAgC;EAC9B,MAAM,sBAAsB,KAAKE,gBAAgB,OAAO;EACxD,KAAKA,gBAAgB,MAAM;EAC3B,OAAO;CACT;AACF;;AAGA,SAAgB,wBAAwB,MAAuB;CAC7D,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;EACpC,MAAM,OAAO,KAAK,WAAW,CAAC;EAC9B,IACG,QAAQ,SAAU,QAAQ,SAC3B,SAAS,QACT,SAAS,SACT,SAAS,SACR,OAAO,OAAQ,uBAAuB,KAAK,KAAK,OAAO,CAAC,CAAC,GAE1D,OAAO;CAEX;CACA,OAAO;AACT;;AAGA,SAAgB,gCACd,MACA,QACQ;CACR,MAAM,gBAAgB,KAAK,IAAI,GAAG,KAAK,IAAI,QAAQ,KAAK,MAAM,CAAC;CAC/D,IACE,kBAAkB,KAClB,kBAAkB,KAAK,UACvB,CAAC,wBAAwB,IAAI,GAE7B,OAAO;CAMT,MAAM,YAAY,qBAAqB;CACvC,IAAI,cAAc,KAAA,GAAW;EAC3B,KAAK,MAAM,WAAW,UAAU,QAAQ,IAAI,GAAG;GAC7C,MAAM,eAAe,QAAQ;GAC7B,MAAM,aAAa,eAAe,QAAQ,QAAQ;GAClD,IAAI,gBAAgB,gBAAgB,gBAAgB,YAClD,OAAO;GAET,IAAI,iBAAiB,cACnB;EAEJ;EACA,OAAO;CACT;CAGA,IAAI,eAAe;CACnB,KAAK,MAAM,aAAa,MAAM;EAC5B,MAAM,aAAa,eAAe,UAAU;EAC5C,IAAI,gBAAgB,gBAAgB,gBAAgB,YAClD,OAAO;EAET,IAAI,iBAAiB,cACnB;EAEF,eAAe;CACjB;CACA,OAAO;AACT;;AAGA,SAAgB,6BACd,MACsB;CACtB,IAAI,CAAC,wBAAwB,IAAI,GAC/B;CAEF,MAAM,UAAU,CAAC,CAAC;CAClB,MAAM,YAAY,qBAAqB;CACvC,IAAI,cAAc,KAAA,GAAW;EAC3B,KAAK,MAAM,WAAW,UAAU,QAAQ,IAAI,GAC1C,QAAQ,KAAK,QAAQ,QAAQ,QAAQ,QAAQ,MAAM;EAErD,OAAO;CACT;CAEA,IAAI,SAAS;CACb,KAAK,MAAM,aAAa,MAAM;EAC5B,UAAU,UAAU;EACpB,QAAQ,KAAK,MAAM;CACrB;CACA,OAAO;AACT;;;;;;AAOA,SAAgB,4BACd,MACA,SACQ;CACR,IAAI,UAAU;CACd,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;EACpC,MAAM,OAAO,KAAK,WAAW,CAAC;EAC9B,IAAI,OAAO,KACT,OAAO;EAET,WAAW,SAAoB,IAAI,UAAW,UAAU,UAAW;CACrE;CACA,OAAO;AACT"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { BaseCodeOptions, DiffsHighlighter, HighlightedToken, RenderRange } from "../types.js";
|
|
2
|
+
import { TextDocument, TextDocumentChange } from "./textDocument.js";
|
|
3
|
+
|
|
4
|
+
//#region src/editor/tokenizer.d.ts
|
|
5
|
+
interface EditorTokenizerProps {
|
|
6
|
+
highlighter: DiffsHighlighter;
|
|
7
|
+
textDocument: TextDocument<unknown>;
|
|
8
|
+
codeOptions: BaseCodeOptions;
|
|
9
|
+
matchBrackets?: boolean;
|
|
10
|
+
setStyle: (style: string) => void;
|
|
11
|
+
onDeferTokenize: (lines: Map<number, Array<HighlightedToken>>, themeType: 'dark' | 'light') => void;
|
|
12
|
+
onThemeChange?: () => void;
|
|
13
|
+
__debug?: boolean;
|
|
14
|
+
}
|
|
15
|
+
/** Stoppable code tokenizer for the editor */
|
|
16
|
+
declare class EditorTokenizer {
|
|
17
|
+
#private;
|
|
18
|
+
get themeType(): 'light' | 'dark';
|
|
19
|
+
getStringCommentRegexpRangesInLine(lineIndex: number): [number, number][] | null;
|
|
20
|
+
constructor({
|
|
21
|
+
codeOptions,
|
|
22
|
+
highlighter,
|
|
23
|
+
textDocument,
|
|
24
|
+
matchBrackets,
|
|
25
|
+
setStyle,
|
|
26
|
+
onDeferTokenize,
|
|
27
|
+
onThemeChange,
|
|
28
|
+
__debug
|
|
29
|
+
}: EditorTokenizerProps);
|
|
30
|
+
syncTheme(codeOptions: BaseCodeOptions): void;
|
|
31
|
+
cleanUp(): void;
|
|
32
|
+
tokenize(change: TextDocumentChange, renderRange?: RenderRange, hostRealignsRows?: boolean): Map<number, Array<HighlightedToken>>;
|
|
33
|
+
prebuildStateStack(renderRange?: RenderRange): void;
|
|
34
|
+
stopBackgroundTokenize(): void;
|
|
35
|
+
pauseBackgroundTokenize(): void;
|
|
36
|
+
resumeBackgroundTokenize(): void;
|
|
37
|
+
}
|
|
38
|
+
declare function renderLineTokens(tokens: Array<HighlightedToken>): (HTMLElement | string)[];
|
|
39
|
+
//#endregion
|
|
40
|
+
export { EditorTokenizer, EditorTokenizerProps, renderLineTokens };
|
|
41
|
+
//# sourceMappingURL=tokenizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenizer.d.ts","names":[],"sources":["../../src/editor/tokenizer.ts"],"mappings":";;;;UAqBiB,oBAAA;EACf,WAAA,EAAa,gBAAA;EACb,YAAA,EAAc,YAAA;EACd,WAAA,EAAa,eAAA;EACb,aAAA;EACA,QAAA,GAAW,KAAA;EACX,eAAA,GACE,KAAA,EAAO,GAAA,SAAY,KAAA,CAAM,gBAAA,IACzB,SAAA;EAKF,aAAA;EACA,OAAA;AAAA;;cAIW,eAAA;EAAA;MAyFP,SAAA;EAIJ,kCAAA,CACE,SAAA;EAsBF,WAAA;IACE,WAAA;IACA,WAAA;IACA,YAAA;IACA,aAAA;IACA,QAAA;IACA,eAAA;IACA,aAAA;IACA;EAAA,GACC,oBAAA;EAsHH,SAAA,CAAU,WAAA,EAAa,eAAA;EAyFvB,OAAA;EAUA,QAAA,CACE,MAAA,EAAQ,kBAAA,EACR,WAAA,GAAc,WAAA,EACd,gBAAA,aACC,GAAA,SAAY,KAAA,CAAM,gBAAA;EAkOrB,kBAAA,CAAmB,WAAA,GAAc,WAAA;EAKjC,sBAAA;EAiBA,uBAAA;EAYA,wBAAA;AAAA;AAAA,iBAocc,gBAAA,CACd,MAAA,EAAQ,KAAA,CAAM,gBAAA,KACZ,WAAA"}
|