@l1yp/file-viewer 0.1.0
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 +21 -0
- package/README.md +134 -0
- package/dist/FileViewer.js +7 -0
- package/dist/FileViewer.vue.d.ts +37 -0
- package/dist/FileViewer.vue_vue_type_script_setup_true_lang.js +103 -0
- package/dist/_virtual/_plugin-vue_export-helper.js +8 -0
- package/dist/components/AppxViewer.js +7 -0
- package/dist/components/AppxViewer.vue.d.ts +18 -0
- package/dist/components/AppxViewer.vue_vue_type_script_setup_true_lang.js +174 -0
- package/dist/components/ArchiveBrowser.js +7 -0
- package/dist/components/ArchiveBrowser.vue.d.ts +18 -0
- package/dist/components/ArchiveBrowser.vue_vue_type_script_setup_true_lang.js +279 -0
- package/dist/components/AudioViewer.js +7 -0
- package/dist/components/AudioViewer.vue.d.ts +21 -0
- package/dist/components/AudioViewer.vue_vue_type_script_setup_true_lang.js +201 -0
- package/dist/components/BinObjBrowser.js +7 -0
- package/dist/components/BinObjBrowser.vue.d.ts +19 -0
- package/dist/components/BinObjBrowser.vue_vue_type_script_setup_true_lang.js +141 -0
- package/dist/components/CertViewer.js +7 -0
- package/dist/components/CertViewer.vue.d.ts +17 -0
- package/dist/components/CertViewer.vue_vue_type_script_setup_true_lang.js +251 -0
- package/dist/components/ClassViewer.js +7 -0
- package/dist/components/ClassViewer.vue.d.ts +15 -0
- package/dist/components/ClassViewer.vue_vue_type_script_setup_true_lang.js +164 -0
- package/dist/components/CodeBlock.js +7 -0
- package/dist/components/CodeBlock.vue.d.ts +17 -0
- package/dist/components/CodeBlock.vue_vue_type_script_setup_true_lang.js +79 -0
- package/dist/components/CodeView.js +7 -0
- package/dist/components/CodeView.vue.d.ts +21 -0
- package/dist/components/CodeView.vue_vue_type_script_setup_true_lang.js +180 -0
- package/dist/components/CsvViewer.js +7 -0
- package/dist/components/CsvViewer.vue.d.ts +26 -0
- package/dist/components/CsvViewer.vue_vue_type_script_setup_true_lang.js +187 -0
- package/dist/components/DicomViewer.js +7 -0
- package/dist/components/DicomViewer.vue.d.ts +30 -0
- package/dist/components/DicomViewer.vue_vue_type_script_setup_true_lang.js +362 -0
- package/dist/components/DocxViewer.js +7 -0
- package/dist/components/DocxViewer.vue.d.ts +19 -0
- package/dist/components/DocxViewer.vue_vue_type_script_setup_true_lang.js +59 -0
- package/dist/components/DrawioViewer.js +7 -0
- package/dist/components/DrawioViewer.vue.d.ts +16 -0
- package/dist/components/DrawioViewer.vue_vue_type_script_setup_true_lang.js +38 -0
- package/dist/components/DxfViewer.js +7 -0
- package/dist/components/DxfViewer.vue.d.ts +14 -0
- package/dist/components/DxfViewer.vue_vue_type_script_setup_true_lang.js +239 -0
- package/dist/components/EbookViewer.js +7 -0
- package/dist/components/EbookViewer.vue.d.ts +22 -0
- package/dist/components/EbookViewer.vue_vue_type_script_setup_true_lang.js +170 -0
- package/dist/components/EmlViewer.js +7 -0
- package/dist/components/EmlViewer.vue.d.ts +21 -0
- package/dist/components/EmlViewer.vue_vue_type_script_setup_true_lang.js +193 -0
- package/dist/components/EplViewer.js +7 -0
- package/dist/components/EplViewer.vue.d.ts +19 -0
- package/dist/components/EplViewer.vue_vue_type_script_setup_true_lang.js +201 -0
- package/dist/components/FileViewerBody.js +7 -0
- package/dist/components/FileViewerBody.vue.d.ts +47 -0
- package/dist/components/FileViewerBody.vue_vue_type_script_setup_true_lang.js +599 -0
- package/dist/components/FileViewerPanel.js +7 -0
- package/dist/components/FileViewerPanel.vue.d.ts +3 -0
- package/dist/components/FileViewerPanel.vue_vue_type_script_setup_true_lang.js +207 -0
- package/dist/components/FontViewer.js +7 -0
- package/dist/components/FontViewer.vue.d.ts +17 -0
- package/dist/components/FontViewer.vue_vue_type_script_setup_true_lang.js +120 -0
- package/dist/components/FrontmatterCard.js +7 -0
- package/dist/components/FrontmatterCard.vue.d.ts +11 -0
- package/dist/components/FrontmatterCard.vue_vue_type_script_setup_true_lang.js +30 -0
- package/dist/components/GeoViewer.js +7 -0
- package/dist/components/GeoViewer.vue.d.ts +17 -0
- package/dist/components/GeoViewer.vue_vue_type_script_setup_true_lang.js +255 -0
- package/dist/components/HarViewer.js +7 -0
- package/dist/components/HarViewer.vue.d.ts +20 -0
- package/dist/components/HarViewer.vue_vue_type_script_setup_true_lang.js +322 -0
- package/dist/components/HexViewer.js +7 -0
- package/dist/components/HexViewer.vue.d.ts +22 -0
- package/dist/components/HexViewer.vue_vue_type_script_setup_true_lang.js +121 -0
- package/dist/components/HprofViewer.js +7 -0
- package/dist/components/HprofViewer.vue.d.ts +27 -0
- package/dist/components/HprofViewer.vue_vue_type_script_setup_true_lang.js +561 -0
- package/dist/components/ImageLightbox.js +7 -0
- package/dist/components/ImageLightbox.vue.d.ts +3 -0
- package/dist/components/ImageLightbox.vue_vue_type_script_setup_true_lang.js +86 -0
- package/dist/components/InlineText.d.ts +29 -0
- package/dist/components/InlineText.js +21 -0
- package/dist/components/JksViewer.js +7 -0
- package/dist/components/JksViewer.vue.d.ts +22 -0
- package/dist/components/JksViewer.vue_vue_type_script_setup_true_lang.js +353 -0
- package/dist/components/JsonlViewer.js +7 -0
- package/dist/components/JsonlViewer.vue.d.ts +15 -0
- package/dist/components/JsonlViewer.vue_vue_type_script_setup_true_lang.js +103 -0
- package/dist/components/LogViewer.js +7 -0
- package/dist/components/LogViewer.vue.d.ts +29 -0
- package/dist/components/LogViewer.vue_vue_type_script_setup_true_lang.js +670 -0
- package/dist/components/LrcViewer.js +7 -0
- package/dist/components/LrcViewer.vue.d.ts +17 -0
- package/dist/components/LrcViewer.vue_vue_type_script_setup_true_lang.js +106 -0
- package/dist/components/MarkdownTable.js +7 -0
- package/dist/components/MarkdownTable.vue.d.ts +19 -0
- package/dist/components/MarkdownTable.vue_vue_type_script_setup_true_lang.js +71 -0
- package/dist/components/MarkdownText.d.ts +30 -0
- package/dist/components/MarkdownText.js +21 -0
- package/dist/components/MhtViewer.js +7 -0
- package/dist/components/MhtViewer.vue.d.ts +22 -0
- package/dist/components/MhtViewer.vue_vue_type_script_setup_true_lang.js +112 -0
- package/dist/components/MindMapView.js +7 -0
- package/dist/components/MindMapView.vue.d.ts +23 -0
- package/dist/components/MindMapView.vue_vue_type_script_setup_true_lang.js +337 -0
- package/dist/components/MissingDependency.js +7 -0
- package/dist/components/MissingDependency.vue.d.ts +17 -0
- package/dist/components/MissingDependency.vue_vue_type_script_setup_true_lang.js +37 -0
- package/dist/components/ModelViewer.js +7 -0
- package/dist/components/ModelViewer.vue.d.ts +18 -0
- package/dist/components/ModelViewer.vue_vue_type_script_setup_true_lang.js +157 -0
- package/dist/components/MsiViewer.js +7 -0
- package/dist/components/MsiViewer.vue.d.ts +19 -0
- package/dist/components/MsiViewer.vue_vue_type_script_setup_true_lang.js +136 -0
- package/dist/components/NotebookViewer.js +7 -0
- package/dist/components/NotebookViewer.vue.d.ts +20 -0
- package/dist/components/NotebookViewer.vue_vue_type_script_setup_true_lang.js +125 -0
- package/dist/components/PdfViewer.js +7 -0
- package/dist/components/PdfViewer.vue.d.ts +19 -0
- package/dist/components/PdfViewer.vue_vue_type_script_setup_true_lang.js +114 -0
- package/dist/components/PptxViewer.js +7 -0
- package/dist/components/PptxViewer.vue.d.ts +20 -0
- package/dist/components/PptxViewer.vue_vue_type_script_setup_true_lang.js +73 -0
- package/dist/components/PsdViewer.js +7 -0
- package/dist/components/PsdViewer.vue.d.ts +15 -0
- package/dist/components/PsdViewer.vue_vue_type_script_setup_true_lang.js +218 -0
- package/dist/components/QmcAudioViewer.js +7 -0
- package/dist/components/QmcAudioViewer.vue.d.ts +18 -0
- package/dist/components/QmcAudioViewer.vue_vue_type_script_setup_true_lang.js +92 -0
- package/dist/components/RasterViewer.js +7 -0
- package/dist/components/RasterViewer.vue.d.ts +21 -0
- package/dist/components/RasterViewer.vue_vue_type_script_setup_true_lang.js +161 -0
- package/dist/components/RtfViewer.js +7 -0
- package/dist/components/RtfViewer.vue.d.ts +21 -0
- package/dist/components/RtfViewer.vue_vue_type_script_setup_true_lang.js +66 -0
- package/dist/components/SevenZipBrowser.js +7 -0
- package/dist/components/SevenZipBrowser.vue.d.ts +13 -0
- package/dist/components/SevenZipBrowser.vue_vue_type_script_setup_true_lang.js +366 -0
- package/dist/components/SqliteViewer.js +7 -0
- package/dist/components/SqliteViewer.vue.d.ts +18 -0
- package/dist/components/SqliteViewer.vue_vue_type_script_setup_true_lang.js +186 -0
- package/dist/components/SubtitleViewer.js +7 -0
- package/dist/components/SubtitleViewer.vue.d.ts +15 -0
- package/dist/components/SubtitleViewer.vue_vue_type_script_setup_true_lang.js +48 -0
- package/dist/components/XlsxChart.js +7 -0
- package/dist/components/XlsxChart.vue.d.ts +14 -0
- package/dist/components/XlsxChart.vue_vue_type_script_setup_true_lang.js +240 -0
- package/dist/components/XlsxViewer.js +7 -0
- package/dist/components/XlsxViewer.vue.d.ts +22 -0
- package/dist/components/XlsxViewer.vue_vue_type_script_setup_true_lang.js +814 -0
- package/dist/components/XmindViewer.js +7 -0
- package/dist/components/XmindViewer.vue.d.ts +13 -0
- package/dist/components/XmindViewer.vue_vue_type_script_setup_true_lang.js +48 -0
- package/dist/components/ZipBrowser.js +7 -0
- package/dist/components/ZipBrowser.vue.d.ts +14 -0
- package/dist/components/ZipBrowser.vue_vue_type_script_setup_true_lang.js +326 -0
- package/dist/components/ZoomImage.js +7 -0
- package/dist/components/ZoomImage.vue.d.ts +29 -0
- package/dist/components/ZoomImage.vue_vue_type_script_setup_true_lang.js +147 -0
- package/dist/components/epl/EplCodeBlock.js +7 -0
- package/dist/components/epl/EplCodeBlock.vue.d.ts +15 -0
- package/dist/components/epl/EplCodeBlock.vue_vue_type_script_setup_true_lang.js +72 -0
- package/dist/components/epl/EplDoc.js +7 -0
- package/dist/components/epl/EplDoc.vue.d.ts +19 -0
- package/dist/components/epl/EplDoc.vue_vue_type_script_setup_true_lang.js +327 -0
- package/dist/components/epl/EplMethod.js +7 -0
- package/dist/components/epl/EplMethod.vue.d.ts +14 -0
- package/dist/components/epl/EplMethod.vue_vue_type_script_setup_true_lang.js +100 -0
- package/dist/components/epl/EplResource.js +7 -0
- package/dist/components/epl/EplResource.vue.d.ts +15 -0
- package/dist/components/epl/EplResource.vue_vue_type_script_setup_true_lang.js +204 -0
- package/dist/components/epl/EplTree.js +7 -0
- package/dist/components/epl/EplTree.vue.d.ts +27 -0
- package/dist/components/epl/EplTree.vue_vue_type_script_setup_true_lang.js +123 -0
- package/dist/components/epl/EplVarTable.js +7 -0
- package/dist/components/epl/EplVarTable.vue.d.ts +21 -0
- package/dist/components/epl/EplVarTable.vue_vue_type_script_setup_true_lang.js +60 -0
- package/dist/components/epl/docTypes.d.ts +12 -0
- package/dist/components/epl/numbering.d.ts +21 -0
- package/dist/components/epl/numbering.js +14 -0
- package/dist/components/icons/Icon.js +7 -0
- package/dist/components/icons/Icon.vue.d.ts +14 -0
- package/dist/components/icons/Icon.vue_vue_type_script_setup_true_lang.js +33 -0
- package/dist/components/icons/iconPaths.d.ts +60 -0
- package/dist/components/icons/iconPaths.js +54 -0
- package/dist/components/optionalViewer.d.ts +14 -0
- package/dist/components/optionalViewer.js +37 -0
- package/dist/components/ui/ClampBlock.d.ts +82 -0
- package/dist/components/ui/ClampBlock.js +63 -0
- package/dist/composables/useFileViewer.d.ts +428 -0
- package/dist/composables/useFileViewer.js +27 -0
- package/dist/composables/useLightbox.d.ts +33 -0
- package/dist/composables/useLightbox.js +17 -0
- package/dist/composables/useLogRules.d.ts +47 -0
- package/dist/composables/useLogRules.js +74 -0
- package/dist/index.d.ts +44 -0
- package/dist/index.js +30 -0
- package/dist/lib/aes.d.ts +25 -0
- package/dist/lib/aes.js +99 -0
- package/dist/lib/appx.d.ts +66 -0
- package/dist/lib/appx.js +112 -0
- package/dist/lib/archive.d.ts +29 -0
- package/dist/lib/asn1.d.ts +47 -0
- package/dist/lib/asn1.js +122 -0
- package/dist/lib/binobj.d.ts +69 -0
- package/dist/lib/binobj.js +430 -0
- package/dist/lib/brotli.d.ts +14 -0
- package/dist/lib/brotli.js +16 -0
- package/dist/lib/bzip2.d.ts +14 -0
- package/dist/lib/bzip2.js +161 -0
- package/dist/lib/classfile.d.ts +72 -0
- package/dist/lib/classfile.js +210 -0
- package/dist/lib/codePreview.d.ts +22 -0
- package/dist/lib/codePreview.js +27 -0
- package/dist/lib/codefold.d.ts +14 -0
- package/dist/lib/codefold.js +30 -0
- package/dist/lib/codeformat.d.ts +21 -0
- package/dist/lib/codeformat.js +130 -0
- package/dist/lib/csv.d.ts +19 -0
- package/dist/lib/csv.js +74 -0
- package/dist/lib/des.d.ts +17 -0
- package/dist/lib/des.js +928 -0
- package/dist/lib/diagram.d.ts +5 -0
- package/dist/lib/diagram.js +479 -0
- package/dist/lib/dicom.d.ts +69 -0
- package/dist/lib/dicom.js +442 -0
- package/dist/lib/dicomCodecs.d.ts +28 -0
- package/dist/lib/dicomCodecs.js +156 -0
- package/dist/lib/dicomRender.d.ts +46 -0
- package/dist/lib/dicomRender.js +114 -0
- package/dist/lib/dxf.d.ts +86 -0
- package/dist/lib/dxf.js +399 -0
- package/dist/lib/eml.d.ts +40 -0
- package/dist/lib/eml.js +46 -0
- package/dist/lib/encoding.d.ts +28 -0
- package/dist/lib/encoding.js +44 -0
- package/dist/lib/epl/code/ast.d.ts +150 -0
- package/dist/lib/epl/code/codeDataParser.d.ts +3 -0
- package/dist/lib/epl/code/codeDataParser.js +330 -0
- package/dist/lib/epl/code/codeLines.d.ts +20 -0
- package/dist/lib/epl/code/codeLines.js +191 -0
- package/dist/lib/epl/code/structures.d.ts +86 -0
- package/dist/lib/epl/code/textCode.d.ts +29 -0
- package/dist/lib/epl/code/textCode.js +150 -0
- package/dist/lib/epl/code/variable.d.ts +25 -0
- package/dist/lib/epl/eplDocument.d.ts +21 -0
- package/dist/lib/epl/eplDocument.js +36 -0
- package/dist/lib/epl/imageList.d.ts +28 -0
- package/dist/lib/epl/imageList.js +66 -0
- package/dist/lib/epl/index.d.ts +53 -0
- package/dist/lib/epl/index.js +45 -0
- package/dist/lib/epl/io/binaryReader.d.ts +56 -0
- package/dist/lib/epl/io/binaryReader.js +119 -0
- package/dist/lib/epl/io/encoding.d.ts +16 -0
- package/dist/lib/epl/io/encoding.js +27 -0
- package/dist/lib/epl/model/eplSystemId.d.ts +64 -0
- package/dist/lib/epl/model/eplSystemId.js +16 -0
- package/dist/lib/epl/model/section.d.ts +46 -0
- package/dist/lib/epl/names/eplLibData.js +39 -0
- package/dist/lib/epl/names/idToNameMap.d.ts +33 -0
- package/dist/lib/epl/names/idToNameMap.js +130 -0
- package/dist/lib/epl/names/libNameProvider.d.ts +15 -0
- package/dist/lib/epl/names/libNameProvider.js +18 -0
- package/dist/lib/epl/program.d.ts +120 -0
- package/dist/lib/epl/program.js +134 -0
- package/dist/lib/epl/projectFileReader.d.ts +23 -0
- package/dist/lib/epl/projectFileReader.js +65 -0
- package/dist/lib/epl/sections/code.d.ts +20 -0
- package/dist/lib/epl/sections/esystemInfo.d.ts +14 -0
- package/dist/lib/epl/sections/losable.d.ts +11 -0
- package/dist/lib/epl/sections/projectConfig.d.ts +23 -0
- package/dist/lib/epl/sections/resource.d.ts +57 -0
- package/dist/lib/fb2.d.ts +14 -0
- package/dist/lib/fb2.js +62 -0
- package/dist/lib/fileType.d.ts +315 -0
- package/dist/lib/fileType.js +800 -0
- package/dist/lib/fonts.d.ts +8 -0
- package/dist/lib/fonts.js +4 -0
- package/dist/lib/format.d.ts +16 -0
- package/dist/lib/format.js +38 -0
- package/dist/lib/frontmatter.d.ts +13 -0
- package/dist/lib/frontmatter.js +23 -0
- package/dist/lib/geo.d.ts +30 -0
- package/dist/lib/geo.js +235 -0
- package/dist/lib/har.d.ts +171 -0
- package/dist/lib/har.js +397 -0
- package/dist/lib/highlight.d.ts +18 -0
- package/dist/lib/highlight.js +34 -0
- package/dist/lib/highlightLangs.d.ts +15 -0
- package/dist/lib/highlightLangs.js +93 -0
- package/dist/lib/hprof.d.ts +211 -0
- package/dist/lib/hprof.js +709 -0
- package/dist/lib/ipynb.d.ts +48 -0
- package/dist/lib/ipynb.js +130 -0
- package/dist/lib/jks.d.ts +86 -0
- package/dist/lib/jks.js +167 -0
- package/dist/lib/jsonl.d.ts +29 -0
- package/dist/lib/jsonl.js +24 -0
- package/dist/lib/lrc.d.ts +32 -0
- package/dist/lib/lrc.js +84 -0
- package/dist/lib/lzma.d.ts +70 -0
- package/dist/lib/lzma.js +204 -0
- package/dist/lib/markdown/blocks.d.ts +9 -0
- package/dist/lib/markdown/blocks.js +221 -0
- package/dist/lib/markdown/index.d.ts +3 -0
- package/dist/lib/markdown/inline.d.ts +33 -0
- package/dist/lib/markdown/inline.js +84 -0
- package/dist/lib/markdown/math.d.ts +5 -0
- package/dist/lib/markdown/math.js +25 -0
- package/dist/lib/markdown/segmentize.d.ts +11 -0
- package/dist/lib/markdown/segmentize.js +28 -0
- package/dist/lib/markdown/styles.d.ts +26 -0
- package/dist/lib/markdown/styles.js +135 -0
- package/dist/lib/mht.d.ts +51 -0
- package/dist/lib/mht.js +122 -0
- package/dist/lib/midi.d.ts +28 -0
- package/dist/lib/midi.js +84 -0
- package/dist/lib/mime.d.ts +82 -0
- package/dist/lib/mime.js +151 -0
- package/dist/lib/mindmap.d.ts +51 -0
- package/dist/lib/mindmap.js +113 -0
- package/dist/lib/mobi.d.ts +15 -0
- package/dist/lib/mobi.js +68 -0
- package/dist/lib/msi.d.ts +50 -0
- package/dist/lib/msi.js +332 -0
- package/dist/lib/optionalDep.d.ts +26 -0
- package/dist/lib/optionalDep.js +20 -0
- package/dist/lib/pkcs12.d.ts +56 -0
- package/dist/lib/pkcs12.js +356 -0
- package/dist/lib/qmc.d.ts +50 -0
- package/dist/lib/qmc.js +213 -0
- package/dist/lib/rar.d.ts +16 -0
- package/dist/lib/rar.js +40 -0
- package/dist/lib/rawPreview.d.ts +12 -0
- package/dist/lib/rawPreview.js +54 -0
- package/dist/lib/rc2.d.ts +12 -0
- package/dist/lib/rc2.js +298 -0
- package/dist/lib/resolveInput.d.ts +22 -0
- package/dist/lib/resolveInput.js +55 -0
- package/dist/lib/rtf.d.ts +53 -0
- package/dist/lib/rtf.js +413 -0
- package/dist/lib/sevenZip.d.ts +82 -0
- package/dist/lib/sevenZip.js +395 -0
- package/dist/lib/sha1.d.ts +24 -0
- package/dist/lib/sha1.js +53 -0
- package/dist/lib/sha256.d.ts +21 -0
- package/dist/lib/sha256.js +119 -0
- package/dist/lib/speechAudio.d.ts +36 -0
- package/dist/lib/speechAudio.js +85 -0
- package/dist/lib/sqlite.d.ts +38 -0
- package/dist/lib/sqlite.js +104 -0
- package/dist/lib/subtitle.d.ts +26 -0
- package/dist/lib/subtitle.js +99 -0
- package/dist/lib/tarball.d.ts +20 -0
- package/dist/lib/tarball.js +248 -0
- package/dist/lib/viewerFormats.d.ts +35 -0
- package/dist/lib/viewerFormats.js +83 -0
- package/dist/lib/viewerKind.d.ts +36 -0
- package/dist/lib/viewerKind.js +233 -0
- package/dist/lib/x509.d.ts +68 -0
- package/dist/lib/x509.js +267 -0
- package/dist/lib/xlsx.d.ts +55 -0
- package/dist/lib/xlsx.js +321 -0
- package/dist/lib/xlsxCharts.d.ts +34 -0
- package/dist/lib/xlsxCharts.js +152 -0
- package/dist/lib/xmind.d.ts +6 -0
- package/dist/lib/xmind.js +124 -0
- package/dist/lib/zip.d.ts +56 -0
- package/dist/lib/zip.js +169 -0
- package/dist/style.css +2 -0
- package/dist/types.d.ts +42 -0
- package/package.json +128 -0
package/dist/lib/fb2.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
//#region src/lib/fb2.ts
|
|
2
|
+
var e = "http://www.w3.org/1999/xlink";
|
|
3
|
+
function t(e) {
|
|
4
|
+
return e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
5
|
+
}
|
|
6
|
+
function n(e) {
|
|
7
|
+
let t = /* @__PURE__ */ new Map();
|
|
8
|
+
for (let n of Array.from(e.getElementsByTagName("binary"))) {
|
|
9
|
+
let e = n.getAttribute("id");
|
|
10
|
+
if (!e) continue;
|
|
11
|
+
let r = n.getAttribute("content-type") || "image/jpeg", i = (n.textContent || "").replace(/\s+/g, "");
|
|
12
|
+
i && t.set(e, `data:${r};base64,${i}`);
|
|
13
|
+
}
|
|
14
|
+
return t;
|
|
15
|
+
}
|
|
16
|
+
function r(t) {
|
|
17
|
+
return t.getAttributeNS(e, "href") || t.getAttribute("xlink:href") || t.getAttribute("l:href") || t.getAttribute("href") || "";
|
|
18
|
+
}
|
|
19
|
+
function i(e, n) {
|
|
20
|
+
if (e.nodeType === 3) return t(e.textContent || "");
|
|
21
|
+
if (e.nodeType !== 1) return "";
|
|
22
|
+
let a = e, o = () => Array.from(a.childNodes).map((e) => i(e, n)).join("");
|
|
23
|
+
switch (a.tagName.toLowerCase()) {
|
|
24
|
+
case "p": return `<p>${o()}</p>`;
|
|
25
|
+
case "empty-line": return "<br>";
|
|
26
|
+
case "emphasis": return `<em>${o()}</em>`;
|
|
27
|
+
case "strong": return `<strong>${o()}</strong>`;
|
|
28
|
+
case "strikethrough": return `<s>${o()}</s>`;
|
|
29
|
+
case "sub": return `<sub>${o()}</sub>`;
|
|
30
|
+
case "sup": return `<sup>${o()}</sup>`;
|
|
31
|
+
case "code": return `<code>${o()}</code>`;
|
|
32
|
+
case "title": return `<header class="fb2-title">${o()}</header>`;
|
|
33
|
+
case "subtitle": return `<p class="fb2-subtitle">${o()}</p>`;
|
|
34
|
+
case "section": return `<section>${o()}</section>`;
|
|
35
|
+
case "epigraph": return `<blockquote class="fb2-epigraph">${o()}</blockquote>`;
|
|
36
|
+
case "cite": return `<blockquote>${o()}</blockquote>`;
|
|
37
|
+
case "poem": return `<div class="fb2-poem">${o()}</div>`;
|
|
38
|
+
case "stanza": return `<div class="fb2-stanza">${o()}</div>`;
|
|
39
|
+
case "v": return `<p class="fb2-v">${o()}</p>`;
|
|
40
|
+
case "text-author": return `<p class="fb2-author">${o()}</p>`;
|
|
41
|
+
case "a": return `<span class="fb2-link">${o()}</span>`;
|
|
42
|
+
case "image": {
|
|
43
|
+
let e = n.get(r(a).replace(/^#/, ""));
|
|
44
|
+
return e ? `<p class="fb2-img"><img src="${e}" alt=""></p>` : "";
|
|
45
|
+
}
|
|
46
|
+
default: return o();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
var a = "body{margin:0;padding:24px 28px 80px;max-width:46rem;margin-inline:auto;font:16px/1.7 Georgia,'Source Serif 4',serif;color:#1a1a1a;background:#fff;-webkit-text-size-adjust:100%}img{max-width:100%;height:auto}.fb2-title{margin:1.6em 0 1em;font-weight:700;font-size:1.3em;line-height:1.3}.fb2-subtitle{font-weight:600;margin:1.2em 0 .6em}.fb2-epigraph,blockquote{margin:1em 2em;color:#555;font-style:italic}.fb2-poem{margin:1em 1.5em}.fb2-v{margin:0}.fb2-author{text-align:right;font-style:italic}.fb2-img{text-align:center}p{margin:0 0 .9em;text-indent:1.4em}.fb2-title p,.fb2-img,.fb2-v{text-indent:0}";
|
|
50
|
+
function o(e) {
|
|
51
|
+
let t = e.charCodeAt(0) === 65279 ? e.slice(1) : e, r = new DOMParser().parseFromString(t, "application/xml");
|
|
52
|
+
if (r.getElementsByTagName("parsererror").length) throw Error("FB2 XML 解析失败");
|
|
53
|
+
let o = n(r), s = Array.from(r.getElementsByTagName("body"));
|
|
54
|
+
if (!s.length) throw Error("FB2 缺少 <body>");
|
|
55
|
+
let c = s.map((e) => i(e, o)).join("\n");
|
|
56
|
+
return {
|
|
57
|
+
title: (r.getElementsByTagName("book-title")[0]?.textContent || "").trim(),
|
|
58
|
+
html: `<!doctype html><html><head><meta charset="utf-8"><meta http-equiv="Content-Security-Policy" content="script-src 'none'; object-src 'none'; base-uri 'none'; form-action 'none'"><meta name="viewport" content="width=device-width,initial-scale=1"><style>${a}</style></head><body>${c}</body></html>`
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//#endregion
|
|
62
|
+
export { o as parseFb2 };
|
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File-type detection for the conversation file UIs.
|
|
3
|
+
*
|
|
4
|
+
* The proxy's stored `content_type` is unreliable (often `application/octet-stream`), so we never
|
|
5
|
+
* trust it. Instead we prefer the share JSON's own `mime_type` (present on delivered `present_files`),
|
|
6
|
+
* and fall back to the filename extension — which is all we have for user uploads / intermediate files.
|
|
7
|
+
*
|
|
8
|
+
* Two questions this answers:
|
|
9
|
+
* - {@link isTextFile}: can we open it in the side viewer? (non-text files are download-only)
|
|
10
|
+
* - {@link hljsLang}: which highlight.js language to colorize with ('' = plain, no highlighting)
|
|
11
|
+
*/
|
|
12
|
+
/** Lowercased file extension without the dot, or '' if the name has none. */
|
|
13
|
+
export declare function fileExt(name: string): string;
|
|
14
|
+
/** Can this file be opened in the side viewer? Prefer `mime`, fall back to the extension. */
|
|
15
|
+
export declare function isTextFile(name: string, mime?: string | null): boolean;
|
|
16
|
+
export declare const LARGE_TEXT_BYTES: number;
|
|
17
|
+
/**
|
|
18
|
+
* Should this open in the side viewer's streaming log viewer (virtual-scrolled, see LogViewer.vue) rather
|
|
19
|
+
* than the normal highlighted source view? True for any `.log` (logs benefit from the line gutter + search),
|
|
20
|
+
* and for any LARGE text file (>= {@link LARGE_TEXT_BYTES}) so big files don't freeze. Consulted in FileChip
|
|
21
|
+
* BEFORE the generic text route. `size` is the manifest byte size when known (0/undefined ⇒ treat as small).
|
|
22
|
+
*/
|
|
23
|
+
export declare function isLogFile(name: string, mime?: string | null, size?: number | null): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Is this a CSV / TSV table (`.csv`/`.tsv`)? Such files open in the side viewer's table preview, which parses
|
|
26
|
+
* the rows in-browser (see lib/csv.ts + CsvViewer.vue) with full RFC 4180 quote handling and a render/source
|
|
27
|
+
* toggle. Prefer `mime`, fall back to the extension; a concrete non-text media mime rules it out (`.csv` is
|
|
28
|
+
* often served as text/plain or octet-stream, so the extension is the reliable signal).
|
|
29
|
+
*/
|
|
30
|
+
export declare function isCsvFile(name: string, mime?: string | null): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Is this a JSON Lines / NDJSON file (`.jsonl` / `.ndjson`)? Such files open in the side viewer's record list,
|
|
33
|
+
* which parses each line independently (see lib/jsonl.ts + JsonlViewer.vue) — a truncated one-line preview per
|
|
34
|
+
* record, click to expand the pretty-printed value, with a render/source toggle. Prefer `mime`, fall back to
|
|
35
|
+
* the extension; a concrete non-jsonl media mime rules it out.
|
|
36
|
+
*/
|
|
37
|
+
export declare function isJsonlFile(name: string, mime?: string | null): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Is this a ZIP archive (incl. .jar/.war/.ear/.apk/.aar)? Such files open in the side viewer's archive
|
|
40
|
+
* browser, which decompresses them in-browser and lists their contents. Prefer `mime`, fall back to the
|
|
41
|
+
* extension (same precedence as {@link isTextFile}); a concrete non-zip mime settles it, blank/octet-stream
|
|
42
|
+
* defers to the extension.
|
|
43
|
+
*/
|
|
44
|
+
export declare function isZipFile(name: string, mime?: string | null): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Is this a 7z archive? Such files open in the side viewer's 7z browser, which decompresses them
|
|
47
|
+
* in-browser (bundled LZMA decoder — browsers have no native one) and lists their contents. Prefer
|
|
48
|
+
* `mime`, fall back to the extension (same precedence as {@link isZipFile}).
|
|
49
|
+
*/
|
|
50
|
+
export declare function isSevenZipFile(name: string, mime?: string | null): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Is this a tar-family archive — `.tar`, a gzip/xz/bzip2/brotli wrapper (`.tar.gz`/`.tgz`/`.tar.xz`/`.txz`/
|
|
53
|
+
* `.tar.bz2`/`.tbz2`/`.tar.br`), or a lone compressed file (`.gz`/`.xz`/`.bz2`/`.br`)? Such files open in the
|
|
54
|
+
* side viewer's archive browser, which decompresses them in-browser (native gzip + the project's LZMA2/bzip2
|
|
55
|
+
* decoders + a WASM Brotli decoder, see lib/tarball.ts) and lists their contents. Prefer `mime`, fall back to
|
|
56
|
+
* the extension (same precedence as {@link isZipFile}); a concrete non-archive media/text mime rules it out.
|
|
57
|
+
*/
|
|
58
|
+
export declare function isTarballFile(name: string, mime?: string | null): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Is this a RAR archive? Such files open in the side viewer's archive browser, which decompresses them
|
|
61
|
+
* in-browser via the WASM unrar port (see lib/rar.ts) and lists their contents. Prefer `mime`, fall back to
|
|
62
|
+
* the extension (same precedence as {@link isZipFile}).
|
|
63
|
+
*/
|
|
64
|
+
export declare function isRarFile(name: string, mime?: string | null): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Is this a DICOM (.dcm) medical image? Such files open in the side viewer's DICOM viewer, which parses +
|
|
67
|
+
* decodes them in-browser (dicom-parser + bundled WASM codecs for JPEG2000/JPEG-LS, see lib/dicom*) and
|
|
68
|
+
* renders to a canvas with window/level. Prefer `mime`, fall back to the extension; a concrete non-DICOM
|
|
69
|
+
* media/text mime rules it out, blank/octet-stream defers to the extension.
|
|
70
|
+
*/
|
|
71
|
+
export declare function isDicomFile(name: string, mime?: string | null): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Is this a raster image we can preview inline (a hover card on its file chip, or full-size in the lightbox)?
|
|
74
|
+
* `<img src=download-url>` works despite the endpoint's octet-stream/attachment/nosniff (those don't bind
|
|
75
|
+
* `<img>` subresources). SVG is excluded (it goes to the side viewer). Prefer `mime`, fall back to extension.
|
|
76
|
+
*/
|
|
77
|
+
export declare function isImageFile(name: string, mime?: string | null): boolean;
|
|
78
|
+
export type RasterKind = 'tiff' | 'psd' | 'heic' | 'raw';
|
|
79
|
+
/**
|
|
80
|
+
* Which decoding image viewer (if any) should open this file? Returns the format kind for TIFF / PSD /
|
|
81
|
+
* HEIC / camera-RAW (so RasterViewer can pick its decoder), or null. Prefer `mime`, fall back to the
|
|
82
|
+
* extension. Must be consulted in FileChip BEFORE {@link isImageFile} — a `.tiff` carries `image/tiff`,
|
|
83
|
+
* which would otherwise send it to the lightbox where a plain <img> can't decode it.
|
|
84
|
+
*/
|
|
85
|
+
export declare function rasterImageKind(name: string, mime?: string | null): RasterKind | null;
|
|
86
|
+
export type EbookKind = 'epub' | 'fb2' | 'mobi' | 'djvu';
|
|
87
|
+
/**
|
|
88
|
+
* Which e-book reader (if any) should open this file — 'epub' / 'fb2' / 'mobi' (also .azw3/.azw/.prc) /
|
|
89
|
+
* 'djvu', or null. Prefer `mime`, fall back to the extension. Consulted in FileChip BEFORE the generic
|
|
90
|
+
* text route (FB2 is XML) and BEFORE {@link isImageFile} (DjVu's mime is image/vnd.djvu).
|
|
91
|
+
*/
|
|
92
|
+
export declare function ebookKind(name: string, mime?: string | null): EbookKind | null;
|
|
93
|
+
/**
|
|
94
|
+
* Is this an SVG? It opens in the side viewer with a render/source toggle (like HTML) — the render view shows
|
|
95
|
+
* the picture, the source view its XML. Prefer `mime`, fall back to the extension.
|
|
96
|
+
*/
|
|
97
|
+
export declare function isSvgFile(name: string, mime?: string | null): boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Is this a video we can play in the modal preview? Unlike images, a direct `<video src=download-url>` can't
|
|
100
|
+
* decode (octet-stream + nosniff), so the lightbox fetches the bytes and plays them from a typed blob. Prefer
|
|
101
|
+
* `mime`, fall back to the extension.
|
|
102
|
+
*/
|
|
103
|
+
export declare function isVideoFile(name: string, mime?: string | null): boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Is this an HTML document? Such files get a render/source toggle in the side viewer — the rendered
|
|
106
|
+
* view runs the markup in a SANDBOXED iframe (see FileViewerPanel). Prefer `mime`, fall back to the
|
|
107
|
+
* extension (same precedence as {@link isTextFile}); never trust an octet-stream/blank mime.
|
|
108
|
+
*/
|
|
109
|
+
export declare function isHtmlFile(name: string, mime?: string | null): boolean;
|
|
110
|
+
/**
|
|
111
|
+
* Is this a native binary object — a PE (`.exe`/`.dll`/…) or an ELF (`.so`, incl. versioned `libfoo.so.1.2.3`,
|
|
112
|
+
* plus `.elf`/`.ko`/`.o`)? Such files open in the side viewer's symbol browser, which parses them in-browser
|
|
113
|
+
* (see lib/binobj.ts) — listing function symbols and, for PE, executable metadata (version info + icon).
|
|
114
|
+
* Detection is extension-driven: the stored mime is unreliable (usually `application/octet-stream`), so we only
|
|
115
|
+
* rule it out for clearly-textual / media mimes.
|
|
116
|
+
*/
|
|
117
|
+
export declare function isBinaryObjFile(name: string, mime?: string | null): boolean;
|
|
118
|
+
/**
|
|
119
|
+
* Is this an e-language `.e` / `.ec` project file? Such files open in the side viewer's e-language viewer,
|
|
120
|
+
* which parses the binary section format and decompiles each method back to readable 易语言 source text
|
|
121
|
+
* (hand-rolled port of OpenEpl/EProjectFile, see lib/epl). Extension-driven; a concrete text/media mime rules
|
|
122
|
+
* it out. The viewer validates the file magic and shows a friendly message for encrypted / non-EPL bytes.
|
|
123
|
+
*/
|
|
124
|
+
export declare function isEplFile(name: string, mime?: string | null): boolean;
|
|
125
|
+
/**
|
|
126
|
+
* Is this a Java `.class` bytecode file? Such files open in the side viewer's class viewer, which parses the
|
|
127
|
+
* structure in-browser (see lib/classfile.ts) — the class signature plus its fields and methods (a lightweight
|
|
128
|
+
* `javap`; no decompilation of method bodies). The viewer validates the 0xCAFEBABE magic and shows a friendly
|
|
129
|
+
* message otherwise. Extension-driven (the stored mime is unreliable); a concrete text/media mime rules it out.
|
|
130
|
+
*/
|
|
131
|
+
export declare function isJavaClassFile(name: string, mime?: string | null): boolean;
|
|
132
|
+
/**
|
|
133
|
+
* Is this a JVM heap dump (`.hprof`)? Such files open in the side viewer's HPROF viewer, which STREAM-parses the
|
|
134
|
+
* dump in-browser (see lib/hprof.ts) — a class histogram (instances + shallow size) plus drill-in to one class's
|
|
135
|
+
* objects with decoded fields, paginated + filterable so a multi-GB dump stays memory-bounded. Extension-driven
|
|
136
|
+
* (the stored mime is unreliable); a concrete text/media mime rules it out.
|
|
137
|
+
*/
|
|
138
|
+
export declare function isHprofFile(name: string, mime?: string | null): boolean;
|
|
139
|
+
/**
|
|
140
|
+
* Is this a Windows Installer `.msi` (or `.msp`/`.msm`)? Such files open in the side viewer's MSI viewer,
|
|
141
|
+
* which parses the OLE compound-file structure in-browser (see lib/msi.ts) — the product name/version/codes
|
|
142
|
+
* from the Property table plus the SummaryInformation. Prefer `mime`, fall back to the extension; a concrete
|
|
143
|
+
* text/media mime rules it out.
|
|
144
|
+
*/
|
|
145
|
+
export declare function isMsiFile(name: string, mime?: string | null): boolean;
|
|
146
|
+
/**
|
|
147
|
+
* Is this a Windows app package (`.appx`/`.msix`/`.appxbundle`/`.msixbundle`)? Such files open in the side
|
|
148
|
+
* viewer's APPX viewer, which unzips the manifest in-browser (see lib/appx.ts) and shows the package identity,
|
|
149
|
+
* dependencies, capabilities and applications. Prefer `mime`, fall back to the extension; a concrete text/media
|
|
150
|
+
* mime rules it out. Must beat {@link isZipFile} (an APPX is a zip container).
|
|
151
|
+
*/
|
|
152
|
+
export declare function isAppxFile(name: string, mime?: string | null): boolean;
|
|
153
|
+
/**
|
|
154
|
+
* Is this a Word `.docx` document? Such files open in the side viewer's Word viewer, which unpacks +
|
|
155
|
+
* renders the OOXML to HTML in-browser (docx-preview, see DocxViewer.vue) — a paginated, paper-like
|
|
156
|
+
* preview. Prefer `mime`, fall back to the extension; a concrete non-docx media/text mime rules it out,
|
|
157
|
+
* blank/octet-stream defers to the extension. Legacy `.doc` is deliberately NOT matched (unsupported).
|
|
158
|
+
*/
|
|
159
|
+
export declare function isDocxFile(name: string, mime?: string | null): boolean;
|
|
160
|
+
/**
|
|
161
|
+
* Is this an Excel `.xlsx` / `.xlsm` spreadsheet? Such files open in the side viewer's spreadsheet viewer,
|
|
162
|
+
* which unpacks + renders the workbook to HTML tables in-browser (exceljs, see XlsxViewer.vue) — one table
|
|
163
|
+
* per sheet with a tab bar. Prefer `mime`, fall back to the extension; a concrete non-xlsx media/text mime
|
|
164
|
+
* rules it out, blank/octet-stream defers to the extension. Legacy `.xls` is deliberately NOT matched.
|
|
165
|
+
*/
|
|
166
|
+
export declare function isXlsxFile(name: string, mime?: string | null): boolean;
|
|
167
|
+
/**
|
|
168
|
+
* Is this a PowerPoint `.pptx` / `.pptm` / `.ppsx` presentation? Such files open in the side viewer's slide
|
|
169
|
+
* viewer, which unpacks + renders the deck to HTML/SVG in-browser (@aiden0z/pptx-renderer, see PptxViewer.vue)
|
|
170
|
+
* — a scrollable list of slides. Prefer `mime`, fall back to the extension; a concrete non-pptx media/text
|
|
171
|
+
* mime rules it out, blank/octet-stream defers to the extension. Legacy `.ppt` is deliberately NOT matched.
|
|
172
|
+
*/
|
|
173
|
+
export declare function isPptxFile(name: string, mime?: string | null): boolean;
|
|
174
|
+
/**
|
|
175
|
+
* Is this a Rich Text Format `.rtf` document? Such files open in the side viewer's rich-text viewer, which
|
|
176
|
+
* interprets the RTF in-browser (hand-rolled, see lib/rtf.ts + RtfViewer.vue) — bold/italic/underline, colors,
|
|
177
|
+
* fonts, alignment and unicode rendered onto a paper-like sheet. Prefer `mime`, fall back to the extension; a
|
|
178
|
+
* concrete non-rtf media mime rules it out, blank/octet-stream/text defers to the extension (an .rtf is often
|
|
179
|
+
* mislabeled text/plain). Must be consulted BEFORE the generic text route so it renders, not shows raw markup.
|
|
180
|
+
*/
|
|
181
|
+
export declare function isRtfFile(name: string, mime?: string | null): boolean;
|
|
182
|
+
/**
|
|
183
|
+
* Is this a PDF document? Such files open in the side viewer's PDF viewer, which renders each page to a
|
|
184
|
+
* canvas in-browser (pdfjs-dist, see PdfViewer.vue) — a vertically scrollable list of pages. Prefer `mime`,
|
|
185
|
+
* fall back to the extension; a concrete non-pdf media/text mime rules it out, blank/octet-stream defers to
|
|
186
|
+
* the extension.
|
|
187
|
+
*/
|
|
188
|
+
export declare function isPdfFile(name: string, mime?: string | null): boolean;
|
|
189
|
+
/**
|
|
190
|
+
* Is this an outline / mind-map file — OPML (.opml) or FreeMind / Freeplane (.mm)? Such files open in the side
|
|
191
|
+
* viewer with a render/source toggle: render draws an interactive mind map (see MindMapView.vue), source shows
|
|
192
|
+
* the XML. Detection is extension-driven (the stored mime is unreliable); a concrete media mime rules it out.
|
|
193
|
+
* NOTE: `.mm` is also the Objective-C++ source extension — the panel additionally sniffs the loaded text
|
|
194
|
+
* (looksLikeMindMap) before rendering the diagram, so a non-mind-map `.mm` just reads as highlighted source.
|
|
195
|
+
*/
|
|
196
|
+
export declare function isMindMapFile(name: string, mime?: string | null): boolean;
|
|
197
|
+
/**
|
|
198
|
+
* Is this an XMind workbook (`.xmind`)? Such files open in the side viewer's XMind viewer, which unzips the
|
|
199
|
+
* `content.json` / `content.xml` in-browser (see lib/xmind.ts) and renders it as an interactive mind map (shared
|
|
200
|
+
* MindMapView). Prefer `mime`, fall back to the extension; a concrete media/text mime rules it out. Must beat
|
|
201
|
+
* {@link isZipFile} (an XMind is a zip container).
|
|
202
|
+
*/
|
|
203
|
+
export declare function isXmindFile(name: string, mime?: string | null): boolean;
|
|
204
|
+
/**
|
|
205
|
+
* Is this a DXF (`.dxf`) CAD drawing? Such files open in the side viewer's DXF viewer, which parses the ASCII
|
|
206
|
+
* DXF in-browser (see lib/dxf.ts) and draws its entities as an SVG (pan/zoom + layer toggles). Prefer `mime`,
|
|
207
|
+
* fall back to the extension; a concrete non-dxf media mime rules it out (a `.dxf` is often served text/plain
|
|
208
|
+
* or octet-stream, so the extension is the reliable signal).
|
|
209
|
+
*/
|
|
210
|
+
export declare function isDxfFile(name: string, mime?: string | null): boolean;
|
|
211
|
+
/**
|
|
212
|
+
* Is this an email `.eml` (RFC 822 / MIME) message? Such files open in the side viewer's email viewer, which
|
|
213
|
+
* parses the MIME tree in-browser (see lib/eml.ts + EmlViewer.vue) — a header card, the best body (HTML in a
|
|
214
|
+
* sandboxed iframe, plain-text fallback), and the attachments. Prefer `mime`, fall back to the extension; a
|
|
215
|
+
* concrete non-eml media mime rules it out, blank/octet-stream/text defers to the extension.
|
|
216
|
+
*/
|
|
217
|
+
export declare function isEmlFile(name: string, mime?: string | null): boolean;
|
|
218
|
+
/**
|
|
219
|
+
* Is this a web archive `.mht`/`.mhtml` (RFC 2557 MIME container)? Such files open in the side viewer's web-
|
|
220
|
+
* archive viewer, which parses the `multipart/related` container in-browser (see lib/mht.ts + MhtViewer.vue)
|
|
221
|
+
* and renders the saved page — resources rewritten to blob URLs — in a sandboxed iframe. Extension-driven (the
|
|
222
|
+
* stored mime is unreliable); the telltale container mimes (multipart/related, application/x-mimearchive)
|
|
223
|
+
* also confirm it.
|
|
224
|
+
*/
|
|
225
|
+
export declare function isMhtFile(name: string, mime?: string | null): boolean;
|
|
226
|
+
/**
|
|
227
|
+
* Is this a HAR (`.har`, HTTP Archive 1.2) capture? Such files open in the side viewer's HAR viewer, which
|
|
228
|
+
* parses the JSON archive in-browser (hand-rolled, see lib/har.ts + HarViewer.vue) — a filterable request
|
|
229
|
+
* list with per-request headers / query / cookies / bodies. Extension-driven (a .har is JSON, so the stored
|
|
230
|
+
* mime is usually application/json or octet-stream); a concrete non-har media mime rules it out. Must be
|
|
231
|
+
* checked BEFORE the generic text route (a .har served as application/json would otherwise read as JSON source).
|
|
232
|
+
*/
|
|
233
|
+
export declare function isHarFile(name: string, mime?: string | null): boolean;
|
|
234
|
+
/**
|
|
235
|
+
* Is this a SQLite database (`.sqlite`/`.db`/`.sqlite3`/…)? Such files open in the side viewer's SQLite viewer,
|
|
236
|
+
* which loads them with sql.js (WASM) in-browser (see lib/sqlite.ts + SqliteViewer.vue) — a table picker, a
|
|
237
|
+
* paginated data grid, and a SQL console. Prefer `mime`, fall back to the extension; a concrete textual/media
|
|
238
|
+
* mime rules it out (`.db` is a generic suffix, so a clearly-text mime means it isn't a database).
|
|
239
|
+
*/
|
|
240
|
+
export declare function isSqliteFile(name: string, mime?: string | null): boolean;
|
|
241
|
+
/**
|
|
242
|
+
* Is this a certificate / key file (`.pem`/`.crt`/`.cer`/`.der`/`.csr`/`.key`/`.p7b`/…)? Such files open
|
|
243
|
+
* in the side viewer's certificate visualizer, which parses the ASN.1 / X.509 in-browser (see lib/x509.ts +
|
|
244
|
+
* CertViewer.vue) — subject/issuer, validity, key + signature algorithms, SANs, fingerprint, and a raw ASN.1
|
|
245
|
+
* structure tree. Prefer `mime`, fall back to the extension; a concrete non-cert media/text mime rules it out.
|
|
246
|
+
* PKCS#12 (`.p12`/`.pfx`) is handled by the keystore viewer ({@link isJksFile}), not here.
|
|
247
|
+
*/
|
|
248
|
+
export declare function isCertFile(name: string, mime?: string | null): boolean;
|
|
249
|
+
/**
|
|
250
|
+
* Is this a keystore — Java JKS/JCEKS (`.jks`/`.keystore`/`.ks`/`.jceks`/`.truststore`) or PKCS#12 (`.p12`/
|
|
251
|
+
* `.pfx`)? Such files open in the side viewer's keystore viewer, which sniffs the format and parses it in-browser
|
|
252
|
+
* (see lib/jks.ts / lib/pkcs12.ts) — the entry inventory (aliases / kinds / dates), each entry's X.509 chain,
|
|
253
|
+
* and, with a password, store-integrity verification + private-key decryption. Prefer `mime`, fall back to the
|
|
254
|
+
* extension; a concrete text/media mime rules it out.
|
|
255
|
+
*/
|
|
256
|
+
export declare function isJksFile(name: string, mime?: string | null): boolean;
|
|
257
|
+
/**
|
|
258
|
+
* Is this a geodata file (`.geojson`/`.kml`/`.gpx`)? Such files open in the side viewer's map viewer, which
|
|
259
|
+
* parses the geometry in-browser (see lib/geo.ts + GeoViewer.vue) and draws it as an OFFLINE SVG map (no tile
|
|
260
|
+
* server) with pan/zoom and a render/source toggle. Prefer `mime`, fall back to the extension; a concrete
|
|
261
|
+
* non-geo media mime rules it out.
|
|
262
|
+
*/
|
|
263
|
+
export declare function isGeoFile(name: string, mime?: string | null): boolean;
|
|
264
|
+
/**
|
|
265
|
+
* Is this a subtitle / caption file (`.srt`/`.vtt`/`.ass`/`.ssa`)? Such files open in the side viewer's
|
|
266
|
+
* subtitle viewer, which parses the cues in-browser (see lib/subtitle.ts + SubtitleViewer.vue) and shows
|
|
267
|
+
* them as a timecoded transcript (with a render/source toggle). Prefer `mime`, fall back to the extension;
|
|
268
|
+
* a concrete non-subtitle media mime rules it out, blank/octet-stream/text defers to the extension.
|
|
269
|
+
*/
|
|
270
|
+
export declare function isSubtitleFile(name: string, mime?: string | null): boolean;
|
|
271
|
+
/**
|
|
272
|
+
* Is this a 3D model (`.stl`/`.obj`/`.ply`/`.glb`/`.gltf`)? Such files open in the side viewer's model viewer,
|
|
273
|
+
* which renders them with three.js in-browser (see ModelViewer.vue) — auto-framed, lit, with orbit controls.
|
|
274
|
+
* Prefer `mime` (`model/*`), fall back to the extension; a concrete text/image/audio/video mime rules it out.
|
|
275
|
+
*/
|
|
276
|
+
export declare function isModelFile(name: string, mime?: string | null): boolean;
|
|
277
|
+
/**
|
|
278
|
+
* Is this an audio file (mp3/wav/flac/ogg/m4a/aac/opus, a .mid/.midi, or an AMR/SILK voice clip)? Such files
|
|
279
|
+
* open in the side viewer's audio player, which fetches the bytes and plays them via a typed Blob URL (MIDI is
|
|
280
|
+
* visualized as a piano roll, not played; AMR/SILK are decoded to WAV in-browser first). Prefer `mime`
|
|
281
|
+
* (`audio/*`), fall back to the extension; a concrete text/image/video mime rules it out.
|
|
282
|
+
*/
|
|
283
|
+
export declare function isAudioFile(name: string, mime?: string | null): boolean;
|
|
284
|
+
/**
|
|
285
|
+
* Is this a Jupyter Notebook (`.ipynb`)? Such files open in the side viewer's notebook viewer, which parses
|
|
286
|
+
* the JSON in-browser (hand-rolled, see lib/ipynb.ts + NotebookViewer.vue) — markdown cells via the app's
|
|
287
|
+
* markdown engine, code cells highlighted, outputs (stream / image / rich HTML / error) inline. Extension-
|
|
288
|
+
* driven (a .ipynb is JSON, so the stored mime is usually application/json or octet-stream); a concrete
|
|
289
|
+
* non-notebook media mime rules it out.
|
|
290
|
+
*/
|
|
291
|
+
export declare function isNotebookFile(name: string, mime?: string | null): boolean;
|
|
292
|
+
/**
|
|
293
|
+
* Is this a font file (`.ttf`/`.otf`/`.woff`/`.woff2`)? Such files open in the side viewer's font specimen,
|
|
294
|
+
* which loads them with the native FontFace API in-browser (see FontViewer.vue) — an editable preview line,
|
|
295
|
+
* a size waterfall, and the glyph sets. Prefer `mime`, fall back to the extension; a concrete non-font
|
|
296
|
+
* media/text mime rules it out, blank/octet-stream defers to the extension.
|
|
297
|
+
*/
|
|
298
|
+
export declare function isFontFile(name: string, mime?: string | null): boolean;
|
|
299
|
+
/**
|
|
300
|
+
* Is this a QQ Music encrypted audio file (`.mflac`/`.mgg`/…)? Such files open in the side viewer's QMC
|
|
301
|
+
* player, which decrypts the bytes in-browser (see lib/qmc.ts) — recovering the embedded key, undoing the
|
|
302
|
+
* QMCv2 stream cipher, and playing the resulting FLAC/OGG/MP3 via a typed Blob (with a "download decrypted"
|
|
303
|
+
* action). Extension-driven (the stored mime is unreliable, usually octet-stream); a clearly textual/media
|
|
304
|
+
* mime rules it out.
|
|
305
|
+
*/
|
|
306
|
+
export declare function isQmcAudioFile(name: string, mime?: string | null): boolean;
|
|
307
|
+
/**
|
|
308
|
+
* Is this an LRC lyrics file (`.lrc`)? Such files open in the side viewer's lyrics viewer, which parses the
|
|
309
|
+
* timestamped lines in-browser (see lib/lrc.ts + LrcViewer.vue) and shows a synced lyric list. Extension-
|
|
310
|
+
* driven; a concrete non-text media mime rules it out. NOTE: deliberately routed BEFORE the generic text
|
|
311
|
+
* route (the viewer self-fetches so it can sniff GBK — a `.lrc` read as UTF-8 text would be mojibake).
|
|
312
|
+
*/
|
|
313
|
+
export declare function isLrcFile(name: string, mime?: string | null): boolean;
|
|
314
|
+
/** highlight.js language id for this file, or '' for plain text (no highlighting). */
|
|
315
|
+
export declare function hljsLang(name: string, mime?: string | null): string;
|