omni-viewer-core 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 (387) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +80 -0
  3. package/THIRD_PARTY_NOTICES.md +49 -0
  4. package/dist/assets/audio-engine/audio_engine.mjs +2 -0
  5. package/dist/assets/audio-engine/audio_engine.wasm +0 -0
  6. package/dist/assets/pdfjs/pdf.worker.min.mjs +21 -0
  7. package/dist/host/index.d.ts +133 -0
  8. package/dist/host/index.js +10 -0
  9. package/dist/i18n/catalog.en.d.ts +1 -0
  10. package/dist/i18n/catalog.en.js +411 -0
  11. package/dist/i18n/catalog.ko.d.ts +1 -0
  12. package/dist/i18n/catalog.ko.js +68 -0
  13. package/dist/i18n/index.d.ts +18 -0
  14. package/dist/i18n/index.js +41 -0
  15. package/dist/licenses/emscripten.txt +101 -0
  16. package/dist/licenses/kissfft.txt +28 -0
  17. package/dist/licenses/pdfjs-dist.txt +177 -0
  18. package/dist/parsers/a2l/index.d.ts +1 -0
  19. package/dist/parsers/a2l/index.js +1 -0
  20. package/dist/parsers/archive/index.d.ts +22 -0
  21. package/dist/parsers/archive/index.js +46 -0
  22. package/dist/parsers/archive/model.d.ts +29 -0
  23. package/dist/parsers/archive/model.js +1 -0
  24. package/dist/parsers/archive/worker.d.ts +21 -0
  25. package/dist/parsers/archive/worker.js +1 -0
  26. package/dist/parsers/arxml/index.d.ts +1 -0
  27. package/dist/parsers/arxml/index.js +1 -0
  28. package/dist/parsers/asc/index.d.ts +1 -0
  29. package/dist/parsers/asc/index.js +1 -0
  30. package/dist/parsers/audio/index.d.ts +9 -0
  31. package/dist/parsers/audio/index.js +46 -0
  32. package/dist/parsers/automotive/index.d.ts +33 -0
  33. package/dist/parsers/automotive/index.js +973 -0
  34. package/dist/parsers/blf/index.d.ts +1 -0
  35. package/dist/parsers/blf/index.js +1 -0
  36. package/dist/parsers/csv/delimiter.d.ts +31 -0
  37. package/dist/parsers/csv/delimiter.js +151 -0
  38. package/dist/parsers/csv/index.d.ts +30 -0
  39. package/dist/parsers/csv/index.js +108 -0
  40. package/dist/parsers/csv/parseText.d.ts +20 -0
  41. package/dist/parsers/csv/parseText.js +108 -0
  42. package/dist/parsers/csv/sort.d.ts +26 -0
  43. package/dist/parsers/csv/sort.js +224 -0
  44. package/dist/parsers/csv/statistics.d.ts +49 -0
  45. package/dist/parsers/csv/statistics.js +150 -0
  46. package/dist/parsers/dbc/index.d.ts +56 -0
  47. package/dist/parsers/dbc/index.js +94 -0
  48. package/dist/parsers/doc-binary/index.d.ts +35 -0
  49. package/dist/parsers/doc-binary/index.js +267 -0
  50. package/dist/parsers/doc-binary/vscode-parser.d.ts +142 -0
  51. package/dist/parsers/doc-binary/vscode-parser.js +3747 -0
  52. package/dist/parsers/excel/index.d.ts +17 -0
  53. package/dist/parsers/excel/index.js +406 -0
  54. package/dist/parsers/excel/model.d.ts +80 -0
  55. package/dist/parsers/excel/model.js +48 -0
  56. package/dist/parsers/excel/serialize.d.ts +3 -0
  57. package/dist/parsers/excel/serialize.js +78 -0
  58. package/dist/parsers/hdf5/index.d.ts +75 -0
  59. package/dist/parsers/hdf5/index.js +658 -0
  60. package/dist/parsers/hdf5/node.d.ts +21 -0
  61. package/dist/parsers/hdf5/node.js +95 -0
  62. package/dist/parsers/json/index.d.ts +15 -0
  63. package/dist/parsers/json/index.js +102 -0
  64. package/dist/parsers/json/model.d.ts +42 -0
  65. package/dist/parsers/json/model.js +140 -0
  66. package/dist/parsers/json/parse.d.ts +22 -0
  67. package/dist/parsers/json/parse.js +279 -0
  68. package/dist/parsers/json/tokenizer.d.ts +17 -0
  69. package/dist/parsers/json/tokenizer.js +175 -0
  70. package/dist/parsers/jsonl/index.d.ts +14 -0
  71. package/dist/parsers/jsonl/index.js +18 -0
  72. package/dist/parsers/jsonl/model.d.ts +23 -0
  73. package/dist/parsers/jsonl/model.js +1 -0
  74. package/dist/parsers/jsonl/parse.d.ts +7 -0
  75. package/dist/parsers/jsonl/parse.js +34 -0
  76. package/dist/parsers/markdown/index.d.ts +37 -0
  77. package/dist/parsers/markdown/index.js +59 -0
  78. package/dist/parsers/mat/index.d.ts +31 -0
  79. package/dist/parsers/mat/index.js +426 -0
  80. package/dist/parsers/mermaid/index.d.ts +5 -0
  81. package/dist/parsers/mermaid/index.js +3 -0
  82. package/dist/parsers/mf4/index.d.ts +1 -0
  83. package/dist/parsers/mf4/index.js +1 -0
  84. package/dist/parsers/parquet/index.d.ts +21 -0
  85. package/dist/parsers/parquet/index.js +68 -0
  86. package/dist/parsers/pcap/index.d.ts +1 -0
  87. package/dist/parsers/pcap/index.js +1 -0
  88. package/dist/parsers/pcapng/index.d.ts +1 -0
  89. package/dist/parsers/pcapng/index.js +1 -0
  90. package/dist/parsers/plantuml/index.d.ts +5 -0
  91. package/dist/parsers/plantuml/index.js +4 -0
  92. package/dist/parsers/ppt-binary/index.d.ts +5 -0
  93. package/dist/parsers/ppt-binary/index.js +62 -0
  94. package/dist/parsers/ppt-binary/pptBinaryBuildContext.d.ts +12 -0
  95. package/dist/parsers/ppt-binary/pptBinaryBuildContext.js +40 -0
  96. package/dist/parsers/ppt-binary/pptBinaryContainer.d.ts +4 -0
  97. package/dist/parsers/ppt-binary/pptBinaryContainer.js +174 -0
  98. package/dist/parsers/ppt-binary/pptBinaryTypes.d.ts +125 -0
  99. package/dist/parsers/ppt-binary/pptBinaryTypes.js +1 -0
  100. package/dist/parsers/ppt-binary/pptSlideLayouts.d.ts +9 -0
  101. package/dist/parsers/ppt-binary/pptSlideLayouts.js +510 -0
  102. package/dist/parsers/ppt-binary/vscode-parser.d.ts +116 -0
  103. package/dist/parsers/ppt-binary/vscode-parser.js +2853 -0
  104. package/dist/parsers/ppt-binary/vscode.d.ts +4 -0
  105. package/dist/parsers/ppt-binary/vscode.js +12 -0
  106. package/dist/parsers/pptx/index.d.ts +15 -0
  107. package/dist/parsers/pptx/index.js +88 -0
  108. package/dist/parsers/pptx/vscode-parser.d.ts +167 -0
  109. package/dist/parsers/pptx/vscode-parser.js +1503 -0
  110. package/dist/parsers/pptx/vscode.d.ts +4 -0
  111. package/dist/parsers/pptx/vscode.js +18 -0
  112. package/dist/parsers/pptx/zip-reader.d.ts +3 -0
  113. package/dist/parsers/pptx/zip-reader.js +20 -0
  114. package/dist/parsers/proto/index.d.ts +90 -0
  115. package/dist/parsers/proto/index.js +197 -0
  116. package/dist/parsers/psd/index.d.ts +16 -0
  117. package/dist/parsers/psd/index.js +10 -0
  118. package/dist/parsers/shapefile/dbf.d.ts +23 -0
  119. package/dist/parsers/shapefile/dbf.js +112 -0
  120. package/dist/parsers/shapefile/index.d.ts +44 -0
  121. package/dist/parsers/shapefile/index.js +119 -0
  122. package/dist/parsers/shapefile/reproject.d.ts +10 -0
  123. package/dist/parsers/shapefile/reproject.js +41 -0
  124. package/dist/parsers/slide-model.d.ts +106 -0
  125. package/dist/parsers/slide-model.js +1 -0
  126. package/dist/parsers/toml/index.d.ts +15 -0
  127. package/dist/parsers/toml/index.js +18 -0
  128. package/dist/parsers/toml/model.d.ts +15 -0
  129. package/dist/parsers/toml/model.js +1 -0
  130. package/dist/parsers/toml/parse.d.ts +16 -0
  131. package/dist/parsers/toml/parse.js +266 -0
  132. package/dist/parsers/types.d.ts +103 -0
  133. package/dist/parsers/types.js +106 -0
  134. package/dist/parsers/video/index.d.ts +6 -0
  135. package/dist/parsers/video/index.js +2 -0
  136. package/dist/parsers/yaml/index.d.ts +16 -0
  137. package/dist/parsers/yaml/index.js +58 -0
  138. package/dist/parsers/yaml/model.d.ts +22 -0
  139. package/dist/parsers/yaml/model.js +1 -0
  140. package/dist/parsers/yaml/self-loading.d.ts +3 -0
  141. package/dist/parsers/yaml/self-loading.js +19 -0
  142. package/dist/parsers/zip-scan.d.ts +8 -0
  143. package/dist/parsers/zip-scan.js +80 -0
  144. package/dist/registry/container.d.ts +17 -0
  145. package/dist/registry/container.js +49 -0
  146. package/dist/registry/index.d.ts +133 -0
  147. package/dist/registry/index.js +348 -0
  148. package/dist/registry/probe.d.ts +3 -0
  149. package/dist/registry/probe.js +177 -0
  150. package/dist/registry/sniff.d.ts +17 -0
  151. package/dist/registry/sniff.js +57 -0
  152. package/dist/styles/archive.css +10 -0
  153. package/dist/styles/audio.css +66 -0
  154. package/dist/styles/automotive.css +1 -0
  155. package/dist/styles/csv.css +262 -0
  156. package/dist/styles/excel.css +212 -0
  157. package/dist/styles/fallback.css +48 -0
  158. package/dist/styles/hdf5.css +3 -0
  159. package/dist/styles/hwp.css +12 -0
  160. package/dist/styles/image.css +115 -0
  161. package/dist/styles/json.css +342 -0
  162. package/dist/styles/jsonl.css +1 -0
  163. package/dist/styles/markdown.css +10 -0
  164. package/dist/styles/mat.css +2 -0
  165. package/dist/styles/mermaid.css +1 -0
  166. package/dist/styles/parquet.css +2 -0
  167. package/dist/styles/pdf.css +551 -0
  168. package/dist/styles/plantuml.css +1 -0
  169. package/dist/styles/ppt.css +1 -0
  170. package/dist/styles/proto.css +2 -0
  171. package/dist/styles/psd.css +1 -0
  172. package/dist/styles/shapefile.css +25 -0
  173. package/dist/styles/toml.css +1 -0
  174. package/dist/styles/video.css +74 -0
  175. package/dist/styles/word.css +685 -0
  176. package/dist/styles/yaml.css +1 -0
  177. package/dist/viewers/a2l/index.d.ts +15 -0
  178. package/dist/viewers/a2l/index.js +5 -0
  179. package/dist/viewers/archive/archive-preview-decoder.d.ts +4 -0
  180. package/dist/viewers/archive/archive-preview-decoder.js +223 -0
  181. package/dist/viewers/archive/controller.d.ts +24 -0
  182. package/dist/viewers/archive/controller.js +18 -0
  183. package/dist/viewers/archive/index.d.ts +25 -0
  184. package/dist/viewers/archive/index.js +230 -0
  185. package/dist/viewers/archive/preview.d.ts +2 -0
  186. package/dist/viewers/archive/preview.js +2 -0
  187. package/dist/viewers/archive/styles.d.ts +1 -0
  188. package/dist/viewers/archive/styles.js +11 -0
  189. package/dist/viewers/arxml/index.d.ts +15 -0
  190. package/dist/viewers/arxml/index.js +5 -0
  191. package/dist/viewers/asc/index.d.ts +15 -0
  192. package/dist/viewers/asc/index.js +5 -0
  193. package/dist/viewers/audio/controller.d.ts +33 -0
  194. package/dist/viewers/audio/controller.js +49 -0
  195. package/dist/viewers/audio/engine.d.ts +44 -0
  196. package/dist/viewers/audio/engine.js +108 -0
  197. package/dist/viewers/audio/index.d.ts +92 -0
  198. package/dist/viewers/audio/index.js +448 -0
  199. package/dist/viewers/audio/self-loading.d.ts +7 -0
  200. package/dist/viewers/audio/self-loading.js +42 -0
  201. package/dist/viewers/audio/styles.d.ts +1 -0
  202. package/dist/viewers/audio/styles.js +73 -0
  203. package/dist/viewers/automotive/index.d.ts +8 -0
  204. package/dist/viewers/automotive/index.js +152 -0
  205. package/dist/viewers/automotive/styles.d.ts +1 -0
  206. package/dist/viewers/automotive/styles.js +1 -0
  207. package/dist/viewers/avro/index.d.ts +15 -0
  208. package/dist/viewers/avro/index.js +5 -0
  209. package/dist/viewers/bag/index.d.ts +15 -0
  210. package/dist/viewers/bag/index.js +5 -0
  211. package/dist/viewers/blf/index.d.ts +15 -0
  212. package/dist/viewers/blf/index.js +5 -0
  213. package/dist/viewers/csv/controller.d.ts +126 -0
  214. package/dist/viewers/csv/controller.js +598 -0
  215. package/dist/viewers/csv/index.d.ts +48 -0
  216. package/dist/viewers/csv/index.js +846 -0
  217. package/dist/viewers/csv/styles.d.ts +1 -0
  218. package/dist/viewers/csv/styles.js +267 -0
  219. package/dist/viewers/db3/index.d.ts +15 -0
  220. package/dist/viewers/db3/index.js +5 -0
  221. package/dist/viewers/dbc/index.d.ts +15 -0
  222. package/dist/viewers/dbc/index.js +5 -0
  223. package/dist/viewers/diagram.d.ts +14 -0
  224. package/dist/viewers/diagram.js +95 -0
  225. package/dist/viewers/excel/controller.d.ts +108 -0
  226. package/dist/viewers/excel/controller.js +548 -0
  227. package/dist/viewers/excel/grid.d.ts +28 -0
  228. package/dist/viewers/excel/grid.js +99 -0
  229. package/dist/viewers/excel/index.d.ts +37 -0
  230. package/dist/viewers/excel/index.js +620 -0
  231. package/dist/viewers/excel/self-loading.d.ts +6 -0
  232. package/dist/viewers/excel/self-loading.js +13 -0
  233. package/dist/viewers/excel/styles.d.ts +1 -0
  234. package/dist/viewers/excel/styles.js +216 -0
  235. package/dist/viewers/fallback/index.d.ts +17 -0
  236. package/dist/viewers/fallback/index.js +130 -0
  237. package/dist/viewers/fallback/styles.d.ts +1 -0
  238. package/dist/viewers/fallback/styles.js +49 -0
  239. package/dist/viewers/hdf5/index.d.ts +19 -0
  240. package/dist/viewers/hdf5/index.js +170 -0
  241. package/dist/viewers/hdf5/styles.d.ts +1 -0
  242. package/dist/viewers/hdf5/styles.js +4 -0
  243. package/dist/viewers/hwp/controller.d.ts +19 -0
  244. package/dist/viewers/hwp/controller.js +22 -0
  245. package/dist/viewers/hwp/index.d.ts +39 -0
  246. package/dist/viewers/hwp/index.js +271 -0
  247. package/dist/viewers/hwp/self-loading.d.ts +2 -0
  248. package/dist/viewers/hwp/self-loading.js +6 -0
  249. package/dist/viewers/hwp/styles.d.ts +1 -0
  250. package/dist/viewers/hwp/styles.js +13 -0
  251. package/dist/viewers/image/controller.d.ts +210 -0
  252. package/dist/viewers/image/controller.js +336 -0
  253. package/dist/viewers/image/decode.d.ts +54 -0
  254. package/dist/viewers/image/decode.js +150 -0
  255. package/dist/viewers/image/index.d.ts +38 -0
  256. package/dist/viewers/image/index.js +749 -0
  257. package/dist/viewers/image/limits.d.ts +18 -0
  258. package/dist/viewers/image/limits.js +20 -0
  259. package/dist/viewers/image/styles.d.ts +1 -0
  260. package/dist/viewers/image/styles.js +119 -0
  261. package/dist/viewers/json/controller.d.ts +89 -0
  262. package/dist/viewers/json/controller.js +411 -0
  263. package/dist/viewers/json/index.d.ts +25 -0
  264. package/dist/viewers/json/index.js +503 -0
  265. package/dist/viewers/json/styles.d.ts +1 -0
  266. package/dist/viewers/json/styles.js +346 -0
  267. package/dist/viewers/json/transforms.d.ts +27 -0
  268. package/dist/viewers/json/transforms.js +253 -0
  269. package/dist/viewers/jsonl/controller.d.ts +48 -0
  270. package/dist/viewers/jsonl/controller.js +136 -0
  271. package/dist/viewers/jsonl/index.d.ts +22 -0
  272. package/dist/viewers/jsonl/index.js +184 -0
  273. package/dist/viewers/jsonl/styles.d.ts +1 -0
  274. package/dist/viewers/jsonl/styles.js +1 -0
  275. package/dist/viewers/markdown/controller.d.ts +50 -0
  276. package/dist/viewers/markdown/controller.js +62 -0
  277. package/dist/viewers/markdown/index.d.ts +64 -0
  278. package/dist/viewers/markdown/index.js +425 -0
  279. package/dist/viewers/markdown/math.d.ts +21 -0
  280. package/dist/viewers/markdown/math.js +100 -0
  281. package/dist/viewers/markdown/self-loading.d.ts +5 -0
  282. package/dist/viewers/markdown/self-loading.js +48 -0
  283. package/dist/viewers/markdown/styles.d.ts +1 -0
  284. package/dist/viewers/markdown/styles.js +11 -0
  285. package/dist/viewers/mat/index.d.ts +19 -0
  286. package/dist/viewers/mat/index.js +113 -0
  287. package/dist/viewers/mat/styles.d.ts +1 -0
  288. package/dist/viewers/mat/styles.js +3 -0
  289. package/dist/viewers/media.d.ts +9 -0
  290. package/dist/viewers/media.js +77 -0
  291. package/dist/viewers/mermaid/index.d.ts +17 -0
  292. package/dist/viewers/mermaid/index.js +6 -0
  293. package/dist/viewers/mermaid/self-loading.d.ts +2 -0
  294. package/dist/viewers/mermaid/self-loading.js +2 -0
  295. package/dist/viewers/mf4/index.d.ts +15 -0
  296. package/dist/viewers/mf4/index.js +5 -0
  297. package/dist/viewers/parquet/controller.d.ts +37 -0
  298. package/dist/viewers/parquet/controller.js +26 -0
  299. package/dist/viewers/parquet/index.d.ts +23 -0
  300. package/dist/viewers/parquet/index.js +134 -0
  301. package/dist/viewers/parquet/styles.d.ts +1 -0
  302. package/dist/viewers/parquet/styles.js +3 -0
  303. package/dist/viewers/pcap/index.d.ts +15 -0
  304. package/dist/viewers/pcap/index.js +5 -0
  305. package/dist/viewers/pcapng/index.d.ts +15 -0
  306. package/dist/viewers/pcapng/index.js +5 -0
  307. package/dist/viewers/pdf/controller.d.ts +120 -0
  308. package/dist/viewers/pdf/controller.js +191 -0
  309. package/dist/viewers/pdf/editing.d.ts +26 -0
  310. package/dist/viewers/pdf/editing.js +265 -0
  311. package/dist/viewers/pdf/index.d.ts +88 -0
  312. package/dist/viewers/pdf/index.js +1400 -0
  313. package/dist/viewers/pdf/self-loading.d.ts +6 -0
  314. package/dist/viewers/pdf/self-loading.js +14 -0
  315. package/dist/viewers/pdf/styles.d.ts +1 -0
  316. package/dist/viewers/pdf/styles.js +555 -0
  317. package/dist/viewers/plantuml/index.d.ts +17 -0
  318. package/dist/viewers/plantuml/index.js +6 -0
  319. package/dist/viewers/plantuml/self-loading.d.ts +2 -0
  320. package/dist/viewers/plantuml/self-loading.js +2 -0
  321. package/dist/viewers/ppt/chart.d.ts +8 -0
  322. package/dist/viewers/ppt/chart.js +83 -0
  323. package/dist/viewers/ppt/controller.d.ts +34 -0
  324. package/dist/viewers/ppt/controller.js +27 -0
  325. package/dist/viewers/ppt/index.d.ts +33 -0
  326. package/dist/viewers/ppt/index.js +101 -0
  327. package/dist/viewers/ppt/render.d.ts +5 -0
  328. package/dist/viewers/ppt/render.js +144 -0
  329. package/dist/viewers/ppt/self-loading.d.ts +9 -0
  330. package/dist/viewers/ppt/self-loading.js +4 -0
  331. package/dist/viewers/ppt/styles.d.ts +1 -0
  332. package/dist/viewers/ppt/styles.js +1 -0
  333. package/dist/viewers/proto/index.d.ts +17 -0
  334. package/dist/viewers/proto/index.js +170 -0
  335. package/dist/viewers/proto/styles.d.ts +1 -0
  336. package/dist/viewers/proto/styles.js +2 -0
  337. package/dist/viewers/psd/index.d.ts +27 -0
  338. package/dist/viewers/psd/index.js +39 -0
  339. package/dist/viewers/psd/self-loading.d.ts +10 -0
  340. package/dist/viewers/psd/self-loading.js +20 -0
  341. package/dist/viewers/psd/styles.d.ts +1 -0
  342. package/dist/viewers/psd/styles.js +1 -0
  343. package/dist/viewers/reqif/index.d.ts +15 -0
  344. package/dist/viewers/reqif/index.js +5 -0
  345. package/dist/viewers/shapefile/index.d.ts +35 -0
  346. package/dist/viewers/shapefile/index.js +336 -0
  347. package/dist/viewers/shapefile/self-loading.d.ts +7 -0
  348. package/dist/viewers/shapefile/self-loading.js +32 -0
  349. package/dist/viewers/shapefile/styles.d.ts +1 -0
  350. package/dist/viewers/shapefile/styles.js +28 -0
  351. package/dist/viewers/stp/index.d.ts +15 -0
  352. package/dist/viewers/stp/index.js +5 -0
  353. package/dist/viewers/structured-styles.d.ts +1 -0
  354. package/dist/viewers/structured-styles.js +1 -0
  355. package/dist/viewers/structured.d.ts +36 -0
  356. package/dist/viewers/structured.js +138 -0
  357. package/dist/viewers/toml/controller.d.ts +38 -0
  358. package/dist/viewers/toml/controller.js +61 -0
  359. package/dist/viewers/toml/index.d.ts +18 -0
  360. package/dist/viewers/toml/index.js +34 -0
  361. package/dist/viewers/types.d.ts +36 -0
  362. package/dist/viewers/types.js +9 -0
  363. package/dist/viewers/video/controller.d.ts +29 -0
  364. package/dist/viewers/video/controller.js +54 -0
  365. package/dist/viewers/video/index.d.ts +18 -0
  366. package/dist/viewers/video/index.js +305 -0
  367. package/dist/viewers/video/styles.d.ts +1 -0
  368. package/dist/viewers/video/styles.js +79 -0
  369. package/dist/viewers/word/controller.d.ts +19 -0
  370. package/dist/viewers/word/controller.js +22 -0
  371. package/dist/viewers/word/docx-preprocess.d.ts +63 -0
  372. package/dist/viewers/word/docx-preprocess.js +136 -0
  373. package/dist/viewers/word/index.d.ts +32 -0
  374. package/dist/viewers/word/index.js +187 -0
  375. package/dist/viewers/word/normalize-docx.d.ts +2 -0
  376. package/dist/viewers/word/normalize-docx.js +50 -0
  377. package/dist/viewers/word/paginate.d.ts +1 -0
  378. package/dist/viewers/word/paginate.js +1035 -0
  379. package/dist/viewers/word/self-loading.d.ts +2 -0
  380. package/dist/viewers/word/self-loading.js +7 -0
  381. package/dist/viewers/word/styles.d.ts +1 -0
  382. package/dist/viewers/word/styles.js +686 -0
  383. package/dist/viewers/yaml/controller.d.ts +42 -0
  384. package/dist/viewers/yaml/controller.js +41 -0
  385. package/dist/viewers/yaml/index.d.ts +21 -0
  386. package/dist/viewers/yaml/index.js +20 -0
  387. package/package.json +375 -0
@@ -0,0 +1,267 @@
1
+ export { DocBinaryParser } from './vscode-parser.js';
2
+ const FREESECT = 0xffffffff;
3
+ const ENDOFCHAIN = 0xfffffffe;
4
+ const OLE_MAGIC = [0xd0, 0xcf, 0x11, 0xe0, 0xa1, 0xb1, 0x1a, 0xe1];
5
+ const u16 = (data, offset) => new DataView(data.buffer, data.byteOffset, data.byteLength).getUint16(offset, true);
6
+ const i32 = (data, offset) => new DataView(data.buffer, data.byteOffset, data.byteLength).getInt32(offset, true);
7
+ const u32 = (data, offset) => new DataView(data.buffer, data.byteOffset, data.byteLength).getUint32(offset, true);
8
+ const concat = (chunks) => { const size = chunks.reduce((n, c) => n + c.length, 0); const out = new Uint8Array(size); let offset = 0; for (const chunk of chunks) {
9
+ out.set(chunk, offset);
10
+ offset += chunk.length;
11
+ } return out; };
12
+ function outcome(result) {
13
+ return { result, execution: { workerUsed: false, hardLimitEnforced: false, elapsedMillis: 0 } };
14
+ }
15
+ export function parseDocBinary(input) {
16
+ try {
17
+ const cfb = parseCfb(input);
18
+ const word = cfb.getStream('WordDocument');
19
+ if (!word)
20
+ return failed('corrupted');
21
+ const fib = parseFib(word);
22
+ const table = cfb.getStream(fib.tableStreamName);
23
+ if (!table)
24
+ return failed('corrupted');
25
+ const pieces = parsePieceTable(table, fib);
26
+ if (pieces.length === 0)
27
+ return failed('corrupted');
28
+ const decoded = decodePieces(word, pieces);
29
+ const mainText = normalize(decoded.slice(0, fib.ccpText || decoded.length));
30
+ const headerText = fib.ccpHdd > 0 ? normalize(decoded.slice(fib.ccpText, fib.ccpText + fib.ccpHdd)) : '';
31
+ const diagnostics = [];
32
+ const blocks = buildBlocks(mainText);
33
+ const images = extractImages(cfb);
34
+ if (images.length)
35
+ blocks.push(...images);
36
+ const headerParts = headerText.split(/\n+/).filter(Boolean);
37
+ const section = { blocks };
38
+ if (headerParts[0])
39
+ section.header = headerParts[0];
40
+ const footer = headerParts.at(-1);
41
+ if (headerParts.length > 1 && footer)
42
+ section.footer = footer;
43
+ if (images.length === 0 && cfb.listStreams().some((entry) => /ObjectPool|Ole10Native|Package/i.test(entry.name))) {
44
+ diagnostics.push({ severity: 'warning', code: 'unsupported-feature', messageKey: 'diag.word.embedded-partial' });
45
+ }
46
+ return outcome({ status: diagnostics.length ? 'partial' : 'ok', document: { sections: [section], text: mainText }, diagnostics });
47
+ }
48
+ catch (error) {
49
+ return outcome({ status: 'failed', failure: { code: 'invalid-format', retryable: false, messageKey: 'diag.word.invalid-format' }, diagnostics: [{ severity: 'error', code: 'parse-error', messageKey: 'diag.word.invalid-format', location: error instanceof Error ? error.message : String(error) }] });
50
+ }
51
+ }
52
+ function failed(code) {
53
+ return outcome({ status: 'failed', failure: { code, retryable: false, messageKey: 'diag.word.invalid-format' }, diagnostics: [] });
54
+ }
55
+ function parseFib(word) {
56
+ if (word.length < 64 || u16(word, 0) !== 0xa5ec)
57
+ throw new Error('invalid FIB');
58
+ const flags = u16(word, 10);
59
+ const tableStreamName = ((flags >> 9) & 1) ? '1Table' : '0Table';
60
+ let offset = 32;
61
+ const csw = u16(word, offset);
62
+ offset += 2 + csw * 2;
63
+ const cslw = u16(word, offset);
64
+ offset += 2;
65
+ const lwOffset = offset;
66
+ const ccpText = cslw >= 4 ? u32(word, lwOffset + 12) : 0;
67
+ const ccpHdd = cslw >= 6 ? u32(word, lwOffset + 20) : 0;
68
+ offset += cslw * 4;
69
+ const pairCount = u16(word, offset);
70
+ offset += 2;
71
+ const pair = (index) => index < pairCount && offset + index * 8 + 8 <= word.length ? [u32(word, offset + index * 8), u32(word, offset + index * 8 + 4)] : [0, 0];
72
+ const [fcClx, lcbClx] = pair(33);
73
+ return { tableStreamName, ccpText, ccpHdd, fcClx, lcbClx };
74
+ }
75
+ function parsePieceTable(table, fib) {
76
+ if (fib.lcbClx <= 0 || fib.fcClx + fib.lcbClx > table.length)
77
+ return scanPieceTables(table);
78
+ const clx = table.subarray(fib.fcClx, fib.fcClx + fib.lcbClx);
79
+ let offset = 0;
80
+ while (offset < clx.length && clx[offset] === 1) {
81
+ if (offset + 3 > clx.length)
82
+ return [];
83
+ offset += 3 + u16(clx, offset + 1);
84
+ }
85
+ if (clx[offset] !== 2 || offset + 5 > clx.length)
86
+ return scanPieceTables(table);
87
+ const length = u32(clx, offset + 1);
88
+ return decodePlc(clx.subarray(offset + 5, offset + 5 + length));
89
+ }
90
+ function scanPieceTables(table) {
91
+ let best = [];
92
+ for (let offset = 0; offset + 21 < table.length; offset++) {
93
+ if (table[offset] !== 2)
94
+ continue;
95
+ const length = u32(table, offset + 1);
96
+ if (length < 16 || (length - 4) % 12 || offset + 5 + length > table.length)
97
+ continue;
98
+ const candidate = decodePlc(table.subarray(offset + 5, offset + 5 + length));
99
+ if (candidate.length > best.length)
100
+ best = candidate;
101
+ }
102
+ return best;
103
+ }
104
+ function decodePlc(plc) {
105
+ const count = (plc.length - 4) / 12;
106
+ if (!Number.isInteger(count) || count <= 0 || count > 200000)
107
+ return [];
108
+ const cpBytes = (count + 1) * 4;
109
+ const pieces = [];
110
+ let previous = u32(plc, 0);
111
+ for (let index = 0; index < count; index++) {
112
+ const next = u32(plc, (index + 1) * 4);
113
+ if (next < previous || next - previous > 10_000_000)
114
+ return [];
115
+ const pcdOffset = cpBytes + index * 8;
116
+ const raw = u32(plc, pcdOffset + 2);
117
+ const compressed = (raw & 0x40000000) !== 0;
118
+ const byteOffset = compressed ? ((raw & 0x3fffffff) >>> 1) : (raw & 0x3fffffff);
119
+ pieces.push({ cpStart: previous, cpEnd: next, byteOffset, compressed });
120
+ previous = next;
121
+ }
122
+ return pieces;
123
+ }
124
+ function decodePieces(word, pieces) {
125
+ const candidates = ['windows-1252', 'euc-kr', 'shift_jis'].map((encoding) => ({ encoding, parts: [] }));
126
+ for (const piece of pieces) {
127
+ const chars = piece.cpEnd - piece.cpStart, bytes = chars * (piece.compressed ? 1 : 2);
128
+ if (piece.byteOffset + bytes > word.length)
129
+ continue;
130
+ const data = word.subarray(piece.byteOffset, piece.byteOffset + bytes);
131
+ if (!piece.compressed) {
132
+ const text = decodeUtf16(data);
133
+ candidates.forEach((candidate) => candidate.parts.push(text));
134
+ continue;
135
+ }
136
+ for (const candidate of candidates)
137
+ candidate.parts.push(decodeLegacy(data, candidate.encoding));
138
+ }
139
+ return candidates.map((candidate) => candidate.parts.join('')).sort((a, b) => readableScore(b) - readableScore(a))[0] ?? '';
140
+ }
141
+ function decodeUtf16(data) { let text = ''; for (let i = 0; i + 1 < data.length; i += 2)
142
+ text += String.fromCharCode((data[i] ?? 0) | ((data[i + 1] ?? 0) << 8)); return text; }
143
+ const CP1252 = { 128: 0x20ac, 130: 0x201a, 131: 0x0192, 132: 0x201e, 133: 0x2026, 134: 0x2020, 135: 0x2021, 136: 0x02c6, 137: 0x2030, 138: 0x0160, 139: 0x2039, 140: 0x0152, 142: 0x017d, 145: 0x2018, 146: 0x2019, 147: 0x201c, 148: 0x201d, 149: 0x2022, 150: 0x2013, 151: 0x2014, 152: 0x02dc, 153: 0x2122, 154: 0x0161, 155: 0x203a, 156: 0x0153, 158: 0x017e, 159: 0x0178 };
144
+ function decodeCp1252(data) { let text = ''; for (const byte of data)
145
+ text += String.fromCharCode(CP1252[byte] ?? byte); return text; }
146
+ function decodeLegacy(data, encoding) { try {
147
+ return new TextDecoder(encoding).decode(data);
148
+ }
149
+ catch {
150
+ return decodeCp1252(data);
151
+ } }
152
+ function readableScore(text) { const readable = (text.match(/[A-Za-z0-9가-힣ぁ-んァ-ン一-龯]/g) ?? []).length; const replacement = (text.match(/�/g) ?? []).length; const mojibake = (text.match(/[ÃÂÐÑØÞãäåæçðñøþ]/g) ?? []).length; return readable * 3 + text.length - replacement * 30 - mojibake * 12; }
153
+ function normalize(text) {
154
+ return text.replace(/[\u0002-\u0008\u000b\u000c\u000e-\u001f]/g, '').replace(/\u0007/g, '\t').replace(/\r/g, '\n').replace(/\u0013[^\u0014]*(?:\u0014)?/g, '').replace(/\u0015/g, '').replace(/\n{3,}/g, '\n\n').trim();
155
+ }
156
+ function buildBlocks(text) {
157
+ const blocks = [];
158
+ let tableRows = [];
159
+ const flushTable = () => { if (tableRows.length) {
160
+ blocks.push({ kind: 'table', rows: tableRows });
161
+ tableRows = [];
162
+ } };
163
+ for (const line of text.split('\n')) {
164
+ if (line.includes('\t')) {
165
+ tableRows.push(line.split('\t').map((cell) => cell.trim()));
166
+ continue;
167
+ }
168
+ flushTable();
169
+ if (line.trim())
170
+ blocks.push({ kind: 'paragraph', text: line.trim(), runs: [{ text: line.trim() }] });
171
+ }
172
+ flushTable();
173
+ return blocks;
174
+ }
175
+ function extractImages(cfb) {
176
+ const images = [];
177
+ for (const entry of cfb.listStreams()) {
178
+ if (!/Data|Pictures|OfficeArt|Ole10Native|Package/i.test(entry.name))
179
+ continue;
180
+ const stream = cfb.getStream(entry.name);
181
+ if (!stream)
182
+ continue;
183
+ for (const sig of [{ bytes: [0xff, 0xd8, 0xff], mime: 'image/jpeg', end: [0xff, 0xd9] }, { bytes: [0x89, 0x50, 0x4e, 0x47], mime: 'image/png', end: [0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82] }, { bytes: [0x47, 0x49, 0x46, 0x38], mime: 'image/gif' }]) {
184
+ const start = indexOf(stream, sig.bytes);
185
+ if (start < 0)
186
+ continue;
187
+ const endAt = sig.end ? indexOf(stream, sig.end, start + sig.bytes.length) : -1;
188
+ const end = endAt >= 0 && sig.end ? endAt + sig.end.length : stream.length;
189
+ images.push({ kind: 'image', mimeType: sig.mime, data: stream.slice(start, end), alt: entry.name });
190
+ break;
191
+ }
192
+ }
193
+ return images;
194
+ }
195
+ function indexOf(data, needle, from = 0) { outer: for (let i = from; i <= data.length - needle.length; i++) {
196
+ for (let j = 0; j < needle.length; j++)
197
+ if (data[i + j] !== needle[j])
198
+ continue outer;
199
+ return i;
200
+ } return -1; }
201
+ function parseCfb(file) {
202
+ if (file.length < 512 || !OLE_MAGIC.every((byte, index) => file[index] === byte))
203
+ throw new Error('invalid CFB');
204
+ const sectorSize = 1 << u16(file, 30), miniSectorSize = 1 << u16(file, 32);
205
+ if (![512, 4096].includes(sectorSize) || miniSectorSize !== 64)
206
+ throw new Error('unsupported CFB');
207
+ const numFat = u32(file, 44), firstDir = i32(file, 48), miniCutoff = u32(file, 56), firstMiniFat = i32(file, 60), numMiniFat = u32(file, 64), firstDifat = i32(file, 68), numDifat = u32(file, 72);
208
+ const sector = (sid) => { const start = (sid + 1) * sectorSize; return sid >= 0 && start + sectorSize <= file.length ? file.subarray(start, start + sectorSize) : new Uint8Array(); };
209
+ const difat = [];
210
+ for (let i = 0; i < 109; i++) {
211
+ const sid = i32(file, 76 + i * 4);
212
+ if (sid >= 0)
213
+ difat.push(sid);
214
+ }
215
+ let difatSid = firstDifat;
216
+ for (let n = 0; n < numDifat && difatSid >= 0; n++) {
217
+ const data = sector(difatSid);
218
+ if (!data.length)
219
+ break;
220
+ for (let i = 0; i < sectorSize / 4 - 1; i++) {
221
+ const sid = i32(data, i * 4);
222
+ if (sid >= 0)
223
+ difat.push(sid);
224
+ }
225
+ difatSid = i32(data, sectorSize - 4);
226
+ }
227
+ const fat = [];
228
+ for (const sid of difat.slice(0, numFat)) {
229
+ const data = sector(sid);
230
+ for (let i = 0; i + 4 <= data.length; i += 4)
231
+ fat.push(u32(data, i));
232
+ }
233
+ const chain = (start) => { const chunks = [], seen = new Set(); let sid = start; while (sid >= 0 && sid !== ENDOFCHAIN && sid !== FREESECT && !seen.has(sid) && sid < fat.length) {
234
+ seen.add(sid);
235
+ const data = sector(sid);
236
+ if (!data.length)
237
+ break;
238
+ chunks.push(data);
239
+ sid = fat[sid] ?? ENDOFCHAIN;
240
+ } return concat(chunks); };
241
+ const dir = chain(firstDir), entries = [];
242
+ for (let offset = 0; offset + 128 <= dir.length; offset += 128) {
243
+ const nameLength = u16(dir, offset + 64);
244
+ const name = decodeUtf16(dir.subarray(offset, offset + Math.max(0, nameLength - 2))).replace(/\0/g, '');
245
+ const type = dir[offset + 66] ?? 0;
246
+ const startSector = i32(dir, offset + 116);
247
+ const size = u32(dir, offset + 120);
248
+ entries.push({ name, type, startSector, size });
249
+ }
250
+ const root = entries.find((entry) => entry.type === 5);
251
+ const miniStream = root ? chain(root.startSector).subarray(0, root.size) : new Uint8Array();
252
+ const miniFatBytes = chain(firstMiniFat);
253
+ const miniFat = [];
254
+ for (let i = 0; i + 4 <= miniFatBytes.length && i / 4 < numMiniFat * sectorSize / 4; i += 4)
255
+ miniFat.push(u32(miniFatBytes, i));
256
+ const miniChain = (start, size) => { const chunks = [], seen = new Set(); let sid = start; while (sid >= 0 && sid !== ENDOFCHAIN && sid !== FREESECT && !seen.has(sid) && sid < miniFat.length) {
257
+ seen.add(sid);
258
+ const offset = sid * miniSectorSize;
259
+ if (offset + miniSectorSize > miniStream.length)
260
+ break;
261
+ chunks.push(miniStream.subarray(offset, offset + miniSectorSize));
262
+ sid = miniFat[sid] ?? ENDOFCHAIN;
263
+ } return concat(chunks).subarray(0, size); };
264
+ const streams = entries.filter((entry) => entry.type === 2 && entry.name);
265
+ return { getStream(name) { const entry = streams.find((item) => item.name === name); if (!entry)
266
+ return null; return entry.size < miniCutoff ? miniChain(entry.startSector, entry.size) : chain(entry.startSector).subarray(0, entry.size); }, listStreams() { return streams.slice(); } };
267
+ }
@@ -0,0 +1,142 @@
1
+ export interface DocBinaryRuntimeDeps {
2
+ xlsx?: any;
3
+ jszip?: any;
4
+ }
5
+ export declare class DocBinaryParser {
6
+ private static readonly FIELD_CODE_NOISE_PATTERN;
7
+ private static readonly HEADER_FOOTER_FIELD_PATTERN;
8
+ static parseBytes(input: Uint8Array, deps?: DocBinaryRuntimeDeps): Promise<string>;
9
+ private static extractDocumentText;
10
+ private static extractSectionBoundaries;
11
+ private static extractHeaderFooterBySection;
12
+ private static extractTextForCpRange;
13
+ private static normalizeHeaderFooterText;
14
+ private static extractSectionLayoutFromSed;
15
+ private static parseSepxLayout;
16
+ private static parseSectionGrpprl;
17
+ private static parseFib;
18
+ private static detectEmbeddedObjectPlacementMode;
19
+ private static extractFromClx;
20
+ private static extractFromPieceTable;
21
+ private static decodePieceTable;
22
+ private static isValidCpSequence;
23
+ private static scoreExtractedText;
24
+ private static extractFallbackText;
25
+ private static extractCharacterStyleRuns;
26
+ private static extractParagraphStyleRuns;
27
+ private static parsePapxFkp;
28
+ private static parsePapxInFkp;
29
+ private static parseParagraphGrpprl;
30
+ private static isExplicitTableBorderSprm;
31
+ private static parseTDefTableOperand;
32
+ private static parseChpxFkp;
33
+ private static parseCharacterGrpprl;
34
+ private static getSprmOperandLength;
35
+ private static hasCharacterStyle;
36
+ private static parseColorRef;
37
+ private static parseShdOperand;
38
+ private static parseHighlightIco;
39
+ private static sanitizeRenderableBackground;
40
+ private static parseHexColor;
41
+ private static buildStyledParagraphs;
42
+ private static enrichStructuredTableParagraphs;
43
+ private static buildStyledParagraphsFromSegments;
44
+ private static readFieldInstruction;
45
+ private static parseEmbeddedChartObjectClass;
46
+ private static normalizeInlineRuns;
47
+ private static findCharacterStyleForFc;
48
+ private static findParagraphStyleForFc;
49
+ private static areCharacterStylesEqual;
50
+ private static hasParagraphLayoutStyle;
51
+ private static parseParagraphAlignment;
52
+ private static inferListLevel;
53
+ private static mergeStyles;
54
+ private static pickDominantStyleValue;
55
+ private static selectBestDecodedCandidate;
56
+ private static extractReadableSegments;
57
+ private static dedupeSegments;
58
+ private static renderHtml;
59
+ private static buildDocumentBlocks;
60
+ private static buildRenderableLines;
61
+ private static composeDocumentBlocks;
62
+ private static findPreferredAssetInsertionIndex;
63
+ private static buildEmbeddedSheetBlocks;
64
+ private static wrapLegacyHtml;
65
+ private static buildSemanticDocumentModel;
66
+ private static buildSemanticSectionModel;
67
+ private static buildRenderedDocumentModel;
68
+ private static buildRenderedSectionModel;
69
+ private static buildSemanticHeaderFooterModel;
70
+ private static buildRenderedHeaderFooterModel;
71
+ private static renderLegacyDocumentModel;
72
+ private static inferLegacyLayoutMetrics;
73
+ private static defaultLegacyLayoutMetrics;
74
+ private static buildLegacySections;
75
+ private static twipsToMm;
76
+ private static buildBlocks;
77
+ private static collectImplicitBulletList;
78
+ private static isImplicitBulletCandidate;
79
+ private static isLikelyLeadParagraph;
80
+ private static isLikelySectionLeadParagraph;
81
+ private static promoteInlineRuns;
82
+ private static collectDefinitionSection;
83
+ private static collectStructuredTable;
84
+ private static buildStructuredTableRow;
85
+ private static splitStructuredTableRow;
86
+ private static buildTableCells;
87
+ private static renderBlocks;
88
+ private static buildSemanticBlockModel;
89
+ private static buildRenderedBlockModel;
90
+ private static renderRenderedTableModel;
91
+ private static buildRenderedTableModel;
92
+ private static wrapLegacyBlock;
93
+ private static detectEmbeddedSheetHeaderRowCount;
94
+ private static inferFloatingSideFromStyle;
95
+ private static inferFloatingWidthModeFromStyle;
96
+ private static inferFloatingPlacementFromStyle;
97
+ private static inferFloatingClearancePx;
98
+ private static estimateContentBlockHeightPx;
99
+ private static estimateListBlockHeightPx;
100
+ private static estimateTableBlockHeightPx;
101
+ private static estimateSheetBlockHeightPx;
102
+ private static estimateImageBlockHeightPx;
103
+ private static flattenSingleRunBlock;
104
+ private static renderInlineStyleAttribute;
105
+ private static renderInlineStyledText;
106
+ private static buildSemanticInlineTokens;
107
+ private static renderSemanticInlineTokens;
108
+ private static tokenizeSemanticInlineText;
109
+ private static inferSemanticContentRole;
110
+ private static tokenizeHeaderFooterText;
111
+ private static renderTableColGroup;
112
+ private static buildSemanticTableModel;
113
+ private static detectTableHeaderRowCount;
114
+ private static getListKind;
115
+ private static collectTableRows;
116
+ private static collectDefinitionTable;
117
+ private static splitTableColumns;
118
+ private static splitDefinitionColumns;
119
+ private static looksLikeSectionHeading;
120
+ private static isLikelyDocumentTitle;
121
+ private static isCompactHeadingCandidate;
122
+ private static shouldDropLine;
123
+ private static parseCfb;
124
+ private static normalizeDocumentText;
125
+ private static normalizeParagraphText;
126
+ private static stripFieldCodeNoise;
127
+ private static isNoise;
128
+ private static isMostlyReadable;
129
+ private static hasEnoughLetters;
130
+ private static normalizeImageLabel;
131
+ private static extractImages;
132
+ private static extractEmbeddedWorkbookTables;
133
+ private static extractEmbeddedPackageCharts;
134
+ private static parseOdfChartContent;
135
+ private static parseOdfTableRow;
136
+ private static buildEmbeddedChart;
137
+ private static inferEmbeddedChartType;
138
+ private static renderEmbeddedChart;
139
+ private static extractImageBuffer;
140
+ private static escapeHtml;
141
+ private static decodeXmlEntities;
142
+ }