tmui-cli 2.0.3 → 2.0.4

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 (1160) hide show
  1. package/README.md +22 -14
  2. package/data/components.json +1 -1
  3. package/data/config.json +1 -1
  4. package/data/doc-index.json +1 -1
  5. package/data/tmui4x-doc-index.json +1 -1
  6. package/data/uni-app-x-docs/.vuepress/components/md/banner.vue +241 -0
  7. package/data/uni-app-x-docs/.vuepress/components/md/hperm.vue +59 -0
  8. package/data/uni-app-x-docs/.vuepress/components/md/virtual.vue +49 -0
  9. package/data/uni-app-x-docs/.vuepress/config/copy.js +7 -0
  10. package/data/uni-app-x-docs/.vuepress/config/footer.js +220 -0
  11. package/data/uni-app-x-docs/.vuepress/config/help.js +4 -0
  12. package/data/uni-app-x-docs/.vuepress/config/i18n/index.js +2 -0
  13. package/data/uni-app-x-docs/.vuepress/config/navbar.js +144 -0
  14. package/data/uni-app-x-docs/.vuepress/config/redirectRouter.js +35 -0
  15. package/data/uni-app-x-docs/.vuepress/config/routerMap.js +30 -0
  16. package/data/uni-app-x-docs/.vuepress/config/searchPage.js +53 -0
  17. package/data/uni-app-x-docs/.vuepress/config/siderbar/index.js +6 -0
  18. package/data/uni-app-x-docs/.vuepress/config/siderbar/uni-app-x.js +69 -0
  19. package/data/uni-app-x-docs/.vuepress/config/toc.js +13 -0
  20. package/data/uni-app-x-docs/.vuepress/config.js +130 -0
  21. package/data/uni-app-x-docs/.vuepress/markdown/inject-json-to-md.js +248 -0
  22. package/data/uni-app-x-docs/.vuepress/public/baidu.js +7 -0
  23. package/data/uni-app-x-docs/.vuepress/public/h5/hybrid/html/local.html +88 -0
  24. package/data/uni-app-x-docs/.vuepress/public/h5/index.html +14 -0
  25. package/data/uni-app-x-docs/.vuepress/public/h5/pcguide.html +241 -0
  26. package/data/uni-app-x-docs/.vuepress/public/h5/touch-emulator.js +363 -0
  27. package/data/uni-app-x-docs/.vuepress/public/js/miku.js +10 -0
  28. package/data/uni-app-x-docs/.vuepress/public/miku-delivery-1.2.1.js +7 -0
  29. package/data/uni-app-x-docs/.vuepress/public/miku-delivery-sw-1.2.1.js +7 -0
  30. package/data/uni-app-x-docs/.vuepress/public/pc.html +157 -0
  31. package/data/uni-app-x-docs/.vuepress/public/static/web-view-forum.html +119 -0
  32. package/data/uni-app-x-docs/.vuepress/public/static/web-view.html +119 -0
  33. package/data/uni-app-x-docs/.vuepress/public/svg/uni-open-bridge.svg +1 -0
  34. package/data/uni-app-x-docs/.vuepress/utils/code.js +61 -0
  35. package/data/uni-app-x-docs/.vuepress/utils/cssJson.json +1 -0
  36. package/data/uni-app-x-docs/.vuepress/utils/customTypeJson.json +1 -0
  37. package/data/uni-app-x-docs/.vuepress/utils/example-mapping.json +39 -0
  38. package/data/uni-app-x-docs/.vuepress/utils/example.js +107 -0
  39. package/data/uni-app-x-docs/.vuepress/utils/index.js +20 -0
  40. package/data/uni-app-x-docs/.vuepress/utils/maniFestJson.json +1 -0
  41. package/data/uni-app-x-docs/.vuepress/utils/pageInstanceJson.json +1 -0
  42. package/data/uni-app-x-docs/.vuepress/utils/pagesJson.json +1 -0
  43. package/data/uni-app-x-docs/.vuepress/utils/specialStringJson.json +1 -0
  44. package/data/uni-app-x-docs/.vuepress/utils/utsApiJson.json +1 -0
  45. package/data/uni-app-x-docs/.vuepress/utils/utsComJson.json +1 -0
  46. package/data/uni-app-x-docs/.vuepress/utils/utsDiffTSJson.json +1 -0
  47. package/data/uni-app-x-docs/.vuepress/utils/utsJson.json +1 -0
  48. package/data/uni-app-x-docs/.vuepress/utils/utsUnicloudApiJson.json +1 -0
  49. package/data/uni-app-x-docs/.vuepress/utils/vueJson.json +1 -0
  50. package/data/uni-app-x-docs/404.md +2 -0
  51. package/data/uni-app-x-docs/_sidebar.md +135 -0
  52. package/data/uni-app-x-docs/adapt.md +169 -0
  53. package/data/uni-app-x-docs/ai/NOTE.md +7 -0
  54. package/data/uni-app-x-docs/api/README.md +105 -0
  55. package/data/uni-app-x-docs/api/_sidebar.md +165 -0
  56. package/data/uni-app-x-docs/api/accelerometer.md +72 -0
  57. package/data/uni-app-x-docs/api/action-sheet.md +40 -0
  58. package/data/uni-app-x-docs/api/animation-frame.md +57 -0
  59. package/data/uni-app-x-docs/api/app-route.md +323 -0
  60. package/data/uni-app-x-docs/api/authentication.md +62 -0
  61. package/data/uni-app-x-docs/api/base64.md +33 -0
  62. package/data/uni-app-x-docs/api/bio-auth.md +5 -0
  63. package/data/uni-app-x-docs/api/calendar.md +40 -0
  64. package/data/uni-app-x-docs/api/canvas-get-image-data.md +5 -0
  65. package/data/uni-app-x-docs/api/canvas-put-image-data.md +5 -0
  66. package/data/uni-app-x-docs/api/canvas-to-temp-file-path.md +17 -0
  67. package/data/uni-app-x-docs/api/canvasrenderingcontext2d.md +673 -0
  68. package/data/uni-app-x-docs/api/capture-screen.md +55 -0
  69. package/data/uni-app-x-docs/api/capturescreen.md +5 -0
  70. package/data/uni-app-x-docs/api/choose-file.md +27 -0
  71. package/data/uni-app-x-docs/api/choose-image.md +40 -0
  72. package/data/uni-app-x-docs/api/choose-location.md +304 -0
  73. package/data/uni-app-x-docs/api/choose-media.md +29 -0
  74. package/data/uni-app-x-docs/api/choose-video.md +31 -0
  75. package/data/uni-app-x-docs/api/clipboard.md +44 -0
  76. package/data/uni-app-x-docs/api/compass.md +53 -0
  77. package/data/uni-app-x-docs/api/compress-image.md +25 -0
  78. package/data/uni-app-x-docs/api/compress-video.md +21 -0
  79. package/data/uni-app-x-docs/api/connect-event-source.md +34 -0
  80. package/data/uni-app-x-docs/api/contact.md +37 -0
  81. package/data/uni-app-x-docs/api/create-camera-context.md +27 -0
  82. package/data/uni-app-x-docs/api/create-canvas-context-async.md +36 -0
  83. package/data/uni-app-x-docs/api/create-editor-context-async.md +23 -0
  84. package/data/uni-app-x-docs/api/create-inner-audio-context.md +67 -0
  85. package/data/uni-app-x-docs/api/create-intersection-observer.md +17 -0
  86. package/data/uni-app-x-docs/api/create-interstitial-ad.md +43 -0
  87. package/data/uni-app-x-docs/api/create-live-player-context.md +26 -0
  88. package/data/uni-app-x-docs/api/create-live-pusher-context.md +26 -0
  89. package/data/uni-app-x-docs/api/create-map-context.md +13 -0
  90. package/data/uni-app-x-docs/api/create-request-permission-listener.md +37 -0
  91. package/data/uni-app-x-docs/api/create-rewarded-video-ad.md +58 -0
  92. package/data/uni-app-x-docs/api/create-selector-query.md +161 -0
  93. package/data/uni-app-x-docs/api/create-video-context.md +46 -0
  94. package/data/uni-app-x-docs/api/create-webview-context.md +66 -0
  95. package/data/uni-app-x-docs/api/create-worker.md +293 -0
  96. package/data/uni-app-x-docs/api/dialog-page.md +113 -0
  97. package/data/uni-app-x-docs/api/dom/README.md +520 -0
  98. package/data/uni-app-x-docs/api/dom/cssstyledeclaration.md +515 -0
  99. package/data/uni-app-x-docs/api/dom/domrect.md +11 -0
  100. package/data/uni-app-x-docs/api/dom/drawablecontext.md +212 -0
  101. package/data/uni-app-x-docs/api/dom/element.md +5 -0
  102. package/data/uni-app-x-docs/api/dom/unicanvaselement.md +101 -0
  103. package/data/uni-app-x-docs/api/dom/unielement.md +608 -0
  104. package/data/uni-app-x-docs/api/dom/uniimageelement.md +25 -0
  105. package/data/uni-app-x-docs/api/dom/uniinputelement.md +11 -0
  106. package/data/uni-app-x-docs/api/dom/uninativeviewelement.md +98 -0
  107. package/data/uni-app-x-docs/api/dom/uniresizeobserver.md +48 -0
  108. package/data/uni-app-x-docs/api/dom/unitextareaelement.md +11 -0
  109. package/data/uni-app-x-docs/api/dom/unitextelement.md +49 -0
  110. package/data/uni-app-x-docs/api/dom/univideoelement.md +108 -0
  111. package/data/uni-app-x-docs/api/dom/uniwebviewelement.md +97 -0
  112. package/data/uni-app-x-docs/api/download-file.md +52 -0
  113. package/data/uni-app-x-docs/api/env.md +19 -0
  114. package/data/uni-app-x-docs/api/event-bus.md +81 -0
  115. package/data/uni-app-x-docs/api/exit.md +63 -0
  116. package/data/uni-app-x-docs/api/ext.md +61 -0
  117. package/data/uni-app-x-docs/api/facial-recognition-meta-info.md +47 -0
  118. package/data/uni-app-x-docs/api/facial-recognition-verify.md +5 -0
  119. package/data/uni-app-x-docs/api/file-system-spec.md +224 -0
  120. package/data/uni-app-x-docs/api/get-accessibility-info.md +23 -0
  121. package/data/uni-app-x-docs/api/get-app-authorize-setting.md +29 -0
  122. package/data/uni-app-x-docs/api/get-app-base-info.md +32 -0
  123. package/data/uni-app-x-docs/api/get-app.md +28 -0
  124. package/data/uni-app-x-docs/api/get-background-audio-manager.md +54 -0
  125. package/data/uni-app-x-docs/api/get-battery-info.md +31 -0
  126. package/data/uni-app-x-docs/api/get-current-pages.md +39 -0
  127. package/data/uni-app-x-docs/api/get-device-info.md +35 -0
  128. package/data/uni-app-x-docs/api/get-element-by-id.md +55 -0
  129. package/data/uni-app-x-docs/api/get-element.md +5 -0
  130. package/data/uni-app-x-docs/api/get-file-system-manager.md +62 -0
  131. package/data/uni-app-x-docs/api/get-image-info.md +22 -0
  132. package/data/uni-app-x-docs/api/get-launch-options-sync.md +5 -0
  133. package/data/uni-app-x-docs/api/get-location.md +210 -0
  134. package/data/uni-app-x-docs/api/get-network-type.md +23 -0
  135. package/data/uni-app-x-docs/api/get-performance.md +17 -0
  136. package/data/uni-app-x-docs/api/get-provider.md +5 -0
  137. package/data/uni-app-x-docs/api/get-recorder-manager.md +51 -0
  138. package/data/uni-app-x-docs/api/get-system-info.md +100 -0
  139. package/data/uni-app-x-docs/api/get-system-setting.md +24 -0
  140. package/data/uni-app-x-docs/api/get-univerify-manager.md +306 -0
  141. package/data/uni-app-x-docs/api/get-video-info.md +21 -0
  142. package/data/uni-app-x-docs/api/get-window-info.md +55 -0
  143. package/data/uni-app-x-docs/api/gyroscope.md +80 -0
  144. package/data/uni-app-x-docs/api/image.md +32 -0
  145. package/data/uni-app-x-docs/api/install-apk.md +26 -0
  146. package/data/uni-app-x-docs/api/interceptor.md +35 -0
  147. package/data/uni-app-x-docs/api/is-simulator.md +29 -0
  148. package/data/uni-app-x-docs/api/keyboard.md +55 -0
  149. package/data/uni-app-x-docs/api/launch.md +43 -0
  150. package/data/uni-app-x-docs/api/load-font-face.md +46 -0
  151. package/data/uni-app-x-docs/api/loading.md +61 -0
  152. package/data/uni-app-x-docs/api/locale.md +43 -0
  153. package/data/uni-app-x-docs/api/location-change.md +123 -0
  154. package/data/uni-app-x-docs/api/make-phone-call.md +25 -0
  155. package/data/uni-app-x-docs/api/memory.md +29 -0
  156. package/data/uni-app-x-docs/api/modal.md +50 -0
  157. package/data/uni-app-x-docs/api/navigator-bar-loading.md +40 -0
  158. package/data/uni-app-x-docs/api/navigator.md +89 -0
  159. package/data/uni-app-x-docs/api/network-status-change.md +41 -0
  160. package/data/uni-app-x-docs/api/network-summarize.md +40 -0
  161. package/data/uni-app-x-docs/api/nodes-info.md +5 -0
  162. package/data/uni-app-x-docs/api/on-tab-bar-mid-button-tap.md +20 -0
  163. package/data/uni-app-x-docs/api/open-app-authorize-setting.md +23 -0
  164. package/data/uni-app-x-docs/api/open-document.md +21 -0
  165. package/data/uni-app-x-docs/api/open-location.md +22 -0
  166. package/data/uni-app-x-docs/api/page-scroll-to.md +57 -0
  167. package/data/uni-app-x-docs/api/path2d.md +160 -0
  168. package/data/uni-app-x-docs/api/preview-image.md +44 -0
  169. package/data/uni-app-x-docs/api/privacy.md +84 -0
  170. package/data/uni-app-x-docs/api/provider.md +123 -0
  171. package/data/uni-app-x-docs/api/pull-down-refresh.md +46 -0
  172. package/data/uni-app-x-docs/api/push.md +1 -0
  173. package/data/uni-app-x-docs/api/report.md +44 -0
  174. package/data/uni-app-x-docs/api/request-merchant-transfer.md +31 -0
  175. package/data/uni-app-x-docs/api/request-payment.md +212 -0
  176. package/data/uni-app-x-docs/api/request-system-permission.md +21 -0
  177. package/data/uni-app-x-docs/api/request.md +72 -0
  178. package/data/uni-app-x-docs/api/rpx2px.md +19 -0
  179. package/data/uni-app-x-docs/api/save-image-to-photos-album.md +19 -0
  180. package/data/uni-app-x-docs/api/save-video-to-photos-album.md +17 -0
  181. package/data/uni-app-x-docs/api/scan-code.md +39 -0
  182. package/data/uni-app-x-docs/api/screen-brightness.md +53 -0
  183. package/data/uni-app-x-docs/api/set-navigation-bar-color.md +27 -0
  184. package/data/uni-app-x-docs/api/set-navigation-bar-title.md +22 -0
  185. package/data/uni-app-x-docs/api/set-tab-bar.md +121 -0
  186. package/data/uni-app-x-docs/api/set-tabbar.md +5 -0
  187. package/data/uni-app-x-docs/api/share-with-system.md +27 -0
  188. package/data/uni-app-x-docs/api/share.md +128 -0
  189. package/data/uni-app-x-docs/api/show-action-sheet.md +5 -0
  190. package/data/uni-app-x-docs/api/show-loading.md +5 -0
  191. package/data/uni-app-x-docs/api/show-modal.md +5 -0
  192. package/data/uni-app-x-docs/api/show-toast.md +5 -0
  193. package/data/uni-app-x-docs/api/sign-in.md +141 -0
  194. package/data/uni-app-x-docs/api/storage.md +347 -0
  195. package/data/uni-app-x-docs/api/theme-change.md +477 -0
  196. package/data/uni-app-x-docs/api/theme.md +5 -0
  197. package/data/uni-app-x-docs/api/toast.md +62 -0
  198. package/data/uni-app-x-docs/api/uni-push.md +251 -0
  199. package/data/uni-app-x-docs/api/unicloud/README.md +25 -0
  200. package/data/uni-app-x-docs/api/unicloud/database.md +27 -0
  201. package/data/uni-app-x-docs/api/unicloud/function.md +58 -0
  202. package/data/uni-app-x-docs/api/unicloud/object.md +75 -0
  203. package/data/uni-app-x-docs/api/unicloud/sse-channel.md +103 -0
  204. package/data/uni-app-x-docs/api/unicloud/storage.md +46 -0
  205. package/data/uni-app-x-docs/api/unicloud/utils.md +71 -0
  206. package/data/uni-app-x-docs/api/unipage.md +389 -0
  207. package/data/uni-app-x-docs/api/upload-file.md +40 -0
  208. package/data/uni-app-x-docs/api/vibrate.md +37 -0
  209. package/data/uni-app-x-docs/api/virtual-payment.md +228 -0
  210. package/data/uni-app-x-docs/api/websocket-global.md +5 -0
  211. package/data/uni-app-x-docs/api/websocket.md +116 -0
  212. package/data/uni-app-x-docs/api/wide-screen-adaptation.md +197 -0
  213. package/data/uni-app-x-docs/api/wifi.md +135 -0
  214. package/data/uni-app-x-docs/api/window.md +37 -0
  215. package/data/uni-app-x-docs/app-harmony/README.md +75 -0
  216. package/data/uni-app-x-docs/app-harmony/harmony-vapor.md +5 -0
  217. package/data/uni-app-x-docs/app-vapor.md +599 -0
  218. package/data/uni-app-x-docs/benchmark/vapor-benchmark-android.md +488 -0
  219. package/data/uni-app-x-docs/benchmark/vapor-benchmark-harmony.md +312 -0
  220. package/data/uni-app-x-docs/benchmark/vapor-benchmark-ios.md +375 -0
  221. package/data/uni-app-x-docs/collocation/_sidebar.md +15 -0
  222. package/data/uni-app-x-docs/collocation/app.md +263 -0
  223. package/data/uni-app-x-docs/collocation/manifest-android.md +1321 -0
  224. package/data/uni-app-x-docs/collocation/manifest-harmony.md +152 -0
  225. package/data/uni-app-x-docs/collocation/manifest-ios.md +731 -0
  226. package/data/uni-app-x-docs/collocation/manifest-modules.md +521 -0
  227. package/data/uni-app-x-docs/collocation/manifest-splashscreen.md +232 -0
  228. package/data/uni-app-x-docs/collocation/manifest.md +591 -0
  229. package/data/uni-app-x-docs/collocation/pagesjson.md +462 -0
  230. package/data/uni-app-x-docs/collocation/themejson.md +177 -0
  231. package/data/uni-app-x-docs/compiler/README.md +125 -0
  232. package/data/uni-app-x-docs/compiler/_sidebar.md +4 -0
  233. package/data/uni-app-x-docs/component/README.md +228 -0
  234. package/data/uni-app-x-docs/component/_sidebar.md +118 -0
  235. package/data/uni-app-x-docs/component/ad-custom.md +19 -0
  236. package/data/uni-app-x-docs/component/ad.md +45 -0
  237. package/data/uni-app-x-docs/component/animation-view.md +19 -0
  238. package/data/uni-app-x-docs/component/aria-component.md +19 -0
  239. package/data/uni-app-x-docs/component/audio.md +7 -0
  240. package/data/uni-app-x-docs/component/block.md +21 -0
  241. package/data/uni-app-x-docs/component/button.md +105 -0
  242. package/data/uni-app-x-docs/component/camera.md +54 -0
  243. package/data/uni-app-x-docs/component/canvas.md +163 -0
  244. package/data/uni-app-x-docs/component/channel-live.md +19 -0
  245. package/data/uni-app-x-docs/component/channel-video.md +19 -0
  246. package/data/uni-app-x-docs/component/checkbox-group.md +21 -0
  247. package/data/uni-app-x-docs/component/checkbox.md +27 -0
  248. package/data/uni-app-x-docs/component/common.md +304 -0
  249. package/data/uni-app-x-docs/component/cover-image.md +25 -0
  250. package/data/uni-app-x-docs/component/cover-view.md +25 -0
  251. package/data/uni-app-x-docs/component/custom-tab-bar.md +19 -0
  252. package/data/uni-app-x-docs/component/double-tap-gesture-handler.md +19 -0
  253. package/data/uni-app-x-docs/component/draggable-sheet.md +19 -0
  254. package/data/uni-app-x-docs/component/editor.md +33 -0
  255. package/data/uni-app-x-docs/component/flow-item.md +5 -0
  256. package/data/uni-app-x-docs/component/force-press-gesture-handler.md +19 -0
  257. package/data/uni-app-x-docs/component/form.md +108 -0
  258. package/data/uni-app-x-docs/component/functional-page-navigator.md +19 -0
  259. package/data/uni-app-x-docs/component/glass-effect-view.md +32 -0
  260. package/data/uni-app-x-docs/component/grid-builder.md +19 -0
  261. package/data/uni-app-x-docs/component/grid-view.md +19 -0
  262. package/data/uni-app-x-docs/component/horizontal-drag-gesture-handler.md +19 -0
  263. package/data/uni-app-x-docs/component/icon.md +19 -0
  264. package/data/uni-app-x-docs/component/image.md +79 -0
  265. package/data/uni-app-x-docs/component/input.md +121 -0
  266. package/data/uni-app-x-docs/component/keyboard-accessory.md +19 -0
  267. package/data/uni-app-x-docs/component/label.md +21 -0
  268. package/data/uni-app-x-docs/component/list-builder.md +19 -0
  269. package/data/uni-app-x-docs/component/list-item.md +1 -0
  270. package/data/uni-app-x-docs/component/list-view.md +191 -0
  271. package/data/uni-app-x-docs/component/live-player.md +29 -0
  272. package/data/uni-app-x-docs/component/live-pusher.md +31 -0
  273. package/data/uni-app-x-docs/component/loading.md +31 -0
  274. package/data/uni-app-x-docs/component/long-press-gesture-handler.md +19 -0
  275. package/data/uni-app-x-docs/component/map.md +114 -0
  276. package/data/uni-app-x-docs/component/match-media.md +21 -0
  277. package/data/uni-app-x-docs/component/movable-area.md +27 -0
  278. package/data/uni-app-x-docs/component/movable-view.md +27 -0
  279. package/data/uni-app-x-docs/component/native-component.md +19 -0
  280. package/data/uni-app-x-docs/component/native-view.md +210 -0
  281. package/data/uni-app-x-docs/component/navigation-bar.md +19 -0
  282. package/data/uni-app-x-docs/component/navigator.md +22 -0
  283. package/data/uni-app-x-docs/component/nested-scroll-body.md +32 -0
  284. package/data/uni-app-x-docs/component/nested-scroll-header.md +32 -0
  285. package/data/uni-app-x-docs/component/nested-scroll.md +8 -0
  286. package/data/uni-app-x-docs/component/official-account.md +19 -0
  287. package/data/uni-app-x-docs/component/open-container.md +19 -0
  288. package/data/uni-app-x-docs/component/page-container.md +37 -0
  289. package/data/uni-app-x-docs/component/page-meta.md +19 -0
  290. package/data/uni-app-x-docs/component/pan-gesture-handler.md +19 -0
  291. package/data/uni-app-x-docs/component/picker-view-column.md +5 -0
  292. package/data/uni-app-x-docs/component/picker-view.md +48 -0
  293. package/data/uni-app-x-docs/component/picker.md +29 -0
  294. package/data/uni-app-x-docs/component/progress.md +19 -0
  295. package/data/uni-app-x-docs/component/radio-group.md +21 -0
  296. package/data/uni-app-x-docs/component/radio.md +27 -0
  297. package/data/uni-app-x-docs/component/rich-text.md +108 -0
  298. package/data/uni-app-x-docs/component/root-portal.md +19 -0
  299. package/data/uni-app-x-docs/component/scale-gesture-handler.md +19 -0
  300. package/data/uni-app-x-docs/component/scroll-view.md +213 -0
  301. package/data/uni-app-x-docs/component/share-element.md +84 -0
  302. package/data/uni-app-x-docs/component/slider.md +44 -0
  303. package/data/uni-app-x-docs/component/snapshot.md +19 -0
  304. package/data/uni-app-x-docs/component/span.md +19 -0
  305. package/data/uni-app-x-docs/component/sticky-header.md +50 -0
  306. package/data/uni-app-x-docs/component/sticky-section.md +54 -0
  307. package/data/uni-app-x-docs/component/sticky.md +8 -0
  308. package/data/uni-app-x-docs/component/store-home.md +19 -0
  309. package/data/uni-app-x-docs/component/store-product.md +19 -0
  310. package/data/uni-app-x-docs/component/swiper-item.md +5 -0
  311. package/data/uni-app-x-docs/component/swiper.md +94 -0
  312. package/data/uni-app-x-docs/component/switch.md +28 -0
  313. package/data/uni-app-x-docs/component/tap-gesture-handler.md +19 -0
  314. package/data/uni-app-x-docs/component/text.md +242 -0
  315. package/data/uni-app-x-docs/component/textarea.md +90 -0
  316. package/data/uni-app-x-docs/component/uni-ui-x/README.md +1 -0
  317. package/data/uni-app-x-docs/component/uni-ui-x/uni-badge-view.md +25 -0
  318. package/data/uni-app-x-docs/component/uni-ui-x/uni-collapse-item.md +5 -0
  319. package/data/uni-app-x-docs/component/uni-ui-x/uni-collapse.md +48 -0
  320. package/data/uni-app-x-docs/component/uni-ui-x/uni-drag-cell.md +25 -0
  321. package/data/uni-app-x-docs/component/uni-ui-x/uni-fab-button.md +25 -0
  322. package/data/uni-app-x-docs/component/uni-ui-x/uni-index-bar.md +25 -0
  323. package/data/uni-app-x-docs/component/uni-ui-x/uni-link.md +25 -0
  324. package/data/uni-app-x-docs/component/uni-ui-x/uni-nav-bar.md +25 -0
  325. package/data/uni-app-x-docs/component/uni-ui-x/uni-number-box.md +25 -0
  326. package/data/uni-app-x-docs/component/uni-ui-x/uni-rate.md +25 -0
  327. package/data/uni-app-x-docs/component/uni-ui-x/uni-refresh-box.md +25 -0
  328. package/data/uni-app-x-docs/component/uni-ui-x/uni-tab-bar.md +5 -0
  329. package/data/uni-app-x-docs/component/uni-ui-x/uni-tab-content.md +5 -0
  330. package/data/uni-app-x-docs/component/uni-ui-x/uni-tab-item.md +5 -0
  331. package/data/uni-app-x-docs/component/uni-ui-x/uni-tab-midbutton.md +5 -0
  332. package/data/uni-app-x-docs/component/uni-ui-x/uni-tab.md +111 -0
  333. package/data/uni-app-x-docs/component/uni-ui-x/uni-time-format.md +25 -0
  334. package/data/uni-app-x-docs/component/unicloud-db.md +19 -0
  335. package/data/uni-app-x-docs/component/vertical-drag-gesture-handler.md +19 -0
  336. package/data/uni-app-x-docs/component/video.md +135 -0
  337. package/data/uni-app-x-docs/component/view.md +86 -0
  338. package/data/uni-app-x-docs/component/voip-room.md +19 -0
  339. package/data/uni-app-x-docs/component/waterflow.md +122 -0
  340. package/data/uni-app-x-docs/component/web-view.md +160 -0
  341. package/data/uni-app-x-docs/css/README.md +274 -0
  342. package/data/uni-app-x-docs/css/_sidebar.md +104 -0
  343. package/data/uni-app-x-docs/css/align-content.md +22 -0
  344. package/data/uni-app-x-docs/css/align-items.md +20 -0
  345. package/data/uni-app-x-docs/css/align-self.md +20 -0
  346. package/data/uni-app-x-docs/css/animation-composition.md +18 -0
  347. package/data/uni-app-x-docs/css/animation-delay.md +18 -0
  348. package/data/uni-app-x-docs/css/animation-direction.md +18 -0
  349. package/data/uni-app-x-docs/css/animation-duration.md +18 -0
  350. package/data/uni-app-x-docs/css/animation-fill-mode.md +18 -0
  351. package/data/uni-app-x-docs/css/animation-iteration-count.md +18 -0
  352. package/data/uni-app-x-docs/css/animation-name.md +18 -0
  353. package/data/uni-app-x-docs/css/animation-play-state.md +18 -0
  354. package/data/uni-app-x-docs/css/animation-range-end.md +18 -0
  355. package/data/uni-app-x-docs/css/animation-range-start.md +18 -0
  356. package/data/uni-app-x-docs/css/animation-range.md +18 -0
  357. package/data/uni-app-x-docs/css/animation-timeline.md +18 -0
  358. package/data/uni-app-x-docs/css/animation-timing-function.md +18 -0
  359. package/data/uni-app-x-docs/css/animation.md +18 -0
  360. package/data/uni-app-x-docs/css/backdrop-filter.md +21 -0
  361. package/data/uni-app-x-docs/css/background-clip.md +20 -0
  362. package/data/uni-app-x-docs/css/background-color.md +25 -0
  363. package/data/uni-app-x-docs/css/background-image.md +48 -0
  364. package/data/uni-app-x-docs/css/background.md +20 -0
  365. package/data/uni-app-x-docs/css/border-bottom-color.md +20 -0
  366. package/data/uni-app-x-docs/css/border-bottom-left-radius.md +23 -0
  367. package/data/uni-app-x-docs/css/border-bottom-right-radius.md +23 -0
  368. package/data/uni-app-x-docs/css/border-bottom-style.md +20 -0
  369. package/data/uni-app-x-docs/css/border-bottom-width.md +27 -0
  370. package/data/uni-app-x-docs/css/border-bottom.md +20 -0
  371. package/data/uni-app-x-docs/css/border-color.md +20 -0
  372. package/data/uni-app-x-docs/css/border-left-color.md +20 -0
  373. package/data/uni-app-x-docs/css/border-left-style.md +20 -0
  374. package/data/uni-app-x-docs/css/border-left-width.md +27 -0
  375. package/data/uni-app-x-docs/css/border-left.md +20 -0
  376. package/data/uni-app-x-docs/css/border-radius.md +27 -0
  377. package/data/uni-app-x-docs/css/border-right-color.md +20 -0
  378. package/data/uni-app-x-docs/css/border-right-style.md +20 -0
  379. package/data/uni-app-x-docs/css/border-right-width.md +27 -0
  380. package/data/uni-app-x-docs/css/border-right.md +20 -0
  381. package/data/uni-app-x-docs/css/border-style.md +24 -0
  382. package/data/uni-app-x-docs/css/border-top-color.md +20 -0
  383. package/data/uni-app-x-docs/css/border-top-left-radius.md +23 -0
  384. package/data/uni-app-x-docs/css/border-top-right-radius.md +23 -0
  385. package/data/uni-app-x-docs/css/border-top-style.md +20 -0
  386. package/data/uni-app-x-docs/css/border-top-width.md +27 -0
  387. package/data/uni-app-x-docs/css/border-top.md +20 -0
  388. package/data/uni-app-x-docs/css/border-width.md +24 -0
  389. package/data/uni-app-x-docs/css/border.md +23 -0
  390. package/data/uni-app-x-docs/css/bottom.md +20 -0
  391. package/data/uni-app-x-docs/css/box-shadow.md +26 -0
  392. package/data/uni-app-x-docs/css/box-sizing.md +20 -0
  393. package/data/uni-app-x-docs/css/color.md +27 -0
  394. package/data/uni-app-x-docs/css/common/at-rules.md +293 -0
  395. package/data/uni-app-x-docs/css/common/color.md +9 -0
  396. package/data/uni-app-x-docs/css/common/function.md +161 -0
  397. package/data/uni-app-x-docs/css/common/length.md +89 -0
  398. package/data/uni-app-x-docs/css/common/selector.md +48 -0
  399. package/data/uni-app-x-docs/css/common/style-isolation.md +258 -0
  400. package/data/uni-app-x-docs/css/common/variable.md +1 -0
  401. package/data/uni-app-x-docs/css/css_diff_web.md +802 -0
  402. package/data/uni-app-x-docs/css/direction.md +18 -0
  403. package/data/uni-app-x-docs/css/display.md +23 -0
  404. package/data/uni-app-x-docs/css/flex-basis.md +20 -0
  405. package/data/uni-app-x-docs/css/flex-direction.md +20 -0
  406. package/data/uni-app-x-docs/css/flex-flow.md +20 -0
  407. package/data/uni-app-x-docs/css/flex-grow.md +20 -0
  408. package/data/uni-app-x-docs/css/flex-shrink.md +20 -0
  409. package/data/uni-app-x-docs/css/flex-wrap.md +20 -0
  410. package/data/uni-app-x-docs/css/flex.md +20 -0
  411. package/data/uni-app-x-docs/css/font-family.md +50 -0
  412. package/data/uni-app-x-docs/css/font-size.md +51 -0
  413. package/data/uni-app-x-docs/css/font-style.md +23 -0
  414. package/data/uni-app-x-docs/css/font-weight.md +24 -0
  415. package/data/uni-app-x-docs/css/height.md +23 -0
  416. package/data/uni-app-x-docs/css/justify-content.md +20 -0
  417. package/data/uni-app-x-docs/css/left.md +20 -0
  418. package/data/uni-app-x-docs/css/letter-spacing.md +20 -0
  419. package/data/uni-app-x-docs/css/line-height.md +37 -0
  420. package/data/uni-app-x-docs/css/lines.md +23 -0
  421. package/data/uni-app-x-docs/css/margin-bottom.md +25 -0
  422. package/data/uni-app-x-docs/css/margin-left.md +25 -0
  423. package/data/uni-app-x-docs/css/margin-right.md +25 -0
  424. package/data/uni-app-x-docs/css/margin-top.md +25 -0
  425. package/data/uni-app-x-docs/css/margin.md +33 -0
  426. package/data/uni-app-x-docs/css/max-height.md +20 -0
  427. package/data/uni-app-x-docs/css/max-width.md +20 -0
  428. package/data/uni-app-x-docs/css/min-height.md +27 -0
  429. package/data/uni-app-x-docs/css/min-width.md +20 -0
  430. package/data/uni-app-x-docs/css/opacity.md +20 -0
  431. package/data/uni-app-x-docs/css/overflow.md +28 -0
  432. package/data/uni-app-x-docs/css/padding-bottom.md +23 -0
  433. package/data/uni-app-x-docs/css/padding-left.md +23 -0
  434. package/data/uni-app-x-docs/css/padding-right.md +23 -0
  435. package/data/uni-app-x-docs/css/padding-top.md +23 -0
  436. package/data/uni-app-x-docs/css/padding.md +23 -0
  437. package/data/uni-app-x-docs/css/pointer-events.md +26 -0
  438. package/data/uni-app-x-docs/css/position.md +50 -0
  439. package/data/uni-app-x-docs/css/right.md +20 -0
  440. package/data/uni-app-x-docs/css/text-align.md +23 -0
  441. package/data/uni-app-x-docs/css/text-decoration-color.md +25 -0
  442. package/data/uni-app-x-docs/css/text-decoration-line.md +24 -0
  443. package/data/uni-app-x-docs/css/text-decoration-style.md +23 -0
  444. package/data/uni-app-x-docs/css/text-decoration-thickness.md +23 -0
  445. package/data/uni-app-x-docs/css/text-decoration.md +24 -0
  446. package/data/uni-app-x-docs/css/text-overflow.md +24 -0
  447. package/data/uni-app-x-docs/css/text-shadow.md +22 -0
  448. package/data/uni-app-x-docs/css/top.md +20 -0
  449. package/data/uni-app-x-docs/css/transform-origin.md +20 -0
  450. package/data/uni-app-x-docs/css/transform.md +32 -0
  451. package/data/uni-app-x-docs/css/transition-delay.md +27 -0
  452. package/data/uni-app-x-docs/css/transition-duration.md +27 -0
  453. package/data/uni-app-x-docs/css/transition-property.md +23 -0
  454. package/data/uni-app-x-docs/css/transition-timing-function.md +23 -0
  455. package/data/uni-app-x-docs/css/transition.md +43 -0
  456. package/data/uni-app-x-docs/css/visibility.md +26 -0
  457. package/data/uni-app-x-docs/css/white-space.md +49 -0
  458. package/data/uni-app-x-docs/css/width.md +23 -0
  459. package/data/uni-app-x-docs/css/z-index.md +127 -0
  460. package/data/uni-app-x-docs/debug/android-inspector.md +55 -0
  461. package/data/uni-app-x-docs/i18n.md +379 -0
  462. package/data/uni-app-x-docs/mp/README.md +159 -0
  463. package/data/uni-app-x-docs/native/README.md +67 -0
  464. package/data/uni-app-x-docs/native/debug/android.md +126 -0
  465. package/data/uni-app-x-docs/native/debug/harmony.md +119 -0
  466. package/data/uni-app-x-docs/native/debug/ios.md +92 -0
  467. package/data/uni-app-x-docs/native/download/android.md +45 -0
  468. package/data/uni-app-x-docs/native/download/ios.md +30 -0
  469. package/data/uni-app-x-docs/native/modules/android/others.md +1441 -0
  470. package/data/uni-app-x-docs/native/modules/android/uni-ad.md +104 -0
  471. package/data/uni-app-x-docs/native/modules/android/uni-facialRecognitionVerify.md +74 -0
  472. package/data/uni-app-x-docs/native/modules/android/uni-getLocation.md +131 -0
  473. package/data/uni-app-x-docs/native/modules/android/uni-map-tencent.md +101 -0
  474. package/data/uni-app-x-docs/native/modules/android/uni-oauth.md +61 -0
  475. package/data/uni-app-x-docs/native/modules/android/uni-payment.md +120 -0
  476. package/data/uni-app-x-docs/native/modules/android/uni-push.md +229 -0
  477. package/data/uni-app-x-docs/native/modules/android/uni-share.md +61 -0
  478. package/data/uni-app-x-docs/native/modules/android/uni-verify.md +105 -0
  479. package/data/uni-app-x-docs/native/modules/android/uni-video.md +135 -0
  480. package/data/uni-app-x-docs/native/modules/harmony/facialVerify.md +47 -0
  481. package/data/uni-app-x-docs/native/modules/harmony/location.md +43 -0
  482. package/data/uni-app-x-docs/native/modules/harmony/map.md +64 -0
  483. package/data/uni-app-x-docs/native/modules/harmony/modules.md +23 -0
  484. package/data/uni-app-x-docs/native/modules/harmony/oauth.md +47 -0
  485. package/data/uni-app-x-docs/native/modules/harmony/pay.md +87 -0
  486. package/data/uni-app-x-docs/native/modules/harmony/push.md +74 -0
  487. package/data/uni-app-x-docs/native/modules/harmony/verify.md +45 -0
  488. package/data/uni-app-x-docs/native/modules/ios/modules.md +962 -0
  489. package/data/uni-app-x-docs/native/permission/android_permission_adapter.md +63 -0
  490. package/data/uni-app-x-docs/native/use/android.md +541 -0
  491. package/data/uni-app-x-docs/native/use/androidcomm.md +164 -0
  492. package/data/uni-app-x-docs/native/use/androiduts.md +398 -0
  493. package/data/uni-app-x-docs/native/use/harmony.md +105 -0
  494. package/data/uni-app-x-docs/native/use/harmonyapi.md +205 -0
  495. package/data/uni-app-x-docs/native/use/harmonyuts.md +62 -0
  496. package/data/uni-app-x-docs/native/use/ios.md +96 -0
  497. package/data/uni-app-x-docs/native/use/iosapi.md +290 -0
  498. package/data/uni-app-x-docs/native/use/iosuts.md +89 -0
  499. package/data/uni-app-x-docs/page.md +501 -0
  500. package/data/uni-app-x-docs/performance.md +181 -0
  501. package/data/uni-app-x-docs/plugin/NOTE.md +7 -0
  502. package/data/uni-app-x-docs/project.md +154 -0
  503. package/data/uni-app-x-docs/readme.md +401 -0
  504. package/data/uni-app-x-docs/release-note-alpha.md +2219 -0
  505. package/data/uni-app-x-docs/release.md +1961 -0
  506. package/data/uni-app-x-docs/sample.md +157 -0
  507. package/data/uni-app-x-docs/select.md +365 -0
  508. package/data/uni-app-x-docs/static/4050-hello-flatten-optimized-device1-r1.png +0 -0
  509. package/data/uni-app-x-docs/static/calendar.jpg +0 -0
  510. package/data/uni-app-x-docs/static/go-to-definition.png +0 -0
  511. package/data/uni-app-x-docs/static/hxconsolepageperformance.png +0 -0
  512. package/data/uni-app-x-docs/static/json2type.png +0 -0
  513. package/data/uni-app-x-docs/static/newproject.png +0 -0
  514. package/data/uni-app-x-docs/static/playground.jpg +0 -0
  515. package/data/uni-app-x-docs/static/project-icon.png +0 -0
  516. package/data/uni-app-x-docs/static/uaxding.png +0 -0
  517. package/data/uni-app-x-docs/static/view-API-type-info.png +0 -0
  518. package/data/uni-app-x-docs/tutorial/android-16kb.md +96 -0
  519. package/data/uni-app-x-docs/tutorial/android-memoryleak.md +553 -0
  520. package/data/uni-app-x-docs/tutorial/app-env.md +84 -0
  521. package/data/uni-app-x-docs/tutorial/app-market.md +58 -0
  522. package/data/uni-app-x-docs/tutorial/app-package.md +196 -0
  523. package/data/uni-app-x-docs/tutorial/app-playground.md +188 -0
  524. package/data/uni-app-x-docs/tutorial/bug_repair.md +40 -0
  525. package/data/uni-app-x-docs/tutorial/codegap.md +291 -0
  526. package/data/uni-app-x-docs/tutorial/compatibility.md +120 -0
  527. package/data/uni-app-x-docs/tutorial/compliance.md +833 -0
  528. package/data/uni-app-x-docs/tutorial/debug/devtools.md +137 -0
  529. package/data/uni-app-x-docs/tutorial/idref.md +126 -0
  530. package/data/uni-app-x-docs/tutorial/ls-plugin.md +186 -0
  531. package/data/uni-app-x-docs/tutorial/request.md +321 -0
  532. package/data/uni-app-x-docs/tutorial/rules_mcp.md +123 -0
  533. package/data/uni-app-x-docs/tutorial/stickynestlist.md +68 -0
  534. package/data/uni-app-x-docs/tutorial/store.md +162 -0
  535. package/data/uni-app-x-docs/uniapptox.md +145 -0
  536. package/data/uni-app-x-docs/uts/README.md +456 -0
  537. package/data/uni-app-x-docs/uts/_sidebar.md +57 -0
  538. package/data/uni-app-x-docs/uts/buildin-object-api/array.md +981 -0
  539. package/data/uni-app-x-docs/uts/buildin-object-api/arraybuffer.md +257 -0
  540. package/data/uni-app-x-docs/uts/buildin-object-api/console.md +208 -0
  541. package/data/uni-app-x-docs/uts/buildin-object-api/dataview.md +304 -0
  542. package/data/uni-app-x-docs/uts/buildin-object-api/date.md +707 -0
  543. package/data/uni-app-x-docs/uts/buildin-object-api/error.md +31 -0
  544. package/data/uni-app-x-docs/uts/buildin-object-api/float32array.md +485 -0
  545. package/data/uni-app-x-docs/uts/buildin-object-api/float64array.md +473 -0
  546. package/data/uni-app-x-docs/uts/buildin-object-api/global.md +222 -0
  547. package/data/uni-app-x-docs/uts/buildin-object-api/int16array.md +455 -0
  548. package/data/uni-app-x-docs/uts/buildin-object-api/int32array.md +483 -0
  549. package/data/uni-app-x-docs/uts/buildin-object-api/int8array.md +473 -0
  550. package/data/uni-app-x-docs/uts/buildin-object-api/json.md +236 -0
  551. package/data/uni-app-x-docs/uts/buildin-object-api/map.md +187 -0
  552. package/data/uni-app-x-docs/uts/buildin-object-api/math.md +502 -0
  553. package/data/uni-app-x-docs/uts/buildin-object-api/number.md +363 -0
  554. package/data/uni-app-x-docs/uts/buildin-object-api/promise.md +265 -0
  555. package/data/uni-app-x-docs/uts/buildin-object-api/regexp.md +263 -0
  556. package/data/uni-app-x-docs/uts/buildin-object-api/set.md +170 -0
  557. package/data/uni-app-x-docs/uts/buildin-object-api/string.md +723 -0
  558. package/data/uni-app-x-docs/uts/buildin-object-api/textdecoder.md +70 -0
  559. package/data/uni-app-x-docs/uts/buildin-object-api/textencoder.md +41 -0
  560. package/data/uni-app-x-docs/uts/buildin-object-api/timers.md +99 -0
  561. package/data/uni-app-x-docs/uts/buildin-object-api/uint16array.md +483 -0
  562. package/data/uni-app-x-docs/uts/buildin-object-api/uint32array.md +484 -0
  563. package/data/uni-app-x-docs/uts/buildin-object-api/uint8array.md +483 -0
  564. package/data/uni-app-x-docs/uts/buildin-object-api/uint8clampedarray.md +483 -0
  565. package/data/uni-app-x-docs/uts/buildin-object-api/utsjsonobject.md +361 -0
  566. package/data/uni-app-x-docs/uts/class.md +504 -0
  567. package/data/uni-app-x-docs/uts/compiler-known-issues.md +1242 -0
  568. package/data/uni-app-x-docs/uts/conditional.md +209 -0
  569. package/data/uni-app-x-docs/uts/data-type.md +2248 -0
  570. package/data/uni-app-x-docs/uts/enumerability.md +16 -0
  571. package/data/uni-app-x-docs/uts/enumerability_iterable.md +211 -0
  572. package/data/uni-app-x-docs/uts/exception.md +25 -0
  573. package/data/uni-app-x-docs/uts/function.md +359 -0
  574. package/data/uni-app-x-docs/uts/generics.md +251 -0
  575. package/data/uni-app-x-docs/uts/interface.md +37 -0
  576. package/data/uni-app-x-docs/uts/iterable.md +150 -0
  577. package/data/uni-app-x-docs/uts/keywords.md +436 -0
  578. package/data/uni-app-x-docs/uts/literal.md +252 -0
  579. package/data/uni-app-x-docs/uts/loops.md +240 -0
  580. package/data/uni-app-x-docs/uts/module.md +92 -0
  581. package/data/uni-app-x-docs/uts/object.md +156 -0
  582. package/data/uni-app-x-docs/uts/operator.md +304 -0
  583. package/data/uni-app-x-docs/uts/runtime-known-issues.md +99 -0
  584. package/data/uni-app-x-docs/uts/type-aliases.md +43 -0
  585. package/data/uni-app-x-docs/uts/type-compatibility.md +133 -0
  586. package/data/uni-app-x-docs/uts/uts-optimize.md +33 -0
  587. package/data/uni-app-x-docs/uts/uts_diff_ts.md +2292 -0
  588. package/data/uni-app-x-docs/uts/utsactivitycallback.md +1357 -0
  589. package/data/uni-app-x-docs/uts/utsandroid.md +850 -0
  590. package/data/uni-app-x-docs/uts/utsandroidhookproxy.md +17 -0
  591. package/data/uni-app-x-docs/uts/utsharmony.md +219 -0
  592. package/data/uni-app-x-docs/uts/utsios.md +305 -0
  593. package/data/uni-app-x-docs/uts/utsioshookproxy.md +148 -0
  594. package/data/uni-app-x-docs/vapor-benchmark.md +11 -0
  595. package/data/uni-app-x-docs/vue/README.md +553 -0
  596. package/data/uni-app-x-docs/vue/_sidebar.md +10 -0
  597. package/data/uni-app-x-docs/vue/advanced-api.md +138 -0
  598. package/data/uni-app-x-docs/vue/built-in.md +741 -0
  599. package/data/uni-app-x-docs/vue/component.md +704 -0
  600. package/data/uni-app-x-docs/vue/composition-api.md +792 -0
  601. package/data/uni-app-x-docs/vue/data-bind.md +163 -0
  602. package/data/uni-app-x-docs/vue/global-api.md +109 -0
  603. package/data/uni-app-x-docs/vue/modifier.md +202 -0
  604. package/data/uni-app-x-docs/vue/options-api.md +512 -0
  605. package/data/uni-app-x-docs/vue/others.md +20 -0
  606. package/data/uni-app-x-docs/web/README.md +279 -0
  607. package/data/uni-app-x-docs/web/ssr.md +290 -0
  608. package/data/uni-app-x-docs/worktile/NOTE.md +7 -0
  609. package/data/uniappx/404.md +2 -0
  610. package/data/uniappx/_sidebar.md +135 -0
  611. package/data/uniappx/adapt.md +165 -0
  612. package/data/uniappx/ai/NOTE.md +5 -0
  613. package/data/uniappx/api/README.md +98 -0
  614. package/data/uniappx/api/_sidebar.md +165 -0
  615. package/data/uniappx/api/accelerometer.md +322 -0
  616. package/data/uniappx/api/action-sheet.md +192 -0
  617. package/data/uniappx/api/animation-frame.md +125 -0
  618. package/data/uniappx/api/app-route.md +632 -0
  619. package/data/uniappx/api/authentication.md +267 -0
  620. package/data/uniappx/api/base64.md +127 -0
  621. package/data/uniappx/api/bio-auth.md +3 -0
  622. package/data/uniappx/api/calendar.md +400 -0
  623. package/data/uniappx/api/canvas-get-image-data.md +3 -0
  624. package/data/uniappx/api/canvas-put-image-data.md +3 -0
  625. package/data/uniappx/api/canvas-to-temp-file-path.md +62 -0
  626. package/data/uniappx/api/canvasrenderingcontext2d.md +128 -0
  627. package/data/uniappx/api/capture-screen.md +173 -0
  628. package/data/uniappx/api/capturescreen.md +3 -0
  629. package/data/uniappx/api/choose-file.md +174 -0
  630. package/data/uniappx/api/choose-image.md +312 -0
  631. package/data/uniappx/api/choose-location.md +412 -0
  632. package/data/uniappx/api/choose-media.md +272 -0
  633. package/data/uniappx/api/choose-video.md +165 -0
  634. package/data/uniappx/api/clipboard.md +155 -0
  635. package/data/uniappx/api/compass.md +351 -0
  636. package/data/uniappx/api/compress-image.md +147 -0
  637. package/data/uniappx/api/compress-video.md +136 -0
  638. package/data/uniappx/api/connect-event-source.md +225 -0
  639. package/data/uniappx/api/contact.md +153 -0
  640. package/data/uniappx/api/create-camera-context.md +346 -0
  641. package/data/uniappx/api/create-canvas-context-async.md +167 -0
  642. package/data/uniappx/api/create-editor-context-async.md +605 -0
  643. package/data/uniappx/api/create-inner-audio-context.md +704 -0
  644. package/data/uniappx/api/create-intersection-observer.md +195 -0
  645. package/data/uniappx/api/create-interstitial-ad.md +253 -0
  646. package/data/uniappx/api/create-live-player-context.md +185 -0
  647. package/data/uniappx/api/create-live-pusher-context.md +282 -0
  648. package/data/uniappx/api/create-map-context.md +677 -0
  649. package/data/uniappx/api/create-request-permission-listener.md +147 -0
  650. package/data/uniappx/api/create-rewarded-video-ad.md +302 -0
  651. package/data/uniappx/api/create-selector-query.md +609 -0
  652. package/data/uniappx/api/create-video-context.md +190 -0
  653. package/data/uniappx/api/create-webview-context.md +274 -0
  654. package/data/uniappx/api/create-worker.md +607 -0
  655. package/data/uniappx/api/dialog-page.md +377 -0
  656. package/data/uniappx/api/dom/README.md +319 -0
  657. package/data/uniappx/api/dom/cssstyledeclaration.md +341 -0
  658. package/data/uniappx/api/dom/domrect.md +30 -0
  659. package/data/uniappx/api/dom/drawablecontext.md +63 -0
  660. package/data/uniappx/api/dom/element.md +3 -0
  661. package/data/uniappx/api/dom/unicanvaselement.md +29 -0
  662. package/data/uniappx/api/dom/unielement.md +211 -0
  663. package/data/uniappx/api/dom/uniimageelement.md +23 -0
  664. package/data/uniappx/api/dom/uniinputelement.md +25 -0
  665. package/data/uniappx/api/dom/uninativeviewelement.md +18 -0
  666. package/data/uniappx/api/dom/uniresizeobserver.md +20 -0
  667. package/data/uniappx/api/dom/unitextareaelement.md +25 -0
  668. package/data/uniappx/api/dom/unitextelement.md +23 -0
  669. package/data/uniappx/api/dom/univideoelement.md +18 -0
  670. package/data/uniappx/api/dom/uniwebviewelement.md +18 -0
  671. package/data/uniappx/api/download-file.md +226 -0
  672. package/data/uniappx/api/env.md +101 -0
  673. package/data/uniappx/api/event-bus.md +184 -0
  674. package/data/uniappx/api/exit.md +134 -0
  675. package/data/uniappx/api/ext.md +61 -0
  676. package/data/uniappx/api/facial-recognition-meta-info.md +131 -0
  677. package/data/uniappx/api/facial-recognition-verify.md +3 -0
  678. package/data/uniappx/api/file-system-spec.md +223 -0
  679. package/data/uniappx/api/get-accessibility-info.md +113 -0
  680. package/data/uniappx/api/get-app-authorize-setting.md +276 -0
  681. package/data/uniappx/api/get-app-base-info.md +175 -0
  682. package/data/uniappx/api/get-app.md +175 -0
  683. package/data/uniappx/api/get-background-audio-manager.md +509 -0
  684. package/data/uniappx/api/get-battery-info.md +106 -0
  685. package/data/uniappx/api/get-current-pages.md +215 -0
  686. package/data/uniappx/api/get-device-info.md +188 -0
  687. package/data/uniappx/api/get-element-by-id.md +103 -0
  688. package/data/uniappx/api/get-element.md +3 -0
  689. package/data/uniappx/api/get-file-system-manager.md +2351 -0
  690. package/data/uniappx/api/get-image-info.md +143 -0
  691. package/data/uniappx/api/get-launch-options-sync.md +3 -0
  692. package/data/uniappx/api/get-location.md +362 -0
  693. package/data/uniappx/api/get-network-type.md +96 -0
  694. package/data/uniappx/api/get-performance.md +299 -0
  695. package/data/uniappx/api/get-provider.md +3 -0
  696. package/data/uniappx/api/get-recorder-manager.md +408 -0
  697. package/data/uniappx/api/get-system-info.md +527 -0
  698. package/data/uniappx/api/get-system-setting.md +133 -0
  699. package/data/uniappx/api/get-univerify-manager.md +549 -0
  700. package/data/uniappx/api/get-video-info.md +150 -0
  701. package/data/uniappx/api/get-window-info.md +163 -0
  702. package/data/uniappx/api/gyroscope.md +389 -0
  703. package/data/uniappx/api/image.md +40 -0
  704. package/data/uniappx/api/install-apk.md +93 -0
  705. package/data/uniappx/api/interceptor.md +84 -0
  706. package/data/uniappx/api/is-simulator.md +120 -0
  707. package/data/uniappx/api/keyboard.md +194 -0
  708. package/data/uniappx/api/launch.md +200 -0
  709. package/data/uniappx/api/load-font-face.md +206 -0
  710. package/data/uniappx/api/loading.md +186 -0
  711. package/data/uniappx/api/locale.md +74 -0
  712. package/data/uniappx/api/location-change.md +533 -0
  713. package/data/uniappx/api/make-phone-call.md +102 -0
  714. package/data/uniappx/api/memory.md +135 -0
  715. package/data/uniappx/api/modal.md +232 -0
  716. package/data/uniappx/api/navigator-bar-loading.md +122 -0
  717. package/data/uniappx/api/navigator.md +478 -0
  718. package/data/uniappx/api/network-status-change.md +145 -0
  719. package/data/uniappx/api/network-summarize.md +40 -0
  720. package/data/uniappx/api/nodes-info.md +3 -0
  721. package/data/uniappx/api/on-tab-bar-mid-button-tap.md +34 -0
  722. package/data/uniappx/api/open-app-authorize-setting.md +117 -0
  723. package/data/uniappx/api/open-document.md +122 -0
  724. package/data/uniappx/api/open-location.md +154 -0
  725. package/data/uniappx/api/page-scroll-to.md +170 -0
  726. package/data/uniappx/api/path2d.md +48 -0
  727. package/data/uniappx/api/preview-image.md +341 -0
  728. package/data/uniappx/api/privacy.md +232 -0
  729. package/data/uniappx/api/provider.md +329 -0
  730. package/data/uniappx/api/pull-down-refresh.md +154 -0
  731. package/data/uniappx/api/push.md +1 -0
  732. package/data/uniappx/api/report.md +150 -0
  733. package/data/uniappx/api/request-merchant-transfer.md +117 -0
  734. package/data/uniappx/api/request-payment.md +315 -0
  735. package/data/uniappx/api/request-system-permission.md +220 -0
  736. package/data/uniappx/api/request.md +517 -0
  737. package/data/uniappx/api/rpx2px.md +94 -0
  738. package/data/uniappx/api/save-image-to-photos-album.md +115 -0
  739. package/data/uniappx/api/save-video-to-photos-album.md +102 -0
  740. package/data/uniappx/api/scan-code.md +118 -0
  741. package/data/uniappx/api/screen-brightness.md +333 -0
  742. package/data/uniappx/api/set-navigation-bar-color.md +133 -0
  743. package/data/uniappx/api/set-navigation-bar-title.md +117 -0
  744. package/data/uniappx/api/set-tab-bar.md +651 -0
  745. package/data/uniappx/api/set-tabbar.md +3 -0
  746. package/data/uniappx/api/share-with-system.md +139 -0
  747. package/data/uniappx/api/share.md +325 -0
  748. package/data/uniappx/api/show-action-sheet.md +3 -0
  749. package/data/uniappx/api/show-loading.md +3 -0
  750. package/data/uniappx/api/show-modal.md +3 -0
  751. package/data/uniappx/api/show-toast.md +3 -0
  752. package/data/uniappx/api/sign-in.md +358 -0
  753. package/data/uniappx/api/storage.md +719 -0
  754. package/data/uniappx/api/theme-change.md +742 -0
  755. package/data/uniappx/api/theme.md +3 -0
  756. package/data/uniappx/api/toast.md +180 -0
  757. package/data/uniappx/api/uni-push.md +513 -0
  758. package/data/uniappx/api/unicloud/README.md +87 -0
  759. package/data/uniappx/api/unicloud/database.md +1028 -0
  760. package/data/uniappx/api/unicloud/function.md +83 -0
  761. package/data/uniappx/api/unicloud/object.md +138 -0
  762. package/data/uniappx/api/unicloud/sse-channel.md +92 -0
  763. package/data/uniappx/api/unicloud/storage.md +204 -0
  764. package/data/uniappx/api/unicloud/utils.md +153 -0
  765. package/data/uniappx/api/unipage.md +263 -0
  766. package/data/uniappx/api/upload-file.md +233 -0
  767. package/data/uniappx/api/vibrate.md +177 -0
  768. package/data/uniappx/api/virtual-payment.md +517 -0
  769. package/data/uniappx/api/websocket-global.md +3 -0
  770. package/data/uniappx/api/websocket.md +562 -0
  771. package/data/uniappx/api/wide-screen-adaptation.md +433 -0
  772. package/data/uniappx/api/wifi.md +508 -0
  773. package/data/uniappx/api/window.md +86 -0
  774. package/data/uniappx/app-harmony/README.md +74 -0
  775. package/data/uniappx/app-harmony/harmony-vapor.md +3 -0
  776. package/data/uniappx/app-vapor.md +583 -0
  777. package/data/uniappx/benchmark/vapor-benchmark-android.md +483 -0
  778. package/data/uniappx/benchmark/vapor-benchmark-harmony.md +309 -0
  779. package/data/uniappx/benchmark/vapor-benchmark-ios.md +373 -0
  780. package/data/uniappx/collocation/_sidebar.md +15 -0
  781. package/data/uniappx/collocation/app.md +370 -0
  782. package/data/uniappx/collocation/manifest-android.md +1289 -0
  783. package/data/uniappx/collocation/manifest-harmony.md +152 -0
  784. package/data/uniappx/collocation/manifest-ios.md +709 -0
  785. package/data/uniappx/collocation/manifest-modules.md +508 -0
  786. package/data/uniappx/collocation/manifest-splashscreen.md +227 -0
  787. package/data/uniappx/collocation/manifest.md +745 -0
  788. package/data/uniappx/collocation/pagesjson.md +790 -0
  789. package/data/uniappx/collocation/themejson.md +176 -0
  790. package/data/uniappx/compiler/README.md +121 -0
  791. package/data/uniappx/compiler/_sidebar.md +4 -0
  792. package/data/uniappx/component/README.md +206 -0
  793. package/data/uniappx/component/_sidebar.md +118 -0
  794. package/data/uniappx/component/ad-custom.md +29 -0
  795. package/data/uniappx/component/ad.md +124 -0
  796. package/data/uniappx/component/animation-view.md +51 -0
  797. package/data/uniappx/component/aria-component.md +21 -0
  798. package/data/uniappx/component/audio.md +4 -0
  799. package/data/uniappx/component/block.md +26 -0
  800. package/data/uniappx/component/button.md +298 -0
  801. package/data/uniappx/component/camera.md +303 -0
  802. package/data/uniappx/component/canvas.md +230 -0
  803. package/data/uniappx/component/channel-live.md +27 -0
  804. package/data/uniappx/component/channel-video.md +38 -0
  805. package/data/uniappx/component/checkbox-group.md +56 -0
  806. package/data/uniappx/component/checkbox.md +247 -0
  807. package/data/uniappx/component/common.md +637 -0
  808. package/data/uniappx/component/cover-image.md +42 -0
  809. package/data/uniappx/component/cover-view.md +93 -0
  810. package/data/uniappx/component/custom-tab-bar.md +36 -0
  811. package/data/uniappx/component/double-tap-gesture-handler.md +36 -0
  812. package/data/uniappx/component/draggable-sheet.md +31 -0
  813. package/data/uniappx/component/editor.md +329 -0
  814. package/data/uniappx/component/flow-item.md +3 -0
  815. package/data/uniappx/component/force-press-gesture-handler.md +36 -0
  816. package/data/uniappx/component/form.md +378 -0
  817. package/data/uniappx/component/functional-page-navigator.md +43 -0
  818. package/data/uniappx/component/glass-effect-view.md +217 -0
  819. package/data/uniappx/component/grid-builder.md +39 -0
  820. package/data/uniappx/component/grid-view.md +35 -0
  821. package/data/uniappx/component/horizontal-drag-gesture-handler.md +40 -0
  822. package/data/uniappx/component/icon.md +41 -0
  823. package/data/uniappx/component/image.md +264 -0
  824. package/data/uniappx/component/input.md +905 -0
  825. package/data/uniappx/component/keyboard-accessory.md +21 -0
  826. package/data/uniappx/component/label.md +134 -0
  827. package/data/uniappx/component/list-builder.md +36 -0
  828. package/data/uniappx/component/list-item.md +1 -0
  829. package/data/uniappx/component/list-view.md +508 -0
  830. package/data/uniappx/component/live-player.md +267 -0
  831. package/data/uniappx/component/live-pusher.md +343 -0
  832. package/data/uniappx/component/loading.md +309 -0
  833. package/data/uniappx/component/long-press-gesture-handler.md +40 -0
  834. package/data/uniappx/component/map.md +376 -0
  835. package/data/uniappx/component/match-media.md +132 -0
  836. package/data/uniappx/component/movable-area.md +37 -0
  837. package/data/uniappx/component/movable-view.md +157 -0
  838. package/data/uniappx/component/native-component.md +21 -0
  839. package/data/uniappx/component/native-view.md +342 -0
  840. package/data/uniappx/component/navigation-bar.md +44 -0
  841. package/data/uniappx/component/navigator.md +143 -0
  842. package/data/uniappx/component/nested-scroll-body.md +122 -0
  843. package/data/uniappx/component/nested-scroll-header.md +121 -0
  844. package/data/uniappx/component/nested-scroll.md +6 -0
  845. package/data/uniappx/component/official-account.md +21 -0
  846. package/data/uniappx/component/open-container.md +38 -0
  847. package/data/uniappx/component/page-container.md +386 -0
  848. package/data/uniappx/component/page-meta.md +79 -0
  849. package/data/uniappx/component/pan-gesture-handler.md +40 -0
  850. package/data/uniappx/component/picker-view-column.md +3 -0
  851. package/data/uniappx/component/picker-view.md +180 -0
  852. package/data/uniappx/component/picker.md +370 -0
  853. package/data/uniappx/component/progress.md +163 -0
  854. package/data/uniappx/component/radio-group.md +56 -0
  855. package/data/uniappx/component/radio.md +218 -0
  856. package/data/uniappx/component/rich-text.md +244 -0
  857. package/data/uniappx/component/root-portal.md +26 -0
  858. package/data/uniappx/component/scale-gesture-handler.md +45 -0
  859. package/data/uniappx/component/scroll-view.md +556 -0
  860. package/data/uniappx/component/share-element.md +221 -0
  861. package/data/uniappx/component/slider.md +232 -0
  862. package/data/uniappx/component/snapshot.md +30 -0
  863. package/data/uniappx/component/span.md +21 -0
  864. package/data/uniappx/component/sticky-header.md +138 -0
  865. package/data/uniappx/component/sticky-section.md +152 -0
  866. package/data/uniappx/component/sticky.md +6 -0
  867. package/data/uniappx/component/store-home.md +26 -0
  868. package/data/uniappx/component/store-product.md +28 -0
  869. package/data/uniappx/component/swiper-item.md +3 -0
  870. package/data/uniappx/component/swiper.md +380 -0
  871. package/data/uniappx/component/switch.md +189 -0
  872. package/data/uniappx/component/tap-gesture-handler.md +36 -0
  873. package/data/uniappx/component/text.md +384 -0
  874. package/data/uniappx/component/textarea.md +603 -0
  875. package/data/uniappx/component/uni-ui-x/README.md +165 -0
  876. package/data/uniappx/component/uni-ui-x/uni-badge-view.md +260 -0
  877. package/data/uniappx/component/uni-ui-x/uni-collapse-item.md +3 -0
  878. package/data/uniappx/component/uni-ui-x/uni-collapse.md +696 -0
  879. package/data/uniappx/component/uni-ui-x/uni-drag-cell.md +782 -0
  880. package/data/uniappx/component/uni-ui-x/uni-fab-button.md +137 -0
  881. package/data/uniappx/component/uni-ui-x/uni-index-bar.md +224 -0
  882. package/data/uniappx/component/uni-ui-x/uni-link.md +190 -0
  883. package/data/uniappx/component/uni-ui-x/uni-nav-bar.md +173 -0
  884. package/data/uniappx/component/uni-ui-x/uni-number-box.md +234 -0
  885. package/data/uniappx/component/uni-ui-x/uni-rate.md +151 -0
  886. package/data/uniappx/component/uni-ui-x/uni-refresh-box.md +250 -0
  887. package/data/uniappx/component/uni-ui-x/uni-tab-bar.md +3 -0
  888. package/data/uniappx/component/uni-ui-x/uni-tab-content.md +3 -0
  889. package/data/uniappx/component/uni-ui-x/uni-tab-item.md +3 -0
  890. package/data/uniappx/component/uni-ui-x/uni-tab-midbutton.md +3 -0
  891. package/data/uniappx/component/uni-ui-x/uni-tab.md +1161 -0
  892. package/data/uniappx/component/uni-ui-x/uni-time-format.md +213 -0
  893. package/data/uniappx/component/unicloud-db.md +270 -0
  894. package/data/uniappx/component/vertical-drag-gesture-handler.md +40 -0
  895. package/data/uniappx/component/video.md +627 -0
  896. package/data/uniappx/component/view.md +216 -0
  897. package/data/uniappx/component/voip-room.md +43 -0
  898. package/data/uniappx/component/waterflow.md +407 -0
  899. package/data/uniappx/component/web-view.md +460 -0
  900. package/data/uniappx/css/README.md +436 -0
  901. package/data/uniappx/css/_sidebar.md +104 -0
  902. package/data/uniappx/css/align-content.md +338 -0
  903. package/data/uniappx/css/align-items.md +276 -0
  904. package/data/uniappx/css/align-self.md +291 -0
  905. package/data/uniappx/css/animation-composition.md +33 -0
  906. package/data/uniappx/css/animation-delay.md +26 -0
  907. package/data/uniappx/css/animation-direction.md +34 -0
  908. package/data/uniappx/css/animation-duration.md +31 -0
  909. package/data/uniappx/css/animation-fill-mode.md +34 -0
  910. package/data/uniappx/css/animation-iteration-count.md +31 -0
  911. package/data/uniappx/css/animation-name.md +31 -0
  912. package/data/uniappx/css/animation-play-state.md +32 -0
  913. package/data/uniappx/css/animation-range-end.md +26 -0
  914. package/data/uniappx/css/animation-range-start.md +26 -0
  915. package/data/uniappx/css/animation-range.md +34 -0
  916. package/data/uniappx/css/animation-timeline.md +34 -0
  917. package/data/uniappx/css/animation-timing-function.md +45 -0
  918. package/data/uniappx/css/animation.md +36 -0
  919. package/data/uniappx/css/backdrop-filter.md +255 -0
  920. package/data/uniappx/css/background-clip.md +36 -0
  921. package/data/uniappx/css/background-color.md +353 -0
  922. package/data/uniappx/css/background-image.md +152 -0
  923. package/data/uniappx/css/background.md +35 -0
  924. package/data/uniappx/css/border-bottom-color.md +39 -0
  925. package/data/uniappx/css/border-bottom-left-radius.md +33 -0
  926. package/data/uniappx/css/border-bottom-right-radius.md +33 -0
  927. package/data/uniappx/css/border-bottom-style.md +37 -0
  928. package/data/uniappx/css/border-bottom-width.md +44 -0
  929. package/data/uniappx/css/border-bottom.md +201 -0
  930. package/data/uniappx/css/border-color.md +284 -0
  931. package/data/uniappx/css/border-left-color.md +34 -0
  932. package/data/uniappx/css/border-left-style.md +37 -0
  933. package/data/uniappx/css/border-left-width.md +44 -0
  934. package/data/uniappx/css/border-left.md +200 -0
  935. package/data/uniappx/css/border-radius.md +391 -0
  936. package/data/uniappx/css/border-right-color.md +34 -0
  937. package/data/uniappx/css/border-right-style.md +37 -0
  938. package/data/uniappx/css/border-right-width.md +44 -0
  939. package/data/uniappx/css/border-right.md +201 -0
  940. package/data/uniappx/css/border-style.md +271 -0
  941. package/data/uniappx/css/border-top-color.md +34 -0
  942. package/data/uniappx/css/border-top-left-radius.md +33 -0
  943. package/data/uniappx/css/border-top-right-radius.md +33 -0
  944. package/data/uniappx/css/border-top-style.md +37 -0
  945. package/data/uniappx/css/border-top-width.md +44 -0
  946. package/data/uniappx/css/border-top.md +201 -0
  947. package/data/uniappx/css/border-width.md +415 -0
  948. package/data/uniappx/css/border.md +302 -0
  949. package/data/uniappx/css/bottom.md +259 -0
  950. package/data/uniappx/css/box-shadow.md +879 -0
  951. package/data/uniappx/css/box-sizing.md +353 -0
  952. package/data/uniappx/css/color.md +158 -0
  953. package/data/uniappx/css/common/at-rules.md +244 -0
  954. package/data/uniappx/css/common/color.md +40 -0
  955. package/data/uniappx/css/common/function.md +661 -0
  956. package/data/uniappx/css/common/length.md +178 -0
  957. package/data/uniappx/css/common/selector.md +55 -0
  958. package/data/uniappx/css/common/style-isolation.md +215 -0
  959. package/data/uniappx/css/common/variable.md +1 -0
  960. package/data/uniappx/css/css_diff_web.md +802 -0
  961. package/data/uniappx/css/direction.md +146 -0
  962. package/data/uniappx/css/display.md +42 -0
  963. package/data/uniappx/css/flex-basis.md +306 -0
  964. package/data/uniappx/css/flex-direction.md +243 -0
  965. package/data/uniappx/css/flex-flow.md +283 -0
  966. package/data/uniappx/css/flex-grow.md +318 -0
  967. package/data/uniappx/css/flex-shrink.md +313 -0
  968. package/data/uniappx/css/flex-wrap.md +259 -0
  969. package/data/uniappx/css/flex.md +216 -0
  970. package/data/uniappx/css/font-family.md +187 -0
  971. package/data/uniappx/css/font-size.md +176 -0
  972. package/data/uniappx/css/font-style.md +139 -0
  973. package/data/uniappx/css/font-weight.md +167 -0
  974. package/data/uniappx/css/height.md +239 -0
  975. package/data/uniappx/css/justify-content.md +286 -0
  976. package/data/uniappx/css/left.md +260 -0
  977. package/data/uniappx/css/letter-spacing.md +149 -0
  978. package/data/uniappx/css/line-height.md +173 -0
  979. package/data/uniappx/css/lines.md +37 -0
  980. package/data/uniappx/css/margin-bottom.md +281 -0
  981. package/data/uniappx/css/margin-left.md +281 -0
  982. package/data/uniappx/css/margin-right.md +278 -0
  983. package/data/uniappx/css/margin-top.md +274 -0
  984. package/data/uniappx/css/margin.md +315 -0
  985. package/data/uniappx/css/max-height.md +242 -0
  986. package/data/uniappx/css/max-width.md +251 -0
  987. package/data/uniappx/css/min-height.md +252 -0
  988. package/data/uniappx/css/min-width.md +243 -0
  989. package/data/uniappx/css/opacity.md +248 -0
  990. package/data/uniappx/css/overflow.md +330 -0
  991. package/data/uniappx/css/padding-bottom.md +241 -0
  992. package/data/uniappx/css/padding-left.md +234 -0
  993. package/data/uniappx/css/padding-right.md +242 -0
  994. package/data/uniappx/css/padding-top.md +234 -0
  995. package/data/uniappx/css/padding.md +309 -0
  996. package/data/uniappx/css/pointer-events.md +155 -0
  997. package/data/uniappx/css/position.md +444 -0
  998. package/data/uniappx/css/right.md +260 -0
  999. package/data/uniappx/css/text-align.md +154 -0
  1000. package/data/uniappx/css/text-decoration-color.md +35 -0
  1001. package/data/uniappx/css/text-decoration-line.md +144 -0
  1002. package/data/uniappx/css/text-decoration-style.md +41 -0
  1003. package/data/uniappx/css/text-decoration-thickness.md +39 -0
  1004. package/data/uniappx/css/text-decoration.md +52 -0
  1005. package/data/uniappx/css/text-overflow.md +176 -0
  1006. package/data/uniappx/css/text-shadow.md +146 -0
  1007. package/data/uniappx/css/top.md +258 -0
  1008. package/data/uniappx/css/transform-origin.md +298 -0
  1009. package/data/uniappx/css/transform.md +50 -0
  1010. package/data/uniappx/css/transition-delay.md +253 -0
  1011. package/data/uniappx/css/transition-duration.md +275 -0
  1012. package/data/uniappx/css/transition-property.md +67 -0
  1013. package/data/uniappx/css/transition-timing-function.md +259 -0
  1014. package/data/uniappx/css/transition.md +527 -0
  1015. package/data/uniappx/css/visibility.md +198 -0
  1016. package/data/uniappx/css/white-space.md +162 -0
  1017. package/data/uniappx/css/width.md +300 -0
  1018. package/data/uniappx/css/z-index.md +411 -0
  1019. package/data/uniappx/debug/android-inspector.md +54 -0
  1020. package/data/uniappx/i18n.md +358 -0
  1021. package/data/uniappx/mp/README.md +159 -0
  1022. package/data/uniappx/native/README.md +65 -0
  1023. package/data/uniappx/native/debug/android.md +122 -0
  1024. package/data/uniappx/native/debug/harmony.md +116 -0
  1025. package/data/uniappx/native/debug/ios.md +84 -0
  1026. package/data/uniappx/native/download/android.md +45 -0
  1027. package/data/uniappx/native/download/ios.md +29 -0
  1028. package/data/uniappx/native/modules/android/others.md +1343 -0
  1029. package/data/uniappx/native/modules/android/uni-ad.md +99 -0
  1030. package/data/uniappx/native/modules/android/uni-facialRecognitionVerify.md +69 -0
  1031. package/data/uniappx/native/modules/android/uni-getLocation.md +121 -0
  1032. package/data/uniappx/native/modules/android/uni-map-tencent.md +92 -0
  1033. package/data/uniappx/native/modules/android/uni-oauth.md +57 -0
  1034. package/data/uniappx/native/modules/android/uni-payment.md +110 -0
  1035. package/data/uniappx/native/modules/android/uni-push.md +217 -0
  1036. package/data/uniappx/native/modules/android/uni-share.md +57 -0
  1037. package/data/uniappx/native/modules/android/uni-verify.md +101 -0
  1038. package/data/uniappx/native/modules/android/uni-video.md +125 -0
  1039. package/data/uniappx/native/modules/harmony/facialVerify.md +45 -0
  1040. package/data/uniappx/native/modules/harmony/location.md +43 -0
  1041. package/data/uniappx/native/modules/harmony/map.md +64 -0
  1042. package/data/uniappx/native/modules/harmony/modules.md +23 -0
  1043. package/data/uniappx/native/modules/harmony/oauth.md +47 -0
  1044. package/data/uniappx/native/modules/harmony/pay.md +85 -0
  1045. package/data/uniappx/native/modules/harmony/push.md +74 -0
  1046. package/data/uniappx/native/modules/harmony/verify.md +45 -0
  1047. package/data/uniappx/native/modules/ios/modules.md +943 -0
  1048. package/data/uniappx/native/permission/android_permission_adapter.md +62 -0
  1049. package/data/uniappx/native/use/android.md +521 -0
  1050. package/data/uniappx/native/use/androidcomm.md +104 -0
  1051. package/data/uniappx/native/use/androiduts.md +388 -0
  1052. package/data/uniappx/native/use/harmony.md +99 -0
  1053. package/data/uniappx/native/use/harmonyapi.md +190 -0
  1054. package/data/uniappx/native/use/harmonyuts.md +62 -0
  1055. package/data/uniappx/native/use/ios.md +90 -0
  1056. package/data/uniappx/native/use/iosapi.md +288 -0
  1057. package/data/uniappx/native/use/iosuts.md +87 -0
  1058. package/data/uniappx/page.md +486 -0
  1059. package/data/uniappx/performance.md +175 -0
  1060. package/data/uniappx/plugin/NOTE.md +5 -0
  1061. package/data/uniappx/project.md +149 -0
  1062. package/data/uniappx/readme.md +381 -0
  1063. package/data/uniappx/release-note-alpha.md +2219 -0
  1064. package/data/uniappx/release.md +1961 -0
  1065. package/data/uniappx/sample.md +157 -0
  1066. package/data/uniappx/select.md +3 -0
  1067. package/data/uniappx/tutorial/android-16kb.md +87 -0
  1068. package/data/uniappx/tutorial/android-memoryleak.md +542 -0
  1069. package/data/uniappx/tutorial/app-env.md +80 -0
  1070. package/data/uniappx/tutorial/app-market.md +51 -0
  1071. package/data/uniappx/tutorial/app-package.md +195 -0
  1072. package/data/uniappx/tutorial/app-playground.md +188 -0
  1073. package/data/uniappx/tutorial/bug_repair.md +40 -0
  1074. package/data/uniappx/tutorial/codegap.md +223 -0
  1075. package/data/uniappx/tutorial/compatibility.md +119 -0
  1076. package/data/uniappx/tutorial/compliance.md +671 -0
  1077. package/data/uniappx/tutorial/debug/devtools.md +134 -0
  1078. package/data/uniappx/tutorial/idref.md +121 -0
  1079. package/data/uniappx/tutorial/ls-plugin.md +181 -0
  1080. package/data/uniappx/tutorial/request.md +204 -0
  1081. package/data/uniappx/tutorial/rules_mcp.md +121 -0
  1082. package/data/uniappx/tutorial/stickynestlist.md +68 -0
  1083. package/data/uniappx/tutorial/store.md +130 -0
  1084. package/data/uniappx/uniapptox.md +145 -0
  1085. package/data/uniappx/uts/README.md +441 -0
  1086. package/data/uniappx/uts/_sidebar.md +55 -0
  1087. package/data/uniappx/uts/buildin-object-api/array.md +2265 -0
  1088. package/data/uniappx/uts/buildin-object-api/arraybuffer.md +480 -0
  1089. package/data/uniappx/uts/buildin-object-api/console.md +520 -0
  1090. package/data/uniappx/uts/buildin-object-api/dataview.md +853 -0
  1091. package/data/uniappx/uts/buildin-object-api/date.md +1534 -0
  1092. package/data/uniappx/uts/buildin-object-api/error.md +30 -0
  1093. package/data/uniappx/uts/buildin-object-api/float32array.md +581 -0
  1094. package/data/uniappx/uts/buildin-object-api/float64array.md +626 -0
  1095. package/data/uniappx/uts/buildin-object-api/global.md +600 -0
  1096. package/data/uniappx/uts/buildin-object-api/int16array.md +1069 -0
  1097. package/data/uniappx/uts/buildin-object-api/int32array.md +1137 -0
  1098. package/data/uniappx/uts/buildin-object-api/int8array.md +1166 -0
  1099. package/data/uniappx/uts/buildin-object-api/json.md +407 -0
  1100. package/data/uniappx/uts/buildin-object-api/map.md +479 -0
  1101. package/data/uniappx/uts/buildin-object-api/math.md +1525 -0
  1102. package/data/uniappx/uts/buildin-object-api/number.md +852 -0
  1103. package/data/uniappx/uts/buildin-object-api/promise.md +1444 -0
  1104. package/data/uniappx/uts/buildin-object-api/regexp.md +534 -0
  1105. package/data/uniappx/uts/buildin-object-api/set.md +317 -0
  1106. package/data/uniappx/uts/buildin-object-api/string.md +1604 -0
  1107. package/data/uniappx/uts/buildin-object-api/textdecoder.md +133 -0
  1108. package/data/uniappx/uts/buildin-object-api/textencoder.md +60 -0
  1109. package/data/uniappx/uts/buildin-object-api/timers.md +145 -0
  1110. package/data/uniappx/uts/buildin-object-api/uint16array.md +1154 -0
  1111. package/data/uniappx/uts/buildin-object-api/uint32array.md +1165 -0
  1112. package/data/uniappx/uts/buildin-object-api/uint8array.md +1146 -0
  1113. package/data/uniappx/uts/buildin-object-api/uint8clampedarray.md +1147 -0
  1114. package/data/uniappx/uts/buildin-object-api/utsjsonobject.md +1297 -0
  1115. package/data/uniappx/uts/class.md +462 -0
  1116. package/data/uniappx/uts/compiler-known-issues.md +865 -0
  1117. package/data/uniappx/uts/conditional.md +206 -0
  1118. package/data/uniappx/uts/data-type.md +2242 -0
  1119. package/data/uniappx/uts/enumerability.md +15 -0
  1120. package/data/uniappx/uts/enumerability_iterable.md +200 -0
  1121. package/data/uniappx/uts/exception.md +25 -0
  1122. package/data/uniappx/uts/function.md +358 -0
  1123. package/data/uniappx/uts/generics.md +246 -0
  1124. package/data/uniappx/uts/interface.md +35 -0
  1125. package/data/uniappx/uts/iterable.md +137 -0
  1126. package/data/uniappx/uts/keywords.md +393 -0
  1127. package/data/uniappx/uts/literal.md +216 -0
  1128. package/data/uniappx/uts/loops.md +236 -0
  1129. package/data/uniappx/uts/module.md +92 -0
  1130. package/data/uniappx/uts/object.md +155 -0
  1131. package/data/uniappx/uts/operator.md +295 -0
  1132. package/data/uniappx/uts/runtime-known-issues.md +94 -0
  1133. package/data/uniappx/uts/type-aliases.md +43 -0
  1134. package/data/uniappx/uts/type-compatibility.md +133 -0
  1135. package/data/uniappx/uts/uts-optimize.md +33 -0
  1136. package/data/uniappx/uts/uts_diff_ts.md +2443 -0
  1137. package/data/uniappx/uts/utsactivitycallback.md +3099 -0
  1138. package/data/uniappx/uts/utsandroid.md +1461 -0
  1139. package/data/uniappx/uts/utsandroidhookproxy.md +34 -0
  1140. package/data/uniappx/uts/utsharmony.md +348 -0
  1141. package/data/uniappx/uts/utsios.md +466 -0
  1142. package/data/uniappx/uts/utsioshookproxy.md +374 -0
  1143. package/data/uniappx/vapor-benchmark.md +9 -0
  1144. package/data/uniappx/vue/README.md +384 -0
  1145. package/data/uniappx/vue/_sidebar.md +10 -0
  1146. package/data/uniappx/vue/advanced-api.md +253 -0
  1147. package/data/uniappx/vue/built-in.md +2133 -0
  1148. package/data/uniappx/vue/component.md +1134 -0
  1149. package/data/uniappx/vue/composition-api.md +2169 -0
  1150. package/data/uniappx/vue/data-bind.md +463 -0
  1151. package/data/uniappx/vue/global-api.md +307 -0
  1152. package/data/uniappx/vue/modifier.md +249 -0
  1153. package/data/uniappx/vue/options-api.md +1489 -0
  1154. package/data/uniappx/vue/others.md +20 -0
  1155. package/data/uniappx/web/README.md +263 -0
  1156. package/data/uniappx/web/ssr.md +238 -0
  1157. package/data/uniappx/worktile/NOTE.md +5 -0
  1158. package/data/uniappx-doc-index.json +7664 -0
  1159. package/dist/main.mjs +67 -45
  1160. package/package.json +1 -1
@@ -0,0 +1,363 @@
1
+ (function(window, document, exportName, undefined) {
2
+ "use strict";
3
+
4
+ var isMultiTouch = false;
5
+ var multiTouchStartPos;
6
+ var eventTarget;
7
+ var touchElements = {};
8
+
9
+ // polyfills
10
+ if(!document.createTouch) {
11
+ document.createTouch = function(view, target, identifier, pageX, pageY, screenX, screenY, clientX, clientY) {
12
+ // auto set
13
+ if(clientX == undefined || clientY == undefined) {
14
+ clientX = pageX - window.pageXOffset;
15
+ clientY = pageY - window.pageYOffset;
16
+ }
17
+
18
+ return new Touch(target, identifier, {
19
+ pageX: pageX,
20
+ pageY: pageY,
21
+ screenX: screenX,
22
+ screenY: screenY,
23
+ clientX: clientX,
24
+ clientY: clientY
25
+ });
26
+ };
27
+ }
28
+
29
+ if(!document.createTouchList) {
30
+ document.createTouchList = function() {
31
+ var touchList = new TouchList();
32
+ for (var i = 0; i < arguments.length; i++) {
33
+ touchList[i] = arguments[i];
34
+ }
35
+ touchList.length = arguments.length;
36
+ return touchList;
37
+ };
38
+ }
39
+
40
+ /**
41
+ * create an touch point
42
+ * @constructor
43
+ * @param target
44
+ * @param identifier
45
+ * @param pos
46
+ * @param deltaX
47
+ * @param deltaY
48
+ * @returns {Object} touchPoint
49
+ */
50
+ function Touch(target, identifier, pos, deltaX, deltaY) {
51
+ deltaX = deltaX || 0;
52
+ deltaY = deltaY || 0;
53
+
54
+ this.identifier = identifier;
55
+ this.target = target;
56
+ this.clientX = pos.clientX + deltaX;
57
+ this.clientY = pos.clientY + deltaY;
58
+ this.screenX = pos.screenX + deltaX;
59
+ this.screenY = pos.screenY + deltaY;
60
+ this.pageX = pos.pageX + deltaX;
61
+ this.pageY = pos.pageY + deltaY;
62
+ }
63
+
64
+ /**
65
+ * create empty touchlist with the methods
66
+ * @constructor
67
+ * @returns touchList
68
+ */
69
+ function TouchList() {
70
+ var touchList = [];
71
+
72
+ touchList.item = function(index) {
73
+ return this[index] || null;
74
+ };
75
+
76
+ // specified by Mozilla
77
+ touchList.identifiedTouch = function(id) {
78
+ return this[id + 1] || null;
79
+ };
80
+
81
+ return touchList;
82
+ }
83
+
84
+
85
+ /**
86
+ * Simple trick to fake touch event support
87
+ * this is enough for most libraries like Modernizr and Hammer
88
+ */
89
+ function fakeTouchSupport() {
90
+ var objs = [window, document.documentElement];
91
+ var props = ['ontouchstart', 'ontouchmove', 'ontouchcancel', 'ontouchend'];
92
+
93
+ for(var o=0; o<objs.length; o++) {
94
+ for(var p=0; p<props.length; p++) {
95
+ if(objs[o] && objs[o][props[p]] == undefined) {
96
+ objs[o][props[p]] = null;
97
+ }
98
+ }
99
+ }
100
+ }
101
+
102
+ /**
103
+ * we don't have to emulate on a touch device
104
+ * @returns {boolean}
105
+ */
106
+ function hasTouchSupport() {
107
+ return ("ontouchstart" in window) || // touch events
108
+ (window.Modernizr && window.Modernizr.touch) || // modernizr
109
+ (navigator.msMaxTouchPoints || navigator.maxTouchPoints) > 2; // pointer events
110
+ }
111
+
112
+ /**
113
+ * disable mouseevents on the page
114
+ * @param ev
115
+ */
116
+ function preventMouseEvents(ev) {
117
+ //注释以启用鼠标事件
118
+ //ev.preventDefault();
119
+ //ev.stopPropagation();
120
+ }
121
+
122
+ /**
123
+ * only trigger touches when the left mousebutton has been pressed
124
+ * @param touchType
125
+ * @returns {Function}
126
+ */
127
+ function onMouse(touchType) {
128
+ return function(ev) {
129
+ // prevent mouse events
130
+ preventMouseEvents(ev);
131
+
132
+ if (ev.which !== 1) {
133
+ return;
134
+ }
135
+
136
+ // The EventTarget on which the touch point started when it was first placed on the surface,
137
+ // even if the touch point has since moved outside the interactive area of that element.
138
+ // also, when the target doesnt exist anymore, we update it
139
+ if (ev.type == 'mousedown' || !eventTarget || (eventTarget && !eventTarget.dispatchEvent)) {
140
+ eventTarget = ev.target;
141
+ }
142
+
143
+ // shiftKey has been lost, so trigger a touchend
144
+ if (isMultiTouch && !ev.shiftKey) {
145
+ triggerTouch('touchend', ev);
146
+ isMultiTouch = false;
147
+ }
148
+
149
+ triggerTouch(touchType, ev);
150
+
151
+ // we're entering the multi-touch mode!
152
+ if (!isMultiTouch && ev.shiftKey) {
153
+ isMultiTouch = true;
154
+ multiTouchStartPos = {
155
+ pageX: ev.pageX,
156
+ pageY: ev.pageY,
157
+ clientX: ev.clientX,
158
+ clientY: ev.clientY,
159
+ screenX: ev.screenX,
160
+ screenY: ev.screenY
161
+ };
162
+ triggerTouch('touchstart', ev);
163
+ }
164
+
165
+ // reset
166
+ if (ev.type == 'mouseup') {
167
+ multiTouchStartPos = null;
168
+ isMultiTouch = false;
169
+ eventTarget = null;
170
+ }
171
+ }
172
+ }
173
+
174
+ /**
175
+ * trigger a touch event
176
+ * @param eventName
177
+ * @param mouseEv
178
+ */
179
+ function triggerTouch(eventName, mouseEv) {
180
+ var touchEvent = document.createEvent('Event');
181
+ touchEvent.initEvent(eventName, true, true);
182
+
183
+ touchEvent.altKey = mouseEv.altKey;
184
+ touchEvent.ctrlKey = mouseEv.ctrlKey;
185
+ touchEvent.metaKey = mouseEv.metaKey;
186
+ touchEvent.shiftKey = mouseEv.shiftKey;
187
+
188
+ touchEvent.touches = getActiveTouches(mouseEv, eventName);
189
+ touchEvent.targetTouches = getActiveTouches(mouseEv, eventName);
190
+ touchEvent.changedTouches = getChangedTouches(mouseEv, eventName);
191
+
192
+ eventTarget.dispatchEvent(touchEvent);
193
+ }
194
+
195
+ /**
196
+ * create a touchList based on the mouse event
197
+ * @param mouseEv
198
+ * @returns {TouchList}
199
+ */
200
+ function createTouchList(mouseEv) {
201
+ var touchList = new TouchList();
202
+
203
+ if (isMultiTouch) {
204
+ var f = TouchEmulator.multiTouchOffset;
205
+ var deltaX = multiTouchStartPos.pageX - mouseEv.pageX;
206
+ var deltaY = multiTouchStartPos.pageY - mouseEv.pageY;
207
+
208
+ touchList.push(new Touch(eventTarget, 1, multiTouchStartPos, (deltaX*-1) - f, (deltaY*-1) + f));
209
+ touchList.push(new Touch(eventTarget, 2, multiTouchStartPos, deltaX+f, deltaY-f));
210
+ } else {
211
+ touchList.push(new Touch(eventTarget, 1, mouseEv, 0, 0));
212
+ }
213
+
214
+ return touchList;
215
+ }
216
+
217
+ /**
218
+ * receive all active touches
219
+ * @param mouseEv
220
+ * @returns {TouchList}
221
+ */
222
+ function getActiveTouches(mouseEv, eventName) {
223
+ // empty list
224
+ if (mouseEv.type == 'mouseup') {
225
+ return new TouchList();
226
+ }
227
+
228
+ var touchList = createTouchList(mouseEv);
229
+ if(isMultiTouch && mouseEv.type != 'mouseup' && eventName == 'touchend') {
230
+ touchList.splice(1, 1);
231
+ }
232
+ return touchList;
233
+ }
234
+
235
+ /**
236
+ * receive a filtered set of touches with only the changed pointers
237
+ * @param mouseEv
238
+ * @param eventName
239
+ * @returns {TouchList}
240
+ */
241
+ function getChangedTouches(mouseEv, eventName) {
242
+ var touchList = createTouchList(mouseEv);
243
+
244
+ // we only want to return the added/removed item on multitouch
245
+ // which is the second pointer, so remove the first pointer from the touchList
246
+ //
247
+ // but when the mouseEv.type is mouseup, we want to send all touches because then
248
+ // no new input will be possible
249
+ if(isMultiTouch && mouseEv.type != 'mouseup' &&
250
+ (eventName == 'touchstart' || eventName == 'touchend')) {
251
+ touchList.splice(0, 1);
252
+ }
253
+
254
+ return touchList;
255
+ }
256
+
257
+ /**
258
+ * show the touchpoints on the screen
259
+ */
260
+ function showTouches(ev) {
261
+ var touch, i, el, styles;
262
+
263
+ // first all visible touches
264
+ for(i = 0; i < ev.touches.length; i++) {
265
+ touch = ev.touches[i];
266
+ el = touchElements[touch.identifier];
267
+ if(!el) {
268
+ el = touchElements[touch.identifier] = document.createElement("div");
269
+ document.body.appendChild(el);
270
+ }
271
+
272
+ styles = TouchEmulator.template(touch);
273
+ for(var prop in styles) {
274
+ el.style[prop] = styles[prop];
275
+ }
276
+ }
277
+
278
+ // remove all ended touches
279
+ if(ev.type == 'touchend' || ev.type == 'touchcancel') {
280
+ for(i = 0; i < ev.changedTouches.length; i++) {
281
+ touch = ev.changedTouches[i];
282
+ el = touchElements[touch.identifier];
283
+ if(el) {
284
+ el.parentNode.removeChild(el);
285
+ delete touchElements[touch.identifier];
286
+ }
287
+ }
288
+ }
289
+ }
290
+
291
+ /**
292
+ * TouchEmulator initializer
293
+ */
294
+ function TouchEmulator() {
295
+ if (hasTouchSupport()) {
296
+ return;
297
+ }
298
+
299
+ fakeTouchSupport();
300
+
301
+ window.addEventListener("mousedown", onMouse('touchstart'), true);
302
+ window.addEventListener("mousemove", onMouse('touchmove'), true);
303
+ window.addEventListener("mouseup", onMouse('touchend'), true);
304
+
305
+ window.addEventListener("mouseenter", preventMouseEvents, true);
306
+ window.addEventListener("mouseleave", preventMouseEvents, true);
307
+ window.addEventListener("mouseout", preventMouseEvents, true);
308
+ window.addEventListener("mouseover", preventMouseEvents, true);
309
+
310
+ // it uses itself!
311
+ window.addEventListener("touchstart", showTouches, true);
312
+ window.addEventListener("touchmove", showTouches, true);
313
+ window.addEventListener("touchend", showTouches, true);
314
+ window.addEventListener("touchcancel", showTouches, true);
315
+ }
316
+
317
+ // start distance when entering the multitouch mode
318
+ TouchEmulator.multiTouchOffset = 75;
319
+
320
+ /**
321
+ * css template for the touch rendering
322
+ * @param touch
323
+ * @returns object
324
+ */
325
+ TouchEmulator.template = function(touch) {
326
+ var size = 30;
327
+ var transform = 'translate('+ (touch.clientX-(size/2)) +'px, '+ (touch.clientY-(size/2)) +'px)';
328
+ return {
329
+ position: 'fixed',
330
+ left: 0,
331
+ top: 0,
332
+ background: '#fff',
333
+ border: 'solid 1px #999',
334
+ opacity: .6,
335
+ borderRadius: '100%',
336
+ height: size + 'px',
337
+ width: size + 'px',
338
+ padding: 0,
339
+ margin: 0,
340
+ display: 'block',
341
+ overflow: 'hidden',
342
+ pointerEvents: 'none',
343
+ webkitUserSelect: 'none',
344
+ mozUserSelect: 'none',
345
+ userSelect: 'none',
346
+ webkitTransform: transform,
347
+ mozTransform: transform,
348
+ transform: transform,
349
+ zIndex: 100
350
+ }
351
+ };
352
+
353
+ // export
354
+ if (typeof define == "function" && define.amd) {
355
+ define(function() {
356
+ return TouchEmulator;
357
+ });
358
+ } else if (typeof module != "undefined" && module.exports) {
359
+ module.exports = TouchEmulator;
360
+ } else {
361
+ window[exportName] = TouchEmulator;
362
+ }
363
+ })(window, document, "TouchEmulator");
@@ -0,0 +1,10 @@
1
+ mikuDelivery.initProxy('/miku-delivery-sw-1.2.1.js', {
2
+ /** appID 和 appSalt 由七牛配置提供*/
3
+ app: {
4
+ appID: 'r5v5l8yhuips0xwv',
5
+ appSalt: 'ejhqsncr0hrwcadkfrsh07n3p6wxt9q3'
6
+ },
7
+ /** 需要被代理的域名列表,域名需要提前在七牛创建完成,由七牛配置 ecdn 功能 */
8
+ domains: ['qiniu-web-assets.dcloud.net.cn'],
9
+ // debug: true
10
+ })
@@ -0,0 +1,7 @@
1
+ var mikuDelivery=function(k){"use strict";var ni=Object.defineProperty,ri=Object.defineProperties;var si=Object.getOwnPropertyDescriptors;var He=Object.getOwnPropertySymbols;var Mn=Object.prototype.hasOwnProperty,In=Object.prototype.propertyIsEnumerable;var Dt=(k,I,P)=>I in k?ni(k,I,{enumerable:!0,configurable:!0,writable:!0,value:P}):k[I]=P,C=(k,I)=>{for(var P in I||(I={}))Mn.call(I,P)&&Dt(k,P,I[P]);if(He)for(var P of He(I))In.call(I,P)&&Dt(k,P,I[P]);return k},W=(k,I)=>ri(k,si(I));var kt=(k,I)=>{var P={};for(var q in k)Mn.call(k,q)&&I.indexOf(q)<0&&(P[q]=k[q]);if(k!=null&&He)for(var q of He(k))I.indexOf(q)<0&&In.call(k,q)&&(P[q]=k[q]);return P};var R=(k,I,P)=>(Dt(k,typeof I!="symbol"?I+"":I,P),P);var b=(k,I,P)=>new Promise((q,ae)=>{var Ue=Z=>{try{pe(P.next(Z))}catch(me){ae(me)}},qe=Z=>{try{pe(P.throw(Z))}catch(me){ae(me)}},pe=Z=>Z.done?q(Z.value):Promise.resolve(Z.value).then(Ue,qe);pe((P=P.apply(k,I)).next())});function I(r){const e=[],t=r.length;for(let n=0;n<t;n++){let s=r.charCodeAt(n);if(s>=55296&&s<=56319&&t>n+1){const i=r.charCodeAt(n+1);i>=56320&&i<=57343&&(s=(s-55296)*1024+i-56320+65536,n+=1)}if(s<128){e.push(s);continue}if(s<2048){e.push(s>>6|192),e.push(s&63|128);continue}if(s<55296||s>=57344&&s<65536){e.push(s>>12|224),e.push(s>>6&63|128),e.push(s&63|128);continue}if(s>=65536&&s<=1114111){e.push(s>>18|240),e.push(s>>12&63|128),e.push(s>>6&63|128),e.push(s&63|128);continue}e.push(239,191,189)}return new Uint8Array(e).buffer}function P(r){return r^=r>>>16,r=Math.imul(r,2246822507),r^=r>>>13,r=Math.imul(r,3266489909),r^=r>>>16,r>>>0}const q=new Uint32Array([3432918353,461845907]);function ae(r,e){return r<<e|r>>>32-e}function Ue(r,e){const t=r.byteLength/4|0,n=new Uint32Array(r,0,t);for(let s=0;s<t;s++)n[s]=Math.imul(n[s],q[0]),n[s]=ae(n[s],15),n[s]=Math.imul(n[s],q[1]),e[0]=e[0]^n[s],e[0]=ae(e[0],13),e[0]=Math.imul(e[0],5)+3864292196}function qe(r,e){const t=r.byteLength/4|0,n=r.byteLength%4;let s=0;const i=new Uint8Array(r,t*4,n);switch(n){case 3:s=s^i[2]<<16;case 2:s=s^i[1]<<8;case 1:s=s^i[0]<<0,s=Math.imul(s,q[0]),s=ae(s,15),s=Math.imul(s,q[1]),e[0]=e[0]^s}}function pe(r,e){e[0]=e[0]^r.byteLength,e[0]=P(e[0])}function Z(r,e){if(e=e?e|0:0,typeof r=="string"&&(r=I(r)),!(r instanceof ArrayBuffer))throw new TypeError("Expected key to be ArrayBuffer or string");const t=new Uint32Array([e]);return Ue(r,t),qe(r,t),pe(r,t),t.buffer}class me{constructor(e=On){R(this,"circle",new Map);R(this,"members",new Set);R(this,"membersReplicas",new Map);R(this,"sortedHashes",[]);this.hasher=e}updateSortedHashes(){this.sortedHashes=[...this.circle.keys()].sort((e,t)=>e-t)}_add({key:e,replicas:t}){for(let n=0;n<t;n++){const s=this.hasher(Lt(e,n));this.circle.set(s,e)}this.members.add(e),this.membersReplicas.set(e,t)}_remove({key:e,replicas:t}){for(let n=0;n<t;n++){const s=this.hasher(Lt(e,n));this.circle.delete(s)}this.members.delete(e),this.membersReplicas.delete(e)}search(e){const t=this.sortedHashes.findIndex(n=>n>e);return t<0?0:t}get(e){if(this.members.size===0)return null;const t=this.hasher(e),n=this.search(t),s=this.sortedHashes[n];return this.circle.get(s)}getN(e,t,n){const s=n?n.size:this.members.size;if(s===0||t===0)return[];t>s&&(t=s);const i=this.hasher(e),o=this.search(i),a=[];for(let c=o;;c++){c>=this.sortedHashes.length&&(c=0);const h=this.sortedHashes[c],u=this.circle.get(h);if(!a.includes(u)&&(!n||n.has(u))&&(a.push(u),a.length>=t))return a}}add(e,t){return this.members.has(e)?!1:(this._add({key:e,replicas:t}),this.updateSortedHashes(),!0)}remove(e){if(!this.members.has(e))return!1;const t=this.membersReplicas.get(e);return this._remove({key:e,replicas:t}),this.updateSortedHashes(),!0}set(e){this.circle.clear(),this.members.clear(),this.membersReplicas.clear(),e.forEach(t=>{this._add(t)}),this.updateSortedHashes()}}function Lt(r,e){return e+r}const On=Nn;function Nn(r){const e=Z(r);return new Uint32Array(e)[0]}class J{constructor(e){R(this,"value");this.value=e!=null?C({},e.value):{}}set(e,t){this.value[e]=t}get(e){return this.value[e]}}let Bt=!1;function Q(r){return(...e)=>{Bt&&console.debug(`[${r}] [${(Date.now()/1e3).toFixed(3)}]`,...e)}}function Pt(){Bt=!0}function te(r){return(...e)=>{console.warn(`[${r}] [${(Date.now()/1e3).toFixed(3)}]`,...e)}}const $e="https://api.qiniudns.com/v1/resolve",zn="https://api.qiniudns.com",We="https://pili-zeus.qiniuapi.com/v1/scheduling";function Hn(r){r[0]==="?"&&(r=r.slice(1));const e={};return r.split("&").forEach(t=>{const[n,s]=t.split("=");e[decodeURIComponent(n)]=s==null?null:decodeURIComponent(s)}),e}function Fe(r){return Object.keys(r).map(e=>[e,r[e]]).filter(([e,t])=>t!==void 0).map(([e,t])=>t===null?encodeURIComponent(e):[e,t].map(encodeURIComponent).join("=")).join("&")}function Mt(r,e){const t=new URLSearchParams(e).toString(),n=r.includes("?")?"&":"?";return r+n+t}function je(){const r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",e=r.length;let t="";for(let n=0;n<20;n++)t+=r[Math.floor(Math.random()*e)];return t}function Un(r,e){const t={};return Object.keys(r).forEach(n=>{t[n]=e(r[n])}),t}function qn(r){return new Promise(e=>setTimeout(e,r))}class It extends Error{constructor(){super(...arguments);R(this,"name","TimeoutError")}}function Ot(r,e){return new Promise((t,n)=>{setTimeout(()=>n(new It(e+" timeout")),r)})}function $n(r,e){e.aborted?r.abort(e.reason):e.addEventListener("abort",()=>{r.abort(e.reason)})}const Ke={image:[/\.(jpe?g|png|gif|webp|svg|bmp|ico|tiff|avif|svga)$/],media:[/\.(3gp|aac|flac|mpe?g|mp3|mp4|m4a|m4v|m4p|oga|ogg|ogv|wav|webm|mov)$/],live:[/\.(flv|m3u8|ts|m4s)$/],other:[]};function Nt(r,e,t=["image","media","other"]){r.search="",r.hash="";const n=r.toString();return t.some(s=>{var i;return((i=e[s])!=null?i:[]).some(o=>o.test(n))})}function _e(r){const e=new URL(r);return e.search="",e.hash="",e.toString()}function le(r){return r instanceof Error?{err_msg:r.name,err_desc:r.message}:{err_msg:"Unknown",err_desc:r+""}}function N(r,e){return r==null||r===-1||e==null||e===-1?-1:(r-e)/1e3}function Wn(r,e=80){const[t,n]=r.split(":"),s=n?parseInt(n,10):e;return[t,s]}function zt(r){const e=r.split("/"),t=e[e.length-1],n=t.lastIndexOf(".");return n>=0?t.slice(n+1):""}function Fn(r,e){return new URL(r,e).toString()}function Te(r){const[e]=r.split("?");return e.endsWith(".m3u8")}function Ht(r){const[e]=r.split("?");return e.endsWith(".flv")}var ee=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function jn(r){var e=r.default;if(typeof e=="function"){var t=function(){return e.apply(this,arguments)};t.prototype=e.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(r).forEach(function(n){var s=Object.getOwnPropertyDescriptor(r,n);Object.defineProperty(t,n,s.get?s:{enumerable:!0,get:function(){return r[n]}})}),t}var Ut={exports:{}};function Kn(r){throw new Error('Could not dynamically require "'+r+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Ve={exports:{}};const Vn=jn(Object.freeze(Object.defineProperty({__proto__:null,default:{}},Symbol.toStringTag,{value:"Module"})));var qt;function Ae(){return qt||(qt=1,function(r,e){(function(t,n){r.exports=n()})(ee,function(){var t=t||function(n,s){var i;if(typeof window!="undefined"&&window.crypto&&(i=window.crypto),typeof self!="undefined"&&self.crypto&&(i=self.crypto),typeof globalThis!="undefined"&&globalThis.crypto&&(i=globalThis.crypto),!i&&typeof window!="undefined"&&window.msCrypto&&(i=window.msCrypto),!i&&typeof ee!="undefined"&&ee.crypto&&(i=ee.crypto),!i&&typeof Kn=="function")try{i=Vn}catch(p){}var o=function(){if(i){if(typeof i.getRandomValues=="function")try{return i.getRandomValues(new Uint32Array(1))[0]}catch(p){}if(typeof i.randomBytes=="function")try{return i.randomBytes(4).readInt32LE()}catch(p){}}throw new Error("Native crypto module could not be used to get secure random number.")},a=Object.create||function(){function p(){}return function(v){var y;return p.prototype=v,y=new p,p.prototype=null,y}}(),c={},h=c.lib={},u=h.Base=function(){return{extend:function(p){var v=a(this);return p&&v.mixIn(p),(!v.hasOwnProperty("init")||this.init===v.init)&&(v.init=function(){v.$super.init.apply(this,arguments)}),v.init.prototype=v,v.$super=this,v},create:function(){var p=this.extend();return p.init.apply(p,arguments),p},init:function(){},mixIn:function(p){for(var v in p)p.hasOwnProperty(v)&&(this[v]=p[v]);p.hasOwnProperty("toString")&&(this.toString=p.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),m=h.WordArray=u.extend({init:function(p,v){p=this.words=p||[],v!=s?this.sigBytes=v:this.sigBytes=p.length*4},toString:function(p){return(p||f).stringify(this)},concat:function(p){var v=this.words,y=p.words,S=this.sigBytes,A=p.sigBytes;if(this.clamp(),S%4)for(var M=0;M<A;M++){var X=y[M>>>2]>>>24-M%4*8&255;v[S+M>>>2]|=X<<24-(S+M)%4*8}else for(var U=0;U<A;U+=4)v[S+U>>>2]=y[U>>>2];return this.sigBytes+=A,this},clamp:function(){var p=this.words,v=this.sigBytes;p[v>>>2]&=4294967295<<32-v%4*8,p.length=n.ceil(v/4)},clone:function(){var p=u.clone.call(this);return p.words=this.words.slice(0),p},random:function(p){for(var v=[],y=0;y<p;y+=4)v.push(o());return new m.init(v,p)}}),l=c.enc={},f=l.Hex={stringify:function(p){for(var v=p.words,y=p.sigBytes,S=[],A=0;A<y;A++){var M=v[A>>>2]>>>24-A%4*8&255;S.push((M>>>4).toString(16)),S.push((M&15).toString(16))}return S.join("")},parse:function(p){for(var v=p.length,y=[],S=0;S<v;S+=2)y[S>>>3]|=parseInt(p.substr(S,2),16)<<24-S%8*4;return new m.init(y,v/2)}},d=l.Latin1={stringify:function(p){for(var v=p.words,y=p.sigBytes,S=[],A=0;A<y;A++){var M=v[A>>>2]>>>24-A%4*8&255;S.push(String.fromCharCode(M))}return S.join("")},parse:function(p){for(var v=p.length,y=[],S=0;S<v;S++)y[S>>>2]|=(p.charCodeAt(S)&255)<<24-S%4*8;return new m.init(y,v)}},w=l.Utf8={stringify:function(p){try{return decodeURIComponent(escape(d.stringify(p)))}catch(v){throw new Error("Malformed UTF-8 data")}},parse:function(p){return d.parse(unescape(encodeURIComponent(p)))}},g=h.BufferedBlockAlgorithm=u.extend({reset:function(){this._data=new m.init,this._nDataBytes=0},_append:function(p){typeof p=="string"&&(p=w.parse(p)),this._data.concat(p),this._nDataBytes+=p.sigBytes},_process:function(p){var v,y=this._data,S=y.words,A=y.sigBytes,M=this.blockSize,X=M*4,U=A/X;p?U=n.ceil(U):U=n.max((U|0)-this._minBufferSize,0);var K=U*M,V=n.min(K*4,A);if(K){for(var z=0;z<K;z+=M)this._doProcessBlock(S,z);v=S.splice(0,K),y.sigBytes-=V}return new m.init(v,V)},clone:function(){var p=u.clone.call(this);return p._data=this._data.clone(),p},_minBufferSize:0});h.Hasher=g.extend({cfg:u.extend(),init:function(p){this.cfg=this.cfg.extend(p),this.reset()},reset:function(){g.reset.call(this),this._doReset()},update:function(p){return this._append(p),this._process(),this},finalize:function(p){p&&this._append(p);var v=this._doFinalize();return v},blockSize:16,_createHelper:function(p){return function(v,y){return new p.init(y).finalize(v)}},_createHmacHelper:function(p){return function(v,y){return new T.HMAC.init(p,y).finalize(v)}}});var T=c.algo={};return c}(Math);return t})}(Ve)),Ve.exports}var Ge={exports:{}},$t;function Gn(){return $t||($t=1,function(r,e){(function(t,n){r.exports=n(Ae())})(ee,function(t){return function(){var n=t,s=n.lib,i=s.WordArray,o=s.Hasher,a=n.algo,c=[],h=a.SHA1=o.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(u,m){for(var l=this._hash.words,f=l[0],d=l[1],w=l[2],g=l[3],T=l[4],p=0;p<80;p++){if(p<16)c[p]=u[m+p]|0;else{var v=c[p-3]^c[p-8]^c[p-14]^c[p-16];c[p]=v<<1|v>>>31}var y=(f<<5|f>>>27)+T+c[p];p<20?y+=(d&w|~d&g)+1518500249:p<40?y+=(d^w^g)+1859775393:p<60?y+=(d&w|d&g|w&g)-1894007588:y+=(d^w^g)-899497514,T=g,g=w,w=d<<30|d>>>2,d=f,f=y}l[0]=l[0]+f|0,l[1]=l[1]+d|0,l[2]=l[2]+w|0,l[3]=l[3]+g|0,l[4]=l[4]+T|0},_doFinalize:function(){var u=this._data,m=u.words,l=this._nDataBytes*8,f=u.sigBytes*8;return m[f>>>5]|=128<<24-f%32,m[(f+64>>>9<<4)+14]=Math.floor(l/4294967296),m[(f+64>>>9<<4)+15]=l,u.sigBytes=m.length*4,this._process(),this._hash},clone:function(){var u=o.clone.call(this);return u._hash=this._hash.clone(),u}});n.SHA1=o._createHelper(h),n.HmacSHA1=o._createHmacHelper(h)}(),t.SHA1})}(Ge)),Ge.exports}var Qe={exports:{}},Wt;function Qn(){return Wt||(Wt=1,function(r,e){(function(t,n){r.exports=n(Ae())})(ee,function(t){(function(){var n=t,s=n.lib,i=s.Base,o=n.enc,a=o.Utf8,c=n.algo;c.HMAC=i.extend({init:function(h,u){h=this._hasher=new h.init,typeof u=="string"&&(u=a.parse(u));var m=h.blockSize,l=m*4;u.sigBytes>l&&(u=h.finalize(u)),u.clamp();for(var f=this._oKey=u.clone(),d=this._iKey=u.clone(),w=f.words,g=d.words,T=0;T<m;T++)w[T]^=1549556828,g[T]^=909522486;f.sigBytes=d.sigBytes=l,this.reset()},reset:function(){var h=this._hasher;h.reset(),h.update(this._iKey)},update:function(h){return this._hasher.update(h),this},finalize:function(h){var u=this._hasher,m=u.finalize(h);u.reset();var l=u.finalize(this._oKey.clone().concat(m));return l}})})()})}(Qe)),Qe.exports}(function(r,e){(function(t,n,s){r.exports=n(Ae(),Gn(),Qn())})(ee,function(t){return t.HmacSHA1})})(Ut);const Xn=Ut.exports;var Ft={exports:{}};(function(r,e){(function(t,n){r.exports=n(Ae())})(ee,function(t){return function(){var n=t,s=n.lib,i=s.WordArray,o=n.enc;o.Base64={stringify:function(c){var h=c.words,u=c.sigBytes,m=this._map;c.clamp();for(var l=[],f=0;f<u;f+=3)for(var d=h[f>>>2]>>>24-f%4*8&255,w=h[f+1>>>2]>>>24-(f+1)%4*8&255,g=h[f+2>>>2]>>>24-(f+2)%4*8&255,T=d<<16|w<<8|g,p=0;p<4&&f+p*.75<u;p++)l.push(m.charAt(T>>>6*(3-p)&63));var v=m.charAt(64);if(v)for(;l.length%4;)l.push(v);return l.join("")},parse:function(c){var h=c.length,u=this._map,m=this._reverseMap;if(!m){m=this._reverseMap=[];for(var l=0;l<u.length;l++)m[u.charCodeAt(l)]=l}var f=u.charAt(64);if(f){var d=c.indexOf(f);d!==-1&&(h=d)}return a(c,h,m)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="};function a(c,h,u){for(var m=[],l=0,f=0;f<h;f++)if(f%4){var d=u[c.charCodeAt(f-1)]<<f%4*2,w=u[c.charCodeAt(f)]>>>6-f%4*2,g=d|w;m[l>>>2]|=g<<24-l%4*8,l++}return i.create(m,l)}}(),t.enc.Base64})})(Ft);const Yn=Ft.exports;function Zn(r){let e=r.query?`${r.path}?${r.query}
2
+ `:`${r.path}
3
+ `;return r.body&&(e+=r.body),e}function Xe(r){let e;try{e=new URL(r.path).pathname}catch(a){e=r.path}let t=Zn(W(C({},r),{path:e}));const i=Xn(t,r.appSalt).toString(Yn).replace(/\+/g,"-").replace(/\//g,"_");let o=`QApp ${r.appID}:${i}`;return o=o.replace(/\//g,"_"),o=o.replace(/\+/g,"-"),o}class Jn{constructor(e){this.logger=e}log(e){return this.logger.log("DnsResolveLog",e)}}function er(r){const e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",t=e.length;let n="";for(let s=0;s<r;s++)n+=e[Math.floor(Math.random()*t)];return n}const tr=new URL($e).hostname,nr=te("dns/httpdns");function rr(r,e,t,n){return b(this,null,function*(){var m,l;const s=new Jn(n),i=Fe({name:e,type:"A",rid:er(10)}),o=`${$e}?${i}`,a=Xe(W(C({},t),{path:$e,query:i}));let c,h=null,u=null;try{if(h=yield fetch(o,{headers:{Authorization:a}}),!h.ok){const d=yield or(h);if(d==null)throw new Error(`Resolve failed, unexpected HTTP status: ${h.status}`);if(d.code==="NotSupportedArea")return{reason:"NotSupportedArea",ttl:300};throw new Error(`Resolve failed, code: ${d.code}, error: ${d.error}`)}return u=yield h.json()}catch(f){throw c=f}finally{const d=performance.getEntriesByName(o,"resource").pop();if(d==null)nr("Corresponding performance entry not found for",o);else{const w=u==null?le(c):{err_msg:"",err_desc:""};s.log(W(C({r_id:(m=h==null?void 0:h.headers.get("x-reqid"))!=null?m:"",ip:"",domain:tr,status_code:(l=h==null?void 0:h.status)!=null?l:-1},w),{t_conn:(d.requestStart-d.connectStart)/1e3,t_total:(d.responseEnd-d.fetchStart)/1e3,type:1}))}}})}function Ye(r){return r.groups!=null}function sr(r,e){return r.find(t=>new RegExp(t.pattern).test(e))}function ir(r){return Math.random()<r.servicerate}function or(r){return b(this,null,function*(){try{const e=yield r.json();if(e&&typeof e.code=="string"&&typeof e.error=="string")return e}catch(e){}return null})}function jt(r){return b(this,null,function*(){yield Promise.all(r.map(e=>indexedDB.deleteDatabase(e)))})}class Kt{constructor(e,t){R(this,"db");this.dbName=e,this.storeConfigs=t}getDB(){return b(this,null,function*(){return this.db!=null?this.db:(this.db=yield new Promise(e=>{const t=indexedDB.open(this.dbName);t.addEventListener("upgradeneeded",()=>{for(const n of this.storeConfigs){const s=t.result.createObjectStore(n.name);for(const i of n.indexes)s.createIndex(i.name,i.keyPath)}}),e(De(t))}),this.db)})}get(e,t){return b(this,null,function*(){const s=(yield this.getDB()).transaction(e,"readonly").objectStore(e).get(t);return De(s)})}getAll(e){return b(this,null,function*(){const n=(yield this.getDB()).transaction(e,"readonly").objectStore(e).getAll();return De(n)})}count(e){return b(this,null,function*(){const n=(yield this.getDB()).transaction(e,"readonly").objectStore(e).count();return De(n)})}set(e,t,n){return b(this,null,function*(){const i=(yield this.getDB()).transaction(e,"readwrite");return i.objectStore(e).put(n,t),Ze(i)})}remove(e,t){return b(this,null,function*(){const s=(yield this.getDB()).transaction(e,"readwrite");return s.objectStore(e).delete(t),Ze(s)})}clear(){return b(this,null,function*(){const e=yield this.getDB();yield Promise.all(this.storeConfigs.map(({name:t})=>{const n=e.transaction(t,"readwrite");return n.objectStore(t).clear(),Ze(n)}))})}walkBy(e,t,n){return b(this,null,function*(){const i=(yield this.getDB()).transaction(e,"readonly").objectStore(e).index(t).openCursor(void 0,"next");return new Promise((o,a)=>{i.addEventListener("error",()=>a(new ge(i.error))),i.addEventListener("success",()=>{const c=i.result;if(c==null){o();return}n(c.value,c.primaryKey),c.continue()})})})}dispose(){var e;(e=this.db)==null||e.close()}}class ge extends Error{constructor(t){super(t+"");R(this,"name","IndexedDBError");this.cause=t}}function De(r){return new Promise((e,t)=>{r.addEventListener("success",()=>e(r.result)),r.addEventListener("error",()=>t(new ge(r.error)))})}function Ze(r){return new Promise((e,t)=>{r.addEventListener("complete",()=>e()),r.addEventListener("error",()=>t(new ge(r.error))),r.addEventListener("abort",()=>t(new ge(r.error)))})}class ar{constructor(){R(this,"map",new Map)}on(e,t){var i;const s=[...(i=this.map.get(e))!=null?i:[],t];return this.map.set(e,s),()=>this.off(e,t)}once(e,t){const n=this.on(e,s=>{n(),t(s)});return n}off(e,t){var i;const s=((i=this.map.get(e))!=null?i:[]).filter(o=>o!==t);this.map.set(e,s)}emit(...e){var i;const[t,n]=e;((i=this.map.get(t))!=null?i:[]).forEach(o=>{o(n)})}dispose(){this.map.clear()}}function ce(r){const e=r.get("Content-Length");return e?parseInt(e,10):null}function Je(r){const e=r.get("Content-Range");return e==null?null:lr(e)}function lr(r){const e=r.trim().toLowerCase(),[t,n]=e.split(/\s+/);if(t!=="bytes")throw new Error(`Unit must be bytes: ${r}`);const[s,i]=n.split("/"),o=i==="*"?null:tt(i),[a,c]=(s.includes("-")?s.split("-"):[null,null]).map(h=>tt(h));return{totalSize:o,start:a,end:c}}function et(r){const e=r.start!=null&&r.end!=null?`${r.start}-${r.end}`:"*",t=r.totalSize==null?"*":r.totalSize+"";return`bytes ${e}/${t}`}function tt(r){return r?Number(r):null}function nt(r){const e=r.get("Range");return e==null?null:Gt(e)}function Vt(r){return r.start===0&&r.end==null}function Gt(r){const e=r.trim().toLowerCase();if(!e.startsWith("bytes="))throw new Error(`Unit must be bytes: ${r}`);if(e.includes(","))throw new Error(`Multiple range: ${r}`);const[,t,n]=/(\d*)-(\d*)/.exec(e)||[];if(!t&&!n)throw new Error(`Invalid range values: ${r}`);if(!t)throw new Error("Suffix range not supported");const[s,i]=[t,n].map(o=>tt(o));return{start:s,end:i}}function be(r){var e,t;return`bytes=${(e=r.start)!=null?e:0}-${(t=r.end)!=null?t:""}`}const cr=/[^\u0000-\u00ff]/;function Qt(r){return cr.test(r)?"REPLACED_BY_Miku_Delivery_SEE_utils_http_encodeHeaderValue":r}function ur(r){if(r instanceof Headers){const e={};r.forEach((t,n)=>{e[n]=Qt(t)}),r=e}if(Array.isArray(r)){const e={};r.forEach(([t,n])=>{e[n]=Qt(t)}),r=e}return new Headers(r)}function rt(r){var t;const e=Je(r);return e!=null?(t=e.totalSize)!=null?t:null:ce(r)}const Xt=Q("utils/stream"),Yt=te("utils/stream");function hr(r){return b(this,null,function*(){const e=r.getReader();let t=new Uint8Array;for(;;){const{done:s,value:i}=yield e.read();if(s)break;t=new Uint8Array([...t,...i])}return new TextDecoder().decode(t)})}function st(r,e){var a;const t=r.getReader(),n=(a=e[0])!=null?a:0,s=e[1];let i=0;return new ReadableStream({pull:c=>b(this,null,function*(){let h,u;for(;;){const d=yield t.read();if(d.done){c.close();return}if(h=d.value,u=i+h.byteLength,u>n)break;i=u}let m=h;const l=n>i?n-i:0,f=s!=null&&s<u?s-i:void 0;(l!==0||f!==void 0)&&(m=h.slice(l,f)),c.enqueue(m),s!=null&&u>=s&&(t.cancel("Cancelled by slice for target range met"),c.close()),i=u}),cancel:c=>t.cancel(c)})}function dr(r){let e=0;const t=new TransformStream({transform:(s,i)=>{e+=s.byteLength,i.enqueue(s)}}),n=r.pipeTo(t.writable).then(()=>({size:e,success:!0}),s=>({size:e,success:!1,error:s}));return[t.readable,n]}class Zt extends Error{constructor(){super(...arguments);R(this,"name","SaveSlicedPieceError")}}function fr(r,e,t,n){return b(this,null,function*(){const s=[];let i=e,o=[],a=0;function c(){return b(this,null,function*(){const h=i+a;Xt(`saveSlicedPiece [${i}, ${h}]`);try{yield n(new Blob(o),i,h)}catch(u){throw Yt(`saveSlicedPiece [${i}, ${h}] failed`,u),new Zt(`saveSlicedPiece [${i}, ${h}] failed`)}s.push([i,h]),Xt(`saveSlicedPiece [${i}, ${h}] finish`,s),i=h})}try{const h=r.getReader();for(;;){const{value:u,done:m}=yield h.read();if(m)break;o.push(u),a+=u.byteLength,a>=t&&(yield c(),o=[],a=0)}a>0&&(yield c())}catch(h){if(!(h instanceof Zt)&&(Yt("exception occurred while reading stream and save by pieces",h),a>0))try{yield c()}catch(u){}}return s})}function wr(r){let e,t=!1;const n=new ReadableStream({start:a=>{e=a},cancel:()=>{t=!0}}),s=r.getReader();let i=!1;return{main:new ReadableStream({pull:a=>b(this,null,function*(){try{const{value:c,done:h}=yield s.read();if(i)return;if(h){a.close(),t||e.close();return}a.enqueue(c),t||e.enqueue(c)}catch(c){a.error(c),t||e.error(c)}}),cancel:a=>b(this,null,function*(){i=!0,yield s.cancel(a),e.error(a)})}),minor:n}}var it={exports:{}};(function(r,e){(function(t,n){var s="1.0.2",i="",o="?",a="function",c="undefined",h="object",u="string",m="major",l="model",f="name",d="type",w="vendor",g="version",T="architecture",p="console",v="mobile",y="tablet",S="smarttv",A="wearable",M="embedded",X=255,U="Amazon",K="Apple",V="ASUS",z="BlackBerry",$="Browser",F="Chrome",oe="Edge",j="Firefox",H="Google",xn="Huawei",St="LG",Ct="Microsoft",_n="Motorola",Ie="Opera",Et="Samsung",xt="Sony",Tn="Xiaomi",_t="Zebra",An="Facebook",Js=function(E,D){var x={};for(var O in E)D[O]&&D[O].length%2===0?x[O]=D[O].concat(E[O]):x[O]=E[O];return x},Oe=function(E){for(var D={},x=0;x<E.length;x++)D[E[x].toUpperCase()]=E[x];return D},Dn=function(E,D){return typeof E===u?Ce(D).indexOf(Ce(E))!==-1:!1},Ce=function(E){return E.toLowerCase()},ei=function(E){return typeof E===u?E.replace(/[^\d\.]/g,i).split(".")[0]:n},Tt=function(E,D){if(typeof E===u)return E=E.replace(/^\s\s*/,i).replace(/\s\s*$/,i),typeof D===c?E:E.substring(0,X)},Ee=function(E,D){for(var x=0,O,_,ze,B,xe,Y;x<D.length&&!xe;){var Bn=D[x],Pn=D[x+1];for(O=_=0;O<Bn.length&&!xe;)if(xe=Bn[O++].exec(E),xe)for(ze=0;ze<Pn.length;ze++)Y=xe[++_],B=Pn[ze],typeof B===h&&B.length>0?B.length===2?typeof B[1]==a?this[B[0]]=B[1].call(this,Y):this[B[0]]=B[1]:B.length===3?typeof B[1]===a&&!(B[1].exec&&B[1].test)?this[B[0]]=Y?B[1].call(this,Y,B[2]):n:this[B[0]]=Y?Y.replace(B[1],B[2]):n:B.length===4&&(this[B[0]]=Y?B[3].call(this,Y.replace(B[1],B[2])):n):this[B]=Y||n;x+=2}},At=function(E,D){for(var x in D)if(typeof D[x]===h&&D[x].length>0){for(var O=0;O<D[x].length;O++)if(Dn(D[x][O],E))return x===o?n:x}else if(Dn(D[x],E))return x===o?n:x;return E},ti={"1.0":"/8","1.2":"/1","1.3":"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"},kn={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2","8.1":"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},Ln={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[g,[f,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[g,[f,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[f,g],[/opios[\/ ]+([\w\.]+)/i],[g,[f,Ie+" Mini"]],[/\bopr\/([\w\.]+)/i],[g,[f,Ie]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,/(ba?idubrowser)[\/ ]?([\w\.]+)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq)\/([-\w\.]+)/i,/(weibo)__([\d\.]+)/i],[f,g],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[g,[f,"UC"+$]],[/\bqbcore\/([\w\.]+)/i],[g,[f,"WeChat(Win) Desktop"]],[/micromessenger\/([\w\.]+)/i],[g,[f,"WeChat"]],[/konqueror\/([\w\.]+)/i],[g,[f,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[g,[f,"IE"]],[/yabrowser\/([\w\.]+)/i],[g,[f,"Yandex"]],[/(avast|avg)\/([\w\.]+)/i],[[f,/(.+)/,"$1 Secure "+$],g],[/\bfocus\/([\w\.]+)/i],[g,[f,j+" Focus"]],[/\bopt\/([\w\.]+)/i],[g,[f,Ie+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[g,[f,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[g,[f,"Dolphin"]],[/coast\/([\w\.]+)/i],[g,[f,Ie+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[g,[f,"MIUI "+$]],[/fxios\/([-\w\.]+)/i],[g,[f,j]],[/\bqihu|(qi?ho?o?|360)browser/i],[[f,"360 "+$]],[/(oculus|samsung|sailfish)browser\/([\w\.]+)/i],[[f,/(.+)/,"$1 "+$],g],[/(comodo_dragon)\/([\w\.]+)/i],[[f,/_/g," "],g],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i],[f,g],[/(metasr)[\/ ]?([\w\.]+)/i,/(lbbrowser)/i],[f],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[f,An],g],[/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(chromium|instagram)[\/ ]([-\w\.]+)/i],[f,g],[/\bgsa\/([\w\.]+) .*safari\//i],[g,[f,"GSA"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[g,[f,F+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[f,F+" WebView"],g],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[g,[f,"Android "+$]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[f,g],[/version\/([\w\.]+) .*mobile\/\w+ (safari)/i],[g,[f,"Mobile Safari"]],[/version\/([\w\.]+) .*(mobile ?safari|safari)/i],[g,f],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[f,[g,At,ti]],[/(webkit|khtml)\/([\w\.]+)/i],[f,g],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[f,"Netscape"],g],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[g,[f,j+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i],[f,g]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[T,"amd64"]],[/(ia32(?=;))/i],[[T,Ce]],[/((?:i[346]|x)86)[;\)]/i],[[T,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[T,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[T,"armhf"]],[/windows (ce|mobile); ppc;/i],[[T,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[T,/ower/,i,Ce]],[/(sun4\w)[;\)]/i],[[T,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[T,Ce]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[pt]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[l,[w,Et],[d,y]],[/\b((?:s[cgp]h|gt|sm)-\w+|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[l,[w,Et],[d,v]],[/\((ip(?:hone|od)[\w ]*);/i],[l,[w,K],[d,v]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[l,[w,K],[d,y]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[l,[w,xn],[d,y]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}-[atu]?[ln][01259x][012359][an]?)\b(?!.+d\/s)/i],[l,[w,xn],[d,v]],[/\b(poco[\w ]+)(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[l,/_/g," "],[w,Tn],[d,v]],[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[l,/_/g," "],[w,Tn],[d,y]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[l,[w,"OPPO"],[d,v]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[l,[w,"Vivo"],[d,v]],[/\b(rmx[12]\d{3})(?: bui|;|\))/i],[l,[w,"Realme"],[d,v]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[l,[w,_n],[d,v]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[l,[w,_n],[d,y]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[l,[w,St],[d,y]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[l,[w,St],[d,v]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[l,[w,"Lenovo"],[d,y]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[l,/_/g," "],[w,"Nokia"],[d,v]],[/(pixel c)\b/i],[l,[w,H],[d,y]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[l,[w,H],[d,v]],[/droid.+ ([c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[l,[w,xt],[d,v]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[l,"Xperia Tablet"],[w,xt],[d,y]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[l,[w,"OnePlus"],[d,v]],[/(alexa)webm/i,/(kf[a-z]{2}wi)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[l,[w,U],[d,y]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[l,/(.+)/g,"Fire Phone $1"],[w,U],[d,v]],[/(playbook);[-\w\),; ]+(rim)/i],[l,w,[d,y]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[l,[w,z],[d,v]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[l,[w,V],[d,y]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[l,[w,V],[d,v]],[/(nexus 9)/i],[l,[w,"HTC"],[d,y]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic|sony)[-_ ]?([-\w]*)/i],[w,[l,/_/g," "],[d,v]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[l,[w,"Acer"],[d,y]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[l,[w,"Meizu"],[d,v]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[l,[w,"Sharp"],[d,v]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[w,l,[d,v]],[/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[w,l,[d,y]],[/(surface duo)/i],[l,[w,Ct],[d,y]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[l,[w,"Fairphone"],[d,v]],[/(u304aa)/i],[l,[w,"AT&T"],[d,v]],[/\bsie-(\w*)/i],[l,[w,"Siemens"],[d,v]],[/\b(rct\w+) b/i],[l,[w,"RCA"],[d,y]],[/\b(venue[\d ]{2,7}) b/i],[l,[w,"Dell"],[d,y]],[/\b(q(?:mv|ta)\w+) b/i],[l,[w,"Verizon"],[d,y]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[l,[w,"Barnes & Noble"],[d,y]],[/\b(tm\d{3}\w+) b/i],[l,[w,"NuVision"],[d,y]],[/\b(k88) b/i],[l,[w,"ZTE"],[d,y]],[/\b(nx\d{3}j) b/i],[l,[w,"ZTE"],[d,v]],[/\b(gen\d{3}) b.+49h/i],[l,[w,"Swiss"],[d,v]],[/\b(zur\d{3}) b/i],[l,[w,"Swiss"],[d,y]],[/\b((zeki)?tb.*\b) b/i],[l,[w,"Zeki"],[d,y]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[w,"Dragon Touch"],l,[d,y]],[/\b(ns-?\w{0,9}) b/i],[l,[w,"Insignia"],[d,y]],[/\b((nxa|next)-?\w{0,9}) b/i],[l,[w,"NextBook"],[d,y]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[w,"Voice"],l,[d,v]],[/\b(lvtel\-)?(v1[12]) b/i],[[w,"LvTel"],l,[d,v]],[/\b(ph-1) /i],[l,[w,"Essential"],[d,v]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[l,[w,"Envizen"],[d,y]],[/\b(trio[-\w\. ]+) b/i],[l,[w,"MachSpeed"],[d,y]],[/\btu_(1491) b/i],[l,[w,"Rotor"],[d,y]],[/(shield[\w ]+) b/i],[l,[w,"Nvidia"],[d,y]],[/(sprint) (\w+)/i],[w,l,[d,v]],[/(kin\.[onetw]{3})/i],[[l,/\./g," "],[w,Ct],[d,v]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[l,[w,_t],[d,y]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[l,[w,_t],[d,v]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[w,l,[d,p]],[/droid.+; (shield) bui/i],[l,[w,"Nvidia"],[d,p]],[/(playstation [345portablevi]+)/i],[l,[w,xt],[d,p]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[l,[w,Ct],[d,p]],[/smart-tv.+(samsung)/i],[w,[d,S]],[/hbbtv.+maple;(\d+)/i],[[l,/^/,"SmartTV"],[w,Et],[d,S]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[w,St],[d,S]],[/(apple) ?tv/i],[w,[l,K+" TV"],[d,S]],[/crkey/i],[[l,F+"cast"],[w,H],[d,S]],[/droid.+aft(\w)( bui|\))/i],[l,[w,U],[d,S]],[/\(dtv[\);].+(aquos)/i],[l,[w,"Sharp"],[d,S]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i],[[w,Tt],[l,Tt],[d,S]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[d,S]],[/((pebble))app/i],[w,l,[d,A]],[/droid.+; (glass) \d/i],[l,[w,H],[d,A]],[/droid.+; (wt63?0{2,3})\)/i],[l,[w,_t],[d,A]],[/(quest( 2)?)/i],[l,[w,An],[d,A]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[w,[d,M]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],[l,[d,v]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[l,[d,y]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[d,y]],[/(phone|mobile(?:[;\/]| safari)|pda(?=.+windows ce))/i],[[d,v]],[/(android[-\w\. ]{0,9});.+buil/i],[l,[w,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[g,[f,oe+"HTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[g,[f,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i],[f,g],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[g,f]],os:[[/microsoft (windows) (vista|xp)/i],[f,g],[/(windows) nt 6\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,/(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i],[f,[g,At,kn]],[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[f,"Windows"],[g,At,kn]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/cfnetwork\/.+darwin/i],[[g,/_/g,"."],[f,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[f,"Mac OS"],[g,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[g,f],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[f,g],[/\(bb(10);/i],[g,[f,z]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[g,[f,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[g,[f,j+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[g,[f,"webOS"]],[/crkey\/([\d\.]+)/i],[g,[f,F+"cast"]],[/(cros) [\w]+ ([\w\.]+\w)/i],[[f,"Chromium OS"],g],[/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[f,g],[/(sunos) ?([\w\.\d]*)/i],[[f,"Solaris"],g],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i,/(unix) ?([\w\.]*)/i],[f,g]]},G=function(E,D){if(typeof E===h&&(D=E,E=n),!(this instanceof G))return new G(E,D).getResult();var x=E||(typeof t!==c&&t.navigator&&t.navigator.userAgent?t.navigator.userAgent:i),O=D?Js(Ln,D):Ln;return this.getBrowser=function(){var _={};return _[f]=n,_[g]=n,Ee.call(_,x,O.browser),_.major=ei(_.version),_},this.getCPU=function(){var _={};return _[T]=n,Ee.call(_,x,O.cpu),_},this.getDevice=function(){var _={};return _[w]=n,_[l]=n,_[d]=n,Ee.call(_,x,O.device),_},this.getEngine=function(){var _={};return _[f]=n,_[g]=n,Ee.call(_,x,O.engine),_},this.getOS=function(){var _={};return _[f]=n,_[g]=n,Ee.call(_,x,O.os),_},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return x},this.setUA=function(_){return x=typeof _===u&&_.length>X?Tt(_,X):_,this},this.setUA(x),this};G.VERSION=s,G.BROWSER=Oe([f,g,m]),G.CPU=Oe([T]),G.DEVICE=Oe([l,w,d,p,v,S,y,A,M]),G.ENGINE=G.OS=Oe([f,g]),r.exports&&(e=r.exports=G),e.UAParser=G;var we=typeof t!==c&&(t.jQuery||t.Zepto);if(we&&!we.ua){var Ne=new G;we.ua=Ne.getResult(),we.ua.get=function(){return Ne.getUA()},we.ua.set=function(E){Ne.setUA(E);var D=Ne.getResult();for(var x in D)we.ua[x]=D[x]}}})(typeof window=="object"?window:ee)})(it,it.exports);const Jt=it.exports,ot=Jt(navigator.userAgent);function pr(){return ot.device.type==="mobile"||ot.device.type==="tablet"}let ve;function at(){if(ve!=null)return ve;try{new Response(new ReadableStream),ve=!0}catch(r){ve=!1}return ve}function lt(){return!(typeof TransformStream=="undefined"||!at())}function ct(){return ot.browser.name!=="Safari"}class ue{constructor(e,{method:t,headers:n,signal:s,body:i}){R(this,"url");R(this,"method");R(this,"headers");R(this,"body");R(this,"signal");this.url=e,this.method=t!=null?t:"GET",this.headers=new Headers(n),this.body=i!=null?i:null,this.signal=s!=null?s:new AbortController().signal}}class ne{constructor(e,{status:t,statusText:n,headers:s,underlayer:i}){R(this,"status");R(this,"statusText");R(this,"headers");R(this,"body");R(this,"bodyReadResult");R(this,"underlayer");if(this.status=t!=null?t:200,this.statusText=n!=null?n:"",this.headers=ur(s),this.underlayer=i,e==null||!lt())this.body=e,this.bodyReadResult=Promise.resolve({success:!0,size:0});else{const[o,a]=dr(e);this.body=o,this.bodyReadResult=a}}}function ke(r){const{status:e,statusText:t,headers:n,body:s}=r;return new ne(s,{status:e,statusText:t,headers:n,underlayer:r})}class ut extends Error{constructor(t){super(`Unexpected HTTP status: ${t.status} ${t.statusText}`);R(this,"name","UnexpectedHttpStatusError");this.response=t}}const mr=new ar;let en;typeof self!="undefined"&&(en=self,en.addEventListener("message",r=>mr.emit("message",r)));class gr extends Error{constructor(){super(...arguments);R(this,"name","WindowClientError")}}class br extends Error{constructor(){super(...arguments);R(this,"name","UnexpectedDataChannelCloseError")}}class vr extends Error{constructor(){super(...arguments);R(this,"name","UnexpectedDataChannel1stMessageError")}}function ht(r,e=()=>1){if(r.length===0)return null;const t=r.map(e),n=t.reduce((i,o)=>i+o,0);let s=Math.random()*n;for(let i=0;i<t.length;i++){const o=t[i];if(s<o)return r[i];s-=o}return r[0]}function re(r){return r&&r.name==="AbortError"}const yr=new br().name,Rr=new vr().name;function Le(r){return!(r&&[yr,Rr].includes(r.name)||re(r)||r instanceof gr)}class dt extends Error{constructor(t){super(t+"");R(this,"name","ResolveError");this.cause=t}}class tn extends Error{constructor(){super(...arguments);R(this,"name","NoAvailableNodeError")}}class ft extends Error{constructor(t){super(t+"");R(this,"name","DoWithNodeError");this.cause=t}}class se extends Error{constructor(){super(...arguments);R(this,"name","LocalDNSError")}}function Sr(r,e,t){const n=t||new URL(r).hostname;let s,i;r=r.replace(/^\w+:\/\//,"").split("#")[0];const o=r.indexOf("?");o>=0?(i=r.slice(o+1),r=r.slice(0,o)):i="";const a=r.indexOf("/");s=a>=0?r.slice(a):"",s=Cr(e.rewrites,s),i=Tr(e.queryString,i);let c=n+s;return i!==""&&(c=c+"?"+i),c}function Cr(r,e){for(const t of r){const n=Er(t,e);if(n!=null){e=_r(t,n);break}}return e}function Er(r,e){return new RegExp(r.pattern).exec(e)}const xr=/\${(\d+)}/g;function _r(r,e){return r.repl.replace(xr,(t,n)=>{var i;const s=parseInt(n,10);return s>=e.length?t:(i=e[s])!=null?i:""})}function Tr({type:r,values:e},t){if(r==="none")return"";if(r==="all")return t;const n=Hn(t),s=e!=null?e:[],i={};return Object.keys(n).forEach(o=>{r==="include"&&!s.includes(o)||r==="exclude"&&s.includes(o)||(i[o]=n[o])}),Fe(i)}function nn(r,e){const t=new Map;return function(...s){const i=e(...s),o=t.get(i);if(o!=null)return o;const a=r(...s);return t.set(i,a),a.finally(()=>{t.delete(i)}),a}}const he=Q("dns"),ie=te("dns"),Ar="miku-delivery/dns/cdn/v1",Dr=[];function kr(){return jt(Dr)}const wt="result",Lr={name:wt,indexes:[{name:"domain",keyPath:"domain"}]};class Br{constructor(e,t,n=rr,s,i=2e3,o=5e3){R(this,"fingerprints",new Map);R(this,"disabledElts",new Map);R(this,"storage",new Kt(Ar,[Lr]));R(this,"getResolveResultFromStorage",nn(e=>this.storage.get(wt,e),e=>e));R(this,"refreshResolveResultInStorage",nn((e,t)=>b(this,null,function*(){const n=yield this.dnsResolver(e,t,this.app,this.logger),s=Date.now()+n.ttl*1e3,i=W(C({},n),{domain:t,expireAt:s});return this.saveResolveResultToStorage(t,i),i}),(e,t)=>t));this.logger=e,this.app=t,this.dnsResolver=n,this.cacheKeyFn=s,this.resolveTimeout=i,this.initialDisableDuration=o}getFingerprint(e){const t=this.fingerprints.get(e);if(t==null)throw new Error(`No fingerprint for ${e}`);return t}isEltDisabled(e){const t=this.disabledElts.get(e);return t==null?!1:t.after>Date.now()}setEltDisabled(e){const t=this.disabledElts.get(e),n=t==null?this.initialDisableDuration:t.duration,s=Date.now()+n;this.disabledElts.set(e,{duration:n*2,after:s})}removeEltDisabled(e){this.disabledElts.has(e)&&this.disabledElts.delete(e)}getCacheKey(e,t){return b(this,null,function*(){if(this.cacheKeyFn!=null)return this.cacheKeyFn(e);const n=yield this.resolveDomain(new J,t);return Ye(n)?Sr(e,n.cacheKey,n.bucket):e})}getMediaOptimization(e){return b(this,null,function*(){const t=yield this.resolveDomain(new J,e);return Ye(t)?t.mediaOptimization:null})}saveResolveResultToStorage(e,t){return b(this,null,function*(){return this.storage.set(wt,e,t)})}resolveDomain(e,t){return b(this,null,function*(){const n=Date.now(),s=(()=>b(this,null,function*(){const i=yield this.getResolveResultFromStorage(t);return i==null?this.refreshResolveResultInStorage(e,t):(Ir(i)&&(he("result from storage cache expired",t),this.refreshResolveResultInStorage(e,t)),e.set("dnsResolveFromCache",!0),i)}))().then(i=>(e.set("dnsResolveTotalTime",N(Date.now(),n)),i));return Promise.race([s,Ot(this.resolveTimeout,"Resolve domain")]).catch(i=>{throw ie("DNS resolve failed:",i),new dt(i)})})}resolve(e,t){return b(this,null,function*(){let n=null;return yield this.do(e,t,1,s=>{n=s}),n})}do(e,t,n,s){return b(this,null,function*(){let i;he("Resolve for",t);const o=new URL(t).hostname,[a,c]=yield Promise.all([this.getCacheKey(t,o),this.resolveDomain(e,o)]);if(!Ye(c))throw new se(`Non-ECDN resolve result: ${o}`);const{groups:h,rules:u}=c;if(h.length===0)throw ie(`ECDN resolve result error: No available group for ${o}`),new tn(`No available group for ${o}`);he("Resolved for",t);const m=sr(u,a);if(m==null)throw ie("ECDN resolve result error: No matched rule found"),new se("No matched rule found");if(!ir(m))throw new se("Do not serve with given rule");let l=m.groups.map(({groupidx:f,weight:d,splitn:w})=>{const g=h[f];if(g==null)throw ie(`ECDN resolve result error: Unexpected groupidx ${f}`),new Error(`Unexpected groupidx: ${f}`);return{group:g,weight:d,splitn:w}});for(let f=0;f<n;f++){const d=ht(l,w=>w.weight);if(d==null)break;try{he("doWithGroup",f,a),yield this.doWithGroup(e,d.group,a,d.splitn,s);return}catch(w){if(ie("doWithGroup (weight:",d.weight,") failed:",w,a),i=w,re(w))break;Le(w)&&(l=l.filter(g=>g!==d))}}throw i=re(i)?i:new ft(i),i})}doWithGroup(e,t,n,s,i){return b(this,null,function*(){const o=t.elts.filter(l=>!this.isEltDisabled(l.id));if(o.length===0)throw new Error("No available elt");const a=Pr(t),c=new Set(o.map(l=>l.id)),h=s===1?2:s;let u=a.getN(n,h,c).map(l=>o.find(f=>f.id===l)),m;for(let l=0;l<2;l++){const f=ht(u.slice(0,s),d=>d.replicas);if(f==null)break;try{he("doWithElt",f.id,n),e.set("downloadEltID",f.id),yield Mr(f,n,i),this.removeEltDisabled(f.id);return}catch(d){if(ie("doWithElt",f.id,"failed:",d,n),m=d,re(d))break;Le(d)&&(u=u.filter(w=>w!==f),this.setEltDisabled(f.id))}}throw m})}}const rn=new Map;function Pr({elts:r}){const e=r.map(({id:s,replicas:i})=>`${s}:${i}`).join(","),t=rn.get(e);if(t!=null)return t;const n=new me;return n.set(r.map(s=>({key:s.id,replicas:s.replicas}))),rn.set(e,n),n}function Mr(r,e,t){return b(this,null,function*(){let n=r.addrs;if(n.length===0)throw new Error("Empty addr list");let s;for(let i=0;i<2;i++){const o=ht(n);if(o==null)break;try{he("do job with",o,e),yield t(o);return}catch(a){if(ie("do job with",o,"failed:",a,e),s=a,re(a))break;Le(a)&&(n=n.filter(c=>c!==o))}}throw s})}function Ir(r){return r.expireAt<Date.now()}class Or{constructor(){R(this,"front",null);R(this,"back",null)}insertElementBefore(e,t){const n=t.prev;n!=null?(n.next=e,e.prev=n):this.front=e,t.prev=e,e.next=t}insertElementAfter(e,t){const n=t.next;n!=null?(n.prev=e,e.next=n):this.back=e,t.next=e,e.prev=t}pushElementFront(e){const t=this.front;t!=null?(t.prev=e,e.next=t):this.back=e,this.front=e}pushElementBack(e){const t=this.back;t!=null?(t.next=e,e.prev=t):this.front=e,this.back=e}moveBefore(e,t){e!==t&&(this.remove(e),this.insertElementBefore(e,t))}moveAfter(e,t){e!==t&&(this.remove(e),this.insertElementAfter(e,t))}moveToFront(e){this.remove(e),this.pushElementFront(e)}moveToBack(e){this.remove(e),this.pushElementBack(e)}insertBefore(e,t){const n={value:e,prev:null,next:null};return this.insertElementBefore(n,t),n}insertAfter(e,t){const n={value:e,prev:null,next:null};return this.insertElementAfter(n,t),n}pushFront(e){const t={value:e,prev:null,next:null};return this.pushElementFront(t),t}pushBack(e){const t={value:e,prev:null,next:null};return this.pushElementBack(t),t}remove(e){const t=e.prev,n=e.next;return t!=null?(t.next=n,e.prev=null):this.front=n,n!=null?(n.prev=t,e.next=null):this.back=t,e.value}walk(e){let t=this.front;for(;t!=null;){if(e(t.value,t)===!1)return;t=t.next}}reverseWalk(e){let t=this.back;for(;t!=null;){if(e(t.value,t)===!1)return;t=t.prev}}}const Be=Q("dc/cr"),Nr=te("dc/cr"),zr={reservedQuota:5*1024*1024};class Hr{constructor(e,t=zr){R(this,"inited");R(this,"itemElementMap",new Map);R(this,"itemList",new Or);this.dc=e,this.config=t,this.inited=this.resume()}resume(){return b(this,null,function*(){const e=[];yield this.dc.walkItems((t,n)=>{const s={key:n,usedTime:t.usedTime,size:pt(t)},i=this.itemList.pushBack(s);this.itemElementMap.set(n,i),e.push(...Gr(t,n))});try{const t=yield this.dc.getBrowserCacheKeys();for(let n of t)e.includes(n)||(Be("clear inaccessible cache:",n),yield this.dc.browserCacheDelete(n))}catch(t){Nr("failed to clear inaccessible caches:",t)}})}addItem(e,t){const n={key:e,usedTime:t.usedTime,size:pt(t)};let s=null;return this.itemList.reverseWalk((i,o)=>{if(i.usedTime<=t.usedTime)return s=this.itemList.insertAfter(n,o),!1}),s==null&&(s=this.itemList.pushFront(n)),this.itemElementMap.set(e,s),s}removeItem(e){const t=this.itemElementMap.get(e);t!=null&&(this.itemElementMap.delete(e),this.itemList.remove(t))}onItemSet(e,t){return b(this,null,function*(){yield this.inited;let n=this.itemElementMap.get(e);if(n==null){this.addItem(e,t);return}n.value.size=pt(t),t.usedTime!==n.value.usedTime&&(n.value.usedTime=t.usedTime,this.itemList.moveToBack(n))})}getLeftSpace(){return b(this,null,function*(){if(typeof navigator.storage.estimate=="undefined")return null;const{quota:e,usage:t}=yield navigator.storage.estimate();return e!=null&&t!=null?e-t:null})}freeUpSpace(e){return b(this,null,function*(){yield this.inited;let t=0;const n=[];this.itemList.walk(({key:s,size:i})=>{if(i!==0&&(n.push(s),t+=i,t>=e))return!1}),Be("to free up space, remove",n),yield Promise.all(n.map(s=>b(this,null,function*(){yield this.dc.removeItemWithContent(s),this.removeItem(s)})))})}beforeContentSet(e,t,n){return b(this,null,function*(){if(n==null)return;yield this.inited;const s=yield this.getLeftSpace(),i=this.config.reservedQuota;if(s!=null&&s-i<n){const o=n-s+i;Be("freeUpSpace for",e,t,o),yield this.freeUpSpace(o)}})}onQuotaExceeded(e,t,n){return b(this,null,function*(){Be("quota exceeded",e,t,n);const s=this.config.reservedQuota;yield this.freeUpSpace(n?n+s:s)})}}function Ur([r,e],t){return e=e!=null?e:t,e!=null?e-r:0}function pt(r){return r.pieces.reduce((e,t)=>{var n,s;return e+Ur(t,(s=(n=r.meta)==null?void 0:n.fsize)!=null?s:null)},0)}const qr=Q("dc"),$r="miku-delivery/dc/v1",sn=["miku/dc","miku/dc/v2","miku/dc/v3"];function Wr(){return Promise.all([Fr(sn),jt(sn)])}function Fr(r){return b(this,null,function*(){const t=(yield caches.keys()).filter(n=>r.includes(n));yield Promise.all(t.map(n=>caches.delete(n)))})}const ye="item",on="usedTimeIndex",jr={name:ye,indexes:[{name:on,keyPath:"usedTime"}]},Kr=32*1024*1024;class Vr{constructor(e={},t=$r){R(this,"db");R(this,"cr");R(this,"browserCache",null);R(this,"browserCachePromise",null);this.config=e,this.ns=t,this.db=new Kt(this.ns,[jr]),this.cr=new Hr(this)}openBrowserCache(){return b(this,null,function*(){return this.browserCachePromise!=null?this.browserCachePromise:(this.browserCachePromise=caches.open(this.ns).catch(e=>{throw new de(e)}),this.browserCachePromise.then(e=>{this.browserCache=e}),this.browserCachePromise)})}getItem(e){return b(this,null,function*(){return this.db.get(ye,e)})}setItem(e,t){return b(this,null,function*(){qr("setItem",e,t),yield this.db.set(ye,e,t),yield this.cr.onItemSet(e,t)})}walkItems(e){return b(this,null,function*(){return this.db.walkBy(ye,on,e)})}removeItemWithContent(e){return b(this,null,function*(){const t=yield this.getItem(e);t!=null&&(yield Promise.all(t.pieces.map(n=>this.removeContent(e,n))),yield this.db.remove(ye,e))})}browserCacheMatch(e){return b(this,null,function*(){let t=this.browserCache;return t==null&&(t=yield this.openBrowserCache()),t.match(e).catch(n=>{throw new de(n)})})}browserCachePut(e,t){return b(this,null,function*(){let n=this.browserCache;n==null&&(n=yield this.openBrowserCache()),yield n.put(e,t).catch(s=>{throw new de(s)})})}browserCacheDelete(e){return b(this,null,function*(){let t=this.browserCache;t==null&&(t=yield this.openBrowserCache()),yield t.delete(e).catch(n=>{throw new de(n)})})}getBrowserCacheKeys(){return b(this,null,function*(){let e=this.browserCache;return e==null&&(e=yield this.openBrowserCache()),yield e.keys().then(t=>t.map(n=>n.url))})}getContent(e,t){return b(this,null,function*(){const n=yield this.browserCacheMatch(Pe(e,t));if(n!=null){if(n.body==null)throw new Error("Body expected for cached response");return ke(n)}})}setContent(e,t,n){return b(this,null,function*(){if(!at())return yield this.cacheResponse(e,t,n.underlayer),[t];const{headers:s,body:i}=n,o=rt(s);return yield fr(i,t[0],Kr,(a,c,h)=>b(this,null,function*(){s.set("Content-Range",et({start:c,end:h-1,totalSize:o})),s.set("Content-Length",h-c+"");const u=new Response(a,{status:200,statusText:"OK",headers:s});yield this.cacheResponse(e,[c,h],u)}))})}cacheResponse(e,t,n){return b(this,null,function*(){const s=Pe(e,t),i=ce(n.headers);yield this.cr.beforeContentSet(e,t,i);try{yield this.browserCachePut(s,n)}catch(o){throw o instanceof de&&o.cause instanceof Error&&o.cause.name==="QuotaExceededError"&&this.cr.onQuotaExceeded(e,t,i),o}})}removeContent(e,t){return b(this,null,function*(){const n=Pe(e,t);return this.browserCacheDelete(n)})}dispose(){this.db.dispose()}}function Pe(r,e){var t;return/^https?:\/\//.test(r)||(r="https://miku-cache.com/"+r),`${r}_with_range_${e[0]}_${(t=e[1])!=null?t:""}`}function Gr(r,e){return r.pieces.map(t=>Pe(e,t))}class de extends Error{constructor(t){super(t+"");R(this,"name","BrowserCacheError");this.cause=t}}class Qr{constructor(e){this.logger=e}log(e){return this.logger.log("DoLog",e)}}const an="1.2.1",Xr=3,ln=Q("http");class cn{constructor(e,t,n,s=0){R(this,"doLogger");this.client=t,this.resolver=n,this.clientResponseTimeout=s,this.doLogger=new Qr(e)}doWithResolved(e,t,n){return b(this,null,function*(){ln("fetch",t.url,"with resolved",n);const s=new AbortController;$n(s,t.signal);const i=new ue(t.url,W(C({},t),{signal:s.signal}));i.headers.set("X-Miku-Agent",`miku-delivery-web/v${an}`);let o=this.client.fetch(e,i,n);this.clientResponseTimeout>0&&(o=Promise.race([o,Ot(this.clientResponseTimeout,"HTTPClient get response")]),o.catch(c=>{c instanceof It&&s.abort(c)}));const a=yield o;if(ln("fetch",t.url,"succeeded with status",a.status),a.status===429||a.status>=500)throw new ut(a);return a})}originalDo(e,t){return b(this,null,function*(){if(t.signal.aborted)throw t.signal.reason;let n=-1,s;if(yield this.resolver.do(e,t.url,Xr,i=>b(this,null,function*(){const o=new J(e);n++,o.set("downloadRetryCount",n),s=yield this.doWithResolved(o,t,i)})),s==null)throw new Error(`Http do failed: resolver do finished with no finalResp, url: ${t.url}`);return s})}do(e,t){return b(this,null,function*(){const n=Date.now(),s=je();e.set("doID",s);let i,o=null;try{return i=yield this.originalDo(e,t),i}catch(a){throw o=a,a}finally{const{onDoError:a,onDoResponsed:c}=this.getDoLog(e,s,n);i==null?a(o):c(i.status)}})}getDoLog(e,t,n){const s=a=>{var c;return this.doLogger.log(C({lookup_type:!0,t_lookup:(c=e.get("dnsResolveFromCache")===!0?0:e.get("dnsResolveTotalTime"))!=null?c:-1,t_total:-1,ts_st:n,err_desc:"",err_msg:"",status_code:-1,task_id:e.get("taskID"),id:t},a))};return{onDoError:a=>{const c=Date.now();s(C({t_total:N(c,n)},le(a)))},onDoResponsed:a=>{const c=Date.now();s({t_total:N(c,n),status_code:a})}}}}class Yr{constructor(e){this.logger=e}log(e){return this.logger.log("TaskLog",e)}}class un{constructor(e,t,n,s){R(this,"id",je());R(this,"priority",0);R(this,"signal");R(this,"started",!1);R(this,"taskLogger");this.url=e,this.range=t,this.startByClient=s,this.taskLogger=new Yr(n)}setPriority(e){this.priority=e}start(e){return b(this,null,function*(){if(this.started)throw new Error("Task already started");if(this.started=!0,this.signal=e,e&&e.aborted)throw e.reason;const t=Date.now(),n=new J;n.set("taskID",this.id),n.set("taskDomain",new URL(this.url).hostname);let s,i=null;try{return s=yield this.startByClient(n,this),s}catch(o){throw i=o,o}finally{const{logOnError:o,logOnTransferred:a}=this.log(n,t);s==null?o(i):s.underlayer.bodyReadResult.then(c=>{c.success?a():o(c.error)})}})}log(e,t){const n=e.get("taskCacheMatchAt"),s=e.get("task1stHttpDoAt"),i=e.get("taskResultStreamAt"),o=Date.now(),a=u=>{var m,l,f,d,w;return this.taskLogger.log(C({type:(m=e.get("taskType"))!=null?m:1,id:this.id,url:this.url,err_msg:"",err_desc:"",range_st:(f=(l=this.range)==null?void 0:l.start)!=null?f:-1,range_end:(w=(d=this.range)==null?void 0:d.end)!=null?w:-1,ts_st:t,t_cc_match:N(n,t),t_http_do:N(s,n),t_res_stream:N(i,n),t_res:N(o,i),t_trans:-1,t_total:-1},u))};return{logOnError:u=>{const m=Date.now();a(C({t_total:N(m,t)},le(u)))},logOnTransferred:()=>{const u=Date.now();a({t_trans:N(u,o),t_total:N(u,t)})}}}}class hn{constructor(e,t,n,s,i){this.stream=e,this.size=t,this.fileSize=n,this.contentType=s,this.underlayer=i}blob(){return b(this,null,function*(){const e=this.stream.getReader(),t=[];for(;;){const{done:n,value:s}=yield e.read();if(n)break;const i=s;t.push(i)}return new Blob(t)})}}function mt(r,e,t){return r!=null&&t!=null&&t>=r&&(t=null),(e==null||e<0)&&(e=0),[e,t]}function dn(r,e){var s;const t=((s=e[0])!=null?s:0)===0,n=e[1]==null||r!=null&&e[1]===r;return t&&n}function Zr(r,e){var s,i;const t=(s=e[0])!=null?s:0,n=(i=e[1])!=null?i:r;return n==null?null:n-t}function Jr(r,e,t){var c,h;if(e===0)return[];const n=(u,m)=>wn(u,m,e!=null?e:Number.POSITIVE_INFINITY),s=(c=r==null?void 0:r[0])!=null?c:0,i=(h=r==null?void 0:r[1])!=null?h:e,o=[];let a=s;for(const u of t){if(a==null||e!=null&&u[1]!=null&&u[1]>e)break;if(!(u[1]!=null&&a>=u[1])){if(i==null||i>u[0]){u[0]>a&&o.push({cached:!1,range:mt(e,a,u[0])});const m=n(u[0],a)?u[0]:a,l=n(u[1],i)?i:u[1];n(l,m)&&(o.push({cached:!0,range:mt(e,m,l)}),a=l);continue}break}}return n(i,a)&&o.push({cached:!1,range:mt(e,a,i)}),o}function es(r,e){var s;const t=(s=e[0])!=null?s:0,n=e[1];for(const i of r){if(i[1]!=null&&i[1]<=t)continue;if(i[0]>t)break;const o=t-i[0],a=ns(n!=null?n:i[1],i[0]);return{piece:i,start:o,end:a}}throw new Error("Piece not found")}function ts(r,e){const t=r.filter(o=>!e.some(a=>o[0]===a[0]&&o[1]===a[1])),n=[e[0][0],e[e.length-1][1]];for(let o of t)if(fn(o,n))return{toSave:t,toRemove:e};const s=[],i=[];for(let o of t)fn(n,o)?i.push(o):s.push(o);return{toSave:[...s,...e].sort((o,a)=>o[0]-a[0]),toRemove:i}}function fn(r,e){return r[0]<=e[0]&&!wn(e[1],r[1],Number.POSITIVE_INFINITY)}function wn(r,e,t){const n=r!=null?r:t,s=e!=null?e:t;return n>s}function ns(r,e){return r==null||e==null?null:r-e}function pn(r){const e={},t=r.split(",").map(n=>{let[s,i]=n.split("=").map(o=>o.trim());return[s.toLowerCase(),i]});for(const[n,s]of t)if(n==="max-age"){if(s!=null){const i=parseInt(s,10);Number.isNaN(i)||(e["max-age"]=i)}}else(n==="no-cache"||n==="no-store")&&(e[n]=!0);return e}function Me(r){return Math.floor(r/1e3)}function mn(r,e){const t=r.get("Date");if(t==null)return e;const n=Date.parse(t);return Number.isNaN(n)?e:n}function rs(r,e,t){if(r!=null)return r;const n=e.get("Expires");if(n!=null){let s=Date.parse(n);Number.isNaN(s)&&(s=0);const i=mn(e,t);return Me(s-i)}return 3600}function ss(r){const e=r.get("Age");if(e==null)return 0;const t=parseInt(e,10);return Number.isNaN(t)?0:t}function is(r,e,t,n){const s=ss(r),i=mn(r,t),o=Math.max(0,Me(t-i)),a=Me(t-e),c=s+a,h=Math.max(o,c),u=Me(n-t);return h+u}function os(r,e,t,n,s){var c;const i=(c=r==null?void 0:r["max-age"])!=null?c:null,o=rs(i,e,n),a=is(e,t,n,s);return o>a}function as(r,e,t,n){const s=r.get("Cache-Control"),i=s!=null?pn(s):null;return(i==null?void 0:i["no-cache"])===!0?!0:!os(i,r,e,t,n)}function ls(r){const e=r.get("Cache-Control"),t=e!=null?pn(e):null;return!(t!=null&&t["no-store"]===!0)}function cs(r){const e=r.get("ETag");return e==null?null:e.startsWith("W/")?e.slice(2):e}function us(r,e){const t=new Headers(r),n=cs(e);n!=null&&t.set("If-None-Match",n);const s=e.get("Last-Modified");return s!=null&&t.set("If-Modified-Since",s),t}function hs(r,e){return!(r.get("Last-Modified")===e.get("Last-Modified")&&r.get("ETag")===e.get("ETag"))}function ds(r,e){const t=new Headers(r);return e.forEach((n,s)=>{s=s.toLowerCase(),!(s==="content-length"||s==="content-encoding"||s==="content-range")&&t.set(s,n)}),t}const fs={threshold:0,contentRangeExposed:!0},L=Q("ftask"),Re=te("ftask");class ws{constructor(e,t,n,s,i,o,a){R(this,"id",je());R(this,"inited");R(this,"meta",null);R(this,"cachePieces",[]);R(this,"usedTime",0);R(this,"isMedia");this.cache=e,this.nativeHttpClient=t,this.http=n,this.key=s,this.url=i,this.patterns=o,this.getMediaOptimization=a,this.inited=this.resume();const c=_e(i);this.isMedia=o.media.some(h=>h.test(c))}fileSize(){var e,t;return(t=(e=this.meta)==null?void 0:e.fsize)!=null?t:null}cacheValidationRequired(){if(this.meta==null)return!1;const{requestTime:e,responseTime:t,headers:n}=this.meta;return e==null||t==null||n==null?!1:as(n,e,t,Date.now())}isRangeStartFirstRequested(e){var n;const t=(n=e[0])!=null?n:0;return!this.cachePieces.some(s=>{var i;return s[0]<=t&&t<=((i=s[1])!=null?i:Number.POSITIVE_INFINITY)})}startTask(e,t){return b(this,null,function*(){L("startTask",t.url,t.id,t.range);let n;const s=t.range!=null?[t.range.start,t.range.end]:[0,null];yield this.inited,this.usedTime=Date.now(),this.save().catch(a=>Re("save failed when startTask:",a)),lt()?n=yield this.readRangeWithStream(e,t,s):(L("supportStreamOperation: false",t.url,t.id),n=yield this.readRangeWithoutStream(e,t,s));const i=this.meta;if(i==null)throw new Error("Missing meta in fileTask");L("startTask resolved",t.url,t.id);const o=Zr(i.fsize,s);return new hn(n.body,o,i.fsize,i.headers.get("Content-Type"),n)})}readRangeWithoutStream(e,t,n){return b(this,null,function*(){var a,c;let s;const i=[(a=n[0])!=null?a:0,n[1]],o=(c=yield this.cache.getContent(this.key,i))!=null?c:null;if(e.set("taskCacheMatchAt",Date.now()),o!=null&&!this.cacheValidationRequired())L("use cache",t.url,t.id),s=o;else if(L("doRequestAndSaveCache",t.url,t.id,o!=null),s=yield this.doRequestAndSaveCache(e,t,n,o!=null,!1),s.status===304){if(o==null)throw new Error("Unexpected 304 with no cached response");s=o}return e.set("taskResultStreamAt",Date.now()),s})}readRangeWithStream(e,t,n){return b(this,null,function*(){const s=this.cacheValidationRequired();L("cacheValidationRequired",s);const i=Jr(n,this.fileSize(),this.cachePieces);if(L("applyRange",n,this.fileSize(),this.cachePieces,i),s){const c=i.some(m=>m.cached),h=this.isMedia?yield this.getMediaOptimization():!1,u=yield this.doRequestAndSaveCache(e,t,n,c,h);if(u.status===200||u.status===206)return u}e.set("taskCacheMatchAt",Date.now());const o=new TransformStream(void 0),a=yield new Promise((c,h)=>b(this,null,function*(){try{for(let u=0;u<i.length;u++){const m=u===0,{cached:l,range:f}=i[u];let d=null;if(l&&(d=yield this.readPieceFromLocal(e,t,f)),d==null){const g=this.isMedia&&m&&this.isRangeStartFirstRequested(f)?yield this.getMediaOptimization():!1;d=yield this.readPieceFromRemote(e,t,f,g)}m&&c(d);const w=u===i.length-1;yield d.body.pipeTo(o.writable,{preventClose:!w})}}catch(u){u!=null&&L("readRange stream error for",this.url,u),o.writable.abort(u),h(u)}}));return e.set("taskResultStreamAt",Date.now()),new ne(o.readable,a)})}readPieceFromLocal(e,t,n){return b(this,null,function*(){L("readPieceFromLocal",t.url,n);const{piece:s,start:i,end:o}=es(this.cachePieces,n),a=yield this.cache.getContent(this.key,s);return a==null?(Re(`Missing cache item: ${this.key} [${s})`),null):new ne(st(a.body,[i,o]),a)})}readPieceFromRemote(e,t,n,s){return b(this,null,function*(){L("readPieceFromRemote",t.url,n);const i=yield this.doRequestAndSaveCache(e,t,n,!1,s);return!dn(this.fileSize(),n)&&i.status===200?(Re("Range request not supported for",this.url),new ne(st(i.body,n),i)):i})}doRequest(e,t,n,s,i){return b(this,null,function*(){var d;e.get("task1stHttpDoAt")==null&&e.set("task1stHttpDoAt",Date.now());const o=new J(e);o.set("downloadFileTaskID",this.id);let a=new Headers({"Accept-Encoding":"identity;q=1, *;q=0"});n!=null&&(t.range==null&&dn(this.fileSize(),n)||a.set("Range",be({start:n[0],end:n[1]==null?null:n[1]-1})));const c=(d=this.meta)==null?void 0:d.headers;s&&c!=null&&(a=us(a,c));const h=new ue(t.url,{method:"GET",headers:a,signal:t.signal}),u=Date.now();let m;i===!1||i.threshold<=0?m=yield this.http.do(o,h):m=yield ps((...w)=>this.http.do(...w),(...w)=>this.nativeHttpClient.fetch(...w,!0,ct()),i)(o,h);const l=Date.now();let f=m.headers;if(s&&c!=null&&m.status===304)L(`updateStoredHeaders for ${this.url}`),f=ds(c,m.headers);else{if(m.status!==200&&m.status!==206)throw new ut(m);if(m.body==null)throw new Error("Body expected")}return yield this.onResponse(f,u,l),m.bodyReadResult.then(w=>{L(`bodyReadResult for ${this.url}:`,w)}),m})}doRequestAndSaveCache(e,t,n,s,i){return b(this,null,function*(){const o=yield this.doRequest(e,t,n,s,i);return ct()?(o.status===200||o.status===206)&&ls(o.headers)?this.saveCachePiece(t,n,o):o:(L("Skip cache for some strange browsers."),o)})}saveCachePiece(e,t,n){return b(this,null,function*(){var o,a;let s=n,i;if(lt()){const{main:c,minor:h}=wr(n.body);s=new ne(c,n),i=new ne(h,n)}else if(!e.range){const c=n.underlayer.clone();i=ke(c)}if(i!=null){const c=[(o=t==null?void 0:t[0])!=null?o:0,(a=t==null?void 0:t[1])!=null?a:null];L("saveCachePiece",this.url,c),this.cache.setContent(this.key,c,i).then(h=>b(this,null,function*(){if(h.length===0)return;const{toSave:u,toRemove:m}=ts(this.cachePieces,h);if(this.cachePieces=u,m.length>0){L("remove duplicated cache pieces",m);try{yield Promise.all(m.map(l=>this.cache.removeContent(this.key,l)))}catch(l){L("exception occurred while removing duplicated cache pieces",l)}}return this.save()})).then(()=>L("saveCachePiece finish",this.url,c,this.cachePieces),h=>Re("saveCachePiece failed",this.url,c,h))}return s})}onResponse(e,t,n){return b(this,null,function*(){const s=this.meta;this.meta={fsize:rt(e),requestTime:t,responseTime:n,headers:e},(s==null?void 0:s.headers)!=null&&hs(s.headers,e)&&(L(`${this.url} modified, clear local cache`),yield Promise.all(this.cachePieces.map(i=>this.cache.removeContent(this.key,i))),this.cachePieces=[]),this.save().catch(i=>Re("save failed when onResponse:",i))})}resume(){return b(this,null,function*(){const e=yield this.cache.getItem(this.key);e==null||e.meta==null||(this.meta=W(C({},e.meta),{headers:e.meta.headers!=null?new Headers(e.meta.headers):null}),this.cachePieces=e.pieces)})}save(){return b(this,null,function*(){var s,i;const e=((s=this.meta)==null?void 0:s.headers)!=null?[...((i=this.meta)==null?void 0:i.headers).entries()]:null,n={meta:this.meta!=null?W(C({},this.meta),{headers:e}):null,pieces:this.cachePieces,usedTime:this.usedTime};yield this.cache.setItem(this.key,n)})}}function ps(r,e,{threshold:t,contentRangeExposed:n}){return function(i,o){return b(this,null,function*(){var X,U;const M=o,{url:a}=M,c=kt(M,["url"]),h=nt(o.headers);L("doWithInitialOptimization",a);const u=new J(i),m=new Headers(c.headers),l=C({start:null,end:null},h);l.start=(X=l.start)!=null?X:0;const f=l.start+t-1;(l.end==null||l.end>f)&&(l.end=f),m.set("Range",be(l));const d=new ue(a,W(C({},c),{headers:m})),g=yield((K,V)=>b(this,null,function*(){var oe;let z=null;const $=nt(V.headers);$!=null&&!Vt($)&&!n&&(z=ms(a,c.headers,e));const F=yield e(K,V);if($!=null&&F.status===206&&!F.headers.get("Content-Range")){const j=Vt($)?ce(F.headers):yield z;if(j!=null){const H=et({start:$.start,end:(oe=$.end)!=null?oe:j-1,totalSize:j});F.headers.set("Content-Range",H)}}return F}))(u,d);if(g.body==null)throw new Error("Body expected for initial response");if(g.status!==206)return g;const T=Je(g.headers);if(T==null)throw new Error("Header Content-Range expected for 206 response");const p=(()=>{var oe;const K=ce(g.headers);if(K!=null&&K<t)return g.body;const V=new Headers(c.headers),z=C({start:null,end:null},h);if(z.start=((oe=z.start)!=null?oe:0)+t,z.end!=null&&z.end<z.start)return g.body;L("doWithInitialOptimization followingRange",z),V.set("Range",be(z));const $=new ue(a,W(C({},c),{headers:V})),F=new TransformStream;return g.body.pipeTo(F.writable,{preventClose:!0}).then(()=>b(this,null,function*(){L("doWithInitialOptimization initialBody transfered");let j;try{const H=yield r(i,$);if(H.body==null)throw new Error(`Body expected for following response of ${a}`);if(H.status===200)j=st(H.body,[z.start,z.end==null?null:z.end+1]);else if(H.status===206)j=H.body;else throw new ut(H)}catch(H){if(gs(H))L("use fallback fetch for doWithInitialOptimization followingBody",H),j=(yield e(i,$)).body;else{L("doWithInitialOptimization get followingBody failed",H),F.writable.abort(H);return}}j.pipeTo(F.writable).then(()=>L("doWithInitialOptimization followingBody transfered"),H=>L("doWithInitialOptimization followingBody transfer failed",H))}),j=>b(this,null,function*(){L("doWithInitialOptimization initialBody transfer failed",j)})),F.readable})(),v=T.totalSize,y=new Headers(g.headers);if(y.delete("Content-Range"),y.delete("Content-Length"),h==null)return v!=null&&y.set("Content-Length",v+""),new ne(p,{status:200,statusText:"OK",headers:y,underlayer:g.underlayer});const S=(U=h.start)!=null?U:0,A=h.end!=null?h.end:v!=null?v-1:null;return A!=null&&y.set("Content-Length",A-S+1+""),y.set("Content-Range",et({start:S,end:A,totalSize:v})),new ne(p,{status:206,statusText:"Partial Content",headers:y,underlayer:g.underlayer})})}}function ms(r,e,t){return b(this,null,function*(){const n=new Headers(e);n.delete("Range");const s=yield t(new J,new ue(r,{method:"HEAD",headers:n}));return ce(s.headers)})}function gs(r){return[dt,se,tn,ft,ge,de].some(e=>r instanceof e)}class bs{constructor(){R(this,"locked",!1);R(this,"waitings",[]);this.unlock=this.unlock.bind(this)}lock(){return b(this,null,function*(){return this.locked?(yield new Promise(e=>{this.waitings.push(e)}),this.unlock):(this.locked=!0,this.unlock)})}unlock(){if(this.waitings.length===0){this.locked=!1;return}this.waitings.shift()()}runExclusive(e){return b(this,null,function*(){const t=yield this.lock();try{return yield e()}catch(n){throw n}finally{t()}})}}function vs(){var s,i;const{os:r,device:e,browser:t}=Jt(navigator.userAgent);let n;return typeof window!="undefined"?n=window.location:typeof self!==void 0&&(n=self.location),{os:`${r.name}_${r.version}`,browser:`${t.name}_${t.version}`,app:(s=n==null?void 0:n.host)!=null?s:"",sdk:`Web SDK v${an}`,dev_model:(i=e.model)!=null?i:"",dev_id:""}}const gt=200,bt=Q("log"),ys=te("log");class Rs{constructor(e,t=self.fetch,n=100,s=3){R(this,"env",Fe(vs()));R(this,"flushMutex",new bs);R(this,"buffer",[]);this.appInfo=e,this.fetch=t,this.flushNum=n,this.flushWait=s}callApiLog(e,t=3,n=2e3){return b(this,null,function*(){const s=Ss(e),i=s.map(u=>u.schema).join(","),o=`${zn}/v1/log/${i}`,a=Xe({appID:this.appInfo.appID,appSalt:this.appInfo.appSalt,path:o}),c={method:"POST",headers:{Authorization:a,"Content-Type":"text/csv","X-Env":this.env},body:Cs(s)},h=this.fetch;for(let u=1;u<=t;u++)try{const m=yield h(new Request(o,c));if(m.ok)return;throw new Error(`Unexpected response status: ${m.status} ${m.statusText}`)}catch(m){const l=u<t;ys("Call log API failed:",m,l?`Retry after ${n}ms`:""),l&&(yield qn(n))}})}flush(){return this.flushMutex.runExclusive(()=>{const e=this.buffer.splice(0);if(e.length===0)return;const t=Math.ceil(e.length/gt);return Promise.all(Array.from({length:t}).map((n,s)=>this.callApiLog(e.slice(s*gt,(s+1)*gt))))})}tryFlush(){return b(this,null,function*(){const e=yield this.flushMutex.runExclusive(()=>{const t=this.buffer;if(t.length===0)return!1;if(t.length>=this.flushNum)return bt("buffer.length >= this.flushNum"),!0;const n=Date.now()-t[0].log.ts;return n>=this.flushWait*1e3?(bt("waited >= this.flushWait"),!0):this.flushWait*1e3-n});if(e===!0)return this.flush();typeof e=="number"&&setTimeout(()=>this.tryFlush(),e)})}log(e,t){bt("log",e,t),this.buffer.push({schema:e,log:C({ts:Date.now()},t)}),this.tryFlush()}}function Ss(r){const e=[];return r.forEach(({schema:t,log:n})=>{let s=e.find(i=>i.schema===t);s==null&&(s={schema:t,logs:[]},e.push(s)),s.logs.push(n)}),e}function Cs(r){return r.map(e=>e.logs).map(Es).join(`
4
+
5
+ `)}function Es(r){const e=Object.keys(r[0]),t=["ts",...e.filter(i=>i!=="ts")],n=t.map(gn).join(","),s=r.map(i=>t.map(o=>i[o]).map(o=>o!=null?o+"":"").map(gn).join(","));return[n,...s].join(`
6
+ `)}function gn(r){let e=r.replace(/"/g,'""');return/("|,|\n)/.test(e)&&(e='"'+e+'"'),e}class xs{constructor(e){this.logger=e}log(e){return this.logger.log("LiveScheduleLog",e)}}const _s=new URL(We).hostname;function Ts(r,e,t,n){return b(this,null,function*(){var l,f;const s=new xs(n),i={url:e,cip:""},o=Xe(W(C({},t),{path:We})),a=Date.now();let c,h=null,u=null,m=null;try{if(h=yield fetch(We,{method:"POST",body:JSON.stringify(i),headers:{"Content-Type":"application/json",Authorization:o}}),u=Date.now(),!h.ok)throw new Error(`Call Schedule API failed, status: ${h.status} ${h.statusText}`);return m=yield h.json()}catch(d){throw c=d}finally{const d=N(Date.now(),a),w=m==null?le(c):{err_msg:"",err_desc:""};s.log(W(C({r_id:(l=h==null?void 0:h.headers.get("x-reqid"))!=null?l:"",ip:"",domain:_s,status_code:(f=h==null?void 0:h.status)!=null?f:-1},w),{t_conn:N(u,a),t_total:d,type:1}))}})}const Se=Q("dns"),vt=te("dns"),As=60,Ds=60*1e3;class ks{constructor(e,t,n=Ts,s=_e){R(this,"scheduling",new Map);R(this,"cache",new Map);R(this,"m3u8SegmentCache",new Map);this.logger=e,this.app=t,this.scheduler=n,this.cacheUrl=s}getScheduleResult(e,t){return b(this,null,function*(){var o;const n=Date.now();let s;try{s=yield this.scheduler(e,t,this.app,this.logger)}catch(a){throw vt("Live schedule failed:",a),new dt(a)}finally{e.set("dnsResolveTotalTime",N(Date.now(),n))}if(s.code===1)throw new se(`Local DNS for ${t}`);if(s.code!==0)throw new Error(`Unexpected schedule code: ${s.code}`);const i=(o=s.ttl)!=null?o:As;return{nodes:s.hosts.map(a=>{const[c,h]=Wn(a,0),[u,m]=["",0];return{addr:{ip:u,host:c,http:h+80,https:h+443,how:m},after:0}}),expireAt:Date.now()+i*1e3,ttl:i}})}saveM3u8SegmentResult(e,t){return b(this,null,function*(){const n=this.cacheUrl(e),s=this.cache.get(n);if(s==null){vt("No schedule result for m3u8:",e);return}const i=t.map(this.cacheUrl);i.forEach(o=>{this.m3u8SegmentCache.set(o,s)}),setTimeout(()=>{i.forEach(o=>{this.m3u8SegmentCache.delete(o)})},6e4)})}schedule(e,t){return b(this,null,function*(){const n=this.cacheUrl(t);if(!Te(t)&&!Ht(t)){const a=this.m3u8SegmentCache.get(n);if(a==null)throw new se("Neither m3u8 / flv URL, or m3u8 segment URL");return a}const s=this.cache.get(n);if(s!=null&&yt(s))return e.set("dnsResolveFromCache",!0),s;const i=this.scheduling.get(n);if(i!=null){let a;try{a=yield i}catch(c){if(c instanceof se)throw c}if(a!=null&&yt(a))return e.set("dnsResolveFromCache",!0),a;this.scheduling.delete(n)}const o=this.getScheduleResult(e,t);return Se("save scheduling for",t),this.scheduling.set(n,o),o.then(a=>{Se("save cache for",t),this.cache.set(n,a)},()=>{}),o})}hasResult(e){const t=this.cacheUrl(e),n=Te(e)||Ht(e)?this.cache.get(t):this.m3u8SegmentCache.get(t);return n!=null&&yt(n)}do(e,t,n,s){return b(this,null,function*(){let i;Se("schedule for",t);const o=yield this.schedule(e,t);Se("scheduled for",t);for(let a=0;a<n;a++){const c=Ls(o.nodes);if(c==null)break;try{Se("do job with",c,t),yield s(c.addr),o.expireAt=Date.now()+o.ttl*1e3;return}catch(h){if(vt("do job with",c.addr,"failed:",h,t),i=h,re(h))break;Le(h)&&(c.after=Date.now()+Ds)}}throw i=re(i)?i:new ft(i),i})}}function bn(r,e=Date.now()){return r.after<e}function Ls(r){for(const e of r)if(bn(e))return e;return null}function yt(r){const e=Date.now();return r.expireAt<=e?!1:r.nodes.some(t=>bn(t,e))}const fe=Q("utils/fetch");function vn(r){return b(this,null,function*(){var f,d;const e=yield fetch(r),t=nt(r.headers);if(t==null||e.status!==206||e.body==null)return e;const{body:n,status:s,statusText:i,headers:o}=e,a=(f=Je(o))==null?void 0:f.end,c=100;let h=(d=t.start)!=null?d:0,u=n.getReader(),m=null;const l=new ReadableStream({pull:w=>b(this,null,function*(){m!=null&&(clearTimeout(m),m=null),u==null&&(fe("resume on pull"),r.headers.set("range",be(W(C({},t),{start:h}))),u=(yield fetch(r)).body.getReader());const{value:g,done:T}=yield u.read();if(T){fe("read done"),w.close();return}try{w.enqueue(g)}catch(p){fe("enqueue failed:",p),u==null||u.cancel("target stream enqueue failed");return}if(h+=g.byteLength,a!=null&&h>a){fe("all enqueued"),u.cancel("all enqueued"),w.close();return}m=setTimeout(()=>b(this,null,function*(){m=null,u!=null&&(fe("cancel after long time no pull"),u.cancel("long time no read"),u=null)}),c)}),cancel:w=>{fe("cancel",w),u==null||u.cancel(w)}});return new Response(l,{status:s,statusText:i,headers:o})})}class yn{constructor(e){this.logger=e}start(e,t){let n;const s=Date.now(),i=c=>{var f,d,w,g,T,p,v,y,S,A,M;const h=t.headers.get("Range"),u=h==null?null:Gt(h),m=n==null?void 0:n.headers.get("X-M-Reqid"),l=m?m.split(", ").pop():"";this.log(C({ip:(f=e.get("downloadReqIP"))!=null?f:"",domain:(d=e.get("taskDomain"))!=null?d:"",range_st:(w=u==null?void 0:u.start)!=null?w:-1,range_end:(g=u==null?void 0:u.end)!=null?g:-1,retry:(T=e.get("downloadRetryCount"))!=null?T:0,ftask_id:(p=e.get("downloadFileTaskID"))!=null?p:"",task_id:(v=e.get("taskID"))!=null?v:"",d_id:(y=e.get("doID"))!=null?y:"",ts_st:s,r_id:l,elt_id:(S=e.get("downloadEltID"))!=null?S:"",status_code:(A=n==null?void 0:n.status)!=null?A:-1,t_req_msg:N(e.get("downloadReqMessageAt"),s),t_conn:N(e.get("downloadConnectionAt"),(M=e.get("downloadReqMessageAt"))!=null?M:s),t_tls:-1,t_st_trans:N(e.get("downloadStartTransferAt"),e.get("downloadConnectionAt")),t_resp_msg:N(e.get("downloadRespMessageAt"),e.get("downloadStartTransferAt")),err_msg:"",err_desc:"",t_content_trans:-1,t_total:-1,resp_size:-1},c))};return{onError:c=>{const h=Date.now();i(C({t_total:N(h,s)},le(c)))},onResponse:c=>{n=c,n.bodyReadResult.then(h=>{var l;const u=Date.now(),m=h.success?null:le(h.error);i(C({t_content_trans:N(u,(l=e.get("downloadRespMessageAt"))!=null?l:e.get("downloadStartTransferAt")),t_total:N(u,s),resp_size:h.size},m))})}}}wrap(e,t,n){return b(this,null,function*(){const s=this.start(e,t);try{const i=yield n();return s.onResponse(i),i}catch(i){throw s.onError(i),i}})}log(e){return this.logger.log("DownloadLog",e)}}class Bs{constructor(e){R(this,"downloadLogger");this.downloadLogger=new yn(e)}fetch(e,t,n=!0,s=!0){return b(this,null,function*(){return this.downloadLogger.wrap(e,t,()=>b(this,null,function*(){const u=t,{url:i}=u,o=kt(u,["url"]),a=new Request(i,C(C(C({},n?Rn:null),s?{cache:"no-store"}:null),o)),c=yield vn(a),h=Date.now();return e.set("downloadConnectionAt",h),e.set("downloadStartTransferAt",h),ke(c)}))})}}const Rn={mode:"cors",credentials:"omit"};class Sn{constructor(e,t=!0,n=vn){R(this,"downloadLogger");this.https=t,this.nativeFetch=n,this.downloadLogger=new yn(e)}fetch(e,t,n){return b(this,null,function*(){return this.downloadLogger.wrap(e,t,()=>b(this,null,function*(){e.set("downloadReqIP",n.host);const s=this.nativeFetch,i=Ps(t,n,this.https),o=yield s(i),a=Date.now();return e.set("downloadConnectionAt",a),e.set("downloadStartTransferAt",a),ke(o)}))})}dispose(){}}function Ps(r,e,t=!0){const{url:n,headers:s,method:i,signal:o}=r,a=new URL(n),c=a.host,h=new Headers(s);a.protocol=t?"https:":"http:",a.host=`${e.host}:${t?e.https:e.http}`,a.pathname=`/${c}${a.pathname}`;let u=a.toString();const m=ct()?{cache:"no-store"}:null;if(h.has("X-Miku-Agent")){const l=h.get("X-Miku-Agent");h.delete("X-Miku-Agent");const f=u.includes("?")?"&":"?",d=["X-Miku-Agent",l].map(encodeURIComponent).join("=");u=u+f+d}return new Request(u,W(C(C({},Rn),m),{headers:h,method:i,signal:o}))}function Ms(r){const e=[],t=r.split(`
7
+ `).map(s=>s.trim()).filter(s=>s.length>0);if(t[0]!=="#EXTM3U")throw new Error("Invalid Extended M3U Playlist");let n=null;for(const s of t){if(s.startsWith("#")){s.startsWith("#EXTINF:")&&(n=s);continue}n!=null&&(e.push({uri:s}),n=null)}return e}const Cn=Q("client"),Rt=te("client");class Is{constructor(e,t){R(this,"fileTasks",new Map);R(this,"cache");R(this,"cdnResolver");R(this,"liveResolver");R(this,"nativeHttpClient");R(this,"http");R(this,"liveHttp");R(this,"patterns");R(this,"logger");var o,a,c,h,u;this.config=t,t!=null&&t.debug&&Pt(),this.cache=new Vr(t==null?void 0:t.cache),this.logger=(o=t==null?void 0:t.logger)!=null?o:new Rs(e),this.cdnResolver=(a=t==null?void 0:t.resolver)!=null?a:new Br(this.logger,e,t==null?void 0:t.dnsResolver,t==null?void 0:t.cacheUrl),this.liveResolver=(c=t==null?void 0:t.liveResolver)!=null?c:new ks(this.logger,e,t==null?void 0:t.scheduler),this.nativeHttpClient=new Bs(this.logger);const n=(h=t==null?void 0:t.httpClient)!=null?h:new Sn(this.logger),s=(u=t==null?void 0:t.liveHttpClient)!=null?u:new Sn(this.logger);this.patterns=C(C({},Ke),t==null?void 0:t.patterns),this.http=new cn(this.logger,n,this.cdnResolver,6e3);const i=2e3;this.liveHttp=new cn(this.logger,s,this.liveResolver,i)}prepare(e){return b(this,null,function*(){return Promise.all(e.map(t=>this.cdnResolver.resolveDomain(new J,t))).catch(t=>{Rt("prepare failed:",t)})})}createTask(e,t){const n=e.indexOf("#");return n>=0&&(e=e.slice(0,n)),new un(e,t!=null?t:null,this.logger,(s,i)=>(s.set("taskType",1),this.startTask(s,i)))}createLiveTask(e,t){const n=e.indexOf("#");return n>=0&&(e=e.slice(0,n)),new un(e,t!=null?t:null,this.logger,(s,i)=>(s.set("taskType",2),this.startLiveTask(s,i)))}startTask(e,t){return b(this,null,function*(){const n=new URL(t.url).hostname,s=yield this.cdnResolver.getCacheKey(t.url,n);let i=this.fileTasks.get(s);if(i==null){const o=()=>b(this,null,function*(){var c;const a=yield this.cdnResolver.getMediaOptimization(n);return C(C(C({},fs),a),(c=this.config)==null?void 0:c.mediaOptimization)});i=new ws(this.cache,this.nativeHttpClient,this.http,s,t.url,this.patterns,o),this.fileTasks.set(s,i)}return i.startTask(e,t)})}saveM3u8SegmentResult(e,t){return b(this,null,function*(){const n=yield hr(t),i=Ms(n).map(o=>Fn(o.uri,e));Cn("saveM3u8SegmentResult",_e(e),i.map(_e)),yield this.liveResolver.saveM3u8SegmentResult(e,i)})}startLiveTask(e,t){return b(this,null,function*(){var h,u;const n={};t.range!=null&&(n.Range=be({start:t.range.start,end:t.range.end==null?null:t.range.end-1}));const s=new ue(t.url,{method:"GET",headers:n,signal:t.signal});let i,a=((u=(h=this.config)==null?void 0:h.liveOptimization)!=null?u:!0)&&Te(t.url)&&!this.liveResolver.hasResult(t.url);if(a){Cn("use nativeClient for",t.url);const m=this.nativeHttpClient.fetch(e,s);this.liveHttp.do(new J(e),s).catch(l=>{Rt("do failed when prefetch for liveOptimization:",l)}),i=yield m}else i=yield this.liveHttp.do(e,s);if(i.body==null)throw new Error("Body expected");if(i.status!==200&&i.status!==206)throw new Error(`Invalid response, status: ${i.status}`);let c=i.body;if(!a&&at()&&Te(t.url)){const[m,l]=i.body.tee();this.saveM3u8SegmentResult(t.url,l).catch(f=>{Rt("Save M3u8 segment cache failed:",t.url,f)}),c=m}return new hn(c,ce(i.headers),rt(i.headers),i.headers.get("Content-Type"),i)})}dispose(){this.cache.dispose()}}function Os(r){return r&&r.mikuDeliveryProxy===!0}const Ns="md_download_url",zs="md_download_filename";function Hs(r,e,t){return Mt(r,{[Ns]:e,[zs]:t})}const Us="MIKU_DELIVERY_PROXY_CONFIG";function qs(r,e){const t=s=>s==null?void 0:s.map(i=>({source:i.source,flags:i.flags})),n=W(C({},e),{patterns:e.patterns==null?void 0:Un(e.patterns,s=>t(s))});return Mt(r,{[Us]:JSON.stringify(n)})}function En(r){return Array.isArray(r)?{cdn:r,live:[]}:C({cdn:[],live:[]},r)}function $s(r,e){const t=r.hostname;return e.includes("*")||e.includes(t)}function Ws(r){const e={},t=[];for(const{url:n,ecdn:s,fallback:i}of r){const o=new URL(n),a=o.hostname,c=zt(o.pathname);if(a!=="localhost"&&a.indexOf(".")<0||/\.qnqcdn\.net$/.test(a))continue;let h=e[a];h==null&&(e[a]=h={exts:[],total:0,ecdn:0,fallback:0}),h.exts.includes(c)||h.exts.push(c),h.total++,s&&h.ecdn++,i&&h.fallback++,Nt(o,Ke)&&!t.includes(a)&&t.push(a)}return e}function Fs(r,e){const t={};for(const{url:n,ecdn:s,size:i}of e){const o=new URL(n),a=o.hostname,c=zt(o.pathname);if(!(!r.includes(a)&&!r.includes("*")))for(const h of[`${a}/*`,`${a}/*.${c||"<none>"}`]){let u=t[h];u==null&&(t[h]=u={total:0,totalSize:0,ecdn:0,ecdnSize:0}),u.total++,u.totalSize+=i!=null?i:0,s&&(u.ecdn++,u.ecdnSize+=i!=null?i:0)}}return t}function js(r,e,t){return b(this,null,function*(){return r=qs(r,e),yield navigator.serviceWorker.register(r,t)})}function Ks(){return b(this,null,function*(){Vs()})}function Vs(){function r(e){var n;const t={mikuDeliveryProxy:!0,type:`window-${e}`};(n=navigator.serviceWorker.controller)==null||n.postMessage(t)}r("available"),window.addEventListener("pageshow",()=>r("available")),window.addEventListener("pagehide",()=>r("unavailable")),window.addEventListener("beforeunload",()=>r("unavailable"))}function Gs(r,e){navigator.serviceWorker.addEventListener("message",({data:t})=>{if(!Os(t)||t.type!=="window-fetch-items")return;const n=Ws(t.items),s=En(r.domains),i=Fs([...s.cdn,...s.live],t.items);e(n,i)}),window.addEventListener("load",()=>{setTimeout(()=>{var n;const t={mikuDeliveryProxy:!0,type:"get-window-fetch-items"};(n=navigator.serviceWorker.controller)==null||n.postMessage(t)},1e3)})}function Qs(r,e,t){return b(this,null,function*(){const n=Xs();if(n!=null){console.warn("Ability not OK for Miku Delivery Proxy API:",n);return}e.debug&&Pt(),e.anchorDownload&&pr()&&(console.warn("AnchorDownload Proxy is not supported in Mobile Browsers for compatibility reasons."),e=W(C({},e),{anchorDownload:!1}));function s(o){if(e.anchorDownload){const{cdn:a}=En(e.domains),c=C(C({},Ke),e.patterns);Ys(o.scope,a,c)}}const i=js(r,e,t).then(o=>{var c,h;const a=(h=(c=o.installing)!=null?c:o.waiting)!=null?h:o.active;if(a==null)throw new Error("Service Worker not found");a.state==="activated"?s(o):a.onstatechange=()=>{a.state==="activated"&&s(o)}});yield Promise.all([Ks(),i,Wr(),kr()])})}function Xs(){return"serviceWorker"in navigator?null:"navigator.serviceWorker not available"}function Ys(r,e,t){document.body.addEventListener("click",n=>{if(n.target==null||n.defaultPrevented)return;const s=Zs(n.target);if(s==null||!s.hasAttribute("download"))return;const{href:i,download:o}=s,a=new URL(i);if($s(a,e)&&Nt(a,t)){n.preventDefault();const c=document.createElement("iframe");c.src=Hs(r,i,o),c.style.display="none",document.body.append(c),setTimeout(()=>{document.body.removeChild(c)},1e4)}})}function Zs(r){for(;r!=null&&r.tagName!=="BODY";){if(r.tagName==="A")return r;r=r.parentElement}return null}return k.Client=Is,k.initProxy=Qs,k.listenStatistics=Gs,Object.defineProperties(k,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}}),k}({});