@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.
Files changed (373) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +134 -0
  3. package/dist/FileViewer.js +7 -0
  4. package/dist/FileViewer.vue.d.ts +37 -0
  5. package/dist/FileViewer.vue_vue_type_script_setup_true_lang.js +103 -0
  6. package/dist/_virtual/_plugin-vue_export-helper.js +8 -0
  7. package/dist/components/AppxViewer.js +7 -0
  8. package/dist/components/AppxViewer.vue.d.ts +18 -0
  9. package/dist/components/AppxViewer.vue_vue_type_script_setup_true_lang.js +174 -0
  10. package/dist/components/ArchiveBrowser.js +7 -0
  11. package/dist/components/ArchiveBrowser.vue.d.ts +18 -0
  12. package/dist/components/ArchiveBrowser.vue_vue_type_script_setup_true_lang.js +279 -0
  13. package/dist/components/AudioViewer.js +7 -0
  14. package/dist/components/AudioViewer.vue.d.ts +21 -0
  15. package/dist/components/AudioViewer.vue_vue_type_script_setup_true_lang.js +201 -0
  16. package/dist/components/BinObjBrowser.js +7 -0
  17. package/dist/components/BinObjBrowser.vue.d.ts +19 -0
  18. package/dist/components/BinObjBrowser.vue_vue_type_script_setup_true_lang.js +141 -0
  19. package/dist/components/CertViewer.js +7 -0
  20. package/dist/components/CertViewer.vue.d.ts +17 -0
  21. package/dist/components/CertViewer.vue_vue_type_script_setup_true_lang.js +251 -0
  22. package/dist/components/ClassViewer.js +7 -0
  23. package/dist/components/ClassViewer.vue.d.ts +15 -0
  24. package/dist/components/ClassViewer.vue_vue_type_script_setup_true_lang.js +164 -0
  25. package/dist/components/CodeBlock.js +7 -0
  26. package/dist/components/CodeBlock.vue.d.ts +17 -0
  27. package/dist/components/CodeBlock.vue_vue_type_script_setup_true_lang.js +79 -0
  28. package/dist/components/CodeView.js +7 -0
  29. package/dist/components/CodeView.vue.d.ts +21 -0
  30. package/dist/components/CodeView.vue_vue_type_script_setup_true_lang.js +180 -0
  31. package/dist/components/CsvViewer.js +7 -0
  32. package/dist/components/CsvViewer.vue.d.ts +26 -0
  33. package/dist/components/CsvViewer.vue_vue_type_script_setup_true_lang.js +187 -0
  34. package/dist/components/DicomViewer.js +7 -0
  35. package/dist/components/DicomViewer.vue.d.ts +30 -0
  36. package/dist/components/DicomViewer.vue_vue_type_script_setup_true_lang.js +362 -0
  37. package/dist/components/DocxViewer.js +7 -0
  38. package/dist/components/DocxViewer.vue.d.ts +19 -0
  39. package/dist/components/DocxViewer.vue_vue_type_script_setup_true_lang.js +59 -0
  40. package/dist/components/DrawioViewer.js +7 -0
  41. package/dist/components/DrawioViewer.vue.d.ts +16 -0
  42. package/dist/components/DrawioViewer.vue_vue_type_script_setup_true_lang.js +38 -0
  43. package/dist/components/DxfViewer.js +7 -0
  44. package/dist/components/DxfViewer.vue.d.ts +14 -0
  45. package/dist/components/DxfViewer.vue_vue_type_script_setup_true_lang.js +239 -0
  46. package/dist/components/EbookViewer.js +7 -0
  47. package/dist/components/EbookViewer.vue.d.ts +22 -0
  48. package/dist/components/EbookViewer.vue_vue_type_script_setup_true_lang.js +170 -0
  49. package/dist/components/EmlViewer.js +7 -0
  50. package/dist/components/EmlViewer.vue.d.ts +21 -0
  51. package/dist/components/EmlViewer.vue_vue_type_script_setup_true_lang.js +193 -0
  52. package/dist/components/EplViewer.js +7 -0
  53. package/dist/components/EplViewer.vue.d.ts +19 -0
  54. package/dist/components/EplViewer.vue_vue_type_script_setup_true_lang.js +201 -0
  55. package/dist/components/FileViewerBody.js +7 -0
  56. package/dist/components/FileViewerBody.vue.d.ts +47 -0
  57. package/dist/components/FileViewerBody.vue_vue_type_script_setup_true_lang.js +599 -0
  58. package/dist/components/FileViewerPanel.js +7 -0
  59. package/dist/components/FileViewerPanel.vue.d.ts +3 -0
  60. package/dist/components/FileViewerPanel.vue_vue_type_script_setup_true_lang.js +207 -0
  61. package/dist/components/FontViewer.js +7 -0
  62. package/dist/components/FontViewer.vue.d.ts +17 -0
  63. package/dist/components/FontViewer.vue_vue_type_script_setup_true_lang.js +120 -0
  64. package/dist/components/FrontmatterCard.js +7 -0
  65. package/dist/components/FrontmatterCard.vue.d.ts +11 -0
  66. package/dist/components/FrontmatterCard.vue_vue_type_script_setup_true_lang.js +30 -0
  67. package/dist/components/GeoViewer.js +7 -0
  68. package/dist/components/GeoViewer.vue.d.ts +17 -0
  69. package/dist/components/GeoViewer.vue_vue_type_script_setup_true_lang.js +255 -0
  70. package/dist/components/HarViewer.js +7 -0
  71. package/dist/components/HarViewer.vue.d.ts +20 -0
  72. package/dist/components/HarViewer.vue_vue_type_script_setup_true_lang.js +322 -0
  73. package/dist/components/HexViewer.js +7 -0
  74. package/dist/components/HexViewer.vue.d.ts +22 -0
  75. package/dist/components/HexViewer.vue_vue_type_script_setup_true_lang.js +121 -0
  76. package/dist/components/HprofViewer.js +7 -0
  77. package/dist/components/HprofViewer.vue.d.ts +27 -0
  78. package/dist/components/HprofViewer.vue_vue_type_script_setup_true_lang.js +561 -0
  79. package/dist/components/ImageLightbox.js +7 -0
  80. package/dist/components/ImageLightbox.vue.d.ts +3 -0
  81. package/dist/components/ImageLightbox.vue_vue_type_script_setup_true_lang.js +86 -0
  82. package/dist/components/InlineText.d.ts +29 -0
  83. package/dist/components/InlineText.js +21 -0
  84. package/dist/components/JksViewer.js +7 -0
  85. package/dist/components/JksViewer.vue.d.ts +22 -0
  86. package/dist/components/JksViewer.vue_vue_type_script_setup_true_lang.js +353 -0
  87. package/dist/components/JsonlViewer.js +7 -0
  88. package/dist/components/JsonlViewer.vue.d.ts +15 -0
  89. package/dist/components/JsonlViewer.vue_vue_type_script_setup_true_lang.js +103 -0
  90. package/dist/components/LogViewer.js +7 -0
  91. package/dist/components/LogViewer.vue.d.ts +29 -0
  92. package/dist/components/LogViewer.vue_vue_type_script_setup_true_lang.js +670 -0
  93. package/dist/components/LrcViewer.js +7 -0
  94. package/dist/components/LrcViewer.vue.d.ts +17 -0
  95. package/dist/components/LrcViewer.vue_vue_type_script_setup_true_lang.js +106 -0
  96. package/dist/components/MarkdownTable.js +7 -0
  97. package/dist/components/MarkdownTable.vue.d.ts +19 -0
  98. package/dist/components/MarkdownTable.vue_vue_type_script_setup_true_lang.js +71 -0
  99. package/dist/components/MarkdownText.d.ts +30 -0
  100. package/dist/components/MarkdownText.js +21 -0
  101. package/dist/components/MhtViewer.js +7 -0
  102. package/dist/components/MhtViewer.vue.d.ts +22 -0
  103. package/dist/components/MhtViewer.vue_vue_type_script_setup_true_lang.js +112 -0
  104. package/dist/components/MindMapView.js +7 -0
  105. package/dist/components/MindMapView.vue.d.ts +23 -0
  106. package/dist/components/MindMapView.vue_vue_type_script_setup_true_lang.js +337 -0
  107. package/dist/components/MissingDependency.js +7 -0
  108. package/dist/components/MissingDependency.vue.d.ts +17 -0
  109. package/dist/components/MissingDependency.vue_vue_type_script_setup_true_lang.js +37 -0
  110. package/dist/components/ModelViewer.js +7 -0
  111. package/dist/components/ModelViewer.vue.d.ts +18 -0
  112. package/dist/components/ModelViewer.vue_vue_type_script_setup_true_lang.js +157 -0
  113. package/dist/components/MsiViewer.js +7 -0
  114. package/dist/components/MsiViewer.vue.d.ts +19 -0
  115. package/dist/components/MsiViewer.vue_vue_type_script_setup_true_lang.js +136 -0
  116. package/dist/components/NotebookViewer.js +7 -0
  117. package/dist/components/NotebookViewer.vue.d.ts +20 -0
  118. package/dist/components/NotebookViewer.vue_vue_type_script_setup_true_lang.js +125 -0
  119. package/dist/components/PdfViewer.js +7 -0
  120. package/dist/components/PdfViewer.vue.d.ts +19 -0
  121. package/dist/components/PdfViewer.vue_vue_type_script_setup_true_lang.js +114 -0
  122. package/dist/components/PptxViewer.js +7 -0
  123. package/dist/components/PptxViewer.vue.d.ts +20 -0
  124. package/dist/components/PptxViewer.vue_vue_type_script_setup_true_lang.js +73 -0
  125. package/dist/components/PsdViewer.js +7 -0
  126. package/dist/components/PsdViewer.vue.d.ts +15 -0
  127. package/dist/components/PsdViewer.vue_vue_type_script_setup_true_lang.js +218 -0
  128. package/dist/components/QmcAudioViewer.js +7 -0
  129. package/dist/components/QmcAudioViewer.vue.d.ts +18 -0
  130. package/dist/components/QmcAudioViewer.vue_vue_type_script_setup_true_lang.js +92 -0
  131. package/dist/components/RasterViewer.js +7 -0
  132. package/dist/components/RasterViewer.vue.d.ts +21 -0
  133. package/dist/components/RasterViewer.vue_vue_type_script_setup_true_lang.js +161 -0
  134. package/dist/components/RtfViewer.js +7 -0
  135. package/dist/components/RtfViewer.vue.d.ts +21 -0
  136. package/dist/components/RtfViewer.vue_vue_type_script_setup_true_lang.js +66 -0
  137. package/dist/components/SevenZipBrowser.js +7 -0
  138. package/dist/components/SevenZipBrowser.vue.d.ts +13 -0
  139. package/dist/components/SevenZipBrowser.vue_vue_type_script_setup_true_lang.js +366 -0
  140. package/dist/components/SqliteViewer.js +7 -0
  141. package/dist/components/SqliteViewer.vue.d.ts +18 -0
  142. package/dist/components/SqliteViewer.vue_vue_type_script_setup_true_lang.js +186 -0
  143. package/dist/components/SubtitleViewer.js +7 -0
  144. package/dist/components/SubtitleViewer.vue.d.ts +15 -0
  145. package/dist/components/SubtitleViewer.vue_vue_type_script_setup_true_lang.js +48 -0
  146. package/dist/components/XlsxChart.js +7 -0
  147. package/dist/components/XlsxChart.vue.d.ts +14 -0
  148. package/dist/components/XlsxChart.vue_vue_type_script_setup_true_lang.js +240 -0
  149. package/dist/components/XlsxViewer.js +7 -0
  150. package/dist/components/XlsxViewer.vue.d.ts +22 -0
  151. package/dist/components/XlsxViewer.vue_vue_type_script_setup_true_lang.js +814 -0
  152. package/dist/components/XmindViewer.js +7 -0
  153. package/dist/components/XmindViewer.vue.d.ts +13 -0
  154. package/dist/components/XmindViewer.vue_vue_type_script_setup_true_lang.js +48 -0
  155. package/dist/components/ZipBrowser.js +7 -0
  156. package/dist/components/ZipBrowser.vue.d.ts +14 -0
  157. package/dist/components/ZipBrowser.vue_vue_type_script_setup_true_lang.js +326 -0
  158. package/dist/components/ZoomImage.js +7 -0
  159. package/dist/components/ZoomImage.vue.d.ts +29 -0
  160. package/dist/components/ZoomImage.vue_vue_type_script_setup_true_lang.js +147 -0
  161. package/dist/components/epl/EplCodeBlock.js +7 -0
  162. package/dist/components/epl/EplCodeBlock.vue.d.ts +15 -0
  163. package/dist/components/epl/EplCodeBlock.vue_vue_type_script_setup_true_lang.js +72 -0
  164. package/dist/components/epl/EplDoc.js +7 -0
  165. package/dist/components/epl/EplDoc.vue.d.ts +19 -0
  166. package/dist/components/epl/EplDoc.vue_vue_type_script_setup_true_lang.js +327 -0
  167. package/dist/components/epl/EplMethod.js +7 -0
  168. package/dist/components/epl/EplMethod.vue.d.ts +14 -0
  169. package/dist/components/epl/EplMethod.vue_vue_type_script_setup_true_lang.js +100 -0
  170. package/dist/components/epl/EplResource.js +7 -0
  171. package/dist/components/epl/EplResource.vue.d.ts +15 -0
  172. package/dist/components/epl/EplResource.vue_vue_type_script_setup_true_lang.js +204 -0
  173. package/dist/components/epl/EplTree.js +7 -0
  174. package/dist/components/epl/EplTree.vue.d.ts +27 -0
  175. package/dist/components/epl/EplTree.vue_vue_type_script_setup_true_lang.js +123 -0
  176. package/dist/components/epl/EplVarTable.js +7 -0
  177. package/dist/components/epl/EplVarTable.vue.d.ts +21 -0
  178. package/dist/components/epl/EplVarTable.vue_vue_type_script_setup_true_lang.js +60 -0
  179. package/dist/components/epl/docTypes.d.ts +12 -0
  180. package/dist/components/epl/numbering.d.ts +21 -0
  181. package/dist/components/epl/numbering.js +14 -0
  182. package/dist/components/icons/Icon.js +7 -0
  183. package/dist/components/icons/Icon.vue.d.ts +14 -0
  184. package/dist/components/icons/Icon.vue_vue_type_script_setup_true_lang.js +33 -0
  185. package/dist/components/icons/iconPaths.d.ts +60 -0
  186. package/dist/components/icons/iconPaths.js +54 -0
  187. package/dist/components/optionalViewer.d.ts +14 -0
  188. package/dist/components/optionalViewer.js +37 -0
  189. package/dist/components/ui/ClampBlock.d.ts +82 -0
  190. package/dist/components/ui/ClampBlock.js +63 -0
  191. package/dist/composables/useFileViewer.d.ts +428 -0
  192. package/dist/composables/useFileViewer.js +27 -0
  193. package/dist/composables/useLightbox.d.ts +33 -0
  194. package/dist/composables/useLightbox.js +17 -0
  195. package/dist/composables/useLogRules.d.ts +47 -0
  196. package/dist/composables/useLogRules.js +74 -0
  197. package/dist/index.d.ts +44 -0
  198. package/dist/index.js +30 -0
  199. package/dist/lib/aes.d.ts +25 -0
  200. package/dist/lib/aes.js +99 -0
  201. package/dist/lib/appx.d.ts +66 -0
  202. package/dist/lib/appx.js +112 -0
  203. package/dist/lib/archive.d.ts +29 -0
  204. package/dist/lib/asn1.d.ts +47 -0
  205. package/dist/lib/asn1.js +122 -0
  206. package/dist/lib/binobj.d.ts +69 -0
  207. package/dist/lib/binobj.js +430 -0
  208. package/dist/lib/brotli.d.ts +14 -0
  209. package/dist/lib/brotli.js +16 -0
  210. package/dist/lib/bzip2.d.ts +14 -0
  211. package/dist/lib/bzip2.js +161 -0
  212. package/dist/lib/classfile.d.ts +72 -0
  213. package/dist/lib/classfile.js +210 -0
  214. package/dist/lib/codePreview.d.ts +22 -0
  215. package/dist/lib/codePreview.js +27 -0
  216. package/dist/lib/codefold.d.ts +14 -0
  217. package/dist/lib/codefold.js +30 -0
  218. package/dist/lib/codeformat.d.ts +21 -0
  219. package/dist/lib/codeformat.js +130 -0
  220. package/dist/lib/csv.d.ts +19 -0
  221. package/dist/lib/csv.js +74 -0
  222. package/dist/lib/des.d.ts +17 -0
  223. package/dist/lib/des.js +928 -0
  224. package/dist/lib/diagram.d.ts +5 -0
  225. package/dist/lib/diagram.js +479 -0
  226. package/dist/lib/dicom.d.ts +69 -0
  227. package/dist/lib/dicom.js +442 -0
  228. package/dist/lib/dicomCodecs.d.ts +28 -0
  229. package/dist/lib/dicomCodecs.js +156 -0
  230. package/dist/lib/dicomRender.d.ts +46 -0
  231. package/dist/lib/dicomRender.js +114 -0
  232. package/dist/lib/dxf.d.ts +86 -0
  233. package/dist/lib/dxf.js +399 -0
  234. package/dist/lib/eml.d.ts +40 -0
  235. package/dist/lib/eml.js +46 -0
  236. package/dist/lib/encoding.d.ts +28 -0
  237. package/dist/lib/encoding.js +44 -0
  238. package/dist/lib/epl/code/ast.d.ts +150 -0
  239. package/dist/lib/epl/code/codeDataParser.d.ts +3 -0
  240. package/dist/lib/epl/code/codeDataParser.js +330 -0
  241. package/dist/lib/epl/code/codeLines.d.ts +20 -0
  242. package/dist/lib/epl/code/codeLines.js +191 -0
  243. package/dist/lib/epl/code/structures.d.ts +86 -0
  244. package/dist/lib/epl/code/textCode.d.ts +29 -0
  245. package/dist/lib/epl/code/textCode.js +150 -0
  246. package/dist/lib/epl/code/variable.d.ts +25 -0
  247. package/dist/lib/epl/eplDocument.d.ts +21 -0
  248. package/dist/lib/epl/eplDocument.js +36 -0
  249. package/dist/lib/epl/imageList.d.ts +28 -0
  250. package/dist/lib/epl/imageList.js +66 -0
  251. package/dist/lib/epl/index.d.ts +53 -0
  252. package/dist/lib/epl/index.js +45 -0
  253. package/dist/lib/epl/io/binaryReader.d.ts +56 -0
  254. package/dist/lib/epl/io/binaryReader.js +119 -0
  255. package/dist/lib/epl/io/encoding.d.ts +16 -0
  256. package/dist/lib/epl/io/encoding.js +27 -0
  257. package/dist/lib/epl/model/eplSystemId.d.ts +64 -0
  258. package/dist/lib/epl/model/eplSystemId.js +16 -0
  259. package/dist/lib/epl/model/section.d.ts +46 -0
  260. package/dist/lib/epl/names/eplLibData.js +39 -0
  261. package/dist/lib/epl/names/idToNameMap.d.ts +33 -0
  262. package/dist/lib/epl/names/idToNameMap.js +130 -0
  263. package/dist/lib/epl/names/libNameProvider.d.ts +15 -0
  264. package/dist/lib/epl/names/libNameProvider.js +18 -0
  265. package/dist/lib/epl/program.d.ts +120 -0
  266. package/dist/lib/epl/program.js +134 -0
  267. package/dist/lib/epl/projectFileReader.d.ts +23 -0
  268. package/dist/lib/epl/projectFileReader.js +65 -0
  269. package/dist/lib/epl/sections/code.d.ts +20 -0
  270. package/dist/lib/epl/sections/esystemInfo.d.ts +14 -0
  271. package/dist/lib/epl/sections/losable.d.ts +11 -0
  272. package/dist/lib/epl/sections/projectConfig.d.ts +23 -0
  273. package/dist/lib/epl/sections/resource.d.ts +57 -0
  274. package/dist/lib/fb2.d.ts +14 -0
  275. package/dist/lib/fb2.js +62 -0
  276. package/dist/lib/fileType.d.ts +315 -0
  277. package/dist/lib/fileType.js +800 -0
  278. package/dist/lib/fonts.d.ts +8 -0
  279. package/dist/lib/fonts.js +4 -0
  280. package/dist/lib/format.d.ts +16 -0
  281. package/dist/lib/format.js +38 -0
  282. package/dist/lib/frontmatter.d.ts +13 -0
  283. package/dist/lib/frontmatter.js +23 -0
  284. package/dist/lib/geo.d.ts +30 -0
  285. package/dist/lib/geo.js +235 -0
  286. package/dist/lib/har.d.ts +171 -0
  287. package/dist/lib/har.js +397 -0
  288. package/dist/lib/highlight.d.ts +18 -0
  289. package/dist/lib/highlight.js +34 -0
  290. package/dist/lib/highlightLangs.d.ts +15 -0
  291. package/dist/lib/highlightLangs.js +93 -0
  292. package/dist/lib/hprof.d.ts +211 -0
  293. package/dist/lib/hprof.js +709 -0
  294. package/dist/lib/ipynb.d.ts +48 -0
  295. package/dist/lib/ipynb.js +130 -0
  296. package/dist/lib/jks.d.ts +86 -0
  297. package/dist/lib/jks.js +167 -0
  298. package/dist/lib/jsonl.d.ts +29 -0
  299. package/dist/lib/jsonl.js +24 -0
  300. package/dist/lib/lrc.d.ts +32 -0
  301. package/dist/lib/lrc.js +84 -0
  302. package/dist/lib/lzma.d.ts +70 -0
  303. package/dist/lib/lzma.js +204 -0
  304. package/dist/lib/markdown/blocks.d.ts +9 -0
  305. package/dist/lib/markdown/blocks.js +221 -0
  306. package/dist/lib/markdown/index.d.ts +3 -0
  307. package/dist/lib/markdown/inline.d.ts +33 -0
  308. package/dist/lib/markdown/inline.js +84 -0
  309. package/dist/lib/markdown/math.d.ts +5 -0
  310. package/dist/lib/markdown/math.js +25 -0
  311. package/dist/lib/markdown/segmentize.d.ts +11 -0
  312. package/dist/lib/markdown/segmentize.js +28 -0
  313. package/dist/lib/markdown/styles.d.ts +26 -0
  314. package/dist/lib/markdown/styles.js +135 -0
  315. package/dist/lib/mht.d.ts +51 -0
  316. package/dist/lib/mht.js +122 -0
  317. package/dist/lib/midi.d.ts +28 -0
  318. package/dist/lib/midi.js +84 -0
  319. package/dist/lib/mime.d.ts +82 -0
  320. package/dist/lib/mime.js +151 -0
  321. package/dist/lib/mindmap.d.ts +51 -0
  322. package/dist/lib/mindmap.js +113 -0
  323. package/dist/lib/mobi.d.ts +15 -0
  324. package/dist/lib/mobi.js +68 -0
  325. package/dist/lib/msi.d.ts +50 -0
  326. package/dist/lib/msi.js +332 -0
  327. package/dist/lib/optionalDep.d.ts +26 -0
  328. package/dist/lib/optionalDep.js +20 -0
  329. package/dist/lib/pkcs12.d.ts +56 -0
  330. package/dist/lib/pkcs12.js +356 -0
  331. package/dist/lib/qmc.d.ts +50 -0
  332. package/dist/lib/qmc.js +213 -0
  333. package/dist/lib/rar.d.ts +16 -0
  334. package/dist/lib/rar.js +40 -0
  335. package/dist/lib/rawPreview.d.ts +12 -0
  336. package/dist/lib/rawPreview.js +54 -0
  337. package/dist/lib/rc2.d.ts +12 -0
  338. package/dist/lib/rc2.js +298 -0
  339. package/dist/lib/resolveInput.d.ts +22 -0
  340. package/dist/lib/resolveInput.js +55 -0
  341. package/dist/lib/rtf.d.ts +53 -0
  342. package/dist/lib/rtf.js +413 -0
  343. package/dist/lib/sevenZip.d.ts +82 -0
  344. package/dist/lib/sevenZip.js +395 -0
  345. package/dist/lib/sha1.d.ts +24 -0
  346. package/dist/lib/sha1.js +53 -0
  347. package/dist/lib/sha256.d.ts +21 -0
  348. package/dist/lib/sha256.js +119 -0
  349. package/dist/lib/speechAudio.d.ts +36 -0
  350. package/dist/lib/speechAudio.js +85 -0
  351. package/dist/lib/sqlite.d.ts +38 -0
  352. package/dist/lib/sqlite.js +104 -0
  353. package/dist/lib/subtitle.d.ts +26 -0
  354. package/dist/lib/subtitle.js +99 -0
  355. package/dist/lib/tarball.d.ts +20 -0
  356. package/dist/lib/tarball.js +248 -0
  357. package/dist/lib/viewerFormats.d.ts +35 -0
  358. package/dist/lib/viewerFormats.js +83 -0
  359. package/dist/lib/viewerKind.d.ts +36 -0
  360. package/dist/lib/viewerKind.js +233 -0
  361. package/dist/lib/x509.d.ts +68 -0
  362. package/dist/lib/x509.js +267 -0
  363. package/dist/lib/xlsx.d.ts +55 -0
  364. package/dist/lib/xlsx.js +321 -0
  365. package/dist/lib/xlsxCharts.d.ts +34 -0
  366. package/dist/lib/xlsxCharts.js +152 -0
  367. package/dist/lib/xmind.d.ts +6 -0
  368. package/dist/lib/xmind.js +124 -0
  369. package/dist/lib/zip.d.ts +56 -0
  370. package/dist/lib/zip.js +169 -0
  371. package/dist/style.css +2 -0
  372. package/dist/types.d.ts +42 -0
  373. package/package.json +128 -0
@@ -0,0 +1,114 @@
1
+ //#region src/lib/dicomRender.ts
2
+ function e(e) {
3
+ return e.samplesPerPixel >= 3;
4
+ }
5
+ function t(e, t) {
6
+ let n = t.rows * t.columns, r = new Float32Array(n), i = e.bytes, a = e.littleEndian, o = t.rescaleSlope, s = t.rescaleIntercept, c = t.bitsStored, l = t.pixelRepresentation === 1, u = 1 << c - 1, d = 1 << c, f = Infinity, p = -Infinity;
7
+ if (t.bitsAllocated === 16) {
8
+ let e = c >= 16 ? 65535 : d - 1;
9
+ for (let t = 0; t < n; t++) {
10
+ let n = t * 2, c = a ? i[n] | i[n + 1] << 8 : i[n + 1] | i[n] << 8;
11
+ c &= e, l && c & u && (c -= d);
12
+ let m = c * o + s;
13
+ r[t] = m, m < f && (f = m), m > p && (p = m);
14
+ }
15
+ } else {
16
+ let e = c >= 8 ? 255 : d - 1;
17
+ for (let t = 0; t < n; t++) {
18
+ let n = i[t] & e;
19
+ l && n & u && (n -= d);
20
+ let a = n * o + s;
21
+ r[t] = a, a < f && (f = a), a > p && (p = a);
22
+ }
23
+ }
24
+ return Number.isFinite(f) || (f = 0, p = 0), {
25
+ gray: r,
26
+ min: f,
27
+ max: p
28
+ };
29
+ }
30
+ function n(e, t) {
31
+ let n = t.rows * t.columns, r = new Int32Array(n), i = e.bytes, a = e.littleEndian;
32
+ if (t.bitsAllocated === 16) for (let e = 0; e < n; e++) {
33
+ let t = e * 2;
34
+ r[e] = a ? i[t] | i[t + 1] << 8 : i[t + 1] | i[t] << 8;
35
+ }
36
+ else for (let e = 0; e < n; e++) r[e] = i[e];
37
+ return r;
38
+ }
39
+ function r(e, t) {
40
+ let n = t.rows * t.columns, r = e.bytes, a = new Uint8Array(n * 3);
41
+ if (t.planarConfiguration === 1) for (let e = 0; e < n; e++) a[e * 3] = r[e], a[e * 3 + 1] = r[n + e], a[e * 3 + 2] = r[2 * n + e];
42
+ else a.set(r.subarray(0, n * 3));
43
+ let o = t.photometric;
44
+ if (o === "YBR_FULL" || o === "YBR_FULL_422") for (let e = 0; e < n; e++) {
45
+ let t = e * 3, n = a[t], r = a[t + 1] - 128, o = a[t + 2] - 128;
46
+ a[t] = i(n + 1.402 * o), a[t + 1] = i(n - .344136 * r - .714136 * o), a[t + 2] = i(n + 1.772 * r);
47
+ }
48
+ return a;
49
+ }
50
+ function i(e) {
51
+ return e < 0 ? 0 : e > 255 ? 255 : e | 0;
52
+ }
53
+ function a(i, a) {
54
+ let o = {
55
+ width: a.columns,
56
+ height: a.rows,
57
+ minValue: 0,
58
+ maxValue: 0,
59
+ monochrome1: a.photometric === "MONOCHROME1"
60
+ };
61
+ if (a.photometric === "PALETTE COLOR" && a.palette) return {
62
+ ...o,
63
+ mode: "palette",
64
+ indices: n(i, a),
65
+ palette: a.palette
66
+ };
67
+ if (e(a)) return {
68
+ ...o,
69
+ mode: "rgb",
70
+ rgb: r(i, a)
71
+ };
72
+ let { gray: s, min: c, max: l } = t(i, a);
73
+ return {
74
+ ...o,
75
+ mode: "gray",
76
+ gray: s,
77
+ minValue: c,
78
+ maxValue: l
79
+ };
80
+ }
81
+ function o(e) {
82
+ let t = Math.max(1, e.maxValue - e.minValue);
83
+ return {
84
+ center: (e.maxValue + e.minValue) / 2,
85
+ width: t
86
+ };
87
+ }
88
+ function s(e, t) {
89
+ let { width: n, height: r } = e, i = new Uint8ClampedArray(n * r * 4);
90
+ if (e.mode === "gray" && e.gray) {
91
+ let n = t.windowCenter, r = t.windowWidth > 1 ? t.windowWidth : 1, a = n - .5 - (r - 1) / 2, o = n - .5 + (r - 1) / 2, s = r - 1 || 1, c = n - .5, l = t.invert !== e.monochrome1, u = e.gray;
92
+ for (let e = 0; e < u.length; e++) {
93
+ let t = u[e], n;
94
+ n = t <= a ? 0 : t > o ? 255 : ((t - c) / s + .5) * 255, l && (n = 255 - n);
95
+ let r = e * 4;
96
+ i[r] = n, i[r + 1] = n, i[r + 2] = n, i[r + 3] = 255;
97
+ }
98
+ } else if (e.mode === "palette" && e.indices && e.palette) {
99
+ let { r: t, g: n, b: r } = e.palette, a = t.length - 1, o = e.indices;
100
+ for (let e = 0; e < o.length; e++) {
101
+ let s = o[e] < 0 ? 0 : o[e] > a ? a : o[e], c = e * 4;
102
+ i[c] = t[s], i[c + 1] = n[s], i[c + 2] = r[s], i[c + 3] = 255;
103
+ }
104
+ } else if (e.mode === "rgb" && e.rgb) {
105
+ let t = e.rgb, a = n * r;
106
+ for (let e = 0; e < a; e++) {
107
+ let n = e * 4, r = e * 3;
108
+ i[n] = t[r], i[n + 1] = t[r + 1], i[n + 2] = t[r + 2], i[n + 3] = 255;
109
+ }
110
+ }
111
+ return new ImageData(i, n, r);
112
+ }
113
+ //#endregion
114
+ export { o as autoWindow, a as buildFramePixels, s as renderToImageData };
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Hand-rolled, zero-dependency DXF (AutoCAD Drawing Exchange Format) parser for the file viewer — turns an
3
+ * ASCII DXF into a flat list of drawable primitives the viewer draws as an SVG (in the codebase's hand-rolled
4
+ * house style, like lib/geo.ts / lib/diagram.ts — no CAD runtime, no CDN).
5
+ *
6
+ * DXF is a stream of (group-code, value) line PAIRS grouped into SECTIONS. We read:
7
+ * - TABLES → the LAYER table (name → ACI colour + on/off), so entities colour "ByLayer".
8
+ * - BLOCKS → reusable geometry, keyed by name, expanded wherever an INSERT references them (with the
9
+ * insert's translation / scale / rotation; nested INSERTs are expanded recursively, depth-capped).
10
+ * - ENTITIES → the drawing itself.
11
+ * Supported entities: LINE, LWPOLYLINE (incl. bulge arcs), POLYLINE/VERTEX, CIRCLE, ARC, ELLIPSE (tessellated),
12
+ * POINT, TEXT / MTEXT, SOLID / 3DFACE / TRACE (filled), SPLINE (fit/control points as a polyline), INSERT.
13
+ * Anything else (HATCH / DIMENSION / WIPEOUT / …) is skipped — the drawing still renders, minus that entity.
14
+ *
15
+ * Coordinates are kept in DXF world space (Y up); the viewer flips Y for SVG. Binary DXF is not supported.
16
+ */
17
+ export interface DxfLayer {
18
+ name: string;
19
+ color: string;
20
+ on: boolean;
21
+ }
22
+ export type DxfPrim = {
23
+ kind: 'line';
24
+ layer: string;
25
+ color: string;
26
+ x1: number;
27
+ y1: number;
28
+ x2: number;
29
+ y2: number;
30
+ } | {
31
+ kind: 'polyline';
32
+ layer: string;
33
+ color: string;
34
+ pts: [number, number][];
35
+ closed: boolean;
36
+ } | {
37
+ kind: 'circle';
38
+ layer: string;
39
+ color: string;
40
+ cx: number;
41
+ cy: number;
42
+ r: number;
43
+ } | {
44
+ kind: 'arc';
45
+ layer: string;
46
+ color: string;
47
+ cx: number;
48
+ cy: number;
49
+ r: number;
50
+ a0: number;
51
+ a1: number;
52
+ } | {
53
+ kind: 'polygon';
54
+ layer: string;
55
+ color: string;
56
+ pts: [number, number][];
57
+ } | {
58
+ kind: 'text';
59
+ layer: string;
60
+ color: string;
61
+ x: number;
62
+ y: number;
63
+ h: number;
64
+ text: string;
65
+ rot: number;
66
+ align: 'l' | 'c' | 'r';
67
+ } | {
68
+ kind: 'point';
69
+ layer: string;
70
+ color: string;
71
+ x: number;
72
+ y: number;
73
+ };
74
+ export interface DxfBounds {
75
+ minX: number;
76
+ minY: number;
77
+ maxX: number;
78
+ maxY: number;
79
+ }
80
+ export interface ParsedDxf {
81
+ prims: DxfPrim[];
82
+ layers: DxfLayer[];
83
+ bounds: DxfBounds | null;
84
+ counts: Record<string, number>;
85
+ }
86
+ export declare function parseDxf(text: string): ParsedDxf;
@@ -0,0 +1,399 @@
1
+ //#region src/lib/dxf.ts
2
+ var e = {
3
+ 1: "#e03131",
4
+ 2: "#f08c00",
5
+ 3: "#2f9e44",
6
+ 4: "#0c8599",
7
+ 5: "#1971c2",
8
+ 6: "#ae3ec9",
9
+ 7: "#1a1a1a",
10
+ 8: "#868e96",
11
+ 9: "#adb5bd"
12
+ };
13
+ function t(t) {
14
+ if (e[t]) return e[t];
15
+ if (t >= 250 && t <= 255) {
16
+ let e = Math.round(51 + (t - 250) / 5 * 200);
17
+ return `rgb(${e},${e},${e})`;
18
+ }
19
+ return "#1a1a1a";
20
+ }
21
+ function n(e) {
22
+ let t = e.split(/\r\n|\r|\n/), n = [];
23
+ for (let e = 0; e + 1 < t.length; e += 2) {
24
+ let r = Number.parseInt(t[e].trim(), 10);
25
+ if (Number.isNaN(r)) {
26
+ --e;
27
+ continue;
28
+ }
29
+ n.push({
30
+ code: r,
31
+ value: t[e + 1]
32
+ });
33
+ }
34
+ return n;
35
+ }
36
+ function r(e, t, n) {
37
+ let r = [], i = null;
38
+ for (let a = t; a < n; a++) {
39
+ let t = e[a];
40
+ t.code === 0 ? (i && r.push(i), i = {
41
+ type: t.value.trim(),
42
+ pairs: []
43
+ }) : i && i.pairs.push(t);
44
+ }
45
+ return i && r.push(i), r;
46
+ }
47
+ function i(e, t) {
48
+ for (let n of e.pairs) if (n.code === t) return n.value;
49
+ }
50
+ function a(e, t, n = 0) {
51
+ let r = i(e, t);
52
+ if (r === void 0) return n;
53
+ let a = Number.parseFloat(r.trim());
54
+ return Number.isFinite(a) ? a : n;
55
+ }
56
+ function o(e, t, n = 0) {
57
+ let r = i(e, t);
58
+ if (r === void 0) return n;
59
+ let a = Number.parseInt(r.trim(), 10);
60
+ return Number.isFinite(a) ? a : n;
61
+ }
62
+ function s(e) {
63
+ let t = /* @__PURE__ */ new Map();
64
+ for (let n = 0; n + 1 < e.length; n++) if (e[n].code === 0 && e[n].value.trim() === "SECTION" && e[n + 1].code === 2) {
65
+ let r = e[n + 1].value.trim(), i = n + 2;
66
+ for (; i < e.length && !(e[i].code === 0 && e[i].value.trim() === "ENDSEC");) i++;
67
+ t.set(r, [n + 2, i]);
68
+ }
69
+ return t;
70
+ }
71
+ function c(e, n) {
72
+ let a = /* @__PURE__ */ new Map();
73
+ if (!n) return a;
74
+ for (let s of r(e, n[0], n[1])) {
75
+ if (s.type !== "LAYER") continue;
76
+ let e = (i(s, 2) ?? "").trim();
77
+ if (!e) continue;
78
+ let n = o(s, 62, 7);
79
+ a.set(e, {
80
+ name: e,
81
+ color: t(Math.abs(n)),
82
+ on: n >= 0
83
+ });
84
+ }
85
+ return a;
86
+ }
87
+ var l = {
88
+ a: 1,
89
+ b: 0,
90
+ c: 0,
91
+ d: 1,
92
+ e: 0,
93
+ f: 0
94
+ };
95
+ function u(e, t, n) {
96
+ return [e.a * t + e.c * n + e.e, e.b * t + e.d * n + e.f];
97
+ }
98
+ function d(e, t) {
99
+ return {
100
+ a: e.a * t.a + e.c * t.b,
101
+ b: e.b * t.a + e.d * t.b,
102
+ c: e.a * t.c + e.c * t.d,
103
+ d: e.b * t.c + e.d * t.d,
104
+ e: e.a * t.e + e.c * t.f + e.e,
105
+ f: e.b * t.e + e.d * t.f + e.f
106
+ };
107
+ }
108
+ function f(e) {
109
+ let t = a(e, 10), n = a(e, 20), r = a(e, 41, 1), i = a(e, 42, 1), o = a(e, 50, 0) * Math.PI / 180, s = Math.cos(o), c = Math.sin(o);
110
+ return {
111
+ a: s * r,
112
+ b: c * r,
113
+ c: -c * i,
114
+ d: s * i,
115
+ e: t,
116
+ f: n
117
+ };
118
+ }
119
+ function p(e) {
120
+ return (Math.hypot(e.a, e.b) + Math.hypot(e.c, e.d)) / 2 || 1;
121
+ }
122
+ function m(e) {
123
+ return Math.atan2(e.b, e.a) * 180 / Math.PI;
124
+ }
125
+ function h(e, t, n) {
126
+ if (!n) return [t];
127
+ let r = 4 * Math.atan(n), i = Math.hypot(t[0] - e[0], t[1] - e[1]);
128
+ if (i < 1e-9) return [t];
129
+ let a = i / 2 / Math.sin(Math.abs(r) / 2), o = [(e[0] + t[0]) / 2, (e[1] + t[1]) / 2], s = a * Math.cos(Math.abs(r) / 2), c = [(t[0] - e[0]) / i, (t[1] - e[1]) / i], l = n > 0 ? [c[1], -c[0]] : [-c[1], c[0]], u = o[0] + l[0] * s, d = o[1] + l[1] * s, f = Math.atan2(e[1] - d, e[0] - u), p = Math.max(2, Math.min(64, Math.ceil(Math.abs(r) / (Math.PI * 2) * 48))), m = [];
130
+ for (let e = 1; e <= p; e++) {
131
+ let t = f + r * e / p;
132
+ m.push([u + a * Math.cos(t), d + a * Math.sin(t)]);
133
+ }
134
+ return m;
135
+ }
136
+ function g(e) {
137
+ return e.replace(/\\P/g, "\n").replace(/\\[A-Za-z]+;?/g, "").replace(/[{}]/g, "").replace(/\\([{}\\])/g, "$1").trim();
138
+ }
139
+ function _(e) {
140
+ let h = n(e), _ = s(h), S = c(h, _.get("TABLES")), C = /* @__PURE__ */ new Map(), w = _.get("BLOCKS");
141
+ if (w) {
142
+ let e = r(h, w[0], w[1]), t = null;
143
+ for (let n of e) n.type === "BLOCK" ? t = {
144
+ name: (i(n, 2) ?? "").trim(),
145
+ base: [a(n, 10), a(n, 20)],
146
+ ents: []
147
+ } : n.type === "ENDBLK" ? (t && t.name && C.set(t.name, {
148
+ base: t.base,
149
+ ents: t.ents
150
+ }), t = null) : t && t.ents.push(n);
151
+ }
152
+ let T = [], E = {}, D = (e) => S.get(e)?.color ?? "#1a1a1a", O = (e, n, r) => {
153
+ let i = o(e, 62, 256);
154
+ return i === 0 || i === 256 ? i === 0 ? r : D(n) : t(Math.abs(i));
155
+ };
156
+ function k(e, t, n, r) {
157
+ for (let s = 0; s < e.length; s++) {
158
+ let c = e[s], h = c.type, _ = (i(c, 8) ?? "0").trim(), S = O(c, _, n), w = (e, n) => u(t, e, n);
159
+ switch (h) {
160
+ case "LINE": {
161
+ let [e, t] = w(a(c, 10), a(c, 20)), [n, r] = w(a(c, 11), a(c, 21));
162
+ T.push({
163
+ kind: "line",
164
+ layer: _,
165
+ color: S,
166
+ x1: e,
167
+ y1: t,
168
+ x2: n,
169
+ y2: r
170
+ });
171
+ break;
172
+ }
173
+ case "LWPOLYLINE": {
174
+ let e = y(v(c)), t = (o(c, 70, 0) & 1) == 1;
175
+ T.push({
176
+ kind: "polyline",
177
+ layer: _,
178
+ color: S,
179
+ pts: e.map(([e, t]) => w(e, t)),
180
+ closed: t
181
+ });
182
+ break;
183
+ }
184
+ case "POLYLINE": {
185
+ let t = [], n = s + 1;
186
+ for (; n < e.length && e[n].type === "VERTEX";) t.push({
187
+ pt: [a(e[n], 10), a(e[n], 20)],
188
+ bulge: a(e[n], 42, 0)
189
+ }), n++;
190
+ n < e.length && e[n].type === "SEQEND" && n++, s = n - 1;
191
+ let r = y(t.map((e) => ({
192
+ x: e.pt[0],
193
+ y: e.pt[1],
194
+ bulge: e.bulge
195
+ }))), i = (o(c, 70, 0) & 1) == 1;
196
+ r.length && T.push({
197
+ kind: "polyline",
198
+ layer: _,
199
+ color: S,
200
+ pts: r.map(([e, t]) => w(e, t)),
201
+ closed: i
202
+ });
203
+ break;
204
+ }
205
+ case "CIRCLE": {
206
+ let [e, n] = w(a(c, 10), a(c, 20));
207
+ T.push({
208
+ kind: "circle",
209
+ layer: _,
210
+ color: S,
211
+ cx: e,
212
+ cy: n,
213
+ r: a(c, 40) * p(t)
214
+ });
215
+ break;
216
+ }
217
+ case "ARC": {
218
+ let [e, n] = w(a(c, 10), a(c, 20)), r = m(t);
219
+ T.push({
220
+ kind: "arc",
221
+ layer: _,
222
+ color: S,
223
+ cx: e,
224
+ cy: n,
225
+ r: a(c, 40) * p(t),
226
+ a0: a(c, 50) + r,
227
+ a1: a(c, 51) + r
228
+ });
229
+ break;
230
+ }
231
+ case "ELLIPSE":
232
+ T.push({
233
+ kind: "polyline",
234
+ layer: _,
235
+ color: S,
236
+ pts: b(c, w),
237
+ closed: !1
238
+ });
239
+ break;
240
+ case "POINT": {
241
+ let [e, t] = w(a(c, 10), a(c, 20));
242
+ T.push({
243
+ kind: "point",
244
+ layer: _,
245
+ color: S,
246
+ x: e,
247
+ y: t
248
+ });
249
+ break;
250
+ }
251
+ case "TEXT": {
252
+ let e = (i(c, 1) ?? "").trim();
253
+ if (e) {
254
+ let [n, r] = w(a(c, 10), a(c, 20)), i = o(c, 72, 0);
255
+ T.push({
256
+ kind: "text",
257
+ layer: _,
258
+ color: S,
259
+ x: n,
260
+ y: r,
261
+ h: a(c, 40, 2.5) * p(t),
262
+ text: e,
263
+ rot: a(c, 50, 0) + m(t),
264
+ align: i === 1 ? "c" : i === 2 ? "r" : "l"
265
+ });
266
+ }
267
+ break;
268
+ }
269
+ case "MTEXT": {
270
+ let e = g(c.pairs.filter((e) => e.code === 1 || e.code === 3).map((e) => e.value).join(""));
271
+ if (e) {
272
+ let [n, r] = w(a(c, 10), a(c, 20)), i = o(c, 71, 1);
273
+ T.push({
274
+ kind: "text",
275
+ layer: _,
276
+ color: S,
277
+ x: n,
278
+ y: r,
279
+ h: a(c, 40, 2.5) * p(t),
280
+ text: e,
281
+ rot: a(c, 50, 0) + m(t),
282
+ align: i % 3 == 2 ? "c" : i % 3 == 0 ? "r" : "l"
283
+ });
284
+ }
285
+ break;
286
+ }
287
+ case "SOLID":
288
+ case "TRACE":
289
+ case "3DFACE": {
290
+ let e = w(a(c, 10), a(c, 20)), t = w(a(c, 11), a(c, 21)), n = w(a(c, 12), a(c, 22)), r = w(a(c, 13), a(c, 23)), i = h === "3DFACE" ? [
291
+ e,
292
+ t,
293
+ n,
294
+ r
295
+ ] : [
296
+ e,
297
+ t,
298
+ r,
299
+ n
300
+ ];
301
+ T.push({
302
+ kind: "polygon",
303
+ layer: _,
304
+ color: S,
305
+ pts: i
306
+ });
307
+ break;
308
+ }
309
+ case "SPLINE": {
310
+ let e = x(c, w);
311
+ e.length >= 2 && T.push({
312
+ kind: "polyline",
313
+ layer: _,
314
+ color: S,
315
+ pts: e,
316
+ closed: !1
317
+ });
318
+ break;
319
+ }
320
+ case "INSERT": {
321
+ if (r > 12) break;
322
+ let e = (i(c, 2) ?? "").trim(), n = C.get(e);
323
+ if (n) {
324
+ let e = {
325
+ ...l,
326
+ e: -n.base[0],
327
+ f: -n.base[1]
328
+ }, i = d(f(c), e);
329
+ k(n.ents, d(t, i), S, r + 1);
330
+ }
331
+ break;
332
+ }
333
+ default: break;
334
+ }
335
+ h && h !== "VERTEX" && h !== "SEQEND" && (E[h] = (E[h] ?? 0) + 1);
336
+ }
337
+ }
338
+ let A = _.get("ENTITIES");
339
+ A && k(r(h, A[0], A[1]), l, "#1a1a1a", 0);
340
+ let j = Infinity, M = Infinity, N = -Infinity, P = -Infinity, F = (e, t) => {
341
+ e < j && (j = e), e > N && (N = e), t < M && (M = t), t > P && (P = t);
342
+ };
343
+ for (let e of T) if (e.kind === "line") F(e.x1, e.y1), F(e.x2, e.y2);
344
+ else if (e.kind === "polyline" || e.kind === "polygon") for (let [t, n] of e.pts) F(t, n);
345
+ else e.kind === "circle" || e.kind === "arc" ? (F(e.cx - e.r, e.cy - e.r), F(e.cx + e.r, e.cy + e.r)) : F(e.x, e.y);
346
+ let I = Number.isFinite(j) ? {
347
+ minX: j,
348
+ minY: M,
349
+ maxX: N,
350
+ maxY: P
351
+ } : null, L = new Set(T.map((e) => e.layer)), R = [];
352
+ for (let e of L) {
353
+ let t = S.get(e);
354
+ R.push(t ?? {
355
+ name: e,
356
+ color: "#1a1a1a",
357
+ on: !0
358
+ });
359
+ }
360
+ return R.sort((e, t) => e.name.localeCompare(t.name)), {
361
+ prims: T,
362
+ layers: R,
363
+ bounds: I,
364
+ counts: E
365
+ };
366
+ }
367
+ function v(e) {
368
+ let t = [], n = null;
369
+ for (let r of e.pairs) r.code === 10 ? (n && t.push(n), n = {
370
+ x: Number.parseFloat(r.value),
371
+ y: 0,
372
+ bulge: 0
373
+ }) : r.code === 20 && n ? n.y = Number.parseFloat(r.value) : r.code === 42 && n && (n.bulge = Number.parseFloat(r.value));
374
+ return n && t.push(n), t;
375
+ }
376
+ function y(e) {
377
+ if (!e.length) return [];
378
+ let t = [[e[0].x, e[0].y]];
379
+ for (let n = 0; n + 1 < e.length; n++) {
380
+ let r = [e[n].x, e[n].y], i = [e[n + 1].x, e[n + 1].y];
381
+ for (let a of h(r, i, e[n].bulge)) t.push(a);
382
+ }
383
+ return t;
384
+ }
385
+ function b(e, t) {
386
+ let n = a(e, 10), r = a(e, 20), i = a(e, 11), o = a(e, 21), s = a(e, 40, 1), c = a(e, 41, 0), l = a(e, 42, Math.PI * 2), u = Math.hypot(i, o), d = u * s, f = Math.atan2(o, i), p = Math.cos(f), m = Math.sin(f), h = l - c <= 0 ? l - c + Math.PI * 2 : l - c, g = Math.max(8, Math.min(96, Math.ceil(h / (Math.PI * 2) * 72))), _ = [];
387
+ for (let e = 0; e <= g; e++) {
388
+ let i = c + h * e / g, a = Math.cos(i) * u, o = Math.sin(i) * d;
389
+ _.push(t(n + a * p - o * m, r + a * m + o * p));
390
+ }
391
+ return _;
392
+ }
393
+ function x(e, t) {
394
+ let n = [], r = [], i = null;
395
+ for (let a of e.pairs) a.code === 11 ? i = Number.parseFloat(a.value) : a.code === 21 && i !== null ? (n.push(t(i, Number.parseFloat(a.value))), i = null) : a.code === 10 ? i = Number.parseFloat(a.value) : a.code === 20 && i !== null && (r.push(t(i, Number.parseFloat(a.value))), i = null);
396
+ return n.length ? n : r;
397
+ }
398
+ //#endregion
399
+ export { _ as parseDxf };
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Hand-rolled EML email parser — the email-specific flattening on top of the shared MIME core (lib/mime.ts).
3
+ *
4
+ * An `.eml` file is a MIME message; lib/mime.ts parses the container into an {@link Entity} tree and decodes
5
+ * each leaf. Here we flatten that tree into a render-ready shape for EmlViewer.vue: the header fields, the
6
+ * best body (HTML preferred, plain-text fallback), and the attachment + inline-image leaves. Email inline
7
+ * images are referenced from the HTML body by `cid:` (Content-ID), so we also index them by content-id.
8
+ */
9
+ /** A non-body leaf: an attachment or an inline (cid-referenced) resource. */
10
+ export interface EmlAttachment {
11
+ filename: string;
12
+ contentType: string;
13
+ size: number;
14
+ bytes: Uint8Array;
15
+ /** disposition:inline, or an image carrying a Content-ID (referenced from the HTML body via `cid:`). */
16
+ isInline: boolean;
17
+ /** Content-ID without the angle brackets, '' if none — the key the HTML body's `cid:` refs resolve to. */
18
+ contentId: string;
19
+ }
20
+ /** Flattened, render-ready view of a parsed email. */
21
+ export interface ParsedEmail {
22
+ subject: string;
23
+ from: string;
24
+ to: string;
25
+ cc: string;
26
+ bcc: string;
27
+ replyTo: string;
28
+ /** Raw `Date:` header value (the viewer formats it for display). */
29
+ date: string;
30
+ /** Decoded text/html body, or null when the message has no HTML alternative. */
31
+ htmlBody: string | null;
32
+ /** Decoded text/plain body, or null when the message has no plain alternative. */
33
+ textBody: string | null;
34
+ /** Attachments + inline resources (inline ones are also indexed in {@link inlineById}). */
35
+ attachments: EmlAttachment[];
36
+ /** contentId → resource, for resolving `cid:` references in the HTML body to data URLs. */
37
+ inlineById: Map<string, EmlAttachment>;
38
+ }
39
+ /** Parse raw `.eml` bytes into a flattened {@link ParsedEmail}. */
40
+ export declare function parseEml(bytes: Uint8Array): ParsedEmail;
@@ -0,0 +1,46 @@
1
+ import { bytesToBinary as e, collectLeaves as t, decodeCharset as n, decodeWords as r, getHeader as i, parseEntity as a, parseHeaders as o, splitHeadersBody as s } from "./mime.js";
2
+ //#region src/lib/eml.ts
3
+ function c(e, t) {
4
+ let n = e.split("/")[1]?.replace(/[^a-z0-9.+-]/gi, "") || "bin";
5
+ return `attachment-${t + 1}.${n}`;
6
+ }
7
+ function l(l) {
8
+ let u = e(l), d = a(u), f = o(s(u)[0]), p = [];
9
+ t(d, p);
10
+ let m = null, h = null, g = [], _ = /* @__PURE__ */ new Map();
11
+ for (let e of p) {
12
+ let t = e.bodyBytes ?? new Uint8Array(), r = e.disposition === "attachment" || !!e.filename;
13
+ if (!r && e.contentType === "text/html" && m === null) {
14
+ m = n(t, e.charset);
15
+ continue;
16
+ }
17
+ if (!r && e.contentType === "text/plain" && h === null) {
18
+ h = n(t, e.charset);
19
+ continue;
20
+ }
21
+ let i = {
22
+ filename: e.filename || c(e.contentType, g.length),
23
+ contentType: e.contentType,
24
+ size: t.length,
25
+ bytes: t,
26
+ isInline: e.disposition === "inline" || !!e.contentId && e.contentType.startsWith("image/"),
27
+ contentId: e.contentId
28
+ };
29
+ g.push(i), e.contentId && _.set(e.contentId, i);
30
+ }
31
+ return {
32
+ subject: r(i(f, "subject")),
33
+ from: r(i(f, "from")),
34
+ to: r(i(f, "to")),
35
+ cc: r(i(f, "cc")),
36
+ bcc: r(i(f, "bcc")),
37
+ replyTo: r(i(f, "reply-to")),
38
+ date: i(f, "date"),
39
+ htmlBody: m,
40
+ textBody: h,
41
+ attachments: g,
42
+ inlineById: _
43
+ };
44
+ }
45
+ //#endregion
46
+ export { l as parseEml };