@foxycape/core 1.1.5 → 1.1.7

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 (516) hide show
  1. package/README.MD +0 -2
  2. package/README.zh.md +0 -2
  3. package/dist/ReaderHub.cjs +1 -0
  4. package/dist/ReaderHub.d.ts +20 -0
  5. package/dist/ReaderHub.mjs +59 -0
  6. package/dist/kernal/ContentRange.d.ts +1 -0
  7. package/dist/kernal/Context.cjs +1 -1
  8. package/dist/kernal/Context.mjs +13 -8
  9. package/dist/kernal/EventNames.cjs +1 -1
  10. package/dist/kernal/EventNames.d.ts +2 -0
  11. package/dist/kernal/EventNames.mjs +6 -0
  12. package/dist/kernal/FileLoader.cjs +1 -1
  13. package/dist/kernal/FileLoader.d.ts +3 -11
  14. package/dist/kernal/FileLoader.mjs +27 -22
  15. package/dist/kernal/JsonConvert.cjs +1 -1
  16. package/dist/kernal/JsonConvert.d.ts +0 -1
  17. package/dist/kernal/JsonConvert.mjs +17 -25
  18. package/dist/kernal/LifecycleHooks.d.ts +2 -1
  19. package/dist/kernal/Metadata.cjs +1 -1
  20. package/dist/kernal/Metadata.d.ts +34 -0
  21. package/dist/kernal/Metadata.mjs +47 -2
  22. package/dist/kernal/OpenOptions.d.ts +1 -0
  23. package/dist/kernal/Options.cjs +1 -1
  24. package/dist/kernal/Options.d.ts +2 -12
  25. package/dist/kernal/Options.mjs +1 -13
  26. package/dist/kernal/OptionsProvider.cjs +1 -1
  27. package/dist/kernal/OptionsProvider.d.ts +0 -2
  28. package/dist/kernal/OptionsProvider.mjs +6 -14
  29. package/dist/kernal/Reader.cjs +1 -1
  30. package/dist/kernal/Reader.d.ts +13 -12
  31. package/dist/kernal/Reader.mjs +119 -89
  32. package/dist/kernal/Theme.cjs +1 -1
  33. package/dist/kernal/Theme.mjs +1 -1
  34. package/dist/kernal/common/url.cjs +1 -1
  35. package/dist/kernal/common/url.d.ts +2 -0
  36. package/dist/kernal/common/url.mjs +2 -2
  37. package/dist/kernal/common/uuid.cjs +1 -1
  38. package/dist/kernal/common/uuid.mjs +7 -7
  39. package/dist/kernal/common/xxh64.cjs +1 -0
  40. package/dist/kernal/common/xxh64.d.ts +1 -0
  41. package/dist/kernal/common/xxh64.mjs +30 -0
  42. package/dist/kernal/crypto/MD5.cjs +1 -1
  43. package/dist/kernal/crypto/MD5.d.ts +0 -1
  44. package/dist/kernal/crypto/MD5.mjs +8 -9
  45. package/dist/kernal/crypto/WebCrypto.cjs +1 -1
  46. package/dist/kernal/crypto/WebCrypto.mjs +38 -35
  47. package/dist/kernal/deepClone/buffer.cjs +1 -1
  48. package/dist/kernal/deepClone/buffer.d.ts +8 -2
  49. package/dist/kernal/deepClone/buffer.mjs +1 -5
  50. package/dist/kernal/device/IDevice.d.ts +8 -2
  51. package/dist/kernal/device/WebBrowser.cjs +1 -1
  52. package/dist/kernal/device/WebBrowser.d.ts +12 -6
  53. package/dist/kernal/device/WebBrowser.mjs +70 -6
  54. package/dist/kernal/hostViewport.cjs +1 -0
  55. package/dist/kernal/hostViewport.d.ts +16 -0
  56. package/dist/kernal/hostViewport.mjs +44 -0
  57. package/dist/kernal/html/events.cjs +1 -1
  58. package/dist/kernal/html/events.mjs +35 -34
  59. package/dist/kernal/html/finder.cjs +1 -1
  60. package/dist/kernal/html/finder.d.ts +6 -2
  61. package/dist/kernal/html/finder.mjs +62 -51
  62. package/dist/kernal/html/geometry.cjs +1 -1
  63. package/dist/kernal/html/geometry.d.ts +26 -1
  64. package/dist/kernal/html/geometry.mjs +182 -121
  65. package/dist/kernal/html/manipulator.cjs +1 -1
  66. package/dist/kernal/html/manipulator.d.ts +1 -3
  67. package/dist/kernal/html/manipulator.mjs +34 -59
  68. package/dist/kernal/html/parser.cjs +1 -1
  69. package/dist/kernal/html/parser.mjs +3 -3
  70. package/dist/kernal/html/position.cjs +1 -1
  71. package/dist/kernal/html/position.d.ts +0 -18
  72. package/dist/kernal/html/position.mjs +2 -141
  73. package/dist/kernal/html/realm.cjs +1 -0
  74. package/dist/kernal/html/realm.d.ts +7 -0
  75. package/dist/kernal/html/realm.mjs +8 -0
  76. package/dist/kernal/html/selection.cjs +1 -1
  77. package/dist/kernal/html/selection.d.ts +1 -0
  78. package/dist/kernal/html/selection.mjs +33 -12
  79. package/dist/kernal/html/text.cjs +1 -1
  80. package/dist/kernal/html/text.d.ts +4 -3
  81. package/dist/kernal/html/text.mjs +24 -21
  82. package/dist/kernal/html/translationAnchor.cjs +1 -0
  83. package/dist/kernal/html/translationAnchor.d.ts +3 -0
  84. package/dist/kernal/html/translationAnchor.mjs +71 -0
  85. package/dist/kernal/i18n/DefaultLocale.cjs +1 -1
  86. package/dist/kernal/i18n/DefaultLocale.d.ts +2 -2
  87. package/dist/kernal/i18n/DefaultLocale.mjs +7 -12
  88. package/dist/kernal/i18n/ILocale.d.ts +0 -1
  89. package/dist/kernal/i18n/applyNamed.cjs +1 -0
  90. package/dist/kernal/i18n/applyNamed.d.ts +1 -0
  91. package/dist/kernal/i18n/applyNamed.mjs +9 -0
  92. package/dist/kernal/i18n/textDirection.cjs +1 -0
  93. package/dist/kernal/i18n/textDirection.d.ts +6 -0
  94. package/dist/kernal/i18n/textDirection.mjs +7 -0
  95. package/dist/kernal/index.cjs +1 -1
  96. package/dist/kernal/index.d.ts +6 -5
  97. package/dist/kernal/index.mjs +50 -45
  98. package/dist/kernal/mark/IHighlighter.cjs +1 -0
  99. package/dist/kernal/mark/IHighlighter.d.ts +43 -0
  100. package/dist/kernal/mark/IHighlighter.mjs +13 -0
  101. package/dist/kernal/mark/Mark.cjs +1 -1
  102. package/dist/kernal/mark/Mark.d.ts +33 -4
  103. package/dist/kernal/mark/Mark.mjs +43 -6
  104. package/dist/kernal/mark/index.cjs +1 -1
  105. package/dist/kernal/mark/index.d.ts +2 -0
  106. package/dist/kernal/mark/index.mjs +6 -3
  107. package/dist/kernal/mark/overlay.cjs +1 -0
  108. package/dist/kernal/mark/overlay.d.ts +31 -0
  109. package/dist/kernal/mark/overlay.mjs +102 -0
  110. package/dist/kernal/mark/types.cjs +1 -0
  111. package/dist/kernal/mark/types.d.ts +11 -2
  112. package/dist/kernal/mark/types.mjs +4 -0
  113. package/dist/kernal/navigator/INavigator.d.ts +3 -2
  114. package/dist/kernal/network/HttpClient.cjs +1 -1
  115. package/dist/kernal/network/HttpClient.mjs +80 -56
  116. package/dist/kernal/pipelines/FileLoadPipeline.cjs +1 -1
  117. package/dist/kernal/pipelines/FileLoadPipeline.mjs +55 -56
  118. package/dist/kernal/pipelines/InputFormatter.cjs +1 -1
  119. package/dist/kernal/pipelines/InputFormatter.mjs +43 -41
  120. package/dist/kernal/pipelines/metadata.cjs +1 -1
  121. package/dist/kernal/pipelines/metadata.d.ts +2 -1
  122. package/dist/kernal/pipelines/metadata.mjs +21 -30
  123. package/dist/kernal/plugins/keyboard/KeyboardPageTurning.cjs +1 -1
  124. package/dist/kernal/plugins/keyboard/KeyboardPageTurning.mjs +7 -6
  125. package/dist/kernal/plugins/mouse/WheelPageTurning.cjs +1 -1
  126. package/dist/kernal/plugins/mouse/WheelPageTurning.mjs +12 -11
  127. package/dist/kernal/progress/Progress.cjs +1 -1
  128. package/dist/kernal/progress/Progress.d.ts +5 -3
  129. package/dist/kernal/progress/Progress.mjs +2 -2
  130. package/dist/kernal/progress/userChangedProgress.cjs +1 -0
  131. package/dist/kernal/progress/userChangedProgress.d.ts +9 -0
  132. package/dist/kernal/progress/userChangedProgress.mjs +11 -0
  133. package/dist/kernal/screen/BrowserFullscreen.cjs +1 -0
  134. package/dist/kernal/screen/BrowserFullscreen.d.ts +9 -0
  135. package/dist/kernal/screen/BrowserFullscreen.mjs +47 -0
  136. package/dist/kernal/screen/IFullscreen.d.ts +6 -0
  137. package/dist/kernal/services/ServiceCollection.cjs +1 -1
  138. package/dist/kernal/services/ServiceCollection.d.ts +4 -6
  139. package/dist/kernal/services/ServiceCollection.mjs +18 -9
  140. package/dist/kernal/services/docLoadLayer/HtmlLoadLayer.cjs +2 -2
  141. package/dist/kernal/services/docLoadLayer/HtmlLoadLayer.d.ts +4 -2
  142. package/dist/kernal/services/docLoadLayer/HtmlLoadLayer.mjs +31 -23
  143. package/dist/kernal/services/fileUrlParser/DefaultFileUrlParser.cjs +1 -1
  144. package/dist/kernal/services/fileUrlParser/DefaultFileUrlParser.mjs +52 -51
  145. package/dist/kernal/services/fileUrlParser/IFileUrlParser.d.ts +0 -1
  146. package/dist/kernal/services/font/IFontProvider.cjs +1 -1
  147. package/dist/kernal/services/font/IFontProvider.d.ts +3 -0
  148. package/dist/kernal/services/font/IFontProvider.mjs +1 -1
  149. package/dist/kernal/services/internalUrlBuilder/DefaultInternalUrlBuilder.cjs +1 -1
  150. package/dist/kernal/services/internalUrlBuilder/DefaultInternalUrlBuilder.mjs +8 -8
  151. package/dist/kernal/services/loading/DefaultLoading.cjs +1 -1
  152. package/dist/kernal/services/loading/DefaultLoading.d.ts +4 -0
  153. package/dist/kernal/services/loading/DefaultLoading.mjs +23 -24
  154. package/dist/kernal/services/text/splitter.cjs +1 -1
  155. package/dist/kernal/services/text/splitter.mjs +3 -3
  156. package/dist/kernal/types.d.ts +0 -5
  157. package/dist/kernal/web/BrowserCapabilities.cjs +1 -1
  158. package/dist/kernal/web/BrowserCapabilities.d.ts +0 -9
  159. package/dist/kernal/web/BrowserCapabilities.mjs +0 -49
  160. package/dist/kernal/{Debounce.mjs → web/debounce.mjs} +1 -1
  161. package/dist/kernal/web/scheduler.cjs +1 -0
  162. package/dist/kernal/web/scheduler.d.ts +3 -0
  163. package/dist/kernal/web/scheduler.mjs +7 -0
  164. package/dist/mediaTypes/base/fileParser/BaseFileParser.cjs +1 -1
  165. package/dist/mediaTypes/base/fileParser/BaseFileParser.mjs +59 -59
  166. package/dist/mediaTypes/html/DefaultHtmlSymbolMeasure.cjs +1 -0
  167. package/dist/mediaTypes/html/DefaultHtmlSymbolMeasure.d.ts +13 -0
  168. package/dist/mediaTypes/html/DefaultHtmlSymbolMeasure.mjs +109 -0
  169. package/dist/mediaTypes/html/HtmlOptions.cjs +1 -1
  170. package/dist/mediaTypes/html/HtmlOptions.d.ts +6 -12
  171. package/dist/mediaTypes/html/HtmlOptions.mjs +3 -14
  172. package/dist/mediaTypes/html/HtmlSettings.cjs +1 -1
  173. package/dist/mediaTypes/html/HtmlSettings.d.ts +16 -1
  174. package/dist/mediaTypes/html/HtmlSettings.mjs +46 -1
  175. package/dist/mediaTypes/html/IHtmlContentNormalizer.cjs +1 -0
  176. package/dist/mediaTypes/html/IHtmlContentNormalizer.d.ts +4 -0
  177. package/dist/mediaTypes/html/IHtmlContentNormalizer.mjs +4 -0
  178. package/dist/mediaTypes/html/IHtmlSymbolMeasure.d.ts +11 -0
  179. package/dist/mediaTypes/html/NoopHtmlContentNormalizer.cjs +1 -0
  180. package/dist/mediaTypes/html/NoopHtmlContentNormalizer.d.ts +5 -0
  181. package/dist/mediaTypes/html/NoopHtmlContentNormalizer.mjs +8 -0
  182. package/dist/mediaTypes/html/fileParser/HtmlFileParser.cjs +1 -1
  183. package/dist/mediaTypes/html/fileParser/HtmlFileParser.d.ts +5 -1
  184. package/dist/mediaTypes/html/fileParser/HtmlFileParser.mjs +15 -18
  185. package/dist/mediaTypes/html/fileParser/HtmlTextDocument.cjs +1 -1
  186. package/dist/mediaTypes/html/fileParser/HtmlTextDocument.mjs +25 -25
  187. package/dist/mediaTypes/html/fileParser/IHtmlFileParser.cjs +1 -0
  188. package/dist/mediaTypes/html/fileParser/IHtmlFileParser.d.ts +7 -3
  189. package/dist/mediaTypes/html/fileParser/IHtmlFileParser.mjs +4 -0
  190. package/dist/mediaTypes/html/renderer/HtmlRenderer.cjs +1 -1
  191. package/dist/mediaTypes/html/renderer/HtmlRenderer.d.ts +7 -1
  192. package/dist/mediaTypes/html/renderer/HtmlRenderer.mjs +65 -41
  193. package/dist/mediaTypes/html/renderer/IHtmlDocument.d.ts +6 -2
  194. package/dist/mediaTypes/html/renderer/IHtmlDocumentsProvider.d.ts +5 -0
  195. package/dist/mediaTypes/html/renderer/IHtmlRenderer.d.ts +3 -0
  196. package/dist/mediaTypes/html/renderer/document/HtmlDocument.cjs +1 -1
  197. package/dist/mediaTypes/html/renderer/document/HtmlDocument.d.ts +29 -6
  198. package/dist/mediaTypes/html/renderer/document/HtmlDocument.mjs +233 -86
  199. package/dist/mediaTypes/html/renderer/document/HtmlDocumentResizeObserver.cjs +1 -1
  200. package/dist/mediaTypes/html/renderer/document/HtmlDocumentResizeObserver.d.ts +8 -0
  201. package/dist/mediaTypes/html/renderer/document/HtmlDocumentResizeObserver.mjs +41 -5
  202. package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.cjs +1 -1
  203. package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.d.ts +2 -4
  204. package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.mjs +22 -59
  205. package/dist/mediaTypes/html/renderer/document/HtmlSymbolCalclator.cjs +1 -1
  206. package/dist/mediaTypes/html/renderer/document/HtmlSymbolCalclator.d.ts +3 -5
  207. package/dist/mediaTypes/html/renderer/document/HtmlSymbolCalclator.mjs +7 -25
  208. package/dist/mediaTypes/html/renderer/documents/HtmlContainerBuilder.cjs +1 -1
  209. package/dist/mediaTypes/html/renderer/documents/HtmlContainerBuilder.d.ts +0 -2
  210. package/dist/mediaTypes/html/renderer/documents/HtmlContainerBuilder.mjs +18 -42
  211. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsIntersectionObserver.cjs +1 -1
  212. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsIntersectionObserver.d.ts +2 -0
  213. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsIntersectionObserver.mjs +17 -4
  214. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsPreloader.cjs +1 -1
  215. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsPreloader.d.ts +16 -1
  216. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsPreloader.mjs +128 -54
  217. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.cjs +1 -1
  218. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.d.ts +26 -3
  219. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.mjs +227 -101
  220. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsResizeObserver.cjs +1 -1
  221. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsResizeObserver.d.ts +2 -0
  222. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsResizeObserver.mjs +45 -25
  223. package/dist/mediaTypes/html/renderer/documents/documentHiddenState.cjs +1 -0
  224. package/dist/mediaTypes/html/renderer/documents/documentHiddenState.d.ts +6 -0
  225. package/dist/mediaTypes/html/renderer/documents/documentHiddenState.mjs +6 -0
  226. package/dist/mediaTypes/html/renderer/documents/preloadNeighbors.cjs +1 -0
  227. package/dist/mediaTypes/html/renderer/documents/preloadNeighbors.d.ts +2 -0
  228. package/dist/mediaTypes/html/renderer/documents/preloadNeighbors.mjs +13 -0
  229. package/dist/mediaTypes/html/renderer/documents/wrapperVisibility.cjs +1 -0
  230. package/dist/mediaTypes/html/renderer/documents/wrapperVisibility.d.ts +11 -0
  231. package/dist/mediaTypes/html/renderer/documents/wrapperVisibility.mjs +8 -0
  232. package/dist/mediaTypes/html/renderer/html/HtmlContentProcessor.cjs +1 -1
  233. package/dist/mediaTypes/html/renderer/html/HtmlContentProcessor.mjs +62 -62
  234. package/dist/mediaTypes/html/renderer/html/template.cjs +1 -1
  235. package/dist/mediaTypes/html/renderer/html/template.d.ts +3 -1
  236. package/dist/mediaTypes/html/renderer/html/template.mjs +9 -9
  237. package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.cjs +1 -1
  238. package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.d.ts +22 -12
  239. package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.mjs +380 -270
  240. package/dist/mediaTypes/html/renderer/image/HtmlImageObserver.cjs +1 -1
  241. package/dist/mediaTypes/html/renderer/image/HtmlImageObserver.mjs +27 -27
  242. package/dist/mediaTypes/html/renderer/image/IHtmlImageLoader.d.ts +8 -0
  243. package/dist/mediaTypes/html/renderer/image/error-image.cjs +1 -1
  244. package/dist/mediaTypes/html/renderer/image/error-image.mjs +1 -1
  245. package/dist/mediaTypes/html/renderer/image/htmlImageFitStyles.cjs +1 -0
  246. package/dist/mediaTypes/html/renderer/image/htmlImageFitStyles.d.ts +10 -0
  247. package/dist/mediaTypes/html/renderer/image/htmlImageFitStyles.mjs +15 -0
  248. package/dist/mediaTypes/html/renderer/image/htmlImagePlaceholderUrl.cjs +1 -0
  249. package/dist/mediaTypes/html/renderer/image/htmlImagePlaceholderUrl.d.ts +2 -0
  250. package/dist/mediaTypes/html/renderer/image/htmlImagePlaceholderUrl.mjs +12 -0
  251. package/dist/mediaTypes/html/renderer/layout/HtmlRendererLayout.cjs +1 -1
  252. package/dist/mediaTypes/html/renderer/layout/HtmlRendererLayout.d.ts +6 -10
  253. package/dist/mediaTypes/html/renderer/layout/HtmlRendererLayout.mjs +71 -62
  254. package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.cjs +1 -1
  255. package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.d.ts +4 -1
  256. package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.mjs +113 -68
  257. package/dist/mediaTypes/html/renderer/layout/IHtmlRendererLayout.d.ts +8 -3
  258. package/dist/mediaTypes/html/renderer/layout/ViewportCssVariableNames.cjs +1 -1
  259. package/dist/mediaTypes/html/renderer/layout/ViewportCssVariableNames.d.ts +5 -1
  260. package/dist/mediaTypes/html/renderer/layout/ViewportCssVariableNames.mjs +15 -3
  261. package/dist/mediaTypes/html/renderer/layout/applyLayoutClasses.cjs +1 -0
  262. package/dist/mediaTypes/html/renderer/layout/applyLayoutClasses.d.ts +8 -0
  263. package/dist/mediaTypes/html/renderer/layout/applyLayoutClasses.mjs +28 -0
  264. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-horizontal-tb-ltr.cjs +30 -0
  265. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-horizontal-tb-ltr.mjs +4 -0
  266. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-horizontal-tb-rtl.cjs +31 -0
  267. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-horizontal-tb-rtl.mjs +4 -0
  268. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-lr-ltr.cjs +30 -0
  269. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-lr-ltr.mjs +4 -0
  270. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-lr-rtl.cjs +30 -0
  271. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-lr-rtl.mjs +4 -0
  272. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-rl-ltr.cjs +30 -0
  273. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-rl-ltr.mjs +4 -0
  274. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-rl-rtl.cjs +30 -0
  275. package/dist/mediaTypes/html/renderer/layout/css/document-content-page-vertical-rl-rtl.mjs +4 -0
  276. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-horizontal-tb-rtl.cjs +6 -0
  277. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-horizontal-tb-rtl.mjs +4 -0
  278. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-lr-ltr.cjs +10 -0
  279. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-lr-ltr.mjs +4 -0
  280. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-lr-rtl.cjs +10 -0
  281. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-lr-rtl.mjs +4 -0
  282. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-rl-ltr.cjs +10 -0
  283. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-rl-ltr.mjs +4 -0
  284. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-rl-rtl.cjs +10 -0
  285. package/dist/mediaTypes/html/renderer/layout/css/document-content-scroll-vertical-rl-rtl.mjs +4 -0
  286. package/dist/mediaTypes/html/renderer/layout/css/document-default.cjs +19 -0
  287. package/dist/mediaTypes/html/renderer/layout/css/document-default.mjs +4 -0
  288. package/dist/mediaTypes/html/renderer/layout/css/hostLayoutCss.cjs +3 -0
  289. package/dist/mediaTypes/html/renderer/layout/css/hostLayoutCss.d.ts +2 -0
  290. package/dist/mediaTypes/html/renderer/layout/css/hostLayoutCss.mjs +56 -0
  291. package/dist/mediaTypes/html/renderer/layout/css/renderer-default.cjs +64 -0
  292. package/dist/mediaTypes/html/renderer/layout/css/renderer-default.mjs +4 -0
  293. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-horizontal-tb-ltr.cjs +33 -0
  294. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-horizontal-tb-ltr.mjs +4 -0
  295. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-horizontal-tb-rtl.cjs +33 -0
  296. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-horizontal-tb-rtl.mjs +4 -0
  297. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-lr-ltr.cjs +47 -0
  298. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-lr-ltr.mjs +4 -0
  299. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-lr-rtl.cjs +47 -0
  300. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-lr-rtl.mjs +4 -0
  301. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-rl-ltr.cjs +46 -0
  302. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-rl-ltr.mjs +4 -0
  303. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-rl-rtl.cjs +46 -0
  304. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-page-vertical-rl-rtl.mjs +4 -0
  305. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-horizontal-tb-rtl.cjs +7 -0
  306. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-horizontal-tb-rtl.mjs +4 -0
  307. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-lr-ltr.cjs +28 -0
  308. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-lr-ltr.mjs +4 -0
  309. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-lr-rtl.cjs +28 -0
  310. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-lr-rtl.mjs +4 -0
  311. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-rl-ltr.cjs +28 -0
  312. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-rl-ltr.mjs +4 -0
  313. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-rl-rtl.cjs +28 -0
  314. package/dist/mediaTypes/html/renderer/layout/css/renderer-layout-scroll-vertical-rl-rtl.mjs +4 -0
  315. package/dist/mediaTypes/html/renderer/layout/css/root-direction.cjs +8 -0
  316. package/dist/mediaTypes/html/renderer/layout/css/root-direction.mjs +4 -0
  317. package/dist/mediaTypes/html/renderer/layout/geometry/ILayoutGeometry.d.ts +128 -0
  318. package/dist/mediaTypes/html/renderer/layout/geometry/formatTranslate3d.cjs +1 -0
  319. package/dist/mediaTypes/html/renderer/layout/geometry/formatTranslate3d.d.ts +4 -0
  320. package/dist/mediaTypes/html/renderer/layout/geometry/formatTranslate3d.mjs +7 -0
  321. package/dist/mediaTypes/html/renderer/layout/geometry/getLayoutOffsetLeft.cjs +1 -0
  322. package/dist/mediaTypes/html/renderer/layout/geometry/getLayoutOffsetLeft.d.ts +1 -0
  323. package/dist/mediaTypes/html/renderer/layout/geometry/getLayoutOffsetLeft.mjs +13 -0
  324. package/dist/mediaTypes/html/renderer/layout/geometry/index.cjs +1 -0
  325. package/dist/mediaTypes/html/renderer/layout/geometry/index.d.ts +18 -0
  326. package/dist/mediaTypes/html/renderer/layout/geometry/index.mjs +30 -0
  327. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbLtr.cjs +1 -0
  328. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbLtr.d.ts +3 -0
  329. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbLtr.mjs +71 -0
  330. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbRtl.cjs +1 -0
  331. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbRtl.d.ts +3 -0
  332. package/dist/mediaTypes/html/renderer/layout/geometry/pageHorizontalTbRtl.mjs +74 -0
  333. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrLtr.cjs +1 -0
  334. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrLtr.d.ts +3 -0
  335. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrLtr.mjs +71 -0
  336. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrRtl.cjs +1 -0
  337. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrRtl.d.ts +3 -0
  338. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalLrRtl.mjs +71 -0
  339. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlLtr.cjs +1 -0
  340. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlLtr.d.ts +3 -0
  341. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlLtr.mjs +71 -0
  342. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlRtl.cjs +1 -0
  343. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlRtl.d.ts +3 -0
  344. package/dist/mediaTypes/html/renderer/layout/geometry/pageVerticalRlRtl.mjs +71 -0
  345. package/dist/mediaTypes/html/renderer/layout/geometry/restoreLayoutState.cjs +1 -0
  346. package/dist/mediaTypes/html/renderer/layout/geometry/restoreLayoutState.d.ts +41 -0
  347. package/dist/mediaTypes/html/renderer/layout/geometry/restoreLayoutState.mjs +53 -0
  348. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbLtr.cjs +1 -0
  349. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbLtr.d.ts +3 -0
  350. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbLtr.mjs +71 -0
  351. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbRtl.cjs +1 -0
  352. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbRtl.d.ts +3 -0
  353. package/dist/mediaTypes/html/renderer/layout/geometry/scrollHorizontalTbRtl.mjs +74 -0
  354. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrLtr.cjs +1 -0
  355. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrLtr.d.ts +3 -0
  356. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrLtr.mjs +71 -0
  357. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrRtl.cjs +1 -0
  358. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrRtl.d.ts +3 -0
  359. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalLrRtl.mjs +71 -0
  360. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlLtr.cjs +1 -0
  361. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlLtr.d.ts +3 -0
  362. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlLtr.mjs +74 -0
  363. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlRtl.cjs +1 -0
  364. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlRtl.d.ts +3 -0
  365. package/dist/mediaTypes/html/renderer/layout/geometry/scrollVerticalRlRtl.mjs +74 -0
  366. package/dist/mediaTypes/html/renderer/layout/layoutRouteIds.cjs +1 -0
  367. package/dist/mediaTypes/html/renderer/layout/layoutRouteIds.d.ts +10 -0
  368. package/dist/mediaTypes/html/renderer/layout/layoutRouteIds.mjs +17 -0
  369. package/dist/mediaTypes/html/renderer/layout/pageStripRouteChange.cjs +1 -0
  370. package/dist/mediaTypes/html/renderer/layout/pageStripRouteChange.d.ts +6 -0
  371. package/dist/mediaTypes/html/renderer/layout/pageStripRouteChange.mjs +24 -0
  372. package/dist/mediaTypes/html/renderer/layout/resolveContentWrapperMinWidth.cjs +1 -0
  373. package/dist/mediaTypes/html/renderer/layout/resolveContentWrapperMinWidth.d.ts +9 -0
  374. package/dist/mediaTypes/html/renderer/layout/resolveContentWrapperMinWidth.mjs +4 -0
  375. package/dist/mediaTypes/html/renderer/layout/resolveLayoutRoute.cjs +1 -0
  376. package/dist/mediaTypes/html/renderer/layout/resolveLayoutRoute.d.ts +11 -0
  377. package/dist/mediaTypes/html/renderer/layout/resolveLayoutRoute.mjs +9 -0
  378. package/dist/mediaTypes/html/renderer/location/HtmlElementLocator.cjs +1 -1
  379. package/dist/mediaTypes/html/renderer/location/HtmlElementLocator.mjs +32 -34
  380. package/dist/mediaTypes/html/renderer/location/HtmlLayoutStatePreserver.cjs +1 -0
  381. package/dist/mediaTypes/html/renderer/location/HtmlLayoutStatePreserver.d.ts +23 -0
  382. package/dist/mediaTypes/html/renderer/location/HtmlLayoutStatePreserver.mjs +164 -0
  383. package/dist/mediaTypes/html/renderer/location/remapStoredPageNumber.cjs +1 -0
  384. package/dist/mediaTypes/html/renderer/location/remapStoredPageNumber.d.ts +4 -0
  385. package/dist/mediaTypes/html/renderer/location/remapStoredPageNumber.mjs +13 -0
  386. package/dist/mediaTypes/html/renderer/location/scrollActivity.cjs +1 -0
  387. package/dist/mediaTypes/html/renderer/location/scrollActivity.d.ts +14 -0
  388. package/dist/mediaTypes/html/renderer/location/scrollActivity.mjs +18 -0
  389. package/dist/mediaTypes/html/renderer/navigator/HtmlCoreNavigator.cjs +1 -1
  390. package/dist/mediaTypes/html/renderer/navigator/HtmlCoreNavigator.mjs +2 -2
  391. package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointNavigator.cjs +1 -1
  392. package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointNavigator.mjs +3 -3
  393. package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointProvider.cjs +1 -1
  394. package/dist/mediaTypes/html/renderer/navigator/HtmlNavPointProvider.mjs +55 -59
  395. package/dist/mediaTypes/html/renderer/navigator/HtmlPagingNavigator.cjs +1 -1
  396. package/dist/mediaTypes/html/renderer/navigator/HtmlPagingNavigator.d.ts +1 -0
  397. package/dist/mediaTypes/html/renderer/navigator/HtmlPagingNavigator.mjs +40 -39
  398. package/dist/mediaTypes/html/renderer/progress/HtmlProgressTracker.cjs +1 -1
  399. package/dist/mediaTypes/html/renderer/progress/HtmlProgressTracker.d.ts +2 -1
  400. package/dist/mediaTypes/html/renderer/progress/HtmlProgressTracker.mjs +36 -24
  401. package/dist/mediaTypes/html/renderer/style/ContentCssVariables.cjs +1 -1
  402. package/dist/mediaTypes/html/renderer/style/ContentCssVariables.d.ts +4 -0
  403. package/dist/mediaTypes/html/renderer/style/ContentCssVariables.mjs +19 -1
  404. package/dist/mediaTypes/html/renderer/style/ContentLayoutCssVariableNames.cjs +1 -1
  405. package/dist/mediaTypes/html/renderer/style/ContentLayoutCssVariableNames.d.ts +3 -0
  406. package/dist/mediaTypes/html/renderer/style/ContentLayoutCssVariableNames.mjs +9 -0
  407. package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.cjs +1 -1
  408. package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.d.ts +3 -0
  409. package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.mjs +28 -16
  410. package/dist/mediaTypes/html/renderer/style/HtmlThemeApplier.cjs +1 -1
  411. package/dist/mediaTypes/html/renderer/style/HtmlThemeApplier.d.ts +2 -0
  412. package/dist/mediaTypes/html/renderer/style/HtmlThemeApplier.mjs +39 -34
  413. package/dist/mediaTypes/html/renderer/style/ILanguageHighlighter.cjs +0 -0
  414. package/dist/mediaTypes/html/renderer/style/ILanguageHighlighter.d.ts +6 -0
  415. package/dist/mediaTypes/html/renderer/style/ILanguageHighlighter.mjs +0 -0
  416. package/dist/mediaTypes/html/renderer/style/LanguageHighlighter.cjs +1 -0
  417. package/dist/mediaTypes/html/renderer/style/LanguageHighlighter.d.ts +18 -0
  418. package/dist/mediaTypes/html/renderer/style/LanguageHighlighter.mjs +52 -0
  419. package/dist/mediaTypes/html/renderer/style/html-content.cjs +38 -7
  420. package/dist/mediaTypes/html/renderer/style/html-content.mjs +1 -1
  421. package/dist/mediaTypes/pdf/ensurePdfWebWorker.cjs +1 -1
  422. package/dist/mediaTypes/pdf/ensurePdfWebWorker.mjs +6 -13
  423. package/dist/mediaTypes/pdf/fileParser/PdfFileParser.cjs +1 -1
  424. package/dist/mediaTypes/pdf/fileParser/PdfFileParser.d.ts +5 -4
  425. package/dist/mediaTypes/pdf/fileParser/PdfFileParser.mjs +7 -3
  426. package/dist/mediaTypes/pdf/fileParser/PdfPasswordProvider.cjs +1 -1
  427. package/dist/mediaTypes/pdf/fileParser/PdfPasswordProvider.d.ts +4 -4
  428. package/dist/mediaTypes/pdf/fileParser/PdfPasswordProvider.mjs +24 -14
  429. package/dist/mediaTypes/pdf/highlighter/PdfHighlightConstants.cjs +1 -0
  430. package/dist/mediaTypes/pdf/highlighter/PdfHighlightConstants.d.ts +6 -0
  431. package/dist/mediaTypes/pdf/highlighter/PdfHighlightConstants.mjs +4 -0
  432. package/dist/mediaTypes/pdf/highlighter/pdfHighlightStyles.cjs +1 -0
  433. package/dist/mediaTypes/pdf/highlighter/pdfHighlightStyles.d.ts +10 -0
  434. package/dist/mediaTypes/pdf/highlighter/pdfHighlightStyles.mjs +33 -0
  435. package/dist/mediaTypes/pdf/loadPdfDocument.cjs +1 -1
  436. package/dist/mediaTypes/pdf/loadPdfDocument.mjs +18 -19
  437. package/dist/mediaTypes/pdf/renderer/IPdfRenderer.d.ts +2 -0
  438. package/dist/mediaTypes/pdf/renderer/MultiPdfViewer.mjs +1 -1
  439. package/dist/mediaTypes/pdf/renderer/PdfCoreNavigator.cjs +1 -1
  440. package/dist/mediaTypes/pdf/renderer/PdfCoreNavigator.mjs +2 -2
  441. package/dist/mediaTypes/pdf/renderer/PdfCssVariableNames.cjs +1 -1
  442. package/dist/mediaTypes/pdf/renderer/PdfCssVariableNames.d.ts +0 -1
  443. package/dist/mediaTypes/pdf/renderer/PdfCssVariableNames.mjs +0 -3
  444. package/dist/mediaTypes/pdf/renderer/PdfDocument.cjs +1 -1
  445. package/dist/mediaTypes/pdf/renderer/PdfDocument.mjs +3 -3
  446. package/dist/mediaTypes/pdf/renderer/PdfNavPointNavigator.cjs +1 -1
  447. package/dist/mediaTypes/pdf/renderer/PdfNavPointNavigator.mjs +3 -3
  448. package/dist/mediaTypes/pdf/renderer/PdfPagingNavigator.cjs +1 -1
  449. package/dist/mediaTypes/pdf/renderer/PdfPagingNavigator.d.ts +3 -3
  450. package/dist/mediaTypes/pdf/renderer/PdfPagingNavigator.mjs +20 -19
  451. package/dist/mediaTypes/pdf/renderer/PdfRenderer.cjs +1 -1
  452. package/dist/mediaTypes/pdf/renderer/PdfRenderer.d.ts +1 -0
  453. package/dist/mediaTypes/pdf/renderer/PdfRenderer.mjs +20 -20
  454. package/dist/mediaTypes/pdf/renderer/PdfSvgBuilder.cjs +1 -1
  455. package/dist/mediaTypes/pdf/renderer/PdfSvgBuilder.mjs +51 -50
  456. package/dist/mediaTypes/pdf/renderer/documents/PdfDocumentsProvider.cjs +2 -2
  457. package/dist/mediaTypes/pdf/renderer/documents/PdfDocumentsProvider.mjs +55 -56
  458. package/dist/mediaTypes/pdf/renderer/documents/resolvePdfLocationPageNumber.cjs +1 -0
  459. package/dist/mediaTypes/pdf/renderer/documents/resolvePdfLocationPageNumber.d.ts +3 -0
  460. package/dist/mediaTypes/pdf/renderer/documents/resolvePdfLocationPageNumber.mjs +12 -0
  461. package/dist/mediaTypes/pdf/renderer/input/PdfViewerEvents.cjs +1 -1
  462. package/dist/mediaTypes/pdf/renderer/input/PdfViewerEvents.d.ts +4 -0
  463. package/dist/mediaTypes/pdf/renderer/input/PdfViewerEvents.mjs +24 -5
  464. package/dist/mediaTypes/pdf/renderer/layout/PdfRendererViewport.cjs +1 -1
  465. package/dist/mediaTypes/pdf/renderer/layout/PdfRendererViewport.mjs +32 -32
  466. package/dist/mediaTypes/pdf/renderer/progress/PdfProgressTracker.cjs +1 -1
  467. package/dist/mediaTypes/pdf/renderer/progress/PdfProgressTracker.mjs +1 -1
  468. package/dist/mediaTypes/pdf/renderer/style/PdfThemeApplier.cjs +4 -4
  469. package/dist/mediaTypes/pdf/renderer/style/PdfThemeApplier.mjs +5 -5
  470. package/dist/mediaTypes/pdf/shared/geometry/index.cjs +1 -1
  471. package/dist/mediaTypes/pdf/shared/geometry/index.mjs +2 -2
  472. package/dist/mediaTypes/pdf/shared/geometry/selectionToFixedContentRange.cjs +1 -1
  473. package/dist/mediaTypes/pdf/shared/geometry/selectionToFixedContentRange.d.ts +14 -4
  474. package/dist/mediaTypes/pdf/shared/geometry/selectionToFixedContentRange.mjs +56 -24
  475. package/dist/mediaTypes/pdf/shared/text/pageText.cjs +2 -2
  476. package/dist/mediaTypes/pdf/shared/text/pageText.d.ts +14 -0
  477. package/dist/mediaTypes/pdf/shared/text/pageText.mjs +139 -47
  478. package/dist/node_modules/highlight.js/styles/github-dark.cjs +118 -0
  479. package/dist/node_modules/highlight.js/styles/github-dark.mjs +4 -0
  480. package/dist/node_modules/highlight.js/styles/github.cjs +118 -0
  481. package/dist/node_modules/highlight.js/styles/github.mjs +4 -0
  482. package/dist/pdfjs/package.json +1 -0
  483. package/global.d.ts +3 -1
  484. package/package.json +11 -5
  485. package/types.d.ts +48 -13
  486. package/dist/kernal/device/IEnvironment.d.ts +0 -5
  487. package/dist/kernal/device/IPlatform.d.ts +0 -7
  488. package/dist/kernal/device/WebEnvironment.cjs +0 -1
  489. package/dist/kernal/device/WebEnvironment.d.ts +0 -7
  490. package/dist/kernal/device/WebEnvironment.mjs +0 -22
  491. package/dist/kernal/device/WebPlatform.cjs +0 -1
  492. package/dist/kernal/device/WebPlatform.d.ts +0 -12
  493. package/dist/kernal/device/WebPlatform.mjs +0 -49
  494. package/dist/kernal/progress/IReadingProgressStore.d.ts +0 -7
  495. package/dist/kernal/progress/ReadingProgressStore.cjs +0 -1
  496. package/dist/kernal/progress/ReadingProgressStore.d.ts +0 -12
  497. package/dist/kernal/progress/ReadingProgressStore.mjs +0 -17
  498. package/dist/kernal/storage/IStorage.cjs +0 -1
  499. package/dist/kernal/storage/IStorage.d.ts +0 -21
  500. package/dist/kernal/storage/IStorage.mjs +0 -4
  501. package/dist/kernal/storage/WebStorage.cjs +0 -1
  502. package/dist/kernal/storage/WebStorage.d.ts +0 -31
  503. package/dist/kernal/storage/WebStorage.mjs +0 -165
  504. package/dist/mediaTypes/adjacent.cjs +0 -1
  505. package/dist/mediaTypes/adjacent.d.ts +0 -5
  506. package/dist/mediaTypes/adjacent.mjs +0 -42
  507. package/dist/mediaTypes/html/renderer/image/placeholder.cjs +0 -1
  508. package/dist/mediaTypes/html/renderer/image/placeholder.mjs +0 -4
  509. /package/dist/kernal/{device/IEnvironment.cjs → screen/IFullscreen.cjs} +0 -0
  510. /package/dist/kernal/{device/IEnvironment.mjs → screen/IFullscreen.mjs} +0 -0
  511. /package/dist/kernal/{Debounce.cjs → web/debounce.cjs} +0 -0
  512. /package/dist/kernal/{Debounce.d.ts → web/debounce.d.ts} +0 -0
  513. /package/dist/{kernal/device/IPlatform.cjs → mediaTypes/html/IHtmlSymbolMeasure.cjs} +0 -0
  514. /package/dist/{kernal/device/IPlatform.mjs → mediaTypes/html/IHtmlSymbolMeasure.mjs} +0 -0
  515. /package/dist/{kernal/progress/IReadingProgressStore.cjs → mediaTypes/html/renderer/layout/geometry/ILayoutGeometry.cjs} +0 -0
  516. /package/dist/{kernal/progress/IReadingProgressStore.mjs → mediaTypes/html/renderer/layout/geometry/ILayoutGeometry.mjs} +0 -0
@@ -1,42 +1,59 @@
1
1
  import { isNumber as e } from "../common/number.mjs";
2
2
  //#region kernal/network/HttpClient.ts
3
- var t = class {
4
- async get(t, n) {
5
- let r = {};
6
- n && (r = Object.assign({}, r, n)), r.responseType || (r.responseType = "text");
7
- let i = r.responseType;
8
- n?.downloadProgressCallback && (r.responseType == "arraybuffer" || r.responseType == "blob" || r.responseType == "stream") && (r.responseType = "stream");
9
- let a = {};
10
- n?.headers && (a.headers = n.headers), a.method = "get", n?.abortController && (a.signal = n.abortController.signal);
11
- let o = await fetch(t, a);
12
- if (!o.ok) {
13
- if (o.status == 404) throw Error(`File not found! status: ${o.status}`);
14
- if (o.status == 403) throw Error(`Forbidden! status: ${o.status}`);
15
- if (o.status == 401) throw Error(`Unauthorized! status: ${o.status}`);
16
- let e = await o.text();
17
- throw Error(`HTTP error! status: ${o.status},message: ${e}`);
3
+ var t = (e, t) => {
4
+ t?.abortController && (e.signal = t.abortController.signal);
5
+ let n = t?.timeout;
6
+ if (!n || n <= 0) return () => {};
7
+ let r = t.abortController ?? new AbortController();
8
+ t.abortController || (e.signal = r.signal);
9
+ let i = setTimeout(() => {
10
+ try {
11
+ r.abort();
12
+ } catch {}
13
+ }, n);
14
+ return () => clearTimeout(i);
15
+ }, n = class {
16
+ async get(n, r) {
17
+ let i = {};
18
+ r && (i = Object.assign({}, i, r)), i.responseType || (i.responseType = "text");
19
+ let a = i.responseType;
20
+ r?.downloadProgressCallback && (i.responseType == "arraybuffer" || i.responseType == "blob" || i.responseType == "stream") && (i.responseType = "stream");
21
+ let o = {};
22
+ r?.headers && (o.headers = r.headers), o.method = "get";
23
+ let s = t(o, r), c;
24
+ try {
25
+ c = await fetch(n, o);
26
+ } finally {
27
+ s();
28
+ }
29
+ if (!c.ok) {
30
+ if (c.status == 404) throw Error(`File not found! status: ${c.status}`);
31
+ if (c.status == 403) throw Error(`Forbidden! status: ${c.status}`);
32
+ if (c.status == 401) throw Error(`Unauthorized! status: ${c.status}`);
33
+ let e = await c.text();
34
+ throw Error(`HTTP error! status: ${c.status},message: ${e}`);
18
35
  }
19
- let s = n?.responseType == "arraybuffer" || n?.responseType == "blob" || n?.responseType == "stream";
20
- if (n?.downloadProgressCallback && s) {
21
- let t = o?.body?.getReader();
36
+ let l = r?.responseType == "arraybuffer" || r?.responseType == "blob" || r?.responseType == "stream";
37
+ if (r?.downloadProgressCallback && l) {
38
+ let t = c?.body?.getReader();
22
39
  if (t) {
23
- let r = o.headers.get("Content-Length"), a = r ? parseInt(r) : n?.contentLength;
24
- e(a) && (a = parseInt(a.toString()));
25
- let s = 0, c = [];
40
+ let n = c.headers.get("Content-Length"), i = n ? parseInt(n) : r?.contentLength;
41
+ e(i) && (i = parseInt(i.toString()));
42
+ let o = 0, s = [];
26
43
  for (;;) {
27
- let { done: e, value: r } = await t.read();
44
+ let { done: e, value: n } = await t.read();
28
45
  if (e) {
29
- n.downloadProgressCallback(a, s, e);
46
+ r.downloadProgressCallback(i, o, e);
30
47
  break;
31
48
  }
32
- c.push(r), s += r.length, n.downloadProgressCallback(a, s, e);
49
+ s.push(n), o += n.length, r.downloadProgressCallback(i, o, e);
33
50
  }
34
- let l = new Uint8Array(s), u = 0;
35
- for (let e of c) l.set(e, u), u += e.length;
36
- return i == "arraybuffer" || n?.responseType == "arraybuffer" ? l.buffer : i == "blob" ? new Blob([l]) : l.buffer;
51
+ let l = new Uint8Array(o), u = 0;
52
+ for (let e of s) l.set(e, u), u += e.length;
53
+ return a == "arraybuffer" || r?.responseType == "arraybuffer" ? l.buffer : a == "blob" ? new Blob([l]) : l.buffer;
37
54
  }
38
55
  }
39
- return await this.response(o, n?.responseType);
56
+ return await this.response(c, r?.responseType);
40
57
  }
41
58
  async response(e, t) {
42
59
  if (t == "json") try {
@@ -53,44 +70,51 @@ var t = class {
53
70
  return n;
54
71
  }
55
72
  }
56
- async post(e, t, n) {
57
- let r = {};
58
- r.headers = n?.headers ? n?.headers : {};
59
- let i = t;
60
- if (typeof t == "string") {
61
- let e = new URLSearchParams(t);
73
+ async post(e, n, r) {
74
+ let i = {};
75
+ i.headers = r?.headers ? r?.headers : {};
76
+ let a = n;
77
+ if (typeof n == "string") {
78
+ let e = new URLSearchParams(n);
62
79
  if (e.size > 0) {
63
- i = new FormData();
64
- for (let [t, n] of e.entries()) i.append(t, n);
80
+ a = new FormData();
81
+ for (let [t, n] of e.entries()) a.append(t, n);
65
82
  }
66
- } else if (t && typeof t == "object" && typeof t.append != "function" && typeof t.text != "function") {
67
- if (n?.requestBodyType == "raw") {
68
- i = JSON.stringify(t);
83
+ } else if (n && typeof n == "object" && typeof n.append != "function" && typeof n.text != "function") {
84
+ if (r?.requestBodyType == "raw") {
85
+ a = JSON.stringify(n);
69
86
  let e = !1;
70
- for (let [t, n] of Object.entries(r.headers)) if (t.toLowerCase() == "content-type") {
71
- r.headers[t] = "application/json", e = !0;
87
+ for (let [t, n] of Object.entries(i.headers)) if (t.toLowerCase() == "content-type") {
88
+ i.headers[t] = "application/json", e = !0;
72
89
  break;
73
90
  }
74
- e || (r.headers["Content-Type"] = "application/json");
91
+ e || (i.headers["Content-Type"] = "application/json");
75
92
  } else {
76
- let e = Object.keys(t);
93
+ let e = Object.keys(n);
77
94
  if (e.length > 0) {
78
- i = new FormData();
79
- for (let n of e) i.append(n, t[n]);
95
+ a = new FormData();
96
+ for (let t of e) a.append(t, n[t]);
80
97
  }
81
98
  }
82
99
  }
83
- if (r.method = "post", n?.abortController && (r.signal = n.abortController.signal), i && typeof i == "object" && typeof i.append == "function") for (let e of Object.keys(r.headers)) e.toLowerCase() === "content-type" && delete r.headers[e];
84
- r.body = i;
85
- let a = await fetch(e, r);
86
- if (!a.ok) {
87
- if (a.status == 404) throw Error(`File not found! status: ${a.status}`);
88
- if (a.status == 403) throw Error(`Forbidden! status: ${a.status}`);
89
- if (a.status == 401) throw Error(`Unauthorized! status: ${a.status}`);
90
- let e = await a.text();
91
- throw Error(`HTTP error! status: ${a.status},message: ${e}`);
100
+ i.method = "post";
101
+ let o = t(i, r);
102
+ if (a && typeof a == "object" && typeof a.append == "function") for (let e of Object.keys(i.headers)) e.toLowerCase() === "content-type" && delete i.headers[e];
103
+ i.body = a;
104
+ let s;
105
+ try {
106
+ s = await fetch(e, i);
107
+ } finally {
108
+ o();
109
+ }
110
+ if (!s.ok) {
111
+ if (s.status == 404) throw Error(`File not found! status: ${s.status}`);
112
+ if (s.status == 403) throw Error(`Forbidden! status: ${s.status}`);
113
+ if (s.status == 401) throw Error(`Unauthorized! status: ${s.status}`);
114
+ let e = await s.text();
115
+ throw Error(`HTTP error! status: ${s.status},message: ${e}`);
92
116
  }
93
- return await this.response(a, n?.responseType);
117
+ return await this.response(s, r?.responseType);
94
118
  }
95
119
  async getConfig(e, t, n) {
96
120
  if (!e || e.length == 0) return {};
@@ -119,4 +143,4 @@ var t = class {
119
143
  }
120
144
  };
121
145
  //#endregion
122
- export { t as HttpClient };
146
+ export { n as HttpClient };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../progress/Progress.cjs"),t=require("../Context.cjs"),n=require("./metadata.cjs");var r=class{constructor(e){this.deps=e}async load(r,i,a){let{inputFormatter:o,mediaTypeRegistry:s,options:c,events:l,lifecycle:u}=this.deps;o.guardUrl(r);let d=await o.formatInputParameters(r,i);if(!d.extension)throw Error(`file extension is required`);await u.onInitialize?.(d.extension);let{simpleId:f,resourceId:p,isExternalId:m}=await o.getIds(d.url,d.openOptions);await u.onOptionsParse?.(c);let h={url:d.url,openOptions:d.openOptions,extension:d.extension,simpleId:f,resourceId:p,isExternalId:m},g=await a?.prepareContext?.(h),_=new t.Context(l,{simpleId:f,id:p,isExternalId:m,url:d.url,extension:d.extension,options:c,openOptions:d.openOptions,...a?.contextInit,...g});a?.attachContext?.(_);let{url:v,abortController:y}=o.formatParserUrl(d.url,d.extension,d.openOptions),b=await s.createFileParser(v,d.extension);if(await b.load({measureFilePercentage:a?.measureFilePercentage}),a?.isCancelled?.())throw Error(`User cancelled task`);p||(p=await b.getFileHash(),_.id=p);let x=o.formatLocation(d.openOptions?.location,d.extension),S=x.location,C=x.percentage;if(!(S!=null||!isNaN(C)&&C<=1&&C>=0)){if(c.enableProgressStore){let e=await(await this.deps.services.get(`readingProgressStore`))?.get(f);e&&(S=e.location)}S||=new e.FileLocation(`0`,1,`ratio`)}await a?.afterParserReady?.(d.extension);let w=n.formatMetadata(await b.getMetadata(),d.url,d.extension);return _.metadata=w,await u.onFileParsed?.(b),{url:d.url,openOptions:d.openOptions,extension:d.extension,simpleId:f,resourceId:p,isExternalId:m,fileParser:b,metadata:w,context:_,abortController:y,location:S,percentage:C}}};exports.FileLoadPipeline=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../Metadata.cjs"),t=require("../progress/Progress.cjs"),n=require("../Context.cjs"),r=require("./metadata.cjs");var i=class{constructor(e){this.deps=e}async load(i,a,o){let{inputFormatter:s,mediaTypeRegistry:c,options:l,events:u,lifecycle:d}=this.deps;s.guardUrl(i);let f=await s.formatInputParameters(i,a);if(!f.extension)throw Error(`file extension is required`);await d.onInitialize?.(f.extension);let{simpleId:p,resourceId:m,isExternalId:h}=await s.getIds(f.url,f.openOptions);await d.onOptionsParse?.(l);let g={url:f.url,openOptions:f.openOptions,extension:f.extension,simpleId:p,resourceId:m,isExternalId:h},_=await o?.prepareContext?.(g),v=new n.Context(u,{simpleId:p,id:m,isExternalId:h,url:f.url,extension:f.extension,options:l,openOptions:f.openOptions,...o?.contextInit,..._});o?.attachContext?.(v);let{url:y,abortController:b}=s.formatParserUrl(f.url,f.extension,f.openOptions),x=await c.createFileParser(y,f.extension);if(await x.load({measureFilePercentage:o?.measureFilePercentage}),o?.isCancelled?.())throw Error(`User cancelled task`);m||(m=await x.getFileHash(),v.id=m);let S=s.formatLocation(f.openOptions?.location,f.extension),C=S.location,w=S.percentage;if(!(C!=null||!isNaN(w)&&w<=1&&w>=0))try{C=await d.onLocationRequest?.(p)??new t.FileLocation(`0`,1,`ratio`)}catch{C=new t.FileLocation(`0`,1,`ratio`)}await o?.afterParserReady?.(f.extension);let T=typeof f.openOptions?.fileName==`string`?f.openOptions.fileName.trim():``,E=r.formatMetadata(await x.getMetadata(),f.url,f.extension,T),D=f.openOptions?.metadata,O=e.fillMetadata(E,D);return D?.fileName&&typeof D.fileName==`string`&&D.fileName.trim()?O.fileName=D.fileName.trim():T&&!r.isUriLikeBookTitle(T)&&(O.fileName=T),v.metadata=O,await d.onFileParsed?.(x),{url:f.url,openOptions:f.openOptions,extension:f.extension,simpleId:p,resourceId:m,isExternalId:h,fileParser:x,metadata:O,context:v,abortController:b,location:C,percentage:w}}};exports.FileLoadPipeline=i;
@@ -1,66 +1,65 @@
1
- import { FileLocation as e } from "../progress/Progress.mjs";
2
- import { Context as t } from "../Context.mjs";
3
- import { formatMetadata as n } from "./metadata.mjs";
1
+ import { fillMetadata as e } from "../Metadata.mjs";
2
+ import { FileLocation as t } from "../progress/Progress.mjs";
3
+ import { Context as n } from "../Context.mjs";
4
+ import { formatMetadata as r, isUriLikeBookTitle as i } from "./metadata.mjs";
4
5
  //#region kernal/pipelines/FileLoadPipeline.ts
5
- var r = class {
6
+ var a = class {
6
7
  constructor(e) {
7
8
  this.deps = e;
8
9
  }
9
- async load(r, i, a) {
10
- let { inputFormatter: o, mediaTypeRegistry: s, options: c, events: l, lifecycle: u } = this.deps;
11
- o.guardUrl(r);
12
- let d = await o.formatInputParameters(r, i);
13
- if (!d.extension) throw Error("file extension is required");
14
- await u.onInitialize?.(d.extension);
15
- let { simpleId: f, resourceId: p, isExternalId: m } = await o.getIds(d.url, d.openOptions);
16
- await u.onOptionsParse?.(c);
17
- let h = {
18
- url: d.url,
19
- openOptions: d.openOptions,
20
- extension: d.extension,
21
- simpleId: f,
22
- resourceId: p,
23
- isExternalId: m
24
- }, g = await a?.prepareContext?.(h), _ = new t(l, {
25
- simpleId: f,
26
- id: p,
27
- isExternalId: m,
28
- url: d.url,
29
- extension: d.extension,
30
- options: c,
31
- openOptions: d.openOptions,
32
- ...a?.contextInit,
33
- ...g
10
+ async load(a, o, s) {
11
+ let { inputFormatter: c, mediaTypeRegistry: l, options: u, events: d, lifecycle: f } = this.deps;
12
+ c.guardUrl(a);
13
+ let p = await c.formatInputParameters(a, o);
14
+ if (!p.extension) throw Error("file extension is required");
15
+ await f.onInitialize?.(p.extension);
16
+ let { simpleId: m, resourceId: h, isExternalId: g } = await c.getIds(p.url, p.openOptions);
17
+ await f.onOptionsParse?.(u);
18
+ let _ = {
19
+ url: p.url,
20
+ openOptions: p.openOptions,
21
+ extension: p.extension,
22
+ simpleId: m,
23
+ resourceId: h,
24
+ isExternalId: g
25
+ }, v = await s?.prepareContext?.(_), y = new n(d, {
26
+ simpleId: m,
27
+ id: h,
28
+ isExternalId: g,
29
+ url: p.url,
30
+ extension: p.extension,
31
+ options: u,
32
+ openOptions: p.openOptions,
33
+ ...s?.contextInit,
34
+ ...v
34
35
  });
35
- a?.attachContext?.(_);
36
- let { url: v, abortController: y } = o.formatParserUrl(d.url, d.extension, d.openOptions), b = await s.createFileParser(v, d.extension);
37
- if (await b.load({ measureFilePercentage: a?.measureFilePercentage }), a?.isCancelled?.()) throw Error("User cancelled task");
38
- p || (p = await b.getFileHash(), _.id = p);
39
- let x = o.formatLocation(d.openOptions?.location, d.extension), S = x.location, C = x.percentage;
40
- if (!(S != null || !isNaN(C) && C <= 1 && C >= 0)) {
41
- if (c.enableProgressStore) {
42
- let e = await (await this.deps.services.get("readingProgressStore"))?.get(f);
43
- e && (S = e.location);
44
- }
45
- S ||= new e("0", 1, "ratio");
36
+ s?.attachContext?.(y);
37
+ let { url: b, abortController: x } = c.formatParserUrl(p.url, p.extension, p.openOptions), S = await l.createFileParser(b, p.extension);
38
+ if (await S.load({ measureFilePercentage: s?.measureFilePercentage }), s?.isCancelled?.()) throw Error("User cancelled task");
39
+ h || (h = await S.getFileHash(), y.id = h);
40
+ let C = c.formatLocation(p.openOptions?.location, p.extension), w = C.location, T = C.percentage;
41
+ if (!(w != null || !isNaN(T) && T <= 1 && T >= 0)) try {
42
+ w = await f.onLocationRequest?.(m) ?? new t("0", 1, "ratio");
43
+ } catch {
44
+ w = new t("0", 1, "ratio");
46
45
  }
47
- await a?.afterParserReady?.(d.extension);
48
- let w = n(await b.getMetadata(), d.url, d.extension);
49
- return _.metadata = w, await u.onFileParsed?.(b), {
50
- url: d.url,
51
- openOptions: d.openOptions,
52
- extension: d.extension,
53
- simpleId: f,
54
- resourceId: p,
55
- isExternalId: m,
56
- fileParser: b,
57
- metadata: w,
58
- context: _,
59
- abortController: y,
60
- location: S,
61
- percentage: C
46
+ await s?.afterParserReady?.(p.extension);
47
+ let E = typeof p.openOptions?.fileName == "string" ? p.openOptions.fileName.trim() : "", D = r(await S.getMetadata(), p.url, p.extension, E), O = p.openOptions?.metadata, k = e(D, O);
48
+ return O?.fileName && typeof O.fileName == "string" && O.fileName.trim() ? k.fileName = O.fileName.trim() : E && !i(E) && (k.fileName = E), y.metadata = k, await f.onFileParsed?.(S), {
49
+ url: p.url,
50
+ openOptions: p.openOptions,
51
+ extension: p.extension,
52
+ simpleId: m,
53
+ resourceId: h,
54
+ isExternalId: g,
55
+ fileParser: S,
56
+ metadata: k,
57
+ context: y,
58
+ abortController: x,
59
+ location: w,
60
+ percentage: T
62
61
  };
63
62
  }
64
63
  };
65
64
  //#endregion
66
- export { r as FileLoadPipeline };
65
+ export { a as FileLoadPipeline };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../common/uuid.cjs"),t=require("../common/object.cjs"),n=require("../common/text.cjs"),r=require("../common/url.cjs"),i=require("../common/path.cjs"),a=require("../OpenOptions.cjs"),o=require("../progress/Progress.cjs"),s=require("../IFileParser.cjs"),c=require("../crypto/MD5.cjs"),l=require("../html/finder.cjs");var u=class{constructor(r,i){this.services=r,this.options=i,this.isFilePackageLike=e=>typeof e!=`object`||!e?!1:e instanceof s.FilePackage?!0:Array.isArray(e)||e instanceof ArrayBuffer||e instanceof Uint8Array||e instanceof Blob||typeof FileSystemFileHandle<`u`&&e instanceof FileSystemFileHandle?!1:`fileUrl`in e||`spineFiles`in e,this.getIds=async(t,r)=>{let i=r?.resourceId??``,a=r?.simpleId??``;if(!i&&t instanceof s.FilePackage&&(i=t.resourceId),!a&&t instanceof s.FilePackage&&(a=t.simpleId),i)return a||=i,{simpleId:a,resourceId:i,isExternalId:!0};if(n.isNullOrWhiteSpace(a)){if(typeof t==`string`||t instanceof ArrayBuffer||t instanceof Uint8Array||t instanceof Blob||globalThis.FileSystemFileHandle&&t instanceof FileSystemFileHandle)a=await c.computeSimpleId(t);else if(t instanceof s.FilePackage){if(t.fileUrl)a=await c.computeSimpleId(t.fileUrl);else throw Error(`Missing resourceId`)}else a=e.getUuid()}return{simpleId:a,resourceId:i,isExternalId:!1}},this.formatLocation=(e,r)=>{let i,a;if(!e)return{location:i,percentage:a};if(e instanceof o.FileLocation)i=e;else if(Object.prototype.toString.call(e)===`[object Object]`){let n=JSON.parse(JSON.stringify(e));if(n.url)return{location:t.deepClone(n),percentage:a}}else if(typeof e==`number`)!isNaN(a)&&a<=1&&a>=0&&(a=e);else if(typeof e==`string`&&!n.isNullOrWhiteSpace(e)){let t=!1;if(e.trim().indexOf(`{`)>=0)try{i=JSON.parse(e.trim()),t=!0}catch{t=!1}if(!t){let t=e.split(/[-_]/);if(t.length==1){let t=parseFloat(e);!isNaN(t)&&t<=1&&t>=0?a=t:!isNaN(t)&&r===`.pdf`&&(i=new o.FileLocation(``,1,`page`),i.current=t)}else if(t.length==2){i=new o.FileLocation(t[0],1,`ratio`);let e=parseFloat(t[1]);if(isNaN(e)){let n=t[1].split(`@`);if(n.length>1){let t=n[0].toLowerCase();t==`char`?i.symbolType=t:i.symbolType=`custom`,e=parseFloat(n[1]),isNaN(e)||e<0?i.current=0:i.current=e}else i.current=0}else i.current=e<0?0:e}else if(t.length==3){i=new o.FileLocation(t[0],1,`ratio`),i.tagName=t[1];let e=parseInt(t[2]);isNaN(e)||e<0?i.tagIndex=0:i.tagIndex=e}}}return{location:i,percentage:a}}}formatOpenOptions(e){let t=Object.assign(new a.OpenOptions,e);return t||=new a.OpenOptions,Object.keys(t).forEach(e=>{(t[e]===null||t[e]===void 0||t[e]===``)&&delete t[e]}),t}async getOpenUrl(e,t){let n=e;if(!this.isValidFileUrl(e)){let e=await this.services.get(`fileUrlProvider`,!1);if(!e)return;n=await e.getUrl(t)}return this.formatUrl(n)}async formatInputParameters(e,t){let n=await this.getOpenUrl(e,t),r=this.formatOpenOptions(t);return{url:n,openOptions:r,extension:this.formatExtension(n,r.extension)}}guardUrl(e){if(!this.isValidFileUrl(e)&&!this.services.has(`fileUrlProvider`))throw Error(`FileUrlProvider is not registered`)}formatUrl(e){return this.isFilePackageLike(e)&&!(e instanceof s.FilePackage)&&(e=Object.assign(new s.FilePackage,e)),e}isValidFileUrl(e){return e?typeof e==`string`||e instanceof Array||e instanceof s.FilePackage||e instanceof ArrayBuffer||e instanceof Uint8Array||e instanceof Blob||globalThis.FileSystemFileHandle&&e instanceof FileSystemFileHandle?!0:(typeof e==`object`&&Object.keys(e).length,!1):!1}formatReaderWrapper(e){let t;return t=typeof e==`string`?document.querySelector(e):e,t instanceof t.ownerDocument.defaultView.window.HTMLHtmlElement&&(t=l.getDocumentBody(t.ownerDocument)),t.style.overflow=`hidden`,t.style.position=`relative`,t}formatExtension(e,t){let r=t??``;if(n.isNullOrWhiteSpace(r)){if(typeof e==`string`)r=i.getExtension(e)??``;else if(e instanceof Array){let t=e;if(t.length==0)throw Error(`multiUrls is required`);r=i.getExtension(t[0])??``}else e instanceof s.FilePackage?n.isNullOrWhiteSpace(e.extension)?!n.isNullOrWhiteSpace(e.fileUrl)&&typeof e.fileUrl==`string`&&(r=i.getExtension(e.fileUrl)):r=e.extension:globalThis.FileSystemFileHandle&&e instanceof FileSystemFileHandle&&(r=i.getExtension(e.name))}return r.startsWith(`.`)||(r=`.`+r),r?.toLowerCase()}formatParserUrl(e,t,n){let i;e instanceof s.FilePackage||e instanceof Array?i=e:(i=new s.FilePackage,i.fileUrl=e,i.extension=t),i=Object.assign(i,n);let a;return(typeof e==`string`||e?.fileUrl&&typeof e.fileUrl==`string`&&r.checkIsHttpUrl(e.fileUrl))&&(a=new AbortController,i.abortController=a),{url:i,abortController:a}}};exports.InputFormatter=u;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../common/object.cjs"),t=require("../common/uuid.cjs"),n=require("../common/text.cjs"),r=require("../common/url.cjs"),i=require("../common/path.cjs"),a=require("../OpenOptions.cjs"),o=require("../progress/Progress.cjs"),s=require("../IFileParser.cjs"),c=require("../crypto/MD5.cjs"),l=require("../html/finder.cjs");var u=class{constructor(r,i){this.services=r,this.options=i,this.isFilePackageLike=e=>typeof e!=`object`||!e?!1:e instanceof s.FilePackage?!0:Array.isArray(e)||e instanceof ArrayBuffer||e instanceof Uint8Array||e instanceof Blob||typeof FileSystemFileHandle<`u`&&e instanceof FileSystemFileHandle?!1:`fileUrl`in e||`spineFiles`in e,this.getIds=async(e,r)=>{let i=r?.resourceId??``,a=r?.simpleId??``;if(!i&&e instanceof s.FilePackage&&(i=e.resourceId),!a&&e instanceof s.FilePackage&&(a=e.simpleId),i)return a||=i,{simpleId:a,resourceId:i,isExternalId:!0};if(n.isNullOrWhiteSpace(a)){if(typeof e==`string`||e instanceof ArrayBuffer||e instanceof Uint8Array||e instanceof Blob||globalThis.FileSystemFileHandle&&e instanceof FileSystemFileHandle)a=await c.computeSimpleId(e);else if(e instanceof s.FilePackage){if(e.fileUrl)a=await c.computeSimpleId(e.fileUrl);else throw Error(`Missing resourceId`)}else a=t.getUuid()}return{simpleId:a,resourceId:i,isExternalId:!1}},this.formatLocation=(t,r)=>{let i,a;if(!t)return{location:i,percentage:a};if(t instanceof o.FileLocation)i=t;else if(Object.prototype.toString.call(t)===`[object Object]`){let n=JSON.parse(JSON.stringify(t));if(n.url)return{location:e.deepClone(n),percentage:a}}else if(typeof t==`number`)!isNaN(a)&&a<=1&&a>=0&&(a=t);else if(typeof t==`string`&&!n.isNullOrWhiteSpace(t)){let e=!1;if(t.trim().indexOf(`{`)>=0)try{i=JSON.parse(t.trim()),e=!0}catch{e=!1}if(!e){let e=t.split(/[-_]/);if(e.length==1){let e=parseFloat(t);!isNaN(e)&&e<=1&&e>=0?a=e:!isNaN(e)&&r===`.pdf`&&(i=new o.FileLocation(``,1,`page`),i.current=e)}else if(e.length==2){i=new o.FileLocation(e[0],1,`ratio`);let t=parseFloat(e[1]);if(isNaN(t)){let n=e[1].split(`@`);if(n.length>1){let e=n[0].toLowerCase();e==`char`?i.symbolType=e:i.symbolType=`custom`,t=parseFloat(n[1]),isNaN(t)||t<0?i.current=0:i.current=t}else i.current=0}else i.current=t<0?0:t}else if(e.length==3){i=new o.FileLocation(e[0],1,`ratio`),i.tagName=e[1];let t=parseInt(e[2]);isNaN(t)||t<0?i.tagIndex=0:i.tagIndex=t}}}return{location:i,percentage:a}}}formatOpenOptions(e){let t=Object.assign(new a.OpenOptions,e);return t||=new a.OpenOptions,Object.keys(t).forEach(e=>{(t[e]===null||t[e]===void 0||t[e]===``)&&delete t[e]}),t}async getOpenUrl(e,t){let n=e;if(!this.isValidFileUrl(e)){let e=await this.services.get(`fileUrlProvider`,!1);if(!e)return;n=await e.getUrl(t)}return this.formatUrl(n)}async formatInputParameters(e,t){let n=await this.getOpenUrl(e,t),r=this.formatOpenOptions(t);return{url:n,openOptions:r,extension:this.formatExtension(n,r.extension)}}guardUrl(e){if(!this.isValidFileUrl(e)&&!this.services.has(`fileUrlProvider`))throw Error(`FileUrlProvider is not registered`)}formatUrl(e){return this.isFilePackageLike(e)&&!(e instanceof s.FilePackage)&&(e=Object.assign(new s.FilePackage,e)),e}isValidFileUrl(e){return e?typeof e==`string`||e instanceof Array||e instanceof s.FilePackage||e instanceof ArrayBuffer||e instanceof Uint8Array||e instanceof Blob||globalThis.FileSystemFileHandle&&e instanceof FileSystemFileHandle?!0:(typeof e==`object`&&Object.keys(e).length,!1):!1}formatReaderWrapper(e){let t;return t=typeof e==`string`?document.querySelector(e):e,t instanceof t.ownerDocument.defaultView.window.HTMLHtmlElement&&(t=l.getDocumentBody(t.ownerDocument)),t.style.overflow=`hidden`,t.style.position=`relative`,t}formatExtension(e,t){let r=t??``;if(n.isNullOrWhiteSpace(r)){if(typeof e==`string`)r=i.getExtension(e)??``;else if(e instanceof Array){let t=e;if(t.length==0)throw Error(`multiUrls is required`);r=i.getExtension(t[0])??``}else e instanceof s.FilePackage?n.isNullOrWhiteSpace(e.extension)?!n.isNullOrWhiteSpace(e.fileUrl)&&typeof e.fileUrl==`string`&&(r=i.getExtension(e.fileUrl)):r=e.extension:globalThis.FileSystemFileHandle&&e instanceof FileSystemFileHandle&&(r=i.getExtension(e.name))}return r.startsWith(`.`)||(r=`.`+r),r?.toLowerCase()}formatParserUrl(e,t,n){let i;e instanceof s.FilePackage||e instanceof Array?i=e:(i=new s.FilePackage,i.fileUrl=e,i.extension=t);let{metadata:a,...o}=n;i=Object.assign(i,o);let c;return(typeof e==`string`||e?.fileUrl&&typeof e.fileUrl==`string`&&r.checkIsHttpUrl(e.fileUrl))&&(c=new AbortController,i.abortController=c),{url:i,abortController:c}}};exports.InputFormatter=u;
@@ -1,5 +1,5 @@
1
- import { getUuid as e } from "../common/uuid.mjs";
2
- import { deepClone as t } from "../common/object.mjs";
1
+ import { deepClone as e } from "../common/object.mjs";
2
+ import { getUuid as t } from "../common/uuid.mjs";
3
3
  import { isNullOrWhiteSpace as n } from "../common/text.mjs";
4
4
  import { checkIsHttpUrl as r } from "../common/url.mjs";
5
5
  import { getExtension as i } from "../common/path.mjs";
@@ -11,65 +11,65 @@ import { getDocumentBody as l } from "../html/finder.mjs";
11
11
  //#region kernal/pipelines/InputFormatter.ts
12
12
  var u = class {
13
13
  constructor(r, i) {
14
- this.services = r, this.options = i, this.isFilePackageLike = (e) => typeof e != "object" || !e ? !1 : e instanceof s ? !0 : Array.isArray(e) || e instanceof ArrayBuffer || e instanceof Uint8Array || e instanceof Blob || typeof FileSystemFileHandle < "u" && e instanceof FileSystemFileHandle ? !1 : "fileUrl" in e || "spineFiles" in e, this.getIds = async (t, r) => {
14
+ this.services = r, this.options = i, this.isFilePackageLike = (e) => typeof e != "object" || !e ? !1 : e instanceof s ? !0 : Array.isArray(e) || e instanceof ArrayBuffer || e instanceof Uint8Array || e instanceof Blob || typeof FileSystemFileHandle < "u" && e instanceof FileSystemFileHandle ? !1 : "fileUrl" in e || "spineFiles" in e, this.getIds = async (e, r) => {
15
15
  let i = r?.resourceId ?? "", a = r?.simpleId ?? "";
16
- if (!i && t instanceof s && (i = t.resourceId), !a && t instanceof s && (a = t.simpleId), i) return a ||= i, {
16
+ if (!i && e instanceof s && (i = e.resourceId), !a && e instanceof s && (a = e.simpleId), i) return a ||= i, {
17
17
  simpleId: a,
18
18
  resourceId: i,
19
19
  isExternalId: !0
20
20
  };
21
21
  if (n(a)) {
22
- if (typeof t == "string" || t instanceof ArrayBuffer || t instanceof Uint8Array || t instanceof Blob || globalThis.FileSystemFileHandle && t instanceof FileSystemFileHandle) a = await c(t);
23
- else if (t instanceof s) {
24
- if (t.fileUrl) a = await c(t.fileUrl);
22
+ if (typeof e == "string" || e instanceof ArrayBuffer || e instanceof Uint8Array || e instanceof Blob || globalThis.FileSystemFileHandle && e instanceof FileSystemFileHandle) a = await c(e);
23
+ else if (e instanceof s) {
24
+ if (e.fileUrl) a = await c(e.fileUrl);
25
25
  else throw Error("Missing resourceId");
26
- } else a = e();
26
+ } else a = t();
27
27
  }
28
28
  return {
29
29
  simpleId: a,
30
30
  resourceId: i,
31
31
  isExternalId: !1
32
32
  };
33
- }, this.formatLocation = (e, r) => {
33
+ }, this.formatLocation = (t, r) => {
34
34
  let i, a;
35
- if (!e) return {
35
+ if (!t) return {
36
36
  location: i,
37
37
  percentage: a
38
38
  };
39
- if (e instanceof o) i = e;
40
- else if (Object.prototype.toString.call(e) === "[object Object]") {
41
- let n = JSON.parse(JSON.stringify(e));
39
+ if (t instanceof o) i = t;
40
+ else if (Object.prototype.toString.call(t) === "[object Object]") {
41
+ let n = JSON.parse(JSON.stringify(t));
42
42
  if (n.url) return {
43
- location: t(n),
43
+ location: e(n),
44
44
  percentage: a
45
45
  };
46
- } else if (typeof e == "number") !isNaN(a) && a <= 1 && a >= 0 && (a = e);
47
- else if (typeof e == "string" && !n(e)) {
48
- let t = !1;
49
- if (e.trim().indexOf("{") >= 0) try {
50
- i = JSON.parse(e.trim()), t = !0;
46
+ } else if (typeof t == "number") !isNaN(a) && a <= 1 && a >= 0 && (a = t);
47
+ else if (typeof t == "string" && !n(t)) {
48
+ let e = !1;
49
+ if (t.trim().indexOf("{") >= 0) try {
50
+ i = JSON.parse(t.trim()), e = !0;
51
51
  } catch {
52
- t = !1;
52
+ e = !1;
53
53
  }
54
- if (!t) {
55
- let t = e.split(/[-_]/);
56
- if (t.length == 1) {
57
- let t = parseFloat(e);
58
- !isNaN(t) && t <= 1 && t >= 0 ? a = t : !isNaN(t) && r === ".pdf" && (i = new o("", 1, "page"), i.current = t);
59
- } else if (t.length == 2) {
60
- i = new o(t[0], 1, "ratio");
61
- let e = parseFloat(t[1]);
62
- if (isNaN(e)) {
63
- let n = t[1].split("@");
54
+ if (!e) {
55
+ let e = t.split(/[-_]/);
56
+ if (e.length == 1) {
57
+ let e = parseFloat(t);
58
+ !isNaN(e) && e <= 1 && e >= 0 ? a = e : !isNaN(e) && r === ".pdf" && (i = new o("", 1, "page"), i.current = e);
59
+ } else if (e.length == 2) {
60
+ i = new o(e[0], 1, "ratio");
61
+ let t = parseFloat(e[1]);
62
+ if (isNaN(t)) {
63
+ let n = e[1].split("@");
64
64
  if (n.length > 1) {
65
- let t = n[0].toLowerCase();
66
- t == "char" ? i.symbolType = t : i.symbolType = "custom", e = parseFloat(n[1]), isNaN(e) || e < 0 ? i.current = 0 : i.current = e;
65
+ let e = n[0].toLowerCase();
66
+ e == "char" ? i.symbolType = e : i.symbolType = "custom", t = parseFloat(n[1]), isNaN(t) || t < 0 ? i.current = 0 : i.current = t;
67
67
  } else i.current = 0;
68
- } else i.current = e < 0 ? 0 : e;
69
- } else if (t.length == 3) {
70
- i = new o(t[0], 1, "ratio"), i.tagName = t[1];
71
- let e = parseInt(t[2]);
72
- isNaN(e) || e < 0 ? i.tagIndex = 0 : i.tagIndex = e;
68
+ } else i.current = t < 0 ? 0 : t;
69
+ } else if (e.length == 3) {
70
+ i = new o(e[0], 1, "ratio"), i.tagName = e[1];
71
+ let t = parseInt(e[2]);
72
+ isNaN(t) || t < 0 ? i.tagIndex = 0 : i.tagIndex = t;
73
73
  }
74
74
  }
75
75
  }
@@ -129,11 +129,13 @@ var u = class {
129
129
  }
130
130
  formatParserUrl(e, t, n) {
131
131
  let i;
132
- e instanceof s || e instanceof Array ? i = e : (i = new s(), i.fileUrl = e, i.extension = t), i = Object.assign(i, n);
133
- let a;
134
- return (typeof e == "string" || e?.fileUrl && typeof e.fileUrl == "string" && r(e.fileUrl)) && (a = new AbortController(), i.abortController = a), {
132
+ e instanceof s || e instanceof Array ? i = e : (i = new s(), i.fileUrl = e, i.extension = t);
133
+ let { metadata: a, ...o } = n;
134
+ i = Object.assign(i, o);
135
+ let c;
136
+ return (typeof e == "string" || e?.fileUrl && typeof e.fileUrl == "string" && r(e.fileUrl)) && (c = new AbortController(), i.abortController = c), {
135
137
  url: i,
136
- abortController: a
138
+ abortController: c
137
139
  };
138
140
  }
139
141
  };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../common/url.cjs"),t=require("../common/path.cjs"),n=require("../Metadata.cjs"),r=require("../IFileParser.cjs");var i=(i,a,o)=>{if(i||=new n.Metadata,(!i.title||typeof i.title!=`string`)&&(typeof a==`string`?i.title=t.getFileName(a)?.trim():i.title=``),i.fileName&&typeof i.fileName!=`string`&&(i.fileName=``),i.author){if(typeof i.author==`string`)i.author=[i.author];else if(!Array.isArray(i.author))i.author=[];else{let e=[];for(let t of i.author)typeof t==`string`&&e.push(t);i.author=e}}if(i.subject){if(typeof i.subject==`string`)i.subject=[i.subject];else if(!Array.isArray(i.subject))i.subject=[];else{let e=[];for(let t of i.subject)typeof t==`string`&&e.push(t);i.subject=e}}i.description&&typeof i.description!=`string`&&(i.description=``),i.rights&&typeof i.rights!=`string`&&(i.rights=``),i.publisher&&typeof i.publisher!=`string`&&(i.publisher=``),i.issueDate&&typeof i.issueDate!=`string`&&(i.issueDate=``),i.size&&typeof i.size!=`number`&&(i.size=0),i.extension=o;try{if(!i.fileName){if(typeof a==`string`){if(e.checkIsAbsoluteUrl(a))i.fileName=t.getFileName(a);else{let e=!1;try{JSON.parse(a),e=!1}catch{e=!0}e&&(i.fileName=t.getFileName(a)?.trim())}}else a instanceof r.FilePackage?a.fileName?i.fileName=a.fileName?.trim():a.fileUrl&&typeof a.fileUrl==`string`&&e.checkIsAbsoluteUrl(a.fileUrl)&&(i.fileName=t.getFileName(a.fileUrl)?.trim()):globalThis.FileSystemFileHandle&&a instanceof globalThis.FileSystemFileHandle&&(i.fileName=a.name?.trim())}i.fileName?.length>1e3&&(i.fileName=``)}catch{}return i};exports.formatMetadata=i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../common/url.cjs"),t=require("../common/path.cjs"),n=require("../Metadata.cjs"),r=require("../IFileParser.cjs");var i=e=>typeof e==`string`?n.unescapeHtml(e):``,a=e=>{let t=typeof e==`string`?e.trim():``;return t?!!(/^(content|file):\/\//i.test(t)||/%2F|%3A/i.test(t)||/^primary[:%]/i.test(t)):!1},o=e=>{let t=typeof e==`string`?e.trim():``;return t&&!a(t)?t:``},s=(s,c,l,u)=>{s||=new n.Metadata;let d=o(u),f=typeof c==`string`?o(t.getFileName(c)):``;o(typeof s.title==`string`?s.title:``)||(s.title=d||f||``),s.fileName&&typeof s.fileName!=`string`&&(s.fileName=``),s.author=n.toMetadataList(s.author),s.contributor=n.toMetadataList(s.contributor),s.subject=n.toMetadataList(s.subject),s.subtitle=i(s.subtitle)||void 0,s.description=i(s.description),s.rights=i(s.rights),s.publisher=i(s.publisher),s.issueDate=i(s.issueDate),s.modifiedDate=i(s.modifiedDate)||void 0,s.language=i(s.language)||void 0,s.identifier=i(s.identifier)||void 0,s.isbn=i(s.isbn)||void 0,s.asin=i(s.asin)||void 0,s.source=i(s.source)||void 0,s.series=i(s.series)||void 0,s.seriesIndex=i(s.seriesIndex)||void 0,s.size&&typeof s.size!=`number`&&(s.size=0),s.extension=l;try{if(!o(typeof s.fileName==`string`?s.fileName:``)){if(d)s.fileName=d;else if(typeof c==`string`){if(e.checkIsAbsoluteUrl(c))s.fileName=t.getFileName(c);else{let e=!1;try{JSON.parse(c),e=!1}catch{e=!0}e&&(s.fileName=t.getFileName(c)?.trim())}}else c instanceof r.FilePackage?c.fileName?s.fileName=c.fileName?.trim():c.fileUrl&&typeof c.fileUrl==`string`&&e.checkIsAbsoluteUrl(c.fileUrl)&&(s.fileName=t.getFileName(c.fileUrl)?.trim()):globalThis.FileSystemFileHandle&&c instanceof globalThis.FileSystemFileHandle&&(s.fileName=c.name?.trim())}a(s.fileName)&&(s.fileName=d),s.fileName?.length>1e3&&(s.fileName=``)}catch{}return s};exports.formatMetadata=s,exports.isUriLikeBookTitle=a;
@@ -1,3 +1,4 @@
1
1
  import { Metadata } from '../Metadata';
2
2
 
3
- export declare const formatMetadata: (metadata: Metadata, url: any, extension: string) => Metadata;
3
+ export declare const isUriLikeBookTitle: (title?: string) => boolean;
4
+ export declare const formatMetadata: (metadata: Metadata, url: any, extension: string, fallbackFileName?: string) => Metadata;
@@ -1,46 +1,37 @@
1
1
  import { checkIsAbsoluteUrl as e } from "../common/url.mjs";
2
2
  import { getFileName as t } from "../common/path.mjs";
3
- import { Metadata as n } from "../Metadata.mjs";
4
- import { FilePackage as r } from "../IFileParser.mjs";
3
+ import { Metadata as n, toMetadataList as r, unescapeHtml as i } from "../Metadata.mjs";
4
+ import { FilePackage as a } from "../IFileParser.mjs";
5
5
  //#region kernal/pipelines/metadata.ts
6
- var i = (i, a, o) => {
7
- if (i ||= new n(), (!i.title || typeof i.title != "string") && (typeof a == "string" ? i.title = t(a)?.trim() : i.title = ""), i.fileName && typeof i.fileName != "string" && (i.fileName = ""), i.author) {
8
- if (typeof i.author == "string") i.author = [i.author];
9
- else if (!Array.isArray(i.author)) i.author = [];
10
- else {
11
- let e = [];
12
- for (let t of i.author) typeof t == "string" && e.push(t);
13
- i.author = e;
14
- }
15
- }
16
- if (i.subject) {
17
- if (typeof i.subject == "string") i.subject = [i.subject];
18
- else if (!Array.isArray(i.subject)) i.subject = [];
19
- else {
20
- let e = [];
21
- for (let t of i.subject) typeof t == "string" && e.push(t);
22
- i.subject = e;
23
- }
24
- }
25
- i.description && typeof i.description != "string" && (i.description = ""), i.rights && typeof i.rights != "string" && (i.rights = ""), i.publisher && typeof i.publisher != "string" && (i.publisher = ""), i.issueDate && typeof i.issueDate != "string" && (i.issueDate = ""), i.size && typeof i.size != "number" && (i.size = 0), i.extension = o;
6
+ var o = (e) => typeof e == "string" ? i(e) : "", s = (e) => {
7
+ let t = typeof e == "string" ? e.trim() : "";
8
+ return t ? !!(/^(content|file):\/\//i.test(t) || /%2F|%3A/i.test(t) || /^primary[:%]/i.test(t)) : !1;
9
+ }, c = (e) => {
10
+ let t = typeof e == "string" ? e.trim() : "";
11
+ return t && !s(t) ? t : "";
12
+ }, l = (i, l, u, d) => {
13
+ i ||= new n();
14
+ let f = c(d), p = typeof l == "string" ? c(t(l)) : "";
15
+ c(typeof i.title == "string" ? i.title : "") || (i.title = f || p || ""), i.fileName && typeof i.fileName != "string" && (i.fileName = ""), i.author = r(i.author), i.contributor = r(i.contributor), i.subject = r(i.subject), i.subtitle = o(i.subtitle) || void 0, i.description = o(i.description), i.rights = o(i.rights), i.publisher = o(i.publisher), i.issueDate = o(i.issueDate), i.modifiedDate = o(i.modifiedDate) || void 0, i.language = o(i.language) || void 0, i.identifier = o(i.identifier) || void 0, i.isbn = o(i.isbn) || void 0, i.asin = o(i.asin) || void 0, i.source = o(i.source) || void 0, i.series = o(i.series) || void 0, i.seriesIndex = o(i.seriesIndex) || void 0, i.size && typeof i.size != "number" && (i.size = 0), i.extension = u;
26
16
  try {
27
- if (!i.fileName) {
28
- if (typeof a == "string") {
29
- if (e(a)) i.fileName = t(a);
17
+ if (!c(typeof i.fileName == "string" ? i.fileName : "")) {
18
+ if (f) i.fileName = f;
19
+ else if (typeof l == "string") {
20
+ if (e(l)) i.fileName = t(l);
30
21
  else {
31
22
  let e = !1;
32
23
  try {
33
- JSON.parse(a), e = !1;
24
+ JSON.parse(l), e = !1;
34
25
  } catch {
35
26
  e = !0;
36
27
  }
37
- e && (i.fileName = t(a)?.trim());
28
+ e && (i.fileName = t(l)?.trim());
38
29
  }
39
- } else a instanceof r ? a.fileName ? i.fileName = a.fileName?.trim() : a.fileUrl && typeof a.fileUrl == "string" && e(a.fileUrl) && (i.fileName = t(a.fileUrl)?.trim()) : globalThis.FileSystemFileHandle && a instanceof globalThis.FileSystemFileHandle && (i.fileName = a.name?.trim());
30
+ } else l instanceof a ? l.fileName ? i.fileName = l.fileName?.trim() : l.fileUrl && typeof l.fileUrl == "string" && e(l.fileUrl) && (i.fileName = t(l.fileUrl)?.trim()) : globalThis.FileSystemFileHandle && l instanceof globalThis.FileSystemFileHandle && (i.fileName = l.name?.trim());
40
31
  }
41
- i.fileName?.length > 1e3 && (i.fileName = "");
32
+ s(i.fileName) && (i.fileName = f), i.fileName?.length > 1e3 && (i.fileName = "");
42
33
  } catch {}
43
34
  return i;
44
35
  };
45
36
  //#endregion
46
- export { i as formatMetadata };
37
+ export { l as formatMetadata, s as isUriLikeBookTitle };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../EventNames.cjs"),n=require("../PluginCore.cjs");let r=require("hotkeys-js");r=e.__toESM(r,1);let i=require("perfect-debounce");var a=`left,up,pageup`,o=`right,down,pagedown`,s=class extends n.PluginCore{constructor(e,t){super(e,t),this.bindedFlipPageElements=[],this.bindedDocuments=[],this.heldKeys={},this.currentPauseFlipPageOnPressKey=!1,this.documentKeydownHandlers=new Map,this.documentKeyupHandlers=new Map,this.onDocumentLoad=async e=>{await this.bindDocument(e)},this.onPressPreviousKey=(e,t)=>{if(this.pluginOptions.flipMode==`page`){if(this.heldKeys[e.keyCode]>1)return;this.currentPauseFlipPageOnPressKey||(e.preventDefault(),e.stopImmediatePropagation(),this.reader.context.setUserChangedProgress(!0,`keyboard`),this.delayGotoPreviousPage(this.reader.getRenderer()))}else this.reader.context.setUserChangedProgress(!0,`keyboard`)},this.onPressNextKey=(e,t)=>{if(this.pluginOptions.flipMode==`page`){if(this.heldKeys[e.keyCode]>1)return;this.currentPauseFlipPageOnPressKey||(e.preventDefault(),e.stopImmediatePropagation(),this.reader.context.setUserChangedProgress(!0,`keyboard`),this.delayGotoNextPage(this.reader.getRenderer()))}else this.reader.context.setUserChangedProgress(!0,`keyboard`)},this.delayGotoPreviousPage=(0,i.debounce)(async e=>{if(e?.pagingNavigator){await e.pagingNavigator.gotoPreviousPage({trigger:`user`,triggerType:`key`});return}await e?.gotoPreviousPage?.({trigger:`user`,triggerType:`key`})},64),this.delayGotoNextPage=(0,i.debounce)(async e=>{if(e?.pagingNavigator){await e.pagingNavigator.gotoNextPage({trigger:`user`,triggerType:`key`});return}await e?.gotoNextPage?.({trigger:`user`,triggerType:`key`})},64),this.pluginOptions={flipMode:t?.flipMode??`page`,flipPagePreviousKeys:t?.flipPagePreviousKeys??a,flipPageNextKeys:t?.flipPageNextKeys??o}}get name(){return`keyboard-page-turning`}get title(){return`Keyboard Page Turning`}get description(){return`Keyboard page flip navigation`}get version(){return`1.0.0`}get supportedVersion(){return`>=1.0.0`}get supportedExtensions(){return[`.xml`,`.xhtml`,`.html`,`.epub`,`.mobi`,`.azw3`,`.fb2`,`.txt`]}get supportedLanguages(){return[`*`]}get isUIPlugin(){return!1}getContainer(){}set pauseFlipPageOnPressKey(e){this.currentPauseFlipPageOnPressKey=e}get pauseFlipPageOnPressKey(){return this.currentPauseFlipPageOnPressKey}async load(){let e=this.reader.getReaderContainer();e&&(await this.bindFlipPageKeys(e.ownerDocument.documentElement),e.ownerDocument!==document&&await this.bindFlipPageKeys(document.documentElement));let n=this.reader.getRenderer()?.getLoadedDocuments?.()??this.reader.getRenderer()?.getDocuments?.()??[];for(let e of n)await this.bindDocument(e);this.reader.events.on(t.EventNames.DocumentLoad,this.onDocumentLoad)}async dispose(){this.reader.events.off(t.EventNames.DocumentLoad,this.onDocumentLoad);let e=this.pluginOptions.flipPagePreviousKeys,n=this.pluginOptions.flipPageNextKeys;this.bindedFlipPageElements.length>0&&(e&&r.default.unbind(e,`all`,this.onPressPreviousKey),n&&r.default.unbind(n,`all`,this.onPressNextKey));for(let e of this.bindedDocuments){let t=this.documentKeydownHandlers.get(e),n=this.documentKeyupHandlers.get(e);t&&e.removeEventListener(`keydown`,t,!0),n&&e.removeEventListener(`keyup`,n,!0)}this.documentKeydownHandlers.clear(),this.documentKeyupHandlers.clear(),this.bindedFlipPageElements=[],this.bindedDocuments=[],this.heldKeys={},this.currentPauseFlipPageOnPressKey=!1}async bindDocument(e){let t=e.getContentContainer()?.ownerDocument?.documentElement;t&&await this.bindFlipPageKeys(t)}async bindFlipPageKeys(e){if(this.bindedFlipPageElements.includes(e))return;let t=this.pluginOptions.flipPagePreviousKeys,n=this.pluginOptions.flipPageNextKeys;t&&(0,r.default)(t,{element:e,scope:`all`},this.onPressPreviousKey),n&&(0,r.default)(n,{element:e,scope:`all`},this.onPressNextKey);let i=e.ownerDocument;if(!this.bindedDocuments.includes(i)){this.bindedDocuments.push(i);let e=e=>{this.heldKeys[e.keyCode]=(this.heldKeys[e.keyCode]??0)+1},t=e=>{this.heldKeys[e.keyCode]=0};this.documentKeydownHandlers.set(i,e),this.documentKeyupHandlers.set(i,t),i.addEventListener(`keydown`,e,!0),i.addEventListener(`keyup`,t,!0)}this.bindedFlipPageElements.push(e)}};exports.KeyboardPageTurning=s;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../EventNames.cjs"),n=require("../PluginCore.cjs");let r=require("hotkeys-js");r=e.__toESM(r,1);let i=require("perfect-debounce");var a=`left,up,pageup`,o=`right,down,pagedown`,s=class extends n.PluginCore{constructor(e,t){super(e,t),this.bindedFlipPageElements=[],this.bindedDocuments=[],this.heldKeys={},this.currentPauseFlipPageOnPressKey=!1,this.documentKeydownHandlers=new Map,this.documentKeyupHandlers=new Map,this.onDocumentLoad=async e=>{await this.bindDocument(e)},this.onPressPreviousKey=(e,t)=>{if(this.pluginOptions.flipMode==`page`){if(this.heldKeys[e.keyCode]>1)return;this.currentPauseFlipPageOnPressKey||(e.preventDefault(),e.stopImmediatePropagation(),this.reader.context.setUserChangedProgress(!0,`keyboard`),this.delayGotoPreviousPage(this.reader.getRenderer()))}else this.reader.context.setUserChangedProgress(!0,`keyboard`)},this.onPressNextKey=(e,t)=>{if(this.pluginOptions.flipMode==`page`){if(this.heldKeys[e.keyCode]>1)return;this.currentPauseFlipPageOnPressKey||(e.preventDefault(),e.stopImmediatePropagation(),this.reader.context.setUserChangedProgress(!0,`keyboard`),this.delayGotoNextPage(this.reader.getRenderer()))}else this.reader.context.setUserChangedProgress(!0,`keyboard`)},this.delayGotoPreviousPage=(0,i.debounce)(async e=>{if(e?.pagingNavigator){await e.pagingNavigator.gotoPreviousPage({trigger:`user`,triggerType:`keyboard`});return}await e?.gotoPreviousPage?.({trigger:`user`,triggerType:`keyboard`})},64),this.delayGotoNextPage=(0,i.debounce)(async e=>{if(e?.pagingNavigator){await e.pagingNavigator.gotoNextPage({trigger:`user`,triggerType:`keyboard`});return}await e?.gotoNextPage?.({trigger:`user`,triggerType:`keyboard`})},64),this.pluginOptions={flipMode:t?.flipMode??`page`,flipPagePreviousKeys:t?.flipPagePreviousKeys??a,flipPageNextKeys:t?.flipPageNextKeys??o}}get name(){return`keyboard-page-turning`}get title(){return`Keyboard Page Turning`}get description(){return`Keyboard page flip navigation`}get version(){return`1.0.0`}get supportedVersion(){return`>=1.0.0`}get supportedExtensions(){return[`.xml`,`.xhtml`,`.html`,`.epub`,`.mobi`,`.azw3`,`.fb2`,`.txt`,`.md`]}get supportedLanguages(){return[`*`]}get isUIPlugin(){return!1}getContainer(){}set pauseFlipPageOnPressKey(e){this.currentPauseFlipPageOnPressKey=e}get pauseFlipPageOnPressKey(){return this.currentPauseFlipPageOnPressKey}async load(){let e=this.reader.getReaderContainer();e&&(await this.bindFlipPageKeys(e.ownerDocument.documentElement),e.ownerDocument!==document&&await this.bindFlipPageKeys(document.documentElement));let n=this.reader.getRenderer()?.getLoadedDocuments?.()??this.reader.getRenderer()?.getDocuments?.()??[];for(let e of n)await this.bindDocument(e);this.reader.events.on(t.EventNames.DocumentLoad,this.onDocumentLoad)}async dispose(){this.reader.events.off(t.EventNames.DocumentLoad,this.onDocumentLoad);let e=this.pluginOptions.flipPagePreviousKeys,n=this.pluginOptions.flipPageNextKeys;this.bindedFlipPageElements.length>0&&(e&&r.default.unbind(e,`all`,this.onPressPreviousKey),n&&r.default.unbind(n,`all`,this.onPressNextKey));for(let e of this.bindedDocuments){let t=this.documentKeydownHandlers.get(e),n=this.documentKeyupHandlers.get(e);t&&e.removeEventListener(`keydown`,t,!0),n&&e.removeEventListener(`keyup`,n,!0)}this.documentKeydownHandlers.clear(),this.documentKeyupHandlers.clear(),this.bindedFlipPageElements=[],this.bindedDocuments=[],this.heldKeys={},this.currentPauseFlipPageOnPressKey=!1}async bindDocument(e){let t=e.getContentContainer()?.ownerDocument?.documentElement;t&&await this.bindFlipPageKeys(t)}async bindFlipPageKeys(e){if(this.bindedFlipPageElements.includes(e))return;let t=this.pluginOptions.flipPagePreviousKeys,n=this.pluginOptions.flipPageNextKeys;t&&(0,r.default)(t,{element:e,scope:`all`},this.onPressPreviousKey),n&&(0,r.default)(n,{element:e,scope:`all`},this.onPressNextKey);let i=e.ownerDocument;if(!this.bindedDocuments.includes(i)){this.bindedDocuments.push(i);let e=e=>{this.heldKeys[e.keyCode]=(this.heldKeys[e.keyCode]??0)+1},t=e=>{this.heldKeys[e.keyCode]=0};this.documentKeydownHandlers.set(i,e),this.documentKeyupHandlers.set(i,t),i.addEventListener(`keydown`,e,!0),i.addEventListener(`keyup`,t,!0)}this.bindedFlipPageElements.push(e)}};exports.KeyboardPageTurning=s;