@pierre/diffs 1.0.0-beta.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/LICENSE.txt +201 -0
- package/README.md +26 -0
- package/dist/components/File.d.ts +78 -0
- package/dist/components/File.d.ts.map +1 -0
- package/dist/components/File.js +322 -0
- package/dist/components/File.js.map +1 -0
- package/dist/components/FileDiff.d.ts +90 -0
- package/dist/components/FileDiff.d.ts.map +1 -0
- package/dist/components/FileDiff.js +392 -0
- package/dist/components/FileDiff.js.map +1 -0
- package/dist/components/FileStream.d.ts +40 -0
- package/dist/components/FileStream.d.ts.map +1 -0
- package/dist/components/FileStream.js +161 -0
- package/dist/components/FileStream.js.map +1 -0
- package/dist/components/web-components.d.ts +5 -0
- package/dist/components/web-components.d.ts.map +1 -0
- package/dist/components/web-components.js +25 -0
- package/dist/components/web-components.js.map +1 -0
- package/dist/constants.d.ts +21 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +23 -0
- package/dist/constants.js.map +1 -0
- package/dist/highlighter/languages/areLanguagesAttached.d.ts +7 -0
- package/dist/highlighter/languages/areLanguagesAttached.d.ts.map +1 -0
- package/dist/highlighter/languages/areLanguagesAttached.js +11 -0
- package/dist/highlighter/languages/areLanguagesAttached.js.map +1 -0
- package/dist/highlighter/languages/attachResolvedLanguages.d.ts +9 -0
- package/dist/highlighter/languages/attachResolvedLanguages.d.ts.map +1 -0
- package/dist/highlighter/languages/attachResolvedLanguages.js +20 -0
- package/dist/highlighter/languages/attachResolvedLanguages.js.map +1 -0
- package/dist/highlighter/languages/cleanUpResolvedLanguages.d.ts +5 -0
- package/dist/highlighter/languages/cleanUpResolvedLanguages.d.ts.map +1 -0
- package/dist/highlighter/languages/cleanUpResolvedLanguages.js +11 -0
- package/dist/highlighter/languages/cleanUpResolvedLanguages.js.map +1 -0
- package/dist/highlighter/languages/constants.d.ts +11 -0
- package/dist/highlighter/languages/constants.d.ts.map +1 -0
- package/dist/highlighter/languages/constants.js +8 -0
- package/dist/highlighter/languages/constants.js.map +1 -0
- package/dist/highlighter/languages/getResolvedLanguages.d.ts +9 -0
- package/dist/highlighter/languages/getResolvedLanguages.d.ts.map +1 -0
- package/dist/highlighter/languages/getResolvedLanguages.js +16 -0
- package/dist/highlighter/languages/getResolvedLanguages.js.map +1 -0
- package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts +9 -0
- package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts.map +1 -0
- package/dist/highlighter/languages/getResolvedOrResolveLanguage.js +11 -0
- package/dist/highlighter/languages/getResolvedOrResolveLanguage.js.map +1 -0
- package/dist/highlighter/languages/hasResolvedLanguages.d.ts +7 -0
- package/dist/highlighter/languages/hasResolvedLanguages.d.ts.map +1 -0
- package/dist/highlighter/languages/hasResolvedLanguages.js +11 -0
- package/dist/highlighter/languages/hasResolvedLanguages.js.map +1 -0
- package/dist/highlighter/languages/resolveLanguage.d.ts +9 -0
- package/dist/highlighter/languages/resolveLanguage.d.ts.map +1 -0
- package/dist/highlighter/languages/resolveLanguage.js +30 -0
- package/dist/highlighter/languages/resolveLanguage.js.map +1 -0
- package/dist/highlighter/languages/resolveLanguages.d.ts +9 -0
- package/dist/highlighter/languages/resolveLanguages.d.ts.map +1 -0
- package/dist/highlighter/languages/resolveLanguages.js +25 -0
- package/dist/highlighter/languages/resolveLanguages.js.map +1 -0
- package/dist/highlighter/shared_highlighter.d.ts +21 -0
- package/dist/highlighter/shared_highlighter.d.ts.map +1 -0
- package/dist/highlighter/shared_highlighter.js +71 -0
- package/dist/highlighter/shared_highlighter.js.map +1 -0
- package/dist/highlighter/themes/areThemesAttached.d.ts +7 -0
- package/dist/highlighter/themes/areThemesAttached.d.ts.map +1 -0
- package/dist/highlighter/themes/areThemesAttached.js +12 -0
- package/dist/highlighter/themes/areThemesAttached.js.map +1 -0
- package/dist/highlighter/themes/attachResolvedThemes.d.ts +7 -0
- package/dist/highlighter/themes/attachResolvedThemes.d.ts.map +1 -0
- package/dist/highlighter/themes/attachResolvedThemes.js +24 -0
- package/dist/highlighter/themes/attachResolvedThemes.js.map +1 -0
- package/dist/highlighter/themes/cleanUpResolvedThemes.d.ts +5 -0
- package/dist/highlighter/themes/cleanUpResolvedThemes.d.ts.map +1 -0
- package/dist/highlighter/themes/cleanUpResolvedThemes.js +11 -0
- package/dist/highlighter/themes/cleanUpResolvedThemes.js.map +1 -0
- package/dist/highlighter/themes/constants.d.ts +11 -0
- package/dist/highlighter/themes/constants.d.ts.map +1 -0
- package/dist/highlighter/themes/constants.js +9 -0
- package/dist/highlighter/themes/constants.js.map +1 -0
- package/dist/highlighter/themes/getResolvedOrResolveTheme.d.ts +7 -0
- package/dist/highlighter/themes/getResolvedOrResolveTheme.d.ts.map +1 -0
- package/dist/highlighter/themes/getResolvedOrResolveTheme.js +11 -0
- package/dist/highlighter/themes/getResolvedOrResolveTheme.js.map +1 -0
- package/dist/highlighter/themes/getResolvedThemes.d.ts +7 -0
- package/dist/highlighter/themes/getResolvedThemes.d.ts.map +1 -0
- package/dist/highlighter/themes/getResolvedThemes.js +16 -0
- package/dist/highlighter/themes/getResolvedThemes.js.map +1 -0
- package/dist/highlighter/themes/hasResolvedThemes.d.ts +7 -0
- package/dist/highlighter/themes/hasResolvedThemes.d.ts.map +1 -0
- package/dist/highlighter/themes/hasResolvedThemes.js +11 -0
- package/dist/highlighter/themes/hasResolvedThemes.js.map +1 -0
- package/dist/highlighter/themes/registerCustomTheme.d.ts +7 -0
- package/dist/highlighter/themes/registerCustomTheme.d.ts.map +1 -0
- package/dist/highlighter/themes/registerCustomTheme.js +14 -0
- package/dist/highlighter/themes/registerCustomTheme.js.map +1 -0
- package/dist/highlighter/themes/resolveTheme.d.ts +7 -0
- package/dist/highlighter/themes/resolveTheme.d.ts.map +1 -0
- package/dist/highlighter/themes/resolveTheme.js +35 -0
- package/dist/highlighter/themes/resolveTheme.js.map +1 -0
- package/dist/highlighter/themes/resolveThemes.d.ts +7 -0
- package/dist/highlighter/themes/resolveThemes.d.ts.map +1 -0
- package/dist/highlighter/themes/resolveThemes.js +21 -0
- package/dist/highlighter/themes/resolveThemes.js.map +1 -0
- package/dist/index.d.ts +84 -0
- package/dist/index.js +83 -0
- package/dist/managers/LineSelectionManager.d.ts +64 -0
- package/dist/managers/LineSelectionManager.d.ts.map +1 -0
- package/dist/managers/LineSelectionManager.js +276 -0
- package/dist/managers/LineSelectionManager.js.map +1 -0
- package/dist/managers/MouseEventManager.d.ts +64 -0
- package/dist/managers/MouseEventManager.d.ts.map +1 -0
- package/dist/managers/MouseEventManager.js +244 -0
- package/dist/managers/MouseEventManager.js.map +1 -0
- package/dist/managers/ResizeManager.d.ts +11 -0
- package/dist/managers/ResizeManager.d.ts.map +1 -0
- package/dist/managers/ResizeManager.js +132 -0
- package/dist/managers/ResizeManager.js.map +1 -0
- package/dist/managers/ScrollSyncManager.d.ts +15 -0
- package/dist/managers/ScrollSyncManager.d.ts.map +1 -0
- package/dist/managers/ScrollSyncManager.js +54 -0
- package/dist/managers/ScrollSyncManager.js.map +1 -0
- package/dist/managers/UniversalRenderingManager.d.ts +6 -0
- package/dist/managers/UniversalRenderingManager.d.ts.map +1 -0
- package/dist/managers/UniversalRenderingManager.js +32 -0
- package/dist/managers/UniversalRenderingManager.js.map +1 -0
- package/dist/react/File.d.ts +19 -0
- package/dist/react/File.d.ts.map +1 -0
- package/dist/react/File.js +36 -0
- package/dist/react/File.js.map +1 -0
- package/dist/react/FileDiff.d.ts +22 -0
- package/dist/react/FileDiff.d.ts.map +1 -0
- package/dist/react/FileDiff.js +36 -0
- package/dist/react/FileDiff.js.map +1 -0
- package/dist/react/MultiFileDiff.d.ts +24 -0
- package/dist/react/MultiFileDiff.d.ts.map +1 -0
- package/dist/react/MultiFileDiff.js +38 -0
- package/dist/react/MultiFileDiff.js.map +1 -0
- package/dist/react/PatchDiff.d.ts +21 -0
- package/dist/react/PatchDiff.d.ts.map +1 -0
- package/dist/react/PatchDiff.js +42 -0
- package/dist/react/PatchDiff.js.map +1 -0
- package/dist/react/WorkerPoolContext.d.ts +20 -0
- package/dist/react/WorkerPoolContext.d.ts.map +1 -0
- package/dist/react/WorkerPoolContext.js +41 -0
- package/dist/react/WorkerPoolContext.js.map +1 -0
- package/dist/react/constants.d.ts +7 -0
- package/dist/react/constants.d.ts.map +1 -0
- package/dist/react/constants.js +11 -0
- package/dist/react/constants.js.map +1 -0
- package/dist/react/index.d.ts +17 -0
- package/dist/react/index.js +14 -0
- package/dist/react/jsx.d.ts +12 -0
- package/dist/react/jsx.d.ts.map +1 -0
- package/dist/react/types.d.ts +34 -0
- package/dist/react/types.d.ts.map +1 -0
- package/dist/react/types.js +1 -0
- package/dist/react/utils/renderDiffChildren.d.ts +29 -0
- package/dist/react/utils/renderDiffChildren.d.ts.map +1 -0
- package/dist/react/utils/renderDiffChildren.js +32 -0
- package/dist/react/utils/renderDiffChildren.js.map +1 -0
- package/dist/react/utils/renderFileChildren.d.ts +25 -0
- package/dist/react/utils/renderFileChildren.d.ts.map +1 -0
- package/dist/react/utils/renderFileChildren.js +28 -0
- package/dist/react/utils/renderFileChildren.js.map +1 -0
- package/dist/react/utils/templateRender.d.ts +7 -0
- package/dist/react/utils/templateRender.d.ts.map +1 -0
- package/dist/react/utils/templateRender.js +14 -0
- package/dist/react/utils/templateRender.js.map +1 -0
- package/dist/react/utils/useFileDiffInstance.d.ts +31 -0
- package/dist/react/utils/useFileDiffInstance.d.ts.map +1 -0
- package/dist/react/utils/useFileDiffInstance.js +54 -0
- package/dist/react/utils/useFileDiffInstance.js.map +1 -0
- package/dist/react/utils/useFileInstance.d.ts +27 -0
- package/dist/react/utils/useFileInstance.d.ts.map +1 -0
- package/dist/react/utils/useFileInstance.js +49 -0
- package/dist/react/utils/useFileInstance.js.map +1 -0
- package/dist/react/utils/useStableCallback.d.ts +5 -0
- package/dist/react/utils/useStableCallback.d.ts.map +1 -0
- package/dist/react/utils/useStableCallback.js +14 -0
- package/dist/react/utils/useStableCallback.js.map +1 -0
- package/dist/renderers/DiffHunksRenderer.d.ts +62 -0
- package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -0
- package/dist/renderers/DiffHunksRenderer.js +651 -0
- package/dist/renderers/DiffHunksRenderer.js.map +1 -0
- package/dist/renderers/FileRenderer.d.ts +49 -0
- package/dist/renderers/FileRenderer.d.ts.map +1 -0
- package/dist/renderers/FileRenderer.js +239 -0
- package/dist/renderers/FileRenderer.js.map +1 -0
- package/dist/shiki-stream/index.d.ts +4 -0
- package/dist/shiki-stream/index.js +4 -0
- package/dist/shiki-stream/stream.d.ts +17 -0
- package/dist/shiki-stream/stream.d.ts.map +1 -0
- package/dist/shiki-stream/stream.js +32 -0
- package/dist/shiki-stream/stream.js.map +1 -0
- package/dist/shiki-stream/tokenizer.d.ts +24 -0
- package/dist/shiki-stream/tokenizer.d.ts.map +1 -0
- package/dist/shiki-stream/tokenizer.js +71 -0
- package/dist/shiki-stream/tokenizer.js.map +1 -0
- package/dist/shiki-stream/types.d.ts +45 -0
- package/dist/shiki-stream/types.d.ts.map +1 -0
- package/dist/shiki-stream/types.js +0 -0
- package/dist/sprite.d.ts +6 -0
- package/dist/sprite.d.ts.map +1 -0
- package/dist/sprite.js +55 -0
- package/dist/sprite.js.map +1 -0
- package/dist/ssr/FileDiffReact.d.ts +21 -0
- package/dist/ssr/FileDiffReact.d.ts.map +1 -0
- package/dist/ssr/FileDiffReact.js +53 -0
- package/dist/ssr/FileDiffReact.js.map +1 -0
- package/dist/ssr/index.d.ts +6 -0
- package/dist/ssr/index.js +6 -0
- package/dist/ssr/preloadDiffs.d.ts +72 -0
- package/dist/ssr/preloadDiffs.d.ts.map +1 -0
- package/dist/ssr/preloadDiffs.js +66 -0
- package/dist/ssr/preloadDiffs.js.map +1 -0
- package/dist/ssr/preloadFile.d.ts +23 -0
- package/dist/ssr/preloadFile.d.ts.map +1 -0
- package/dist/ssr/preloadFile.js +26 -0
- package/dist/ssr/preloadFile.js.map +1 -0
- package/dist/ssr/preloadPatchFile.d.ts +15 -0
- package/dist/ssr/preloadPatchFile.d.ts.map +1 -0
- package/dist/ssr/preloadPatchFile.js +17 -0
- package/dist/ssr/preloadPatchFile.js.map +1 -0
- package/dist/ssr/renderHTML.d.ts +7 -0
- package/dist/ssr/renderHTML.d.ts.map +1 -0
- package/dist/ssr/renderHTML.js +11 -0
- package/dist/ssr/renderHTML.js.map +1 -0
- package/dist/string-import.d.ts +6 -0
- package/dist/string-import.d.ts.map +1 -0
- package/dist/style.js +6 -0
- package/dist/style.js.map +1 -0
- package/dist/themes/pierre-dark.js +1328 -0
- package/dist/themes/pierre-dark.js.map +1 -0
- package/dist/themes/pierre-light.js +1328 -0
- package/dist/themes/pierre-light.js.map +1 -0
- package/dist/types.d.ts +238 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +0 -0
- package/dist/utils/areFilesEqual.d.ts +7 -0
- package/dist/utils/areFilesEqual.d.ts.map +1 -0
- package/dist/utils/areFilesEqual.js +8 -0
- package/dist/utils/areFilesEqual.js.map +1 -0
- package/dist/utils/areObjectsEqual.d.ts +5 -0
- package/dist/utils/areObjectsEqual.d.ts.map +1 -0
- package/dist/utils/areObjectsEqual.js +18 -0
- package/dist/utils/areObjectsEqual.js.map +1 -0
- package/dist/utils/areOptionsEqual.d.ts +9 -0
- package/dist/utils/areOptionsEqual.d.ts.map +1 -0
- package/dist/utils/areOptionsEqual.js +12 -0
- package/dist/utils/areOptionsEqual.js.map +1 -0
- package/dist/utils/areSelectionsEqual.d.ts +7 -0
- package/dist/utils/areSelectionsEqual.d.ts.map +1 -0
- package/dist/utils/areSelectionsEqual.js +8 -0
- package/dist/utils/areSelectionsEqual.js.map +1 -0
- package/dist/utils/areThemesEqual.d.ts +7 -0
- package/dist/utils/areThemesEqual.d.ts.map +1 -0
- package/dist/utils/areThemesEqual.js +9 -0
- package/dist/utils/areThemesEqual.js.map +1 -0
- package/dist/utils/cleanLastNewline.d.ts +5 -0
- package/dist/utils/cleanLastNewline.d.ts.map +1 -0
- package/dist/utils/cleanLastNewline.js +8 -0
- package/dist/utils/cleanLastNewline.js.map +1 -0
- package/dist/utils/createAnnotationElement.d.ts +8 -0
- package/dist/utils/createAnnotationElement.d.ts.map +1 -0
- package/dist/utils/createAnnotationElement.js +21 -0
- package/dist/utils/createAnnotationElement.js.map +1 -0
- package/dist/utils/createAnnotationWrapperNode.d.ts +5 -0
- package/dist/utils/createAnnotationWrapperNode.d.ts.map +1 -0
- package/dist/utils/createAnnotationWrapperNode.js +12 -0
- package/dist/utils/createAnnotationWrapperNode.js.map +1 -0
- package/dist/utils/createCodeNode.d.ts +12 -0
- package/dist/utils/createCodeNode.d.ts.map +1 -0
- package/dist/utils/createCodeNode.js +12 -0
- package/dist/utils/createCodeNode.js.map +1 -0
- package/dist/utils/createEmptyRowBuffer.d.ts +7 -0
- package/dist/utils/createEmptyRowBuffer.d.ts.map +1 -0
- package/dist/utils/createEmptyRowBuffer.js +16 -0
- package/dist/utils/createEmptyRowBuffer.js.map +1 -0
- package/dist/utils/createFileHeaderElement.d.ts +17 -0
- package/dist/utils/createFileHeaderElement.d.ts.map +1 -0
- package/dist/utils/createFileHeaderElement.js +84 -0
- package/dist/utils/createFileHeaderElement.js.map +1 -0
- package/dist/utils/createHoverContentNode.d.ts +5 -0
- package/dist/utils/createHoverContentNode.d.ts.map +1 -0
- package/dist/utils/createHoverContentNode.js +15 -0
- package/dist/utils/createHoverContentNode.js.map +1 -0
- package/dist/utils/createNoNewlineElement.d.ts +7 -0
- package/dist/utils/createNoNewlineElement.d.ts.map +1 -0
- package/dist/utils/createNoNewlineElement.js +24 -0
- package/dist/utils/createNoNewlineElement.js.map +1 -0
- package/dist/utils/createPreElement.d.ts +18 -0
- package/dist/utils/createPreElement.d.ts.map +1 -0
- package/dist/utils/createPreElement.js +28 -0
- package/dist/utils/createPreElement.js.map +1 -0
- package/dist/utils/createRowNodes.d.ts +8 -0
- package/dist/utils/createRowNodes.d.ts.map +1 -0
- package/dist/utils/createRowNodes.js +20 -0
- package/dist/utils/createRowNodes.js.map +1 -0
- package/dist/utils/createSeparator.d.ts +25 -0
- package/dist/utils/createSeparator.d.ts.map +1 -0
- package/dist/utils/createSeparator.js +69 -0
- package/dist/utils/createSeparator.js.map +1 -0
- package/dist/utils/createSpanNodeFromToken.d.ts +7 -0
- package/dist/utils/createSpanNodeFromToken.d.ts.map +1 -0
- package/dist/utils/createSpanNodeFromToken.js +13 -0
- package/dist/utils/createSpanNodeFromToken.js.map +1 -0
- package/dist/utils/createStyleElement.d.ts +7 -0
- package/dist/utils/createStyleElement.d.ts.map +1 -0
- package/dist/utils/createStyleElement.js +19 -0
- package/dist/utils/createStyleElement.js.map +1 -0
- package/dist/utils/createTransformerWithState.d.ts +13 -0
- package/dist/utils/createTransformerWithState.d.ts.map +1 -0
- package/dist/utils/createTransformerWithState.js +56 -0
- package/dist/utils/createTransformerWithState.js.map +1 -0
- package/dist/utils/createUnsafeCSSStyleNode.d.ts +5 -0
- package/dist/utils/createUnsafeCSSStyleNode.d.ts.map +1 -0
- package/dist/utils/createUnsafeCSSStyleNode.js +12 -0
- package/dist/utils/createUnsafeCSSStyleNode.js.map +1 -0
- package/dist/utils/cssWrappers.d.ts +6 -0
- package/dist/utils/cssWrappers.d.ts.map +1 -0
- package/dist/utils/cssWrappers.js +21 -0
- package/dist/utils/cssWrappers.js.map +1 -0
- package/dist/utils/diffAcceptRejectHunk.d.ts +7 -0
- package/dist/utils/diffAcceptRejectHunk.d.ts.map +1 -0
- package/dist/utils/diffAcceptRejectHunk.js +82 -0
- package/dist/utils/diffAcceptRejectHunk.js.map +1 -0
- package/dist/utils/formatCSSVariablePrefix.d.ts +5 -0
- package/dist/utils/formatCSSVariablePrefix.d.ts.map +1 -0
- package/dist/utils/formatCSSVariablePrefix.js +8 -0
- package/dist/utils/formatCSSVariablePrefix.js.map +1 -0
- package/dist/utils/getFiletypeFromFileName.d.ts +9 -0
- package/dist/utils/getFiletypeFromFileName.d.ts.map +1 -0
- package/dist/utils/getFiletypeFromFileName.js +343 -0
- package/dist/utils/getFiletypeFromFileName.js.map +1 -0
- package/dist/utils/getHighlighterOptions.d.ts +14 -0
- package/dist/utils/getHighlighterOptions.d.ts.map +1 -0
- package/dist/utils/getHighlighterOptions.js +13 -0
- package/dist/utils/getHighlighterOptions.js.map +1 -0
- package/dist/utils/getHighlighterThemeStyles.d.ts +16 -0
- package/dist/utils/getHighlighterThemeStyles.d.ts.map +1 -0
- package/dist/utils/getHighlighterThemeStyles.js +40 -0
- package/dist/utils/getHighlighterThemeStyles.js.map +1 -0
- package/dist/utils/getHunkSeparatorSlotName.d.ts +5 -0
- package/dist/utils/getHunkSeparatorSlotName.d.ts.map +1 -0
- package/dist/utils/getHunkSeparatorSlotName.js +8 -0
- package/dist/utils/getHunkSeparatorSlotName.js.map +1 -0
- package/dist/utils/getIconForType.d.ts +8 -0
- package/dist/utils/getIconForType.d.ts.map +1 -0
- package/dist/utils/getIconForType.js +15 -0
- package/dist/utils/getIconForType.js.map +1 -0
- package/dist/utils/getLineAnnotationName.d.ts +7 -0
- package/dist/utils/getLineAnnotationName.d.ts.map +1 -0
- package/dist/utils/getLineAnnotationName.js +8 -0
- package/dist/utils/getLineAnnotationName.js.map +1 -0
- package/dist/utils/getLineEndingType.d.ts +5 -0
- package/dist/utils/getLineEndingType.d.ts.map +1 -0
- package/dist/utils/getLineEndingType.js +11 -0
- package/dist/utils/getLineEndingType.js.map +1 -0
- package/dist/utils/getLineNodes.d.ts +7 -0
- package/dist/utils/getLineNodes.d.ts.map +1 -0
- package/dist/utils/getLineNodes.js +15 -0
- package/dist/utils/getLineNodes.js.map +1 -0
- package/dist/utils/getSingularPatch.d.ts +7 -0
- package/dist/utils/getSingularPatch.d.ts.map +1 -0
- package/dist/utils/getSingularPatch.js +20 -0
- package/dist/utils/getSingularPatch.js.map +1 -0
- package/dist/utils/getThemes.d.ts +7 -0
- package/dist/utils/getThemes.d.ts.map +1 -0
- package/dist/utils/getThemes.js +16 -0
- package/dist/utils/getThemes.js.map +1 -0
- package/dist/utils/getTotalLineCountFromHunks.d.ts +7 -0
- package/dist/utils/getTotalLineCountFromHunks.d.ts.map +1 -0
- package/dist/utils/getTotalLineCountFromHunks.js +10 -0
- package/dist/utils/getTotalLineCountFromHunks.js.map +1 -0
- package/dist/utils/hast_utils.d.ts +31 -0
- package/dist/utils/hast_utils.d.ts.map +1 -0
- package/dist/utils/hast_utils.js +42 -0
- package/dist/utils/hast_utils.js.map +1 -0
- package/dist/utils/isWorkerContext.d.ts +5 -0
- package/dist/utils/isWorkerContext.d.ts.map +1 -0
- package/dist/utils/isWorkerContext.js +8 -0
- package/dist/utils/isWorkerContext.js.map +1 -0
- package/dist/utils/parseDiffDecorations.d.ts +31 -0
- package/dist/utils/parseDiffDecorations.d.ts.map +1 -0
- package/dist/utils/parseDiffDecorations.js +34 -0
- package/dist/utils/parseDiffDecorations.js.map +1 -0
- package/dist/utils/parseDiffFromFile.d.ts +14 -0
- package/dist/utils/parseDiffFromFile.d.ts.map +1 -0
- package/dist/utils/parseDiffFromFile.js +23 -0
- package/dist/utils/parseDiffFromFile.js.map +1 -0
- package/dist/utils/parseLineType.d.ts +11 -0
- package/dist/utils/parseLineType.d.ts.map +1 -0
- package/dist/utils/parseLineType.js +16 -0
- package/dist/utils/parseLineType.js.map +1 -0
- package/dist/utils/parsePatchFiles.d.ts +16 -0
- package/dist/utils/parsePatchFiles.d.ts.map +1 -0
- package/dist/utils/parsePatchFiles.js +204 -0
- package/dist/utils/parsePatchFiles.js.map +1 -0
- package/dist/utils/prerenderHTMLIfNecessary.d.ts +5 -0
- package/dist/utils/prerenderHTMLIfNecessary.d.ts.map +1 -0
- package/dist/utils/prerenderHTMLIfNecessary.js +10 -0
- package/dist/utils/prerenderHTMLIfNecessary.js.map +1 -0
- package/dist/utils/processLine.d.ts +8 -0
- package/dist/utils/processLine.d.ts.map +1 -0
- package/dist/utils/processLine.js +42 -0
- package/dist/utils/processLine.js.map +1 -0
- package/dist/utils/renderDiffWithHighlighter.d.ts +7 -0
- package/dist/utils/renderDiffWithHighlighter.d.ts.map +1 -0
- package/dist/utils/renderDiffWithHighlighter.js +323 -0
- package/dist/utils/renderDiffWithHighlighter.js.map +1 -0
- package/dist/utils/renderFileWithHighlighter.d.ts +10 -0
- package/dist/utils/renderFileWithHighlighter.d.ts.map +1 -0
- package/dist/utils/renderFileWithHighlighter.js +52 -0
- package/dist/utils/renderFileWithHighlighter.js.map +1 -0
- package/dist/utils/setLanguageOverride.d.ts +7 -0
- package/dist/utils/setLanguageOverride.d.ts.map +1 -0
- package/dist/utils/setLanguageOverride.js +11 -0
- package/dist/utils/setLanguageOverride.js.map +1 -0
- package/dist/utils/setWrapperNodeProps.d.ts +20 -0
- package/dist/utils/setWrapperNodeProps.d.ts.map +1 -0
- package/dist/utils/setWrapperNodeProps.js +29 -0
- package/dist/utils/setWrapperNodeProps.js.map +1 -0
- package/dist/worker/WorkerPoolManager.d.ts +72 -0
- package/dist/worker/WorkerPoolManager.d.ts.map +1 -0
- package/dist/worker/WorkerPoolManager.js +421 -0
- package/dist/worker/WorkerPoolManager.js.map +1 -0
- package/dist/worker/getOrCreateWorkerPoolSingleton.d.ts +16 -0
- package/dist/worker/getOrCreateWorkerPoolSingleton.d.ts.map +1 -0
- package/dist/worker/getOrCreateWorkerPoolSingleton.js +20 -0
- package/dist/worker/getOrCreateWorkerPoolSingleton.js.map +1 -0
- package/dist/worker/index.d.ts +4 -0
- package/dist/worker/index.js +4 -0
- package/dist/worker/types.d.ts +140 -0
- package/dist/worker/types.d.ts.map +1 -0
- package/dist/worker/types.js +0 -0
- package/dist/worker/worker-portable.d.ts +1 -0
- package/dist/worker/worker-portable.js +14872 -0
- package/dist/worker/worker-portable.js.map +1 -0
- package/dist/worker/worker.d.ts +1 -0
- package/dist/worker/worker.js +1061 -0
- package/dist/worker/worker.js.map +1 -0
- package/package.json +76 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SupportedLanguages } from "../../types.js";
|
|
2
|
+
import { ResolvedLanguage } from "../../worker/types.js";
|
|
3
|
+
import "../../worker/index.js";
|
|
4
|
+
|
|
5
|
+
//#region src/highlighter/languages/resolveLanguages.d.ts
|
|
6
|
+
declare function resolveLanguages(languages: SupportedLanguages[]): Promise<ResolvedLanguage[]>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { resolveLanguages };
|
|
9
|
+
//# sourceMappingURL=resolveLanguages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveLanguages.d.ts","names":[],"sources":["../../../src/highlighter/languages/resolveLanguages.ts"],"sourcesContent":[],"mappings":";;;;;iBAKsB,gBAAA,YACT,uBACV,QAAQ"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { resolveLanguage } from "./resolveLanguage.js";
|
|
2
|
+
import { getResolvedOrResolveLanguage } from "./getResolvedOrResolveLanguage.js";
|
|
3
|
+
|
|
4
|
+
//#region src/highlighter/languages/resolveLanguages.ts
|
|
5
|
+
async function resolveLanguages(languages) {
|
|
6
|
+
const resolvedLanguages = [];
|
|
7
|
+
const languagesToResolve = [];
|
|
8
|
+
for (const language of languages) {
|
|
9
|
+
if (language === "text") continue;
|
|
10
|
+
const maybeResolvedLanguage = getResolvedOrResolveLanguage(language) ?? resolveLanguage(language);
|
|
11
|
+
if ("then" in maybeResolvedLanguage) languagesToResolve.push(maybeResolvedLanguage);
|
|
12
|
+
else resolvedLanguages.push(maybeResolvedLanguage);
|
|
13
|
+
}
|
|
14
|
+
if (languagesToResolve.length > 0) await Promise.all(languagesToResolve).then((_resolvedLanguages) => {
|
|
15
|
+
for (const resolvedLanguage of _resolvedLanguages) {
|
|
16
|
+
if (resolvedLanguage == null) throw new Error("resolvedLanguages: unable to resolve language");
|
|
17
|
+
resolvedLanguages.push(resolvedLanguage);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
return resolvedLanguages;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
//#endregion
|
|
24
|
+
export { resolveLanguages };
|
|
25
|
+
//# sourceMappingURL=resolveLanguages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveLanguages.js","names":["resolvedLanguages: ResolvedLanguage[]","languagesToResolve: Promise<ResolvedLanguage | undefined>[]"],"sources":["../../../src/highlighter/languages/resolveLanguages.ts"],"sourcesContent":["import type { SupportedLanguages } from '../../types';\nimport type { ResolvedLanguage } from '../../worker';\nimport { getResolvedOrResolveLanguage } from './getResolvedOrResolveLanguage';\nimport { resolveLanguage } from './resolveLanguage';\n\nexport async function resolveLanguages(\n languages: SupportedLanguages[]\n): Promise<ResolvedLanguage[]> {\n const resolvedLanguages: ResolvedLanguage[] = [];\n const languagesToResolve: Promise<ResolvedLanguage | undefined>[] = [];\n for (const language of languages) {\n if (language === 'text') continue;\n const maybeResolvedLanguage =\n getResolvedOrResolveLanguage(language) ?? resolveLanguage(language);\n if ('then' in maybeResolvedLanguage) {\n languagesToResolve.push(maybeResolvedLanguage);\n } else {\n resolvedLanguages.push(maybeResolvedLanguage);\n }\n }\n if (languagesToResolve.length > 0) {\n await Promise.all(languagesToResolve).then((_resolvedLanguages) => {\n for (const resolvedLanguage of _resolvedLanguages) {\n if (resolvedLanguage == null) {\n throw new Error('resolvedLanguages: unable to resolve language');\n }\n resolvedLanguages.push(resolvedLanguage);\n }\n });\n }\n\n return resolvedLanguages;\n}\n"],"mappings":";;;;AAKA,eAAsB,iBACpB,WAC6B;CAC7B,MAAMA,oBAAwC,EAAE;CAChD,MAAMC,qBAA8D,EAAE;AACtE,MAAK,MAAM,YAAY,WAAW;AAChC,MAAI,aAAa,OAAQ;EACzB,MAAM,wBACJ,6BAA6B,SAAS,IAAI,gBAAgB,SAAS;AACrE,MAAI,UAAU,sBACZ,oBAAmB,KAAK,sBAAsB;MAE9C,mBAAkB,KAAK,sBAAsB;;AAGjD,KAAI,mBAAmB,SAAS,EAC9B,OAAM,QAAQ,IAAI,mBAAmB,CAAC,MAAM,uBAAuB;AACjE,OAAK,MAAM,oBAAoB,oBAAoB;AACjD,OAAI,oBAAoB,KACtB,OAAM,IAAI,MAAM,gDAAgD;AAElE,qBAAkB,KAAK,iBAAiB;;GAE1C;AAGJ,QAAO"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DiffsHighlighter, DiffsThemeNames, SupportedLanguages } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/highlighter/shared_highlighter.d.ts
|
|
4
|
+
type CachedOrLoadingHighlighterType = Promise<DiffsHighlighter> | DiffsHighlighter | undefined;
|
|
5
|
+
interface HighlighterOptions {
|
|
6
|
+
themes: DiffsThemeNames[];
|
|
7
|
+
langs: SupportedLanguages[];
|
|
8
|
+
}
|
|
9
|
+
declare function getSharedHighlighter({
|
|
10
|
+
themes,
|
|
11
|
+
langs
|
|
12
|
+
}: HighlighterOptions): Promise<DiffsHighlighter>;
|
|
13
|
+
declare function isHighlighterLoaded(h?: CachedOrLoadingHighlighterType): h is DiffsHighlighter;
|
|
14
|
+
declare function getHighlighterIfLoaded(): DiffsHighlighter | undefined;
|
|
15
|
+
declare function isHighlighterLoading(h?: CachedOrLoadingHighlighterType): h is Promise<DiffsHighlighter>;
|
|
16
|
+
declare function isHighlighterNull(h?: CachedOrLoadingHighlighterType): h is undefined;
|
|
17
|
+
declare function preloadHighlighter(options: HighlighterOptions): Promise<void>;
|
|
18
|
+
declare function disposeHighlighter(): Promise<void>;
|
|
19
|
+
//#endregion
|
|
20
|
+
export { disposeHighlighter, getHighlighterIfLoaded, getSharedHighlighter, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, preloadHighlighter };
|
|
21
|
+
//# sourceMappingURL=shared_highlighter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared_highlighter.d.ts","names":[],"sources":["../../src/highlighter/shared_highlighter.ts"],"sourcesContent":[],"mappings":";;;KAiBK,8BAAA,GACD,QAAQ,oBACR;UAKM,kBAAA;EAjBH,MAUF,EAQK,eARL,EAAA;EACO,KAAA,EAQH,kBARG,EAAA;;AACR,iBAUkB,oBAAA,CAVlB;EAAA,MAAA;EAAA;AAAA,CAAA,EAaD,kBAbC,CAAA,EAaoB,OAbpB,CAa4B,gBAb5B,CAAA;AAAA,iBA6DY,mBAAA,CA7DZ,CAAA,CAAA,EA8DC,8BA9DD,CAAA,EAAA,CAAA,IA+DI,gBA/DJ;AAKM,iBA8DM,sBAAA,CAAA,CA7DN,EA6DgC,gBA5DjC,GAAA,SAAA;AAGa,iBAgEN,oBAAA,CAhEM,CAAA,CAAA,EAiEjB,8BAjEiB,CAAA,EAAA,CAAA,IAkEd,OAlEc,CAkEN,gBAlEM,CAAA;AACpB,iBAqEc,iBAAA,CArEd,CAAA,CAAA,EAsEG,8BAtEH,CAAA,EAAA,CAAA,IAAA,SAAA;AACA,iBA0EoB,kBAAA,CA1EpB,OAAA,EA2ES,kBA3ET,CAAA,EA4EC,OA5ED,CAAA,IAAA,CAAA;AACC,iBA+EmB,kBAAA,CAAA,CA/EnB,EA+EyC,OA/EzC,CAAA,IAAA,CAAA"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { attachResolvedLanguages } from "./languages/attachResolvedLanguages.js";
|
|
2
|
+
import { cleanUpResolvedLanguages } from "./languages/cleanUpResolvedLanguages.js";
|
|
3
|
+
import { getResolvedOrResolveLanguage } from "./languages/getResolvedOrResolveLanguage.js";
|
|
4
|
+
import { attachResolvedThemes } from "./themes/attachResolvedThemes.js";
|
|
5
|
+
import { cleanUpResolvedThemes } from "./themes/cleanUpResolvedThemes.js";
|
|
6
|
+
import { getResolvedOrResolveTheme } from "./themes/getResolvedOrResolveTheme.js";
|
|
7
|
+
import { registerCustomTheme } from "./themes/registerCustomTheme.js";
|
|
8
|
+
import { createHighlighter, createJavaScriptRegexEngine } from "shiki";
|
|
9
|
+
|
|
10
|
+
//#region src/highlighter/shared_highlighter.ts
|
|
11
|
+
let highlighter;
|
|
12
|
+
async function getSharedHighlighter({ themes, langs }) {
|
|
13
|
+
highlighter ??= createHighlighter({
|
|
14
|
+
themes: [],
|
|
15
|
+
langs: ["text"],
|
|
16
|
+
engine: createJavaScriptRegexEngine()
|
|
17
|
+
});
|
|
18
|
+
const instance = isHighlighterLoading(highlighter) ? await highlighter : highlighter;
|
|
19
|
+
highlighter = instance;
|
|
20
|
+
const languageLoaders = [];
|
|
21
|
+
for (const language of langs) {
|
|
22
|
+
if (language === "text") continue;
|
|
23
|
+
const maybeResolvedLanguage = getResolvedOrResolveLanguage(language);
|
|
24
|
+
if ("then" in maybeResolvedLanguage) languageLoaders.push(maybeResolvedLanguage);
|
|
25
|
+
else attachResolvedLanguages(maybeResolvedLanguage, instance);
|
|
26
|
+
}
|
|
27
|
+
const themeLoaders = [];
|
|
28
|
+
for (const themeName of themes) {
|
|
29
|
+
const maybeResolvedTheme = getResolvedOrResolveTheme(themeName);
|
|
30
|
+
if ("then" in maybeResolvedTheme) themeLoaders.push(maybeResolvedTheme);
|
|
31
|
+
else attachResolvedThemes(maybeResolvedTheme, highlighter);
|
|
32
|
+
}
|
|
33
|
+
if (languageLoaders.length > 0 || themeLoaders.length > 0) await Promise.all([Promise.all(languageLoaders).then((languages) => {
|
|
34
|
+
attachResolvedLanguages(languages, instance);
|
|
35
|
+
}), Promise.all(themeLoaders).then((themes$1) => {
|
|
36
|
+
attachResolvedThemes(themes$1, instance);
|
|
37
|
+
})]);
|
|
38
|
+
return instance;
|
|
39
|
+
}
|
|
40
|
+
function isHighlighterLoaded(h = highlighter) {
|
|
41
|
+
return h != null && !("then" in h);
|
|
42
|
+
}
|
|
43
|
+
function getHighlighterIfLoaded() {
|
|
44
|
+
if (highlighter != null && !("then" in highlighter)) return highlighter;
|
|
45
|
+
}
|
|
46
|
+
function isHighlighterLoading(h = highlighter) {
|
|
47
|
+
return h != null && "then" in h;
|
|
48
|
+
}
|
|
49
|
+
function isHighlighterNull(h = highlighter) {
|
|
50
|
+
return h == null;
|
|
51
|
+
}
|
|
52
|
+
async function preloadHighlighter(options) {
|
|
53
|
+
await getSharedHighlighter(options);
|
|
54
|
+
}
|
|
55
|
+
async function disposeHighlighter() {
|
|
56
|
+
if (highlighter == null) return;
|
|
57
|
+
(await highlighter).dispose();
|
|
58
|
+
cleanUpResolvedLanguages();
|
|
59
|
+
cleanUpResolvedThemes();
|
|
60
|
+
highlighter = void 0;
|
|
61
|
+
}
|
|
62
|
+
registerCustomTheme("pierre-dark", () => {
|
|
63
|
+
return import("../themes/pierre-dark.js");
|
|
64
|
+
});
|
|
65
|
+
registerCustomTheme("pierre-light", () => {
|
|
66
|
+
return import("../themes/pierre-light.js");
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
//#endregion
|
|
70
|
+
export { disposeHighlighter, getHighlighterIfLoaded, getSharedHighlighter, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, preloadHighlighter };
|
|
71
|
+
//# sourceMappingURL=shared_highlighter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared_highlighter.js","names":["highlighter: CachedOrLoadingHighlighterType","languageLoaders: Promise<ResolvedLanguage>[]","themeLoaders: Promise<ThemeRegistrationResolved>[]","themes"],"sources":["../../src/highlighter/shared_highlighter.ts"],"sourcesContent":["import { createHighlighter, createJavaScriptRegexEngine } from 'shiki';\n\nimport type {\n DiffsHighlighter,\n DiffsThemeNames,\n SupportedLanguages,\n ThemeRegistrationResolved,\n} from '../types';\nimport type { ResolvedLanguage } from '../worker/types';\nimport { attachResolvedLanguages } from './languages/attachResolvedLanguages';\nimport { cleanUpResolvedLanguages } from './languages/cleanUpResolvedLanguages';\nimport { getResolvedOrResolveLanguage } from './languages/getResolvedOrResolveLanguage';\nimport { attachResolvedThemes } from './themes/attachResolvedThemes';\nimport { cleanUpResolvedThemes } from './themes/cleanUpResolvedThemes';\nimport { getResolvedOrResolveTheme } from './themes/getResolvedOrResolveTheme';\nimport { registerCustomTheme } from './themes/registerCustomTheme';\n\ntype CachedOrLoadingHighlighterType =\n | Promise<DiffsHighlighter>\n | DiffsHighlighter\n | undefined;\n\nlet highlighter: CachedOrLoadingHighlighterType;\n\ninterface HighlighterOptions {\n themes: DiffsThemeNames[];\n langs: SupportedLanguages[];\n}\n\nexport async function getSharedHighlighter({\n themes,\n langs,\n}: HighlighterOptions): Promise<DiffsHighlighter> {\n highlighter ??= createHighlighter({\n themes: [],\n langs: ['text'],\n engine: createJavaScriptRegexEngine(),\n }) as Promise<DiffsHighlighter>;\n\n const instance = isHighlighterLoading(highlighter)\n ? await highlighter\n : highlighter;\n highlighter = instance;\n\n const languageLoaders: Promise<ResolvedLanguage>[] = [];\n for (const language of langs) {\n if (language === 'text') continue;\n const maybeResolvedLanguage = getResolvedOrResolveLanguage(language);\n if ('then' in maybeResolvedLanguage) {\n languageLoaders.push(maybeResolvedLanguage);\n } else {\n attachResolvedLanguages(maybeResolvedLanguage, instance);\n }\n }\n\n const themeLoaders: Promise<ThemeRegistrationResolved>[] = [];\n for (const themeName of themes) {\n const maybeResolvedTheme = getResolvedOrResolveTheme(themeName);\n if ('then' in maybeResolvedTheme) {\n themeLoaders.push(maybeResolvedTheme);\n } else {\n attachResolvedThemes(maybeResolvedTheme, highlighter);\n }\n }\n\n // If we need to load any languages or themes, lets do that now\n if (languageLoaders.length > 0 || themeLoaders.length > 0) {\n await Promise.all([\n Promise.all(languageLoaders).then((languages) => {\n attachResolvedLanguages(languages, instance);\n }),\n Promise.all(themeLoaders).then((themes) => {\n attachResolvedThemes(themes, instance);\n }),\n ]);\n }\n\n return instance;\n}\n\nexport function isHighlighterLoaded(\n h: CachedOrLoadingHighlighterType = highlighter\n): h is DiffsHighlighter {\n return h != null && !('then' in h);\n}\n\nexport function getHighlighterIfLoaded(): DiffsHighlighter | undefined {\n if (highlighter != null && !('then' in highlighter)) {\n return highlighter;\n }\n return undefined;\n}\n\nexport function isHighlighterLoading(\n h: CachedOrLoadingHighlighterType = highlighter\n): h is Promise<DiffsHighlighter> {\n return h != null && 'then' in h;\n}\n\nexport function isHighlighterNull(\n h: CachedOrLoadingHighlighterType = highlighter\n): h is undefined {\n return h == null;\n}\n\nexport async function preloadHighlighter(\n options: HighlighterOptions\n): Promise<void> {\n return void (await getSharedHighlighter(options));\n}\n\nexport async function disposeHighlighter(): Promise<void> {\n if (highlighter == null) return;\n (await highlighter).dispose();\n cleanUpResolvedLanguages();\n cleanUpResolvedThemes();\n highlighter = undefined;\n}\n\nregisterCustomTheme('pierre-dark', () => {\n return import(\n '../themes/pierre-dark.json'\n ) as unknown as Promise<ThemeRegistrationResolved>;\n});\n\nregisterCustomTheme('pierre-light', () => {\n return import(\n '../themes/pierre-light.json'\n ) as unknown as Promise<ThemeRegistrationResolved>;\n});\n"],"mappings":";;;;;;;;;;AAsBA,IAAIA;AAOJ,eAAsB,qBAAqB,EACzC,QACA,SACgD;AAChD,iBAAgB,kBAAkB;EAChC,QAAQ,EAAE;EACV,OAAO,CAAC,OAAO;EACf,QAAQ,6BAA6B;EACtC,CAAC;CAEF,MAAM,WAAW,qBAAqB,YAAY,GAC9C,MAAM,cACN;AACJ,eAAc;CAEd,MAAMC,kBAA+C,EAAE;AACvD,MAAK,MAAM,YAAY,OAAO;AAC5B,MAAI,aAAa,OAAQ;EACzB,MAAM,wBAAwB,6BAA6B,SAAS;AACpE,MAAI,UAAU,sBACZ,iBAAgB,KAAK,sBAAsB;MAE3C,yBAAwB,uBAAuB,SAAS;;CAI5D,MAAMC,eAAqD,EAAE;AAC7D,MAAK,MAAM,aAAa,QAAQ;EAC9B,MAAM,qBAAqB,0BAA0B,UAAU;AAC/D,MAAI,UAAU,mBACZ,cAAa,KAAK,mBAAmB;MAErC,sBAAqB,oBAAoB,YAAY;;AAKzD,KAAI,gBAAgB,SAAS,KAAK,aAAa,SAAS,EACtD,OAAM,QAAQ,IAAI,CAChB,QAAQ,IAAI,gBAAgB,CAAC,MAAM,cAAc;AAC/C,0BAAwB,WAAW,SAAS;GAC5C,EACF,QAAQ,IAAI,aAAa,CAAC,MAAM,aAAW;AACzC,uBAAqBC,UAAQ,SAAS;GACtC,CACH,CAAC;AAGJ,QAAO;;AAGT,SAAgB,oBACd,IAAoC,aACb;AACvB,QAAO,KAAK,QAAQ,EAAE,UAAU;;AAGlC,SAAgB,yBAAuD;AACrE,KAAI,eAAe,QAAQ,EAAE,UAAU,aACrC,QAAO;;AAKX,SAAgB,qBACd,IAAoC,aACJ;AAChC,QAAO,KAAK,QAAQ,UAAU;;AAGhC,SAAgB,kBACd,IAAoC,aACpB;AAChB,QAAO,KAAK;;AAGd,eAAsB,mBACpB,SACe;AACR,CAAM,MAAM,qBAAqB,QAAQ;;AAGlD,eAAsB,qBAAoC;AACxD,KAAI,eAAe,KAAM;AACzB,EAAC,MAAM,aAAa,SAAS;AAC7B,2BAA0B;AAC1B,wBAAuB;AACvB,eAAc;;AAGhB,oBAAoB,qBAAqB;AACvC,QAAO,OACL;EAEF;AAEF,oBAAoB,sBAAsB;AACxC,QAAO,OACL;EAEF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DiffsThemeNames, ThemesType } from "../../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/highlighter/themes/areThemesAttached.d.ts
|
|
4
|
+
declare function areThemesAttached(themes: DiffsThemeNames | ThemesType): boolean;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { areThemesAttached };
|
|
7
|
+
//# sourceMappingURL=areThemesAttached.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"areThemesAttached.d.ts","names":[],"sources":["../../../src/highlighter/themes/areThemesAttached.ts"],"sourcesContent":[],"mappings":";;;iBAIgB,iBAAA,SACN,kBAAkB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AttachedThemes } from "./constants.js";
|
|
2
|
+
import { getThemes } from "../../utils/getThemes.js";
|
|
3
|
+
|
|
4
|
+
//#region src/highlighter/themes/areThemesAttached.ts
|
|
5
|
+
function areThemesAttached(themes) {
|
|
6
|
+
for (const theme of getThemes(themes)) if (!AttachedThemes.has(theme)) return false;
|
|
7
|
+
return true;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
//#endregion
|
|
11
|
+
export { areThemesAttached };
|
|
12
|
+
//# sourceMappingURL=areThemesAttached.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"areThemesAttached.js","names":[],"sources":["../../../src/highlighter/themes/areThemesAttached.ts"],"sourcesContent":["import type { DiffsThemeNames, ThemesType } from '../../types';\nimport { getThemes } from '../../utils/getThemes';\nimport { AttachedThemes } from './constants';\n\nexport function areThemesAttached(\n themes: DiffsThemeNames | ThemesType\n): boolean {\n for (const theme of getThemes(themes)) {\n if (!AttachedThemes.has(theme)) {\n return false;\n }\n }\n return true;\n}\n"],"mappings":";;;;AAIA,SAAgB,kBACd,QACS;AACT,MAAK,MAAM,SAAS,UAAU,OAAO,CACnC,KAAI,CAAC,eAAe,IAAI,MAAM,CAC5B,QAAO;AAGX,QAAO"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DiffsHighlighter, DiffsThemeNames, ThemeRegistrationResolved } from "../../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/highlighter/themes/attachResolvedThemes.d.ts
|
|
4
|
+
declare function attachResolvedThemes(themes: DiffsThemeNames | ThemeRegistrationResolved | (DiffsThemeNames | ThemeRegistrationResolved)[], highlighter: DiffsHighlighter): void;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { attachResolvedThemes };
|
|
7
|
+
//# sourceMappingURL=attachResolvedThemes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachResolvedThemes.d.ts","names":[],"sources":["../../../src/highlighter/themes/attachResolvedThemes.ts"],"sourcesContent":[],"mappings":";;;iBAOgB,oBAAA,SAEV,kBACA,6BACC,kBAAkB,2CACV"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { AttachedThemes, ResolvedThemes } from "./constants.js";
|
|
2
|
+
|
|
3
|
+
//#region src/highlighter/themes/attachResolvedThemes.ts
|
|
4
|
+
function attachResolvedThemes(themes, highlighter) {
|
|
5
|
+
themes = Array.isArray(themes) ? themes : [themes];
|
|
6
|
+
for (let themeRef of themes) {
|
|
7
|
+
let resolvedTheme;
|
|
8
|
+
if (typeof themeRef === "string") {
|
|
9
|
+
resolvedTheme = ResolvedThemes.get(themeRef);
|
|
10
|
+
if (resolvedTheme == null) throw new Error(`loadResolvedThemes: ${themeRef} is not resolved, you must resolve it before calling loadResolvedThemes`);
|
|
11
|
+
} else {
|
|
12
|
+
resolvedTheme = themeRef;
|
|
13
|
+
themeRef = themeRef.name;
|
|
14
|
+
if (!ResolvedThemes.has(themeRef)) ResolvedThemes.set(themeRef, resolvedTheme);
|
|
15
|
+
}
|
|
16
|
+
if (AttachedThemes.has(themeRef)) continue;
|
|
17
|
+
AttachedThemes.add(themeRef);
|
|
18
|
+
highlighter.loadThemeSync(resolvedTheme);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
//#endregion
|
|
23
|
+
export { attachResolvedThemes };
|
|
24
|
+
//# sourceMappingURL=attachResolvedThemes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachResolvedThemes.js","names":["resolvedTheme: ThemeRegistrationResolved | undefined"],"sources":["../../../src/highlighter/themes/attachResolvedThemes.ts"],"sourcesContent":["import type {\n DiffsHighlighter,\n DiffsThemeNames,\n ThemeRegistrationResolved,\n} from '../../types';\nimport { AttachedThemes, ResolvedThemes } from './constants';\n\nexport function attachResolvedThemes(\n themes:\n | DiffsThemeNames\n | ThemeRegistrationResolved\n | (DiffsThemeNames | ThemeRegistrationResolved)[],\n highlighter: DiffsHighlighter\n): void {\n themes = Array.isArray(themes) ? themes : [themes];\n for (let themeRef of themes) {\n let resolvedTheme: ThemeRegistrationResolved | undefined;\n if (typeof themeRef === 'string') {\n resolvedTheme = ResolvedThemes.get(themeRef);\n if (resolvedTheme == null) {\n throw new Error(\n `loadResolvedThemes: ${themeRef} is not resolved, you must resolve it before calling loadResolvedThemes`\n );\n }\n } else {\n resolvedTheme = themeRef;\n themeRef = themeRef.name;\n if (!ResolvedThemes.has(themeRef)) {\n ResolvedThemes.set(themeRef, resolvedTheme);\n }\n }\n if (AttachedThemes.has(themeRef)) continue;\n AttachedThemes.add(themeRef);\n highlighter.loadThemeSync(resolvedTheme);\n }\n}\n"],"mappings":";;;AAOA,SAAgB,qBACd,QAIA,aACM;AACN,UAAS,MAAM,QAAQ,OAAO,GAAG,SAAS,CAAC,OAAO;AAClD,MAAK,IAAI,YAAY,QAAQ;EAC3B,IAAIA;AACJ,MAAI,OAAO,aAAa,UAAU;AAChC,mBAAgB,eAAe,IAAI,SAAS;AAC5C,OAAI,iBAAiB,KACnB,OAAM,IAAI,MACR,uBAAuB,SAAS,yEACjC;SAEE;AACL,mBAAgB;AAChB,cAAW,SAAS;AACpB,OAAI,CAAC,eAAe,IAAI,SAAS,CAC/B,gBAAe,IAAI,UAAU,cAAc;;AAG/C,MAAI,eAAe,IAAI,SAAS,CAAE;AAClC,iBAAe,IAAI,SAAS;AAC5B,cAAY,cAAc,cAAc"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanUpResolvedThemes.d.ts","names":[],"sources":["../../../src/highlighter/themes/cleanUpResolvedThemes.ts"],"sourcesContent":[],"mappings":";iBAEgB,qBAAA,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AttachedThemes, ResolvedThemes } from "./constants.js";
|
|
2
|
+
|
|
3
|
+
//#region src/highlighter/themes/cleanUpResolvedThemes.ts
|
|
4
|
+
function cleanUpResolvedThemes() {
|
|
5
|
+
ResolvedThemes.clear();
|
|
6
|
+
AttachedThemes.clear();
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
//#endregion
|
|
10
|
+
export { cleanUpResolvedThemes };
|
|
11
|
+
//# sourceMappingURL=cleanUpResolvedThemes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanUpResolvedThemes.js","names":[],"sources":["../../../src/highlighter/themes/cleanUpResolvedThemes.ts"],"sourcesContent":["import { AttachedThemes, ResolvedThemes } from './constants';\n\nexport function cleanUpResolvedThemes(): void {\n ResolvedThemes.clear();\n AttachedThemes.clear();\n}\n"],"mappings":";;;AAEA,SAAgB,wBAA8B;AAC5C,gBAAe,OAAO;AACtB,gBAAe,OAAO"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DiffsThemeNames } from "../../types.js";
|
|
2
|
+
import { ThemeRegistrationResolved } from "shiki";
|
|
3
|
+
|
|
4
|
+
//#region src/highlighter/themes/constants.d.ts
|
|
5
|
+
declare const ResolvedThemes: Map<DiffsThemeNames, ThemeRegistrationResolved>;
|
|
6
|
+
declare const ResolvingThemes: Map<DiffsThemeNames, Promise<ThemeRegistrationResolved>>;
|
|
7
|
+
declare const RegisteredCustomThemes: Map<string, () => Promise<ThemeRegistrationResolved>>;
|
|
8
|
+
declare const AttachedThemes: Set<string>;
|
|
9
|
+
//#endregion
|
|
10
|
+
export { AttachedThemes, RegisteredCustomThemes, ResolvedThemes, ResolvingThemes };
|
|
11
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","names":["ResolvedThemes: Map<DiffsThemeNames, ThemeRegistrationResolved>","ResolvingThemes: Map<\n DiffsThemeNames,\n Promise<ThemeRegistrationResolved>\n>","RegisteredCustomThemes: Map<\n string,\n () => Promise<ThemeRegistrationResolved>\n>","AttachedThemes: Set<string>"],"sources":["../../../src/highlighter/themes/constants.ts"],"sourcesContent":[],"mappings":";;;;cAIaA,gBAAgB,IAAI,iBAAiB;cAGrCC,iBAAiB,IAC5B,iBACA,QAAQ;AALGD,cAQAE,sBARqC,EAQb,GARa,CAAA,MAAA,EAAA,GAAA,GAU1C,OAV0C,CAUlC,yBAVkC,CAAA,CAAA;AAAjB,cAapBC,cAboB,EAaJ,GAbI,CAAA,MAAA,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
//#region src/highlighter/themes/constants.ts
|
|
2
|
+
const ResolvedThemes = /* @__PURE__ */ new Map();
|
|
3
|
+
const ResolvingThemes = /* @__PURE__ */ new Map();
|
|
4
|
+
const RegisteredCustomThemes = /* @__PURE__ */ new Map();
|
|
5
|
+
const AttachedThemes = /* @__PURE__ */ new Set();
|
|
6
|
+
|
|
7
|
+
//#endregion
|
|
8
|
+
export { AttachedThemes, RegisteredCustomThemes, ResolvedThemes, ResolvingThemes };
|
|
9
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","names":["ResolvedThemes: Map<DiffsThemeNames, ThemeRegistrationResolved>","ResolvingThemes: Map<\n DiffsThemeNames,\n Promise<ThemeRegistrationResolved>\n>","RegisteredCustomThemes: Map<\n string,\n () => Promise<ThemeRegistrationResolved>\n>","AttachedThemes: Set<string>"],"sources":["../../../src/highlighter/themes/constants.ts"],"sourcesContent":["import type { ThemeRegistrationResolved } from 'shiki';\n\nimport type { DiffsThemeNames } from '../../types';\n\nexport const ResolvedThemes: Map<DiffsThemeNames, ThemeRegistrationResolved> =\n new Map();\n\nexport const ResolvingThemes: Map<\n DiffsThemeNames,\n Promise<ThemeRegistrationResolved>\n> = new Map();\n\nexport const RegisteredCustomThemes: Map<\n string,\n () => Promise<ThemeRegistrationResolved>\n> = new Map();\n\nexport const AttachedThemes: Set<string> = new Set();\n"],"mappings":";AAIA,MAAaA,iCACX,IAAI,KAAK;AAEX,MAAaC,kCAGT,IAAI,KAAK;AAEb,MAAaC,yCAGT,IAAI,KAAK;AAEb,MAAaC,iCAA8B,IAAI,KAAK"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DiffsThemeNames, ThemeRegistrationResolved } from "../../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/highlighter/themes/getResolvedOrResolveTheme.d.ts
|
|
4
|
+
declare function getResolvedOrResolveTheme(themeName: DiffsThemeNames): ThemeRegistrationResolved | Promise<ThemeRegistrationResolved>;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { getResolvedOrResolveTheme };
|
|
7
|
+
//# sourceMappingURL=getResolvedOrResolveTheme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getResolvedOrResolveTheme.d.ts","names":[],"sources":["../../../src/highlighter/themes/getResolvedOrResolveTheme.ts"],"sourcesContent":[],"mappings":";;;iBAIgB,yBAAA,YACH,kBACV,4BAA4B,QAAQ"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ResolvedThemes } from "./constants.js";
|
|
2
|
+
import { resolveTheme } from "./resolveTheme.js";
|
|
3
|
+
|
|
4
|
+
//#region src/highlighter/themes/getResolvedOrResolveTheme.ts
|
|
5
|
+
function getResolvedOrResolveTheme(themeName) {
|
|
6
|
+
return ResolvedThemes.get(themeName) ?? resolveTheme(themeName);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
//#endregion
|
|
10
|
+
export { getResolvedOrResolveTheme };
|
|
11
|
+
//# sourceMappingURL=getResolvedOrResolveTheme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getResolvedOrResolveTheme.js","names":[],"sources":["../../../src/highlighter/themes/getResolvedOrResolveTheme.ts"],"sourcesContent":["import type { DiffsThemeNames, ThemeRegistrationResolved } from '../../types';\nimport { ResolvedThemes } from './constants';\nimport { resolveTheme } from './resolveTheme';\n\nexport function getResolvedOrResolveTheme(\n themeName: DiffsThemeNames\n): ThemeRegistrationResolved | Promise<ThemeRegistrationResolved> {\n return ResolvedThemes.get(themeName) ?? resolveTheme(themeName);\n}\n"],"mappings":";;;;AAIA,SAAgB,0BACd,WACgE;AAChE,QAAO,eAAe,IAAI,UAAU,IAAI,aAAa,UAAU"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DiffsThemeNames, ThemeRegistrationResolved } from "../../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/highlighter/themes/getResolvedThemes.d.ts
|
|
4
|
+
declare function getResolvedThemes(themeNames: DiffsThemeNames[]): ThemeRegistrationResolved[];
|
|
5
|
+
//#endregion
|
|
6
|
+
export { getResolvedThemes };
|
|
7
|
+
//# sourceMappingURL=getResolvedThemes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getResolvedThemes.d.ts","names":[],"sources":["../../../src/highlighter/themes/getResolvedThemes.ts"],"sourcesContent":[],"mappings":";;;iBAMgB,iBAAA,aACF,oBACX"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ResolvedThemes } from "./constants.js";
|
|
2
|
+
|
|
3
|
+
//#region src/highlighter/themes/getResolvedThemes.ts
|
|
4
|
+
function getResolvedThemes(themeNames) {
|
|
5
|
+
const resolvedThemes = [];
|
|
6
|
+
for (const themeName of themeNames) {
|
|
7
|
+
const theme = ResolvedThemes.get(themeName);
|
|
8
|
+
if (theme == null) throw new Error(`getAllResolvedThemes: ${themeName} is unresolved, you must resolve all necessary themes before calling this function`);
|
|
9
|
+
resolvedThemes.push(theme);
|
|
10
|
+
}
|
|
11
|
+
return resolvedThemes;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
//#endregion
|
|
15
|
+
export { getResolvedThemes };
|
|
16
|
+
//# sourceMappingURL=getResolvedThemes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getResolvedThemes.js","names":["resolvedThemes: ThemeRegistrationResolved[]"],"sources":["../../../src/highlighter/themes/getResolvedThemes.ts"],"sourcesContent":["import type { DiffsThemeNames, ThemeRegistrationResolved } from '../../types';\nimport { ResolvedThemes } from './constants';\n\n// This method should only be called if you know all themes are resolved,\n// otherwise it will fail. The main intention is a helper to avoid an async\n// tick if we don't actually need it\nexport function getResolvedThemes(\n themeNames: DiffsThemeNames[]\n): ThemeRegistrationResolved[] {\n const resolvedThemes: ThemeRegistrationResolved[] = [];\n for (const themeName of themeNames) {\n const theme = ResolvedThemes.get(themeName);\n if (theme == null) {\n throw new Error(\n `getAllResolvedThemes: ${themeName} is unresolved, you must resolve all necessary themes before calling this function`\n );\n }\n resolvedThemes.push(theme);\n }\n return resolvedThemes;\n}\n"],"mappings":";;;AAMA,SAAgB,kBACd,YAC6B;CAC7B,MAAMA,iBAA8C,EAAE;AACtD,MAAK,MAAM,aAAa,YAAY;EAClC,MAAM,QAAQ,eAAe,IAAI,UAAU;AAC3C,MAAI,SAAS,KACX,OAAM,IAAI,MACR,yBAAyB,UAAU,oFACpC;AAEH,iBAAe,KAAK,MAAM;;AAE5B,QAAO"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DiffsThemeNames } from "../../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/highlighter/themes/hasResolvedThemes.d.ts
|
|
4
|
+
declare function hasResolvedThemes(themeNames: DiffsThemeNames[]): boolean;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { hasResolvedThemes };
|
|
7
|
+
//# sourceMappingURL=hasResolvedThemes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hasResolvedThemes.d.ts","names":[],"sources":["../../../src/highlighter/themes/hasResolvedThemes.ts"],"sourcesContent":[],"mappings":";;;iBAGgB,iBAAA,aAA8B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ResolvedThemes } from "./constants.js";
|
|
2
|
+
|
|
3
|
+
//#region src/highlighter/themes/hasResolvedThemes.ts
|
|
4
|
+
function hasResolvedThemes(themeNames) {
|
|
5
|
+
for (const themeName of themeNames) if (!ResolvedThemes.has(themeName)) return false;
|
|
6
|
+
return true;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
//#endregion
|
|
10
|
+
export { hasResolvedThemes };
|
|
11
|
+
//# sourceMappingURL=hasResolvedThemes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hasResolvedThemes.js","names":[],"sources":["../../../src/highlighter/themes/hasResolvedThemes.ts"],"sourcesContent":["import type { DiffsThemeNames } from '../../types';\nimport { ResolvedThemes } from './constants';\n\nexport function hasResolvedThemes(themeNames: DiffsThemeNames[]): boolean {\n for (const themeName of themeNames) {\n if (!ResolvedThemes.has(themeName)) {\n return false;\n }\n }\n return true;\n}\n"],"mappings":";;;AAGA,SAAgB,kBAAkB,YAAwC;AACxE,MAAK,MAAM,aAAa,WACtB,KAAI,CAAC,eAAe,IAAI,UAAU,CAChC,QAAO;AAGX,QAAO"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ThemeRegistrationResolved } from "shiki";
|
|
2
|
+
|
|
3
|
+
//#region src/highlighter/themes/registerCustomTheme.d.ts
|
|
4
|
+
declare function registerCustomTheme(themeName: string, loader: () => Promise<ThemeRegistrationResolved>): void;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { registerCustomTheme };
|
|
7
|
+
//# sourceMappingURL=registerCustomTheme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerCustomTheme.d.ts","names":[],"sources":["../../../src/highlighter/themes/registerCustomTheme.ts"],"sourcesContent":[],"mappings":";;;iBAIgB,mBAAA,kCAEA,QAAQ"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { RegisteredCustomThemes } from "./constants.js";
|
|
2
|
+
|
|
3
|
+
//#region src/highlighter/themes/registerCustomTheme.ts
|
|
4
|
+
function registerCustomTheme(themeName, loader) {
|
|
5
|
+
if (RegisteredCustomThemes.has(themeName)) {
|
|
6
|
+
console.error("SharedHighlight.registerCustomTheme: theme name already registered", themeName);
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
RegisteredCustomThemes.set(themeName, loader);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
//#endregion
|
|
13
|
+
export { registerCustomTheme };
|
|
14
|
+
//# sourceMappingURL=registerCustomTheme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerCustomTheme.js","names":[],"sources":["../../../src/highlighter/themes/registerCustomTheme.ts"],"sourcesContent":["import type { ThemeRegistrationResolved } from 'shiki';\n\nimport { RegisteredCustomThemes } from './constants';\n\nexport function registerCustomTheme(\n themeName: string,\n loader: () => Promise<ThemeRegistrationResolved>\n): void {\n if (RegisteredCustomThemes.has(themeName)) {\n console.error(\n 'SharedHighlight.registerCustomTheme: theme name already registered',\n themeName\n );\n return;\n }\n RegisteredCustomThemes.set(themeName, loader);\n}\n"],"mappings":";;;AAIA,SAAgB,oBACd,WACA,QACM;AACN,KAAI,uBAAuB,IAAI,UAAU,EAAE;AACzC,UAAQ,MACN,sEACA,UACD;AACD;;AAEF,wBAAuB,IAAI,WAAW,OAAO"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DiffsThemeNames, ThemeRegistrationResolved } from "../../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/highlighter/themes/resolveTheme.d.ts
|
|
4
|
+
declare function resolveTheme(themeName: DiffsThemeNames): Promise<ThemeRegistrationResolved>;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { resolveTheme };
|
|
7
|
+
//# sourceMappingURL=resolveTheme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveTheme.d.ts","names":[],"sources":["../../../src/highlighter/themes/resolveTheme.ts"],"sourcesContent":[],"mappings":";;;iBAUsB,YAAA,YACT,kBACV,QAAQ"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { isWorkerContext } from "../../utils/isWorkerContext.js";
|
|
2
|
+
import { RegisteredCustomThemes, ResolvedThemes, ResolvingThemes } from "./constants.js";
|
|
3
|
+
import { bundledThemes, normalizeTheme } from "shiki";
|
|
4
|
+
|
|
5
|
+
//#region src/highlighter/themes/resolveTheme.ts
|
|
6
|
+
async function resolveTheme(themeName) {
|
|
7
|
+
if (isWorkerContext()) throw new Error(`resolveTheme("${themeName}") cannot be called from a worker context. Themes must be pre-resolved on the main thread and passed to the worker via the resolvedLanguages parameter.`);
|
|
8
|
+
const resolver = ResolvingThemes.get(themeName);
|
|
9
|
+
if (resolver != null) return resolver;
|
|
10
|
+
try {
|
|
11
|
+
const loader = RegisteredCustomThemes.get(themeName) ?? bundledThemes[themeName];
|
|
12
|
+
if (loader == null) throw new Error(`resolveTheme: No valid loader for ${themeName}`);
|
|
13
|
+
const resolver$1 = loader().then((result) => {
|
|
14
|
+
return normalizeAndCacheResolvedTheme(themeName, "default" in result ? result.default : result);
|
|
15
|
+
});
|
|
16
|
+
ResolvingThemes.set(themeName, resolver$1);
|
|
17
|
+
const theme = await resolver$1;
|
|
18
|
+
if (theme.name !== themeName) throw new Error(`resolvedTheme: themeName: ${themeName} does not match theme.name: ${theme.name}`);
|
|
19
|
+
ResolvedThemes.set(theme.name, theme);
|
|
20
|
+
return theme;
|
|
21
|
+
} finally {
|
|
22
|
+
ResolvingThemes.delete(themeName);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function normalizeAndCacheResolvedTheme(themeName, themeData) {
|
|
26
|
+
const resolvedTheme = ResolvedThemes.get(themeName);
|
|
27
|
+
if (resolvedTheme != null) return resolvedTheme;
|
|
28
|
+
themeData = normalizeTheme(themeData);
|
|
29
|
+
ResolvedThemes.set(themeName, themeData);
|
|
30
|
+
return themeData;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
//#endregion
|
|
34
|
+
export { resolveTheme };
|
|
35
|
+
//# sourceMappingURL=resolveTheme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveTheme.js","names":["resolver"],"sources":["../../../src/highlighter/themes/resolveTheme.ts"],"sourcesContent":["import { bundledThemes, normalizeTheme } from 'shiki';\n\nimport type { DiffsThemeNames, ThemeRegistrationResolved } from '../../types';\nimport { isWorkerContext } from '../../utils/isWorkerContext';\nimport {\n RegisteredCustomThemes,\n ResolvedThemes,\n ResolvingThemes,\n} from './constants';\n\nexport async function resolveTheme(\n themeName: DiffsThemeNames\n): Promise<ThemeRegistrationResolved> {\n if (isWorkerContext()) {\n throw new Error(\n `resolveTheme(\"${themeName}\") cannot be called from a worker context. ` +\n 'Themes must be pre-resolved on the main thread and passed to the worker via the resolvedLanguages parameter.'\n );\n }\n\n const resolver = ResolvingThemes.get(themeName);\n if (resolver != null) {\n return resolver;\n }\n\n try {\n const loader =\n RegisteredCustomThemes.get(themeName) ??\n bundledThemes[themeName as keyof typeof bundledThemes];\n\n if (loader == null) {\n throw new Error(`resolveTheme: No valid loader for ${themeName}`);\n }\n\n const resolver = loader().then((result) => {\n return normalizeAndCacheResolvedTheme(\n themeName,\n ('default' in result\n ? result.default\n : result) as ThemeRegistrationResolved\n );\n });\n\n ResolvingThemes.set(themeName, resolver);\n const theme = await resolver;\n if (theme.name !== themeName) {\n throw new Error(\n `resolvedTheme: themeName: ${themeName} does not match theme.name: ${theme.name}`\n );\n }\n ResolvedThemes.set(theme.name, theme);\n return theme;\n } finally {\n ResolvingThemes.delete(themeName);\n }\n}\n\nfunction normalizeAndCacheResolvedTheme(\n themeName: string,\n themeData: ThemeRegistrationResolved\n): ThemeRegistrationResolved {\n const resolvedTheme = ResolvedThemes.get(themeName);\n if (resolvedTheme != null) {\n return resolvedTheme;\n }\n themeData = normalizeTheme(themeData);\n ResolvedThemes.set(themeName, themeData);\n return themeData;\n}\n"],"mappings":";;;;;AAUA,eAAsB,aACpB,WACoC;AACpC,KAAI,iBAAiB,CACnB,OAAM,IAAI,MACR,iBAAiB,UAAU,yJAE5B;CAGH,MAAM,WAAW,gBAAgB,IAAI,UAAU;AAC/C,KAAI,YAAY,KACd,QAAO;AAGT,KAAI;EACF,MAAM,SACJ,uBAAuB,IAAI,UAAU,IACrC,cAAc;AAEhB,MAAI,UAAU,KACZ,OAAM,IAAI,MAAM,qCAAqC,YAAY;EAGnE,MAAMA,aAAW,QAAQ,CAAC,MAAM,WAAW;AACzC,UAAO,+BACL,WACC,aAAa,SACV,OAAO,UACP,OACL;IACD;AAEF,kBAAgB,IAAI,WAAWA,WAAS;EACxC,MAAM,QAAQ,MAAMA;AACpB,MAAI,MAAM,SAAS,UACjB,OAAM,IAAI,MACR,6BAA6B,UAAU,8BAA8B,MAAM,OAC5E;AAEH,iBAAe,IAAI,MAAM,MAAM,MAAM;AACrC,SAAO;WACC;AACR,kBAAgB,OAAO,UAAU;;;AAIrC,SAAS,+BACP,WACA,WAC2B;CAC3B,MAAM,gBAAgB,eAAe,IAAI,UAAU;AACnD,KAAI,iBAAiB,KACnB,QAAO;AAET,aAAY,eAAe,UAAU;AACrC,gBAAe,IAAI,WAAW,UAAU;AACxC,QAAO"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DiffsThemeNames, ThemeRegistrationResolved } from "../../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/highlighter/themes/resolveThemes.d.ts
|
|
4
|
+
declare function resolveThemes(themes: DiffsThemeNames[]): Promise<ThemeRegistrationResolved[]>;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { resolveThemes };
|
|
7
|
+
//# sourceMappingURL=resolveThemes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveThemes.d.ts","names":[],"sources":["../../../src/highlighter/themes/resolveThemes.ts"],"sourcesContent":[],"mappings":";;;iBAIsB,aAAA,SACZ,oBACP,QAAQ"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { resolveTheme } from "./resolveTheme.js";
|
|
2
|
+
import { getResolvedOrResolveTheme } from "./getResolvedOrResolveTheme.js";
|
|
3
|
+
|
|
4
|
+
//#region src/highlighter/themes/resolveThemes.ts
|
|
5
|
+
async function resolveThemes(themes) {
|
|
6
|
+
const resolvedThemes = [];
|
|
7
|
+
const themesToResolve = [];
|
|
8
|
+
for (const themeName of themes) {
|
|
9
|
+
const themeData = getResolvedOrResolveTheme(themeName) ?? resolveTheme(themeName);
|
|
10
|
+
if ("then" in themeData) themesToResolve.push(themeData);
|
|
11
|
+
else resolvedThemes.push(themeData);
|
|
12
|
+
}
|
|
13
|
+
if (themesToResolve.length > 0) await Promise.all(themesToResolve).then((resolved) => {
|
|
14
|
+
for (const theme of resolved) if (theme != null) resolvedThemes.push(theme);
|
|
15
|
+
});
|
|
16
|
+
return resolvedThemes;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//#endregion
|
|
20
|
+
export { resolveThemes };
|
|
21
|
+
//# sourceMappingURL=resolveThemes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveThemes.js","names":["resolvedThemes: ThemeRegistrationResolved[]","themesToResolve: Promise<ThemeRegistrationResolved | undefined>[]"],"sources":["../../../src/highlighter/themes/resolveThemes.ts"],"sourcesContent":["import type { DiffsThemeNames, ThemeRegistrationResolved } from '../../types';\nimport { getResolvedOrResolveTheme } from './getResolvedOrResolveTheme';\nimport { resolveTheme } from './resolveTheme';\n\nexport async function resolveThemes(\n themes: DiffsThemeNames[]\n): Promise<ThemeRegistrationResolved[]> {\n const resolvedThemes: ThemeRegistrationResolved[] = [];\n const themesToResolve: Promise<ThemeRegistrationResolved | undefined>[] = [];\n for (const themeName of themes) {\n const themeData =\n getResolvedOrResolveTheme(themeName) ?? resolveTheme(themeName);\n if ('then' in themeData) {\n themesToResolve.push(themeData);\n } else {\n resolvedThemes.push(themeData);\n }\n }\n\n if (themesToResolve.length > 0) {\n await Promise.all(themesToResolve).then((resolved) => {\n for (const theme of resolved) {\n if (theme != null) {\n resolvedThemes.push(theme);\n }\n }\n });\n }\n\n return resolvedThemes;\n}\n"],"mappings":";;;;AAIA,eAAsB,cACpB,QACsC;CACtC,MAAMA,iBAA8C,EAAE;CACtD,MAAMC,kBAAoE,EAAE;AAC5E,MAAK,MAAM,aAAa,QAAQ;EAC9B,MAAM,YACJ,0BAA0B,UAAU,IAAI,aAAa,UAAU;AACjE,MAAI,UAAU,UACZ,iBAAgB,KAAK,UAAU;MAE/B,gBAAe,KAAK,UAAU;;AAIlC,KAAI,gBAAgB,SAAS,EAC3B,OAAM,QAAQ,IAAI,gBAAgB,CAAC,MAAM,aAAa;AACpD,OAAK,MAAM,SAAS,SAClB,KAAI,SAAS,KACX,gBAAe,KAAK,MAAM;GAG9B;AAGJ,QAAO"}
|