@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
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Streaming HPROF (JVM heap dump) parser — no dependency, no WASM, memory-bounded.
|
|
3
|
+
*
|
|
4
|
+
* An `.hprof` file is a header followed by self-describing top-level records; the big HEAP_DUMP /
|
|
5
|
+
* HEAP_DUMP_SEGMENT records hold an inner stream of sub-records (CLASS_DUMP / INSTANCE_DUMP / ARRAY_DUMP /
|
|
6
|
+
* GC roots) with NO length prefix, so those must be walked byte-exactly. Because a heap dump can be many GB,
|
|
7
|
+
* we never load the whole file into the JS heap:
|
|
8
|
+
*
|
|
9
|
+
* - {@link ByteReader} pulls the file in 8 MB chunks off a {@link Blob} (the browser keeps the Blob itself,
|
|
10
|
+
* possibly disk-backed); its `skip(n)` advances the cursor WITHOUT reading the skipped bytes into memory,
|
|
11
|
+
* so the field data / array elements a preview never needs are never materialized.
|
|
12
|
+
* - Pass A ({@link Hprof.parse}) makes ONE streaming sweep and keeps only *bounded* state: a per-class
|
|
13
|
+
* histogram (instances + shallow bytes), the class → name / super / instance-field layout tables, and the
|
|
14
|
+
* name string table. Nothing scales with the instance count.
|
|
15
|
+
* - Pass B ({@link Hprof.collect}) answers "show me the objects of THIS class" with a second streaming sweep
|
|
16
|
+
* that decodes only the target class's instances and collects at most {@link MAX_COLLECT} lightweight rows
|
|
17
|
+
* (id + shallow size + decoded fields), skipping everything else. Memory stays ∝ the cap, independent of
|
|
18
|
+
* how many instances the class actually has — the UI paginates the cap and, when a class overflows it,
|
|
19
|
+
* re-runs Pass B with a field/id filter so search still spans the WHOLE file (see HprofViewer.vue).
|
|
20
|
+
*
|
|
21
|
+
* Shallow size only (field/element bytes + a ~2-pointer object-header estimate); retained size / dominator
|
|
22
|
+
* trees need the full reference graph (a second indexing pass, à la Eclipse MAT) and are out of scope.
|
|
23
|
+
*
|
|
24
|
+
* The record layout follows the JDK HPROF "binary dump format" (agent header + 1.0.2 segmented heap dumps).
|
|
25
|
+
*/
|
|
26
|
+
/** Thrown when the bytes aren't a recognizable HPROF file, or the stream ends mid-record. */
|
|
27
|
+
export declare class HprofParseError extends Error {
|
|
28
|
+
constructor(message: string);
|
|
29
|
+
}
|
|
30
|
+
/** A resolved field slot in an instance's on-disk layout (this class's fields, then each superclass's). */
|
|
31
|
+
export interface HprofField {
|
|
32
|
+
name: string;
|
|
33
|
+
type: number;
|
|
34
|
+
}
|
|
35
|
+
/** One decoded field value of an instance. `kind` styles the display (a plain value, or an object reference). */
|
|
36
|
+
export interface HprofFieldValue {
|
|
37
|
+
name: string;
|
|
38
|
+
/** Display string: the primitive value, `'A'` for char, `null` / `#<id>` for object references. */
|
|
39
|
+
value: string;
|
|
40
|
+
kind: 'prim' | 'ref' | 'null';
|
|
41
|
+
/** For `kind==='ref'` (non-null): the bare target object id, so the UI can jump to / dereference it. */
|
|
42
|
+
refId?: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* A best-effort content preview of an array object (bounded — at most {@link MAX_ARRAY_PREVIEW} elements /
|
|
46
|
+
* {@link MAX_DEREF_BYTES} bytes are ever read). `char[]` / printable `byte[]` decode to `text`; `byte[]` also
|
|
47
|
+
* carries `hex`; numeric arrays and object arrays list their elements (object elements are `#<id>` references).
|
|
48
|
+
*/
|
|
49
|
+
export interface HprofArrayPreview {
|
|
50
|
+
/** Basic-type tag for a primitive array; undefined for an object array. */
|
|
51
|
+
elemType?: number;
|
|
52
|
+
/** Element class name for an object array (e.g. `java/lang/String`). */
|
|
53
|
+
elemClassName?: string;
|
|
54
|
+
/** True element count (the preview may be shorter). */
|
|
55
|
+
length: number;
|
|
56
|
+
/** Decoded text (`char[]` big-endian UTF-16, or a printable `byte[]` as Latin-1). */
|
|
57
|
+
text?: string;
|
|
58
|
+
/** First bytes of a `byte[]` as hex. */
|
|
59
|
+
hex?: string;
|
|
60
|
+
/** Element renderings: numeric values, or `#<id>` object references (each may carry its own `refId`). */
|
|
61
|
+
elements?: HprofFieldValue[];
|
|
62
|
+
/** True when the preview is a prefix of the whole array. */
|
|
63
|
+
truncated: boolean;
|
|
64
|
+
}
|
|
65
|
+
/** One object of a class in the drill-in list. */
|
|
66
|
+
export interface HprofInstance {
|
|
67
|
+
/** The instance's own object id (decimal string). */
|
|
68
|
+
id: string;
|
|
69
|
+
/** Shallow size estimate (field bytes + object-header estimate), matching the histogram. */
|
|
70
|
+
size: number;
|
|
71
|
+
/** Decoded instance fields in on-disk order; empty when the layout couldn't be resolved (or an array). */
|
|
72
|
+
fields: HprofFieldValue[];
|
|
73
|
+
/** Present when this "object" is actually an array — its bounded content preview. */
|
|
74
|
+
array?: HprofArrayPreview;
|
|
75
|
+
}
|
|
76
|
+
/** What {@link Hprof.collect} drills into: a real class, or an array pseudo-class keyed by element type/class. */
|
|
77
|
+
export type CollectTarget = {
|
|
78
|
+
kind: 'class';
|
|
79
|
+
classObjId: string;
|
|
80
|
+
} | {
|
|
81
|
+
kind: 'primArray';
|
|
82
|
+
elemType: number;
|
|
83
|
+
} | {
|
|
84
|
+
kind: 'objArray';
|
|
85
|
+
elemClassId: string;
|
|
86
|
+
};
|
|
87
|
+
/** A class (or array pseudo-class) row of the histogram. */
|
|
88
|
+
export interface HprofClassRow {
|
|
89
|
+
name: string;
|
|
90
|
+
count: number;
|
|
91
|
+
bytes: number;
|
|
92
|
+
/** Drill-in descriptor — present on every row (classes and arrays are both drillable). */
|
|
93
|
+
target?: CollectTarget;
|
|
94
|
+
}
|
|
95
|
+
/** The resolved view of a single object id, produced by {@link Hprof.resolveObjects} (jump / dereference). */
|
|
96
|
+
export type HprofObjectView = {
|
|
97
|
+
id: string;
|
|
98
|
+
kind: 'instance';
|
|
99
|
+
className: string;
|
|
100
|
+
size: number;
|
|
101
|
+
fields: HprofFieldValue[];
|
|
102
|
+
} | {
|
|
103
|
+
id: string;
|
|
104
|
+
kind: 'primArray';
|
|
105
|
+
className: string;
|
|
106
|
+
size: number;
|
|
107
|
+
length: number;
|
|
108
|
+
elemType: number;
|
|
109
|
+
/** Raw element bytes, capped at {@link MAX_DEREF_BYTES} — lets the caller decode with a String coder. */
|
|
110
|
+
rawBytes: Uint8Array;
|
|
111
|
+
array: HprofArrayPreview;
|
|
112
|
+
} | {
|
|
113
|
+
id: string;
|
|
114
|
+
kind: 'objArray';
|
|
115
|
+
className: string;
|
|
116
|
+
size: number;
|
|
117
|
+
length: number;
|
|
118
|
+
array: HprofArrayPreview;
|
|
119
|
+
} | {
|
|
120
|
+
id: string;
|
|
121
|
+
kind: 'class';
|
|
122
|
+
className: string;
|
|
123
|
+
};
|
|
124
|
+
export interface HprofSummary {
|
|
125
|
+
idSize: number;
|
|
126
|
+
/** Dump time — epoch milliseconds as a string (may exceed 2^53). */
|
|
127
|
+
timestamp: string;
|
|
128
|
+
fileSize: number;
|
|
129
|
+
recordCount: number;
|
|
130
|
+
classCount: number;
|
|
131
|
+
instanceCount: number;
|
|
132
|
+
gcRoots: number;
|
|
133
|
+
stringCount: number;
|
|
134
|
+
/** Total shallow bytes across all objects + arrays. */
|
|
135
|
+
heapBytes: number;
|
|
136
|
+
/** Histogram rows, sorted by shallow bytes descending. */
|
|
137
|
+
rows: HprofClassRow[];
|
|
138
|
+
}
|
|
139
|
+
/** Result of a per-class object collection (Pass B). */
|
|
140
|
+
export interface HprofCollectResult {
|
|
141
|
+
/** Collected rows (≤ {@link MAX_COLLECT}); when filtering, only matches. */
|
|
142
|
+
rows: HprofInstance[];
|
|
143
|
+
/** Total instances of the class in the file (or, when filtering, total matches). */
|
|
144
|
+
total: number;
|
|
145
|
+
/** True when `total` exceeded the cap, so `rows` is a prefix — the UI should offer whole-file search. */
|
|
146
|
+
truncated: boolean;
|
|
147
|
+
}
|
|
148
|
+
export interface HprofProgress {
|
|
149
|
+
(pos: number, size: number): void;
|
|
150
|
+
}
|
|
151
|
+
interface CollectOptions {
|
|
152
|
+
/** Max rows to keep (default {@link MAX_COLLECT}). */
|
|
153
|
+
limit?: number;
|
|
154
|
+
/** Keep only instances whose id or any decoded field value contains this (case-insensitive) text. */
|
|
155
|
+
filter?: string;
|
|
156
|
+
onProgress?: HprofProgress;
|
|
157
|
+
}
|
|
158
|
+
/** Cap on rows Pass B keeps in memory for one class — bounds memory regardless of the real instance count. */
|
|
159
|
+
export declare const MAX_COLLECT = 10000;
|
|
160
|
+
/** Cap on array elements listed in one preview — bounds memory when an array (or String) is huge. */
|
|
161
|
+
export declare const MAX_ARRAY_PREVIEW = 256;
|
|
162
|
+
/** Cap on raw bytes read per array object when dereferencing (String text / byte[] hex) — bounds memory. */
|
|
163
|
+
export declare const MAX_DEREF_BYTES = 8192;
|
|
164
|
+
/**
|
|
165
|
+
* Decode a `java.lang.String`'s backing array bytes to text. Legacy `char[]` (Java 8) is big-endian UTF-16;
|
|
166
|
+
* Java 9+ `byte[]` is LATIN1 when `coder===0`, else in-memory UTF-16 (little-endian). `coder` comes from the
|
|
167
|
+
* String instance's own decoded `coder` field (null for the char[] layout).
|
|
168
|
+
*/
|
|
169
|
+
export declare function decodeStringValue(raw: Uint8Array, elemType: number, coder: number | null): string;
|
|
170
|
+
/**
|
|
171
|
+
* A parsed heap dump. {@link parse} runs Pass A and returns this handle; {@link summary} feeds the histogram UI,
|
|
172
|
+
* and {@link collect} runs Pass B on demand for one class. The originating Blob + the bounded class/name tables
|
|
173
|
+
* are retained so drill-in needs no re-parse of Pass A.
|
|
174
|
+
*/
|
|
175
|
+
export declare class Hprof {
|
|
176
|
+
private readonly blob;
|
|
177
|
+
private readonly idSize;
|
|
178
|
+
private readonly classInfo;
|
|
179
|
+
private readonly classNames;
|
|
180
|
+
private readonly strings;
|
|
181
|
+
private readonly layoutCache;
|
|
182
|
+
readonly summary: HprofSummary;
|
|
183
|
+
private constructor();
|
|
184
|
+
/** Class name for an object id (falls back to a synthetic `<class#id>`). */
|
|
185
|
+
classNameOf(classObjId: string): string;
|
|
186
|
+
/**
|
|
187
|
+
* Resolve the on-disk instance-field layout: this class's declared fields, then each superclass's, up the
|
|
188
|
+
* chain (the order INSTANCE_DUMP lays field data out in). Cached. Returns null if a class in the chain has no
|
|
189
|
+
* CLASS_DUMP (can't compute the layout) — the caller then shows id + size only.
|
|
190
|
+
*/
|
|
191
|
+
private resolveLayout;
|
|
192
|
+
static parse(blob: Blob, onProgress?: HprofProgress): Promise<Hprof>;
|
|
193
|
+
/**
|
|
194
|
+
* Pass B: stream the file again and collect the objects of one drill-in target — a class (its instances), a
|
|
195
|
+
* primitive-array type, or an object-array type. Decodes only matching objects (skipping everything else),
|
|
196
|
+
* keeping at most `limit` rows; with `filter`, keeps only rows whose id / field value / array content contains
|
|
197
|
+
* the (lower-cased) text — so a target that overflows the cap can still be searched across the WHOLE file.
|
|
198
|
+
* `total` counts every matching object even beyond the cap.
|
|
199
|
+
*/
|
|
200
|
+
collect(target: CollectTarget, opts?: CollectOptions): Promise<HprofCollectResult>;
|
|
201
|
+
/** Read a bounded element-id preview of an object array (cursor just past its array-class id). */
|
|
202
|
+
private readObjArrayPreview;
|
|
203
|
+
/**
|
|
204
|
+
* Resolve a batch of object ids in ONE streaming sweep — the on-demand random access a preview needs to follow
|
|
205
|
+
* a reference (jump to an object) or dereference a value (a String's backing `byte[]`/`char[]`). Class-object
|
|
206
|
+
* ids resolve without scanning. Only ids actually found are returned (GC'd / unknown ids are absent). Bounded:
|
|
207
|
+
* array content is capped (see {@link MAX_ARRAY_PREVIEW} / {@link MAX_DEREF_BYTES}), so memory stays ∝ the batch.
|
|
208
|
+
*/
|
|
209
|
+
resolveObjects(ids: Set<string>, onProgress?: HprofProgress): Promise<Map<string, HprofObjectView>>;
|
|
210
|
+
}
|
|
211
|
+
export {};
|