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,7 @@
1
+ var ai=Object.defineProperty,li=Object.defineProperties;var ci=Object.getOwnPropertyDescriptors;var Ge=Object.getOwnPropertySymbols;var zn=Object.prototype.hasOwnProperty,Fn=Object.prototype.propertyIsEnumerable;var Pt=(M,E,B)=>E in M?ai(M,E,{enumerable:!0,configurable:!0,writable:!0,value:B}):M[E]=B,S=(M,E)=>{for(var B in E||(E={}))zn.call(E,B)&&Pt(M,B,E[B]);if(Ge)for(var B of Ge(E))Fn.call(E,B)&&Pt(M,B,E[B]);return M},V=(M,E)=>li(M,ci(E));var Qe=(M,E)=>{var B={};for(var O in M)zn.call(M,O)&&E.indexOf(O)<0&&(B[O]=M[O]);if(M!=null&&Ge)for(var O of Ge(M))E.indexOf(O)<0&&Fn.call(M,O)&&(B[O]=M[O]);return B};var y=(M,E,B)=>(Pt(M,typeof E!="symbol"?E+"":E,B),B);var b=(M,E,B)=>new Promise((O,me)=>{var Xe=K=>{try{be(B.next(K))}catch(q){me(q)}},ge=K=>{try{be(B.throw(K))}catch(q){me(q)}},be=K=>K.done?O(K.value):Promise.resolve(K.value).then(Xe,ge);be((B=B.apply(M,E)).next())});(function(){"use strict";let M=!1;function E(s){return(...e)=>{M&&console.debug(`[${s}] [${(Date.now()/1e3).toFixed(3)}]`,...e)}}function B(){M=!0}function O(s){return(...e)=>{console.warn(`[${s}] [${(Date.now()/1e3).toFixed(3)}]`,...e)}}class me{constructor(){y(this,"map",new Map)}on(e,t){var i;const r=[...(i=this.map.get(e))!=null?i:[],t];return this.map.set(e,r),()=>this.off(e,t)}once(e,t){const n=this.on(e,r=>{n(),t(r)});return n}off(e,t){var i;const r=((i=this.map.get(e))!=null?i:[]).filter(o=>o!==t);this.map.set(e,r)}emit(...e){var i;const[t,n]=e;((i=this.map.get(t))!=null?i:[]).forEach(o=>{o(n)})}dispose(){this.map.clear()}}const Xe=self,ge=E("utils/sw/clients");class be{constructor(e=Xe){y(this,"clientIds",[]);y(this,"removed",new Set);y(this,"emitter",new me);this.swScope=e}add(e){this.clientIds.includes(e)||this.removed.has(e)||(this.clientIds.push(e),ge("add",e,this.clientIds))}remove(e){const t=this.clientIds.indexOf(e);t<0||(this.clientIds.splice(t,1),this.removed.add(e),this.emitter.emit("remove",e),ge("remove",e,this.clientIds))}set(e){const t=this.clientIds,n=[],r=[];t.forEach(i=>{const o=e.indexOf(i);o>=0?(n.push(i),e.splice(o,1)):r.push(i)}),this.clientIds=[...n,...e],r.forEach(i=>{this.emitter.emit("remove",i)}),(r.length>0||e.length>0)&&ge("set",this.clientIds)}getAllIds(){return this.clientIds}getAll(){return b(this,null,function*(){const e=(yield this.swScope.clients.matchAll({type:"window"})).slice();return e.reverse(),this.set(e.map(t=>t.id)),this.clientIds.map(t=>e.find(n=>n.id===t))})}get(e){return b(this,null,function*(){const t=yield this.swScope.clients.get(e);return t!=null?this.add(e):this.remove(e),t})}onRemove(e){return this.emitter.on("remove",e)}whenRemoved(e,t){if(!this.clientIds.includes(e))return;const n=this.emitter.on("remove",r=>{r===e&&(n(),t())})}}const K=new be;class q{constructor(e){y(this,"value");this.value=e!=null?S({},e.value):{}}set(e,t){this.value[e]=t}get(e){return this.value[e]}}var te=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function $n(s){var e=s.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(s).forEach(function(n){var r=Object.getOwnPropertyDescriptor(s,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return s[n]}})}),t}var Ye={exports:{}};(function(s,e){(function(t,n){var r="1.0.2",i="",o="?",l="function",c="undefined",d="object",u="string",p="major",a="model",f="name",h="type",w="vendor",g="version",x="architecture",m="console",v="mobile",R="tablet",C="smarttv",D="wearable",P="embedded",J=255,F="Amazon",Q="Apple",Y="ASUS",U="BlackBerry",$="Browser",W="Chrome",le="Edge",j="Firefox",z="Google",kn="Huawei",At="LG",Dt="Microsoft",Ln="Motorola",We="Opera",It="Samsung",kt="Sony",Mn="Xiaomi",Lt="Zebra",Bn="Facebook",ri=function(_,I){var T={};for(var N in _)I[N]&&I[N].length%2===0?T[N]=I[N].concat(_[N]):T[N]=_[N];return T},je=function(_){for(var I={},T=0;T<_.length;T++)I[_[T].toUpperCase()]=_[T];return I},Pn=function(_,I){return typeof _===u?Ae(I).indexOf(Ae(_))!==-1:!1},Ae=function(_){return _.toLowerCase()},ii=function(_){return typeof _===u?_.replace(/[^\d\.]/g,i).split(".")[0]:n},Mt=function(_,I){if(typeof _===u)return _=_.replace(/^\s\s*/,i).replace(/\s\s*$/,i),typeof I===c?_:_.substring(0,J)},De=function(_,I){for(var T=0,N,A,Ke,L,Ie,ee;T<I.length&&!Ie;){var Hn=I[T],Un=I[T+1];for(N=A=0;N<Hn.length&&!Ie;)if(Ie=Hn[N++].exec(_),Ie)for(Ke=0;Ke<Un.length;Ke++)ee=Ie[++A],L=Un[Ke],typeof L===d&&L.length>0?L.length===2?typeof L[1]==l?this[L[0]]=L[1].call(this,ee):this[L[0]]=L[1]:L.length===3?typeof L[1]===l&&!(L[1].exec&&L[1].test)?this[L[0]]=ee?L[1].call(this,ee,L[2]):n:this[L[0]]=ee?ee.replace(L[1],L[2]):n:L.length===4&&(this[L[0]]=ee?L[3].call(this,ee.replace(L[1],L[2])):n):this[L]=ee||n;T+=2}},Bt=function(_,I){for(var T in I)if(typeof I[T]===d&&I[T].length>0){for(var N=0;N<I[T].length;N++)if(Pn(I[T][N],_))return T===o?n:T}else if(Pn(I[T],_))return T===o?n:T;return _},oi={"1.0":"/8","1.2":"/1","1.3":"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"},On={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"},Nn={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,We+" Mini"]],[/\bopr\/([\w\.]+)/i],[g,[f,We]],[/(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,We+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[g,[f,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[g,[f,"Dolphin"]],[/coast\/([\w\.]+)/i],[g,[f,We+" 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,Bn],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,W+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[f,W+" 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,Bt,oi]],[/(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],[[x,"amd64"]],[/(ia32(?=;))/i],[[x,Ae]],[/((?:i[346]|x)86)[;\)]/i],[[x,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[x,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[x,"armhf"]],[/windows (ce|mobile); ppc;/i],[[x,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[x,/ower/,i,Ae]],[/(sun4\w)[;\)]/i],[[x,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[x,Ae]]],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],[a,[w,It],[h,R]],[/\b((?:s[cgp]h|gt|sm)-\w+|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[a,[w,It],[h,v]],[/\((ip(?:hone|od)[\w ]*);/i],[a,[w,Q],[h,v]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[a,[w,Q],[h,R]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[a,[w,kn],[h,R]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}-[atu]?[ln][01259x][012359][an]?)\b(?!.+d\/s)/i],[a,[w,kn],[h,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],[[a,/_/g," "],[w,Mn],[h,v]],[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[a,/_/g," "],[w,Mn],[h,R]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[a,[w,"OPPO"],[h,v]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[a,[w,"Vivo"],[h,v]],[/\b(rmx[12]\d{3})(?: bui|;|\))/i],[a,[w,"Realme"],[h,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],[a,[w,Ln],[h,v]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[a,[w,Ln],[h,R]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[a,[w,At],[h,R]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[a,[w,At],[h,v]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[a,[w,"Lenovo"],[h,R]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[a,/_/g," "],[w,"Nokia"],[h,v]],[/(pixel c)\b/i],[a,[w,z],[h,R]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[a,[w,z],[h,v]],[/droid.+ ([c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[a,[w,kt],[h,v]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[a,"Xperia Tablet"],[w,kt],[h,R]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[a,[w,"OnePlus"],[h,v]],[/(alexa)webm/i,/(kf[a-z]{2}wi)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[a,[w,F],[h,R]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[a,/(.+)/g,"Fire Phone $1"],[w,F],[h,v]],[/(playbook);[-\w\),; ]+(rim)/i],[a,w,[h,R]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[a,[w,U],[h,v]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[a,[w,Y],[h,R]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[a,[w,Y],[h,v]],[/(nexus 9)/i],[a,[w,"HTC"],[h,R]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic|sony)[-_ ]?([-\w]*)/i],[w,[a,/_/g," "],[h,v]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[a,[w,"Acer"],[h,R]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[a,[w,"Meizu"],[h,v]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[a,[w,"Sharp"],[h,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,a,[h,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,a,[h,R]],[/(surface duo)/i],[a,[w,Dt],[h,R]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[a,[w,"Fairphone"],[h,v]],[/(u304aa)/i],[a,[w,"AT&T"],[h,v]],[/\bsie-(\w*)/i],[a,[w,"Siemens"],[h,v]],[/\b(rct\w+) b/i],[a,[w,"RCA"],[h,R]],[/\b(venue[\d ]{2,7}) b/i],[a,[w,"Dell"],[h,R]],[/\b(q(?:mv|ta)\w+) b/i],[a,[w,"Verizon"],[h,R]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[a,[w,"Barnes & Noble"],[h,R]],[/\b(tm\d{3}\w+) b/i],[a,[w,"NuVision"],[h,R]],[/\b(k88) b/i],[a,[w,"ZTE"],[h,R]],[/\b(nx\d{3}j) b/i],[a,[w,"ZTE"],[h,v]],[/\b(gen\d{3}) b.+49h/i],[a,[w,"Swiss"],[h,v]],[/\b(zur\d{3}) b/i],[a,[w,"Swiss"],[h,R]],[/\b((zeki)?tb.*\b) b/i],[a,[w,"Zeki"],[h,R]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[w,"Dragon Touch"],a,[h,R]],[/\b(ns-?\w{0,9}) b/i],[a,[w,"Insignia"],[h,R]],[/\b((nxa|next)-?\w{0,9}) b/i],[a,[w,"NextBook"],[h,R]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[w,"Voice"],a,[h,v]],[/\b(lvtel\-)?(v1[12]) b/i],[[w,"LvTel"],a,[h,v]],[/\b(ph-1) /i],[a,[w,"Essential"],[h,v]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[a,[w,"Envizen"],[h,R]],[/\b(trio[-\w\. ]+) b/i],[a,[w,"MachSpeed"],[h,R]],[/\btu_(1491) b/i],[a,[w,"Rotor"],[h,R]],[/(shield[\w ]+) b/i],[a,[w,"Nvidia"],[h,R]],[/(sprint) (\w+)/i],[w,a,[h,v]],[/(kin\.[onetw]{3})/i],[[a,/\./g," "],[w,Dt],[h,v]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[a,[w,Lt],[h,R]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[a,[w,Lt],[h,v]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[w,a,[h,m]],[/droid.+; (shield) bui/i],[a,[w,"Nvidia"],[h,m]],[/(playstation [345portablevi]+)/i],[a,[w,kt],[h,m]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[a,[w,Dt],[h,m]],[/smart-tv.+(samsung)/i],[w,[h,C]],[/hbbtv.+maple;(\d+)/i],[[a,/^/,"SmartTV"],[w,It],[h,C]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[w,At],[h,C]],[/(apple) ?tv/i],[w,[a,Q+" TV"],[h,C]],[/crkey/i],[[a,W+"cast"],[w,z],[h,C]],[/droid.+aft(\w)( bui|\))/i],[a,[w,F],[h,C]],[/\(dtv[\);].+(aquos)/i],[a,[w,"Sharp"],[h,C]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i],[[w,Mt],[a,Mt],[h,C]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[h,C]],[/((pebble))app/i],[w,a,[h,D]],[/droid.+; (glass) \d/i],[a,[w,z],[h,D]],[/droid.+; (wt63?0{2,3})\)/i],[a,[w,Lt],[h,D]],[/(quest( 2)?)/i],[a,[w,Bn],[h,D]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[w,[h,P]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],[a,[h,v]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[a,[h,R]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[h,R]],[/(phone|mobile(?:[;\/]| safari)|pda(?=.+windows ce))/i],[[h,v]],[/(android[-\w\. ]{0,9});.+buil/i],[a,[w,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[g,[f,le+"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,Bt,On]],[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[f,"Windows"],[g,Bt,On]],[/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,U]],[/(?: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,W+"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]]},Z=function(_,I){if(typeof _===d&&(I=_,_=n),!(this instanceof Z))return new Z(_,I).getResult();var T=_||(typeof t!==c&&t.navigator&&t.navigator.userAgent?t.navigator.userAgent:i),N=I?ri(Nn,I):Nn;return this.getBrowser=function(){var A={};return A[f]=n,A[g]=n,De.call(A,T,N.browser),A.major=ii(A.version),A},this.getCPU=function(){var A={};return A[x]=n,De.call(A,T,N.cpu),A},this.getDevice=function(){var A={};return A[w]=n,A[a]=n,A[h]=n,De.call(A,T,N.device),A},this.getEngine=function(){var A={};return A[f]=n,A[g]=n,De.call(A,T,N.engine),A},this.getOS=function(){var A={};return A[f]=n,A[g]=n,De.call(A,T,N.os),A},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 T},this.setUA=function(A){return T=typeof A===u&&A.length>J?Mt(A,J):A,this},this.setUA(T),this};Z.VERSION=r,Z.BROWSER=je([f,g,p]),Z.CPU=je([x]),Z.DEVICE=je([a,w,h,m,v,C,R,D,P]),Z.ENGINE=Z.OS=je([f,g]),s.exports&&(e=s.exports=Z),e.UAParser=Z;var pe=typeof t!==c&&(t.jQuery||t.Zepto);if(pe&&!pe.ua){var Ve=new Z;pe.ua=Ve.getResult(),pe.ua.get=function(){return Ve.getUA()},pe.ua.set=function(_){Ve.setUA(_);var I=Ve.getResult();for(var T in I)pe.ua[T]=I[T]}}})(typeof window=="object"?window:te)})(Ye,Ye.exports);const Ze=Ye.exports,qn=Ze(navigator.userAgent);let ve;function ke(){if(ve!=null)return ve;try{new Response(new ReadableStream),ve=!0}catch(s){ve=!1}return ve}function ce(){return!(typeof TransformStream=="undefined"||!ke())}function Je(){return qn.browser.name!=="Safari"}function Ot(s){s[0]==="?"&&(s=s.slice(1));const e={};return s.split("&").forEach(t=>{const[n,r]=t.split("=");e[decodeURIComponent(n)]=r==null?null:decodeURIComponent(r)}),e}function et(s){return Object.keys(s).map(e=>[e,s[e]]).filter(([e,t])=>t!==void 0).map(([e,t])=>t===null?encodeURIComponent(e):[e,t].map(encodeURIComponent).join("=")).join("&")}function tt(){const s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",e=s.length;let t="";for(let n=0;n<20;n++)t+=s[Math.floor(Math.random()*e)];return t}function Wn(s,e){const t={};return Object.keys(s).forEach(n=>{t[n]=e(s[n])}),t}function jn(s){return new Promise(e=>setTimeout(e,s))}class Nt extends Error{constructor(){super(...arguments);y(this,"name","TimeoutError")}}function Ht(s,e){return new Promise((t,n)=>{setTimeout(()=>n(new Nt(e+" timeout")),s)})}class Vn extends Error{constructor(){super(...arguments);y(this,"name","AbortError")}}function Ut(s,e){e.aborted?s.abort(e.reason):e.addEventListener("abort",()=>{s.abort(e.reason)})}const zt={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 Ft(s,e,t=["image","media","other"]){s.search="",s.hash="";const n=s.toString();return t.some(r=>{var i;return((i=e[r])!=null?i:[]).some(o=>o.test(n))})}function ye(s){const e=new URL(s);return e.search="",e.hash="",e.toString()}function ue(s){return s instanceof Error?{err_msg:s.name,err_desc:s.message}:{err_msg:"Unknown",err_desc:s+""}}function H(s,e){return s==null||s===-1||e==null||e===-1?-1:(s-e)/1e3}function Kn(s,e=80){const[t,n]=s.split(":"),r=n?parseInt(n,10):e;return[t,r]}function Gn(s,e){return new URL(s,e).toString()}function Le(s){const[e]=s.split("?");return e.endsWith(".m3u8")}function $t(s){const[e]=s.split("?");return e.endsWith(".flv")}function Qn(s){const e=[],t=s.length;for(let n=0;n<t;n++){let r=s.charCodeAt(n);if(r>=55296&&r<=56319&&t>n+1){const i=s.charCodeAt(n+1);i>=56320&&i<=57343&&(r=(r-55296)*1024+i-56320+65536,n+=1)}if(r<128){e.push(r);continue}if(r<2048){e.push(r>>6|192),e.push(r&63|128);continue}if(r<55296||r>=57344&&r<65536){e.push(r>>12|224),e.push(r>>6&63|128),e.push(r&63|128);continue}if(r>=65536&&r<=1114111){e.push(r>>18|240),e.push(r>>12&63|128),e.push(r>>6&63|128),e.push(r&63|128);continue}e.push(239,191,189)}return new Uint8Array(e).buffer}function Xn(s){return s^=s>>>16,s=Math.imul(s,2246822507),s^=s>>>13,s=Math.imul(s,3266489909),s^=s>>>16,s>>>0}const Me=new Uint32Array([3432918353,461845907]);function nt(s,e){return s<<e|s>>>32-e}function Yn(s,e){const t=s.byteLength/4|0,n=new Uint32Array(s,0,t);for(let r=0;r<t;r++)n[r]=Math.imul(n[r],Me[0]),n[r]=nt(n[r],15),n[r]=Math.imul(n[r],Me[1]),e[0]=e[0]^n[r],e[0]=nt(e[0],13),e[0]=Math.imul(e[0],5)+3864292196}function Zn(s,e){const t=s.byteLength/4|0,n=s.byteLength%4;let r=0;const i=new Uint8Array(s,t*4,n);switch(n){case 3:r=r^i[2]<<16;case 2:r=r^i[1]<<8;case 1:r=r^i[0]<<0,r=Math.imul(r,Me[0]),r=nt(r,15),r=Math.imul(r,Me[1]),e[0]=e[0]^r}}function Jn(s,e){e[0]=e[0]^s.byteLength,e[0]=Xn(e[0])}function es(s,e){if(e=e?e|0:0,typeof s=="string"&&(s=Qn(s)),!(s instanceof ArrayBuffer))throw new TypeError("Expected key to be ArrayBuffer or string");const t=new Uint32Array([e]);return Yn(s,t),Zn(s,t),Jn(s,t),t.buffer}class ts{constructor(e=ns){y(this,"circle",new Map);y(this,"members",new Set);y(this,"membersReplicas",new Map);y(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 r=this.hasher(qt(e,n));this.circle.set(r,e)}this.members.add(e),this.membersReplicas.set(e,t)}_remove({key:e,replicas:t}){for(let n=0;n<t;n++){const r=this.hasher(qt(e,n));this.circle.delete(r)}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),r=this.sortedHashes[n];return this.circle.get(r)}getN(e,t,n){const r=n?n.size:this.members.size;if(r===0||t===0)return[];t>r&&(t=r);const i=this.hasher(e),o=this.search(i),l=[];for(let c=o;;c++){c>=this.sortedHashes.length&&(c=0);const d=this.sortedHashes[c],u=this.circle.get(d);if(!l.includes(u)&&(!n||n.has(u))&&(l.push(u),l.length>=t))return l}}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 qt(s,e){return e+s}const ns=ss;function ss(s){const e=es(s);return new Uint32Array(e)[0]}const st="https://api.qiniudns.com/v1/resolve",rs="https://api.qiniudns.com",rt="https://pili-zeus.qiniuapi.com/v1/scheduling";var Wt={exports:{}};function is(s){throw new Error('Could not dynamically require "'+s+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var it={exports:{}};const os=$n(Object.freeze(Object.defineProperty({__proto__:null,default:{}},Symbol.toStringTag,{value:"Module"})));var jt;function Be(){return jt||(jt=1,function(s,e){(function(t,n){s.exports=n()})(te,function(){var t=t||function(n,r){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 te!="undefined"&&te.crypto&&(i=te.crypto),!i&&typeof is=="function")try{i=os}catch(m){}var o=function(){if(i){if(typeof i.getRandomValues=="function")try{return i.getRandomValues(new Uint32Array(1))[0]}catch(m){}if(typeof i.randomBytes=="function")try{return i.randomBytes(4).readInt32LE()}catch(m){}}throw new Error("Native crypto module could not be used to get secure random number.")},l=Object.create||function(){function m(){}return function(v){var R;return m.prototype=v,R=new m,m.prototype=null,R}}(),c={},d=c.lib={},u=d.Base=function(){return{extend:function(m){var v=l(this);return m&&v.mixIn(m),(!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 m=this.extend();return m.init.apply(m,arguments),m},init:function(){},mixIn:function(m){for(var v in m)m.hasOwnProperty(v)&&(this[v]=m[v]);m.hasOwnProperty("toString")&&(this.toString=m.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),p=d.WordArray=u.extend({init:function(m,v){m=this.words=m||[],v!=r?this.sigBytes=v:this.sigBytes=m.length*4},toString:function(m){return(m||f).stringify(this)},concat:function(m){var v=this.words,R=m.words,C=this.sigBytes,D=m.sigBytes;if(this.clamp(),C%4)for(var P=0;P<D;P++){var J=R[P>>>2]>>>24-P%4*8&255;v[C+P>>>2]|=J<<24-(C+P)%4*8}else for(var F=0;F<D;F+=4)v[C+F>>>2]=R[F>>>2];return this.sigBytes+=D,this},clamp:function(){var m=this.words,v=this.sigBytes;m[v>>>2]&=4294967295<<32-v%4*8,m.length=n.ceil(v/4)},clone:function(){var m=u.clone.call(this);return m.words=this.words.slice(0),m},random:function(m){for(var v=[],R=0;R<m;R+=4)v.push(o());return new p.init(v,m)}}),a=c.enc={},f=a.Hex={stringify:function(m){for(var v=m.words,R=m.sigBytes,C=[],D=0;D<R;D++){var P=v[D>>>2]>>>24-D%4*8&255;C.push((P>>>4).toString(16)),C.push((P&15).toString(16))}return C.join("")},parse:function(m){for(var v=m.length,R=[],C=0;C<v;C+=2)R[C>>>3]|=parseInt(m.substr(C,2),16)<<24-C%8*4;return new p.init(R,v/2)}},h=a.Latin1={stringify:function(m){for(var v=m.words,R=m.sigBytes,C=[],D=0;D<R;D++){var P=v[D>>>2]>>>24-D%4*8&255;C.push(String.fromCharCode(P))}return C.join("")},parse:function(m){for(var v=m.length,R=[],C=0;C<v;C++)R[C>>>2]|=(m.charCodeAt(C)&255)<<24-C%4*8;return new p.init(R,v)}},w=a.Utf8={stringify:function(m){try{return decodeURIComponent(escape(h.stringify(m)))}catch(v){throw new Error("Malformed UTF-8 data")}},parse:function(m){return h.parse(unescape(encodeURIComponent(m)))}},g=d.BufferedBlockAlgorithm=u.extend({reset:function(){this._data=new p.init,this._nDataBytes=0},_append:function(m){typeof m=="string"&&(m=w.parse(m)),this._data.concat(m),this._nDataBytes+=m.sigBytes},_process:function(m){var v,R=this._data,C=R.words,D=R.sigBytes,P=this.blockSize,J=P*4,F=D/J;m?F=n.ceil(F):F=n.max((F|0)-this._minBufferSize,0);var Q=F*P,Y=n.min(Q*4,D);if(Q){for(var U=0;U<Q;U+=P)this._doProcessBlock(C,U);v=C.splice(0,Q),R.sigBytes-=Y}return new p.init(v,Y)},clone:function(){var m=u.clone.call(this);return m._data=this._data.clone(),m},_minBufferSize:0});d.Hasher=g.extend({cfg:u.extend(),init:function(m){this.cfg=this.cfg.extend(m),this.reset()},reset:function(){g.reset.call(this),this._doReset()},update:function(m){return this._append(m),this._process(),this},finalize:function(m){m&&this._append(m);var v=this._doFinalize();return v},blockSize:16,_createHelper:function(m){return function(v,R){return new m.init(R).finalize(v)}},_createHmacHelper:function(m){return function(v,R){return new x.HMAC.init(m,R).finalize(v)}}});var x=c.algo={};return c}(Math);return t})}(it)),it.exports}var ot={exports:{}},Vt;function as(){return Vt||(Vt=1,function(s,e){(function(t,n){s.exports=n(Be())})(te,function(t){return function(){var n=t,r=n.lib,i=r.WordArray,o=r.Hasher,l=n.algo,c=[],d=l.SHA1=o.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(u,p){for(var a=this._hash.words,f=a[0],h=a[1],w=a[2],g=a[3],x=a[4],m=0;m<80;m++){if(m<16)c[m]=u[p+m]|0;else{var v=c[m-3]^c[m-8]^c[m-14]^c[m-16];c[m]=v<<1|v>>>31}var R=(f<<5|f>>>27)+x+c[m];m<20?R+=(h&w|~h&g)+1518500249:m<40?R+=(h^w^g)+1859775393:m<60?R+=(h&w|h&g|w&g)-1894007588:R+=(h^w^g)-899497514,x=g,g=w,w=h<<30|h>>>2,h=f,f=R}a[0]=a[0]+f|0,a[1]=a[1]+h|0,a[2]=a[2]+w|0,a[3]=a[3]+g|0,a[4]=a[4]+x|0},_doFinalize:function(){var u=this._data,p=u.words,a=this._nDataBytes*8,f=u.sigBytes*8;return p[f>>>5]|=128<<24-f%32,p[(f+64>>>9<<4)+14]=Math.floor(a/4294967296),p[(f+64>>>9<<4)+15]=a,u.sigBytes=p.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(d),n.HmacSHA1=o._createHmacHelper(d)}(),t.SHA1})}(ot)),ot.exports}var at={exports:{}},Kt;function ls(){return Kt||(Kt=1,function(s,e){(function(t,n){s.exports=n(Be())})(te,function(t){(function(){var n=t,r=n.lib,i=r.Base,o=n.enc,l=o.Utf8,c=n.algo;c.HMAC=i.extend({init:function(d,u){d=this._hasher=new d.init,typeof u=="string"&&(u=l.parse(u));var p=d.blockSize,a=p*4;u.sigBytes>a&&(u=d.finalize(u)),u.clamp();for(var f=this._oKey=u.clone(),h=this._iKey=u.clone(),w=f.words,g=h.words,x=0;x<p;x++)w[x]^=1549556828,g[x]^=909522486;f.sigBytes=h.sigBytes=a,this.reset()},reset:function(){var d=this._hasher;d.reset(),d.update(this._iKey)},update:function(d){return this._hasher.update(d),this},finalize:function(d){var u=this._hasher,p=u.finalize(d);u.reset();var a=u.finalize(this._oKey.clone().concat(p));return a}})})()})}(at)),at.exports}(function(s,e){(function(t,n,r){s.exports=n(Be(),as(),ls())})(te,function(t){return t.HmacSHA1})})(Wt);const cs=Wt.exports;var Gt={exports:{}};(function(s,e){(function(t,n){s.exports=n(Be())})(te,function(t){return function(){var n=t,r=n.lib,i=r.WordArray,o=n.enc;o.Base64={stringify:function(c){var d=c.words,u=c.sigBytes,p=this._map;c.clamp();for(var a=[],f=0;f<u;f+=3)for(var h=d[f>>>2]>>>24-f%4*8&255,w=d[f+1>>>2]>>>24-(f+1)%4*8&255,g=d[f+2>>>2]>>>24-(f+2)%4*8&255,x=h<<16|w<<8|g,m=0;m<4&&f+m*.75<u;m++)a.push(p.charAt(x>>>6*(3-m)&63));var v=p.charAt(64);if(v)for(;a.length%4;)a.push(v);return a.join("")},parse:function(c){var d=c.length,u=this._map,p=this._reverseMap;if(!p){p=this._reverseMap=[];for(var a=0;a<u.length;a++)p[u.charCodeAt(a)]=a}var f=u.charAt(64);if(f){var h=c.indexOf(f);h!==-1&&(d=h)}return l(c,d,p)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="};function l(c,d,u){for(var p=[],a=0,f=0;f<d;f++)if(f%4){var h=u[c.charCodeAt(f-1)]<<f%4*2,w=u[c.charCodeAt(f)]>>>6-f%4*2,g=h|w;p[a>>>2]|=g<<24-a%4*8,a++}return i.create(p,a)}}(),t.enc.Base64})})(Gt);const us=Gt.exports;function hs(s){let e=s.query?`${s.path}?${s.query}
2
+ `:`${s.path}
3
+ `;return s.body&&(e+=s.body),e}function lt(s){let e;try{e=new URL(s.path).pathname}catch(l){e=s.path}let t=hs(V(S({},s),{path:e}));const i=cs(t,s.appSalt).toString(us).replace(/\+/g,"-").replace(/\//g,"_");let o=`QApp ${s.appID}:${i}`;return o=o.replace(/\//g,"_"),o=o.replace(/\+/g,"-"),o}class ds{constructor(e){this.logger=e}log(e){return this.logger.log("DnsResolveLog",e)}}function fs(s){const e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",t=e.length;let n="";for(let r=0;r<s;r++)n+=e[Math.floor(Math.random()*t)];return n}const ws=new URL(st).hostname,ps=O("dns/httpdns");function ms(s,e,t,n){return b(this,null,function*(){var p,a;const r=new ds(n),i=et({name:e,type:"A",rid:fs(10)}),o=`${st}?${i}`,l=lt(V(S({},t),{path:st,query:i}));let c,d=null,u=null;try{if(d=yield fetch(o,{headers:{Authorization:l}}),!d.ok){const h=yield vs(d);if(h==null)throw new Error(`Resolve failed, unexpected HTTP status: ${d.status}`);if(h.code==="NotSupportedArea")return{reason:"NotSupportedArea",ttl:300};throw new Error(`Resolve failed, code: ${h.code}, error: ${h.error}`)}return u=yield d.json()}catch(f){throw c=f}finally{const h=performance.getEntriesByName(o,"resource").pop();if(h==null)ps("Corresponding performance entry not found for",o);else{const w=u==null?ue(c):{err_msg:"",err_desc:""};r.log(V(S({r_id:(p=d==null?void 0:d.headers.get("x-reqid"))!=null?p:"",ip:"",domain:ws,status_code:(a=d==null?void 0:d.status)!=null?a:-1},w),{t_conn:(h.requestStart-h.connectStart)/1e3,t_total:(h.responseEnd-h.fetchStart)/1e3,type:1}))}}})}function ct(s){return s.groups!=null}function gs(s,e){return s.find(t=>new RegExp(t.pattern).test(e))}function bs(s){return Math.random()<s.servicerate}function vs(s){return b(this,null,function*(){try{const e=yield s.json();if(e&&typeof e.code=="string"&&typeof e.error=="string")return e}catch(e){}return null})}class Qt{constructor(e,t){y(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 r=t.result.createObjectStore(n.name);for(const i of n.indexes)r.createIndex(i.name,i.keyPath)}}),e(Pe(t))}),this.db)})}get(e,t){return b(this,null,function*(){const r=(yield this.getDB()).transaction(e,"readonly").objectStore(e).get(t);return Pe(r)})}getAll(e){return b(this,null,function*(){const n=(yield this.getDB()).transaction(e,"readonly").objectStore(e).getAll();return Pe(n)})}count(e){return b(this,null,function*(){const n=(yield this.getDB()).transaction(e,"readonly").objectStore(e).count();return Pe(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),ut(i)})}remove(e,t){return b(this,null,function*(){const r=(yield this.getDB()).transaction(e,"readwrite");return r.objectStore(e).delete(t),ut(r)})}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(),ut(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,l)=>{i.addEventListener("error",()=>l(new Re(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 Re extends Error{constructor(t){super(t+"");y(this,"name","IndexedDBError");this.cause=t}}function Pe(s){return new Promise((e,t)=>{s.addEventListener("success",()=>e(s.result)),s.addEventListener("error",()=>t(new Re(s.error)))})}function ut(s){return new Promise((e,t)=>{s.addEventListener("complete",()=>e()),s.addEventListener("error",()=>t(new Re(s.error))),s.addEventListener("abort",()=>t(new Re(s.error)))})}function se(s){const e=s.get("Content-Length");return e?parseInt(e,10):null}function ht(s){const e=s.get("Content-Range");return e==null?null:ys(e)}function ys(s){const e=s.trim().toLowerCase(),[t,n]=e.split(/\s+/);if(t!=="bytes")throw new Error(`Unit must be bytes: ${s}`);const[r,i]=n.split("/"),o=i==="*"?null:dt(i),[l,c]=(r.includes("-")?r.split("-"):[null,null]).map(d=>dt(d));return{totalSize:o,start:l,end:c}}function Ce(s){const e=s.start!=null&&s.end!=null?`${s.start}-${s.end}`:"*",t=s.totalSize==null?"*":s.totalSize+"";return`bytes ${e}/${t}`}function dt(s){return s?Number(s):null}function Se(s){const e=s.get("Range");return e==null?null:Yt(e)}function Xt(s){return s.start===0&&s.end==null}function Yt(s){const e=s.trim().toLowerCase();if(!e.startsWith("bytes="))throw new Error(`Unit must be bytes: ${s}`);if(e.includes(","))throw new Error(`Multiple range: ${s}`);const[,t,n]=/(\d*)-(\d*)/.exec(e)||[];if(!t&&!n)throw new Error(`Invalid range values: ${s}`);if(!t)throw new Error("Suffix range not supported");const[r,i]=[t,n].map(o=>dt(o));return{start:r,end:i}}function Ee(s){var e,t;return`bytes=${(e=s.start)!=null?e:0}-${(t=s.end)!=null?t:""}`}const Rs=/[^\u0000-\u00ff]/;function Zt(s){return Rs.test(s)?"REPLACED_BY_Miku_Delivery_SEE_utils_http_encodeHeaderValue":s}function Jt(s){if(s instanceof Headers){const e={};s.forEach((t,n)=>{e[n]=Zt(t)}),s=e}if(Array.isArray(s)){const e={};s.forEach(([t,n])=>{e[n]=Zt(t)}),s=e}return new Headers(s)}function Cs(s){return`UTF-8''${encodeURIComponent(s).replace(/['()]/g,escape).replace(/\*/g,"%2A")}`}function ft(s){var t;const e=ht(s);return e!=null?(t=e.totalSize)!=null?t:null:se(s)}const en=E("utils/stream"),tn=O("utils/stream");function Ss(s){return b(this,null,function*(){const e=s.getReader();let t=new Uint8Array;for(;;){const{done:r,value:i}=yield e.read();if(r)break;t=new Uint8Array([...t,...i])}return new TextDecoder().decode(t)})}function wt(s,e){var l;const t=s.getReader(),n=(l=e[0])!=null?l:0,r=e[1];let i=0;return new ReadableStream({pull:c=>b(this,null,function*(){let d,u;for(;;){const h=yield t.read();if(h.done){c.close();return}if(d=h.value,u=i+d.byteLength,u>n)break;i=u}let p=d;const a=n>i?n-i:0,f=r!=null&&r<u?r-i:void 0;(a!==0||f!==void 0)&&(p=d.slice(a,f)),c.enqueue(p),r!=null&&u>=r&&(t.cancel("Cancelled by slice for target range met"),c.close()),i=u}),cancel:c=>t.cancel(c)})}function Es(s){let e=0;const t=new TransformStream({transform:(r,i)=>{e+=r.byteLength,i.enqueue(r)}}),n=s.pipeTo(t.writable).then(()=>({size:e,success:!0}),r=>({size:e,success:!1,error:r}));return[t.readable,n]}class nn extends Error{constructor(){super(...arguments);y(this,"name","SaveSlicedPieceError")}}function xs(s,e,t,n){return b(this,null,function*(){const r=[];let i=e,o=[],l=0;function c(){return b(this,null,function*(){const d=i+l;en(`saveSlicedPiece [${i}, ${d}]`);try{yield n(new Blob(o),i,d)}catch(u){throw tn(`saveSlicedPiece [${i}, ${d}] failed`,u),new nn(`saveSlicedPiece [${i}, ${d}] failed`)}r.push([i,d]),en(`saveSlicedPiece [${i}, ${d}] finish`,r),i=d})}try{const d=s.getReader();for(;;){const{value:u,done:p}=yield d.read();if(p)break;o.push(u),l+=u.byteLength,l>=t&&(yield c(),o=[],l=0)}l>0&&(yield c())}catch(d){if(!(d instanceof nn)&&(tn("exception occurred while reading stream and save by pieces",d),l>0))try{yield c()}catch(u){}}return r})}function _s(s){let e,t=!1;const n=new ReadableStream({start:l=>{e=l},cancel:()=>{t=!0}}),r=s.getReader();let i=!1;return{main:new ReadableStream({pull:l=>b(this,null,function*(){try{const{value:c,done:d}=yield r.read();if(i)return;if(d){l.close(),t||e.close();return}l.enqueue(c),t||e.enqueue(c)}catch(c){l.error(c),t||e.error(c)}}),cancel:l=>b(this,null,function*(){i=!0,yield r.cancel(l),e.error(l)})}),minor:n}}class re{constructor(e,{method:t,headers:n,signal:r,body:i}){y(this,"url");y(this,"method");y(this,"headers");y(this,"body");y(this,"signal");this.url=e,this.method=t!=null?t:"GET",this.headers=new Headers(n),this.body=i!=null?i:null,this.signal=r!=null?r:new AbortController().signal}}class ne{constructor(e,{status:t,statusText:n,headers:r,underlayer:i}){y(this,"status");y(this,"statusText");y(this,"headers");y(this,"body");y(this,"bodyReadResult");y(this,"underlayer");if(this.status=t!=null?t:200,this.statusText=n!=null?n:"",this.headers=Jt(r),this.underlayer=i,e==null||!ce())this.body=e,this.bodyReadResult=Promise.resolve({success:!0,size:0});else{const[o,l]=Es(e);this.body=o,this.bodyReadResult=l}}}function Ts(s){const{url:e,headers:t,body:n,signal:r}=s;return new re(e,{headers:t,body:n,signal:r})}function Oe(s){const{status:e,statusText:t,headers:n,body:r}=s;return new ne(r,{status:e,statusText:t,headers:n,underlayer:s})}class Ne extends Error{constructor(t){super(`Unexpected HTTP status: ${t.status} ${t.statusText}`);y(this,"name","UnexpectedHttpStatusError");this.response=t}}const As=new me;let sn;typeof self!="undefined"&&(sn=self,sn.addEventListener("message",s=>As.emit("message",s)));class Ds extends Error{constructor(){super(...arguments);y(this,"name","WindowClientError")}}class Is extends Error{constructor(){super(...arguments);y(this,"name","UnexpectedDataChannelCloseError")}}class ks extends Error{constructor(){super(...arguments);y(this,"name","UnexpectedDataChannel1stMessageError")}}function pt(s,e=()=>1){if(s.length===0)return null;const t=s.map(e),n=t.reduce((i,o)=>i+o,0);let r=Math.random()*n;for(let i=0;i<t.length;i++){const o=t[i];if(r<o)return s[i];r-=o}return s[0]}function ie(s){return s&&s.name==="AbortError"}const Ls=new Is().name,Ms=new ks().name;function He(s){return!(s&&[Ls,Ms].includes(s.name)||ie(s)||s instanceof Ds)}class mt extends Error{constructor(t){super(t+"");y(this,"name","ResolveError");this.cause=t}}class rn extends Error{constructor(){super(...arguments);y(this,"name","NoAvailableNodeError")}}class gt extends Error{constructor(t){super(t+"");y(this,"name","DoWithNodeError");this.cause=t}}class oe extends Error{constructor(){super(...arguments);y(this,"name","LocalDNSError")}}function Bs(s,e,t){const n=t||new URL(s).hostname;let r,i;s=s.replace(/^\w+:\/\//,"").split("#")[0];const o=s.indexOf("?");o>=0?(i=s.slice(o+1),s=s.slice(0,o)):i="";const l=s.indexOf("/");r=l>=0?s.slice(l):"",r=Ps(e.rewrites,r),i=Us(e.queryString,i);let c=n+r;return i!==""&&(c=c+"?"+i),c}function Ps(s,e){for(const t of s){const n=Os(t,e);if(n!=null){e=Hs(t,n);break}}return e}function Os(s,e){return new RegExp(s.pattern).exec(e)}const Ns=/\${(\d+)}/g;function Hs(s,e){return s.repl.replace(Ns,(t,n)=>{var i;const r=parseInt(n,10);return r>=e.length?t:(i=e[r])!=null?i:""})}function Us({type:s,values:e},t){if(s==="none")return"";if(s==="all")return t;const n=Ot(t),r=e!=null?e:[],i={};return Object.keys(n).forEach(o=>{s==="include"&&!r.includes(o)||s==="exclude"&&r.includes(o)||(i[o]=n[o])}),et(i)}function on(s,e){const t=new Map;return function(...r){const i=e(...r),o=t.get(i);if(o!=null)return o;const l=s(...r);return t.set(i,l),l.finally(()=>{t.delete(i)}),l}}const he=E("dns"),ae=O("dns"),zs="miku-delivery/dns/cdn/v1",bt="result",Fs={name:bt,indexes:[{name:"domain",keyPath:"domain"}]};class $s{constructor(e,t,n=ms,r,i=2e3,o=5e3){y(this,"fingerprints",new Map);y(this,"disabledElts",new Map);y(this,"storage",new Qt(zs,[Fs]));y(this,"getResolveResultFromStorage",on(e=>this.storage.get(bt,e),e=>e));y(this,"refreshResolveResultInStorage",on((e,t)=>b(this,null,function*(){const n=yield this.dnsResolver(e,t,this.app,this.logger),r=Date.now()+n.ttl*1e3,i=V(S({},n),{domain:t,expireAt:r});return this.saveResolveResultToStorage(t,i),i}),(e,t)=>t));this.logger=e,this.app=t,this.dnsResolver=n,this.cacheKeyFn=r,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,r=Date.now()+n;this.disabledElts.set(e,{duration:n*2,after:r})}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 q,t);return ct(n)?Bs(e,n.cacheKey,n.bucket):e})}getMediaOptimization(e){return b(this,null,function*(){const t=yield this.resolveDomain(new q,e);return ct(t)?t.mediaOptimization:null})}saveResolveResultToStorage(e,t){return b(this,null,function*(){return this.storage.set(bt,e,t)})}resolveDomain(e,t){return b(this,null,function*(){const n=Date.now(),r=(()=>b(this,null,function*(){const i=yield this.getResolveResultFromStorage(t);return i==null?this.refreshResolveResultInStorage(e,t):(js(i)&&(he("result from storage cache expired",t),this.refreshResolveResultInStorage(e,t)),e.set("dnsResolveFromCache",!0),i)}))().then(i=>(e.set("dnsResolveTotalTime",H(Date.now(),n)),i));return Promise.race([r,Ht(this.resolveTimeout,"Resolve domain")]).catch(i=>{throw ae("DNS resolve failed:",i),new mt(i)})})}resolve(e,t){return b(this,null,function*(){let n=null;return yield this.do(e,t,1,r=>{n=r}),n})}do(e,t,n,r){return b(this,null,function*(){let i;he("Resolve for",t);const o=new URL(t).hostname,[l,c]=yield Promise.all([this.getCacheKey(t,o),this.resolveDomain(e,o)]);if(!ct(c))throw new oe(`Non-ECDN resolve result: ${o}`);const{groups:d,rules:u}=c;if(d.length===0)throw ae(`ECDN resolve result error: No available group for ${o}`),new rn(`No available group for ${o}`);he("Resolved for",t);const p=gs(u,l);if(p==null)throw ae("ECDN resolve result error: No matched rule found"),new oe("No matched rule found");if(!bs(p))throw new oe("Do not serve with given rule");let a=p.groups.map(({groupidx:f,weight:h,splitn:w})=>{const g=d[f];if(g==null)throw ae(`ECDN resolve result error: Unexpected groupidx ${f}`),new Error(`Unexpected groupidx: ${f}`);return{group:g,weight:h,splitn:w}});for(let f=0;f<n;f++){const h=pt(a,w=>w.weight);if(h==null)break;try{he("doWithGroup",f,l),yield this.doWithGroup(e,h.group,l,h.splitn,r);return}catch(w){if(ae("doWithGroup (weight:",h.weight,") failed:",w,l),i=w,ie(w))break;He(w)&&(a=a.filter(g=>g!==h))}}throw i=ie(i)?i:new gt(i),i})}doWithGroup(e,t,n,r,i){return b(this,null,function*(){const o=t.elts.filter(a=>!this.isEltDisabled(a.id));if(o.length===0)throw new Error("No available elt");const l=qs(t),c=new Set(o.map(a=>a.id)),d=r===1?2:r;let u=l.getN(n,d,c).map(a=>o.find(f=>f.id===a)),p;for(let a=0;a<2;a++){const f=pt(u.slice(0,r),h=>h.replicas);if(f==null)break;try{he("doWithElt",f.id,n),e.set("downloadEltID",f.id),yield Ws(f,n,i),this.removeEltDisabled(f.id);return}catch(h){if(ae("doWithElt",f.id,"failed:",h,n),p=h,ie(h))break;He(h)&&(u=u.filter(w=>w!==f),this.setEltDisabled(f.id))}}throw p})}}const an=new Map;function qs({elts:s}){const e=s.map(({id:r,replicas:i})=>`${r}:${i}`).join(","),t=an.get(e);if(t!=null)return t;const n=new ts;return n.set(s.map(r=>({key:r.id,replicas:r.replicas}))),an.set(e,n),n}function Ws(s,e,t){return b(this,null,function*(){let n=s.addrs;if(n.length===0)throw new Error("Empty addr list");let r;for(let i=0;i<2;i++){const o=pt(n);if(o==null)break;try{he("do job with",o,e),yield t(o);return}catch(l){if(ae("do job with",o,"failed:",l,e),r=l,ie(l))break;He(l)&&(n=n.filter(c=>c!==o))}}throw r})}function js(s){return s.expireAt<Date.now()}class Vs{constructor(){y(this,"front",null);y(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 Ue=E("dc/cr"),Ks=O("dc/cr"),Gs={reservedQuota:5*1024*1024};class Qs{constructor(e,t=Gs){y(this,"inited");y(this,"itemElementMap",new Map);y(this,"itemList",new Vs);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 r={key:n,usedTime:t.usedTime,size:vt(t)},i=this.itemList.pushBack(r);this.itemElementMap.set(n,i),e.push(...nr(t,n))});try{const t=yield this.dc.getBrowserCacheKeys();for(let n of t)e.includes(n)||(Ue("clear inaccessible cache:",n),yield this.dc.browserCacheDelete(n))}catch(t){Ks("failed to clear inaccessible caches:",t)}})}addItem(e,t){const n={key:e,usedTime:t.usedTime,size:vt(t)};let r=null;return this.itemList.reverseWalk((i,o)=>{if(i.usedTime<=t.usedTime)return r=this.itemList.insertAfter(n,o),!1}),r==null&&(r=this.itemList.pushFront(n)),this.itemElementMap.set(e,r),r}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=vt(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:r,size:i})=>{if(i!==0&&(n.push(r),t+=i,t>=e))return!1}),Ue("to free up space, remove",n),yield Promise.all(n.map(r=>b(this,null,function*(){yield this.dc.removeItemWithContent(r),this.removeItem(r)})))})}beforeContentSet(e,t,n){return b(this,null,function*(){if(n==null)return;yield this.inited;const r=yield this.getLeftSpace(),i=this.config.reservedQuota;if(r!=null&&r-i<n){const o=n-r+i;Ue("freeUpSpace for",e,t,o),yield this.freeUpSpace(o)}})}onQuotaExceeded(e,t,n){return b(this,null,function*(){Ue("quota exceeded",e,t,n);const r=this.config.reservedQuota;yield this.freeUpSpace(n?n+r:r)})}}function Xs([s,e],t){return e=e!=null?e:t,e!=null?e-s:0}function vt(s){return s.pieces.reduce((e,t)=>{var n,r;return e+Xs(t,(r=(n=s.meta)==null?void 0:n.fsize)!=null?r:null)},0)}const Ys=E("dc"),Zs="miku-delivery/dc/v1",xe="item",ln="usedTimeIndex",Js={name:xe,indexes:[{name:ln,keyPath:"usedTime"}]},er=32*1024*1024;class tr{constructor(e={},t=Zs){y(this,"db");y(this,"cr");y(this,"browserCache",null);y(this,"browserCachePromise",null);this.config=e,this.ns=t,this.db=new Qt(this.ns,[Js]),this.cr=new Qs(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(xe,e)})}setItem(e,t){return b(this,null,function*(){Ys("setItem",e,t),yield this.db.set(xe,e,t),yield this.cr.onItemSet(e,t)})}walkItems(e){return b(this,null,function*(){return this.db.walkBy(xe,ln,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(xe,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(r=>{throw new de(r)})})}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(ze(e,t));if(n!=null){if(n.body==null)throw new Error("Body expected for cached response");return Oe(n)}})}setContent(e,t,n){return b(this,null,function*(){if(!ke())return yield this.cacheResponse(e,t,n.underlayer),[t];const{headers:r,body:i}=n,o=ft(r);return yield xs(i,t[0],er,(l,c,d)=>b(this,null,function*(){r.set("Content-Range",Ce({start:c,end:d-1,totalSize:o})),r.set("Content-Length",d-c+"");const u=new Response(l,{status:200,statusText:"OK",headers:r});yield this.cacheResponse(e,[c,d],u)}))})}cacheResponse(e,t,n){return b(this,null,function*(){const r=ze(e,t),i=se(n.headers);yield this.cr.beforeContentSet(e,t,i);try{yield this.browserCachePut(r,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=ze(e,t);return this.browserCacheDelete(n)})}dispose(){this.db.dispose()}}function ze(s,e){var t;return/^https?:\/\//.test(s)||(s="https://miku-cache.com/"+s),`${s}_with_range_${e[0]}_${(t=e[1])!=null?t:""}`}function nr(s,e){return s.pieces.map(t=>ze(e,t))}class de extends Error{constructor(t){super(t+"");y(this,"name","BrowserCacheError");this.cause=t}}class sr{constructor(e){this.logger=e}log(e){return this.logger.log("DoLog",e)}}const cn="1.2.1",rr=3,un=E("http");class hn{constructor(e,t,n,r=0){y(this,"doLogger");this.client=t,this.resolver=n,this.clientResponseTimeout=r,this.doLogger=new sr(e)}doWithResolved(e,t,n){return b(this,null,function*(){un("fetch",t.url,"with resolved",n);const r=new AbortController;Ut(r,t.signal);const i=new re(t.url,V(S({},t),{signal:r.signal}));i.headers.set("X-Miku-Agent",`miku-delivery-web/v${cn}`);let o=this.client.fetch(e,i,n);this.clientResponseTimeout>0&&(o=Promise.race([o,Ht(this.clientResponseTimeout,"HTTPClient get response")]),o.catch(c=>{c instanceof Nt&&r.abort(c)}));const l=yield o;if(un("fetch",t.url,"succeeded with status",l.status),l.status===429||l.status>=500)throw new Ne(l);return l})}originalDo(e,t){return b(this,null,function*(){if(t.signal.aborted)throw t.signal.reason;let n=-1,r;if(yield this.resolver.do(e,t.url,rr,i=>b(this,null,function*(){const o=new q(e);n++,o.set("downloadRetryCount",n),r=yield this.doWithResolved(o,t,i)})),r==null)throw new Error(`Http do failed: resolver do finished with no finalResp, url: ${t.url}`);return r})}do(e,t){return b(this,null,function*(){const n=Date.now(),r=tt();e.set("doID",r);let i,o=null;try{return i=yield this.originalDo(e,t),i}catch(l){throw o=l,l}finally{const{onDoError:l,onDoResponsed:c}=this.getDoLog(e,r,n);i==null?l(o):c(i.status)}})}getDoLog(e,t,n){const r=l=>{var c;return this.doLogger.log(S({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},l))};return{onDoError:l=>{const c=Date.now();r(S({t_total:H(c,n)},ue(l)))},onDoResponsed:l=>{const c=Date.now();r({t_total:H(c,n),status_code:l})}}}}class ir{constructor(e){this.logger=e}log(e){return this.logger.log("TaskLog",e)}}class dn{constructor(e,t,n,r){y(this,"id",tt());y(this,"priority",0);y(this,"signal");y(this,"started",!1);y(this,"taskLogger");this.url=e,this.range=t,this.startByClient=r,this.taskLogger=new ir(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 q;n.set("taskID",this.id),n.set("taskDomain",new URL(this.url).hostname);let r,i=null;try{return r=yield this.startByClient(n,this),r}catch(o){throw i=o,o}finally{const{logOnError:o,logOnTransferred:l}=this.log(n,t);r==null?o(i):r.underlayer.bodyReadResult.then(c=>{c.success?l():o(c.error)})}})}log(e,t){const n=e.get("taskCacheMatchAt"),r=e.get("task1stHttpDoAt"),i=e.get("taskResultStreamAt"),o=Date.now(),l=u=>{var p,a,f,h,w;return this.taskLogger.log(S({type:(p=e.get("taskType"))!=null?p:1,id:this.id,url:this.url,err_msg:"",err_desc:"",range_st:(f=(a=this.range)==null?void 0:a.start)!=null?f:-1,range_end:(w=(h=this.range)==null?void 0:h.end)!=null?w:-1,ts_st:t,t_cc_match:H(n,t),t_http_do:H(r,n),t_res_stream:H(i,n),t_res:H(o,i),t_trans:-1,t_total:-1},u))};return{logOnError:u=>{const p=Date.now();l(S({t_total:H(p,t)},ue(u)))},logOnTransferred:()=>{const u=Date.now();l({t_trans:H(u,o),t_total:H(u,t)})}}}}class fn{constructor(e,t,n,r,i){this.stream=e,this.size=t,this.fileSize=n,this.contentType=r,this.underlayer=i}blob(){return b(this,null,function*(){const e=this.stream.getReader(),t=[];for(;;){const{done:n,value:r}=yield e.read();if(n)break;const i=r;t.push(i)}return new Blob(t)})}}function yt(s,e,t){return s!=null&&t!=null&&t>=s&&(t=null),(e==null||e<0)&&(e=0),[e,t]}function wn(s,e){var r;const t=((r=e[0])!=null?r:0)===0,n=e[1]==null||s!=null&&e[1]===s;return t&&n}function or(s,e){var r,i;const t=(r=e[0])!=null?r:0,n=(i=e[1])!=null?i:s;return n==null?null:n-t}function ar(s,e,t){var c,d;if(e===0)return[];const n=(u,p)=>mn(u,p,e!=null?e:Number.POSITIVE_INFINITY),r=(c=s==null?void 0:s[0])!=null?c:0,i=(d=s==null?void 0:s[1])!=null?d:e,o=[];let l=r;for(const u of t){if(l==null||e!=null&&u[1]!=null&&u[1]>e)break;if(!(u[1]!=null&&l>=u[1])){if(i==null||i>u[0]){u[0]>l&&o.push({cached:!1,range:yt(e,l,u[0])});const p=n(u[0],l)?u[0]:l,a=n(u[1],i)?i:u[1];n(a,p)&&(o.push({cached:!0,range:yt(e,p,a)}),l=a);continue}break}}return n(i,l)&&o.push({cached:!1,range:yt(e,l,i)}),o}function lr(s,e){var r;const t=(r=e[0])!=null?r:0,n=e[1];for(const i of s){if(i[1]!=null&&i[1]<=t)continue;if(i[0]>t)break;const o=t-i[0],l=ur(n!=null?n:i[1],i[0]);return{piece:i,start:o,end:l}}throw new Error("Piece not found")}function cr(s,e){const t=s.filter(o=>!e.some(l=>o[0]===l[0]&&o[1]===l[1])),n=[e[0][0],e[e.length-1][1]];for(let o of t)if(pn(o,n))return{toSave:t,toRemove:e};const r=[],i=[];for(let o of t)pn(n,o)?i.push(o):r.push(o);return{toSave:[...r,...e].sort((o,l)=>o[0]-l[0]),toRemove:i}}function pn(s,e){return s[0]<=e[0]&&!mn(e[1],s[1],Number.POSITIVE_INFINITY)}function mn(s,e,t){const n=s!=null?s:t,r=e!=null?e:t;return n>r}function ur(s,e){return s==null||e==null?null:s-e}function gn(s){const e={},t=s.split(",").map(n=>{let[r,i]=n.split("=").map(o=>o.trim());return[r.toLowerCase(),i]});for(const[n,r]of t)if(n==="max-age"){if(r!=null){const i=parseInt(r,10);Number.isNaN(i)||(e["max-age"]=i)}}else(n==="no-cache"||n==="no-store")&&(e[n]=!0);return e}function Fe(s){return Math.floor(s/1e3)}function bn(s,e){const t=s.get("Date");if(t==null)return e;const n=Date.parse(t);return Number.isNaN(n)?e:n}function hr(s,e,t){if(s!=null)return s;const n=e.get("Expires");if(n!=null){let r=Date.parse(n);Number.isNaN(r)&&(r=0);const i=bn(e,t);return Fe(r-i)}return 60*60}function dr(s){const e=s.get("Age");if(e==null)return 0;const t=parseInt(e,10);return Number.isNaN(t)?0:t}function fr(s,e,t,n){const r=dr(s),i=bn(s,t),o=Math.max(0,Fe(t-i)),l=Fe(t-e),c=r+l,d=Math.max(o,c),u=Fe(n-t);return d+u}function wr(s,e,t,n,r){var c;const i=(c=s==null?void 0:s["max-age"])!=null?c:null,o=hr(i,e,n),l=fr(e,t,n,r);return o>l}function pr(s,e,t,n){const r=s.get("Cache-Control"),i=r!=null?gn(r):null;return(i==null?void 0:i["no-cache"])===!0?!0:!wr(i,s,e,t,n)}function mr(s){const e=s.get("Cache-Control"),t=e!=null?gn(e):null;return!(t!=null&&t["no-store"]===!0)}function gr(s){const e=s.get("ETag");return e==null?null:e.startsWith("W/")?e.slice(2):e}function br(s,e){const t=new Headers(s),n=gr(e);n!=null&&t.set("If-None-Match",n);const r=e.get("Last-Modified");return r!=null&&t.set("If-Modified-Since",r),t}function vr(s,e){return!(s.get("Last-Modified")===e.get("Last-Modified")&&s.get("ETag")===e.get("ETag"))}function yr(s,e){const t=new Headers(s);return e.forEach((n,r)=>{r=r.toLowerCase(),!(r==="content-length"||r==="content-encoding"||r==="content-range")&&t.set(r,n)}),t}const Rr={threshold:0,contentRangeExposed:!0},k=E("ftask"),_e=O("ftask");class Cr{constructor(e,t,n,r,i,o,l){y(this,"id",tt());y(this,"inited");y(this,"meta",null);y(this,"cachePieces",[]);y(this,"usedTime",0);y(this,"isMedia");this.cache=e,this.nativeHttpClient=t,this.http=n,this.key=r,this.url=i,this.patterns=o,this.getMediaOptimization=l,this.inited=this.resume();const c=ye(i);this.isMedia=o.media.some(d=>d.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:pr(n,e,t,Date.now())}isRangeStartFirstRequested(e){var n;const t=(n=e[0])!=null?n:0;return!this.cachePieces.some(r=>{var i;return r[0]<=t&&t<=((i=r[1])!=null?i:Number.POSITIVE_INFINITY)})}startTask(e,t){return b(this,null,function*(){k("startTask",t.url,t.id,t.range);let n;const r=t.range!=null?[t.range.start,t.range.end]:[0,null];yield this.inited,this.usedTime=Date.now(),this.save().catch(l=>_e("save failed when startTask:",l)),ce()?n=yield this.readRangeWithStream(e,t,r):(k("supportStreamOperation: false",t.url,t.id),n=yield this.readRangeWithoutStream(e,t,r));const i=this.meta;if(i==null)throw new Error("Missing meta in fileTask");k("startTask resolved",t.url,t.id);const o=or(i.fsize,r);return new fn(n.body,o,i.fsize,i.headers.get("Content-Type"),n)})}readRangeWithoutStream(e,t,n){return b(this,null,function*(){var l,c;let r;const i=[(l=n[0])!=null?l: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())k("use cache",t.url,t.id),r=o;else if(k("doRequestAndSaveCache",t.url,t.id,o!=null),r=yield this.doRequestAndSaveCache(e,t,n,o!=null,!1),r.status===304){if(o==null)throw new Error("Unexpected 304 with no cached response");r=o}return e.set("taskResultStreamAt",Date.now()),r})}readRangeWithStream(e,t,n){return b(this,null,function*(){const r=this.cacheValidationRequired();k("cacheValidationRequired",r);const i=ar(n,this.fileSize(),this.cachePieces);if(k("applyRange",n,this.fileSize(),this.cachePieces,i),r){const c=i.some(p=>p.cached),d=this.isMedia?yield this.getMediaOptimization():!1,u=yield this.doRequestAndSaveCache(e,t,n,c,d);if(u.status===200||u.status===206)return u}e.set("taskCacheMatchAt",Date.now());const o=new TransformStream(void 0),l=yield new Promise((c,d)=>b(this,null,function*(){try{for(let u=0;u<i.length;u++){const p=u===0,{cached:a,range:f}=i[u];let h=null;if(a&&(h=yield this.readPieceFromLocal(e,t,f)),h==null){const g=this.isMedia&&p&&this.isRangeStartFirstRequested(f)?yield this.getMediaOptimization():!1;h=yield this.readPieceFromRemote(e,t,f,g)}p&&c(h);const w=u===i.length-1;yield h.body.pipeTo(o.writable,{preventClose:!w})}}catch(u){u!=null&&k("readRange stream error for",this.url,u),o.writable.abort(u),d(u)}}));return e.set("taskResultStreamAt",Date.now()),new ne(o.readable,l)})}readPieceFromLocal(e,t,n){return b(this,null,function*(){k("readPieceFromLocal",t.url,n);const{piece:r,start:i,end:o}=lr(this.cachePieces,n),l=yield this.cache.getContent(this.key,r);return l==null?(_e(`Missing cache item: ${this.key} [${r})`),null):new ne(wt(l.body,[i,o]),l)})}readPieceFromRemote(e,t,n,r){return b(this,null,function*(){k("readPieceFromRemote",t.url,n);const i=yield this.doRequestAndSaveCache(e,t,n,!1,r);return!wn(this.fileSize(),n)&&i.status===200?(_e("Range request not supported for",this.url),new ne(wt(i.body,n),i)):i})}doRequest(e,t,n,r,i){return b(this,null,function*(){var h;e.get("task1stHttpDoAt")==null&&e.set("task1stHttpDoAt",Date.now());const o=new q(e);o.set("downloadFileTaskID",this.id);let l=new Headers({"Accept-Encoding":"identity;q=1, *;q=0"});n!=null&&(t.range==null&&wn(this.fileSize(),n)||l.set("Range",Ee({start:n[0],end:n[1]==null?null:n[1]-1})));const c=(h=this.meta)==null?void 0:h.headers;r&&c!=null&&(l=br(l,c));const d=new re(t.url,{method:"GET",headers:l,signal:t.signal}),u=Date.now();let p;i===!1||i.threshold<=0?p=yield this.http.do(o,d):p=yield Sr((...w)=>this.http.do(...w),(...w)=>this.nativeHttpClient.fetch(...w,!0,Je()),i)(o,d);const a=Date.now();let f=p.headers;if(r&&c!=null&&p.status===304)k(`updateStoredHeaders for ${this.url}`),f=yr(c,p.headers);else{if(p.status!==200&&p.status!==206)throw new Ne(p);if(p.body==null)throw new Error("Body expected")}return yield this.onResponse(f,u,a),p.bodyReadResult.then(w=>{k(`bodyReadResult for ${this.url}:`,w)}),p})}doRequestAndSaveCache(e,t,n,r,i){return b(this,null,function*(){const o=yield this.doRequest(e,t,n,r,i);return Je()?(o.status===200||o.status===206)&&mr(o.headers)?this.saveCachePiece(t,n,o):o:(k("Skip cache for some strange browsers."),o)})}saveCachePiece(e,t,n){return b(this,null,function*(){var o,l;let r=n,i;if(ce()){const{main:c,minor:d}=_s(n.body);r=new ne(c,n),i=new ne(d,n)}else if(!e.range){const c=n.underlayer.clone();i=Oe(c)}if(i!=null){const c=[(o=t==null?void 0:t[0])!=null?o:0,(l=t==null?void 0:t[1])!=null?l:null];k("saveCachePiece",this.url,c),this.cache.setContent(this.key,c,i).then(d=>b(this,null,function*(){if(d.length===0)return;const{toSave:u,toRemove:p}=cr(this.cachePieces,d);if(this.cachePieces=u,p.length>0){k("remove duplicated cache pieces",p);try{yield Promise.all(p.map(a=>this.cache.removeContent(this.key,a)))}catch(a){k("exception occurred while removing duplicated cache pieces",a)}}return this.save()})).then(()=>k("saveCachePiece finish",this.url,c,this.cachePieces),d=>_e("saveCachePiece failed",this.url,c,d))}return r})}onResponse(e,t,n){return b(this,null,function*(){const r=this.meta;this.meta={fsize:ft(e),requestTime:t,responseTime:n,headers:e},(r==null?void 0:r.headers)!=null&&vr(r.headers,e)&&(k(`${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=>_e("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=V(S({},e.meta),{headers:e.meta.headers!=null?new Headers(e.meta.headers):null}),this.cachePieces=e.pieces)})}save(){return b(this,null,function*(){var r,i;const e=((r=this.meta)==null?void 0:r.headers)!=null?[...((i=this.meta)==null?void 0:i.headers).entries()]:null,n={meta:this.meta!=null?V(S({},this.meta),{headers:e}):null,pieces:this.cachePieces,usedTime:this.usedTime};yield this.cache.setItem(this.key,n)})}}function Sr(s,e,{threshold:t,contentRangeExposed:n}){return function(i,o){return b(this,null,function*(){var J,F;const P=o,{url:l}=P,c=Qe(P,["url"]),d=Se(o.headers);k("doWithInitialOptimization",l);const u=new q(i),p=new Headers(c.headers),a=S({start:null,end:null},d);a.start=(J=a.start)!=null?J:0;const f=a.start+t-1;(a.end==null||a.end>f)&&(a.end=f),p.set("Range",Ee(a));const h=new re(l,V(S({},c),{headers:p})),g=yield((Q,Y)=>b(this,null,function*(){var le;let U=null;const $=Se(Y.headers);$!=null&&!Xt($)&&!n&&(U=Er(l,c.headers,e));const W=yield e(Q,Y);if($!=null&&W.status===206&&!W.headers.get("Content-Range")){const j=Xt($)?se(W.headers):yield U;if(j!=null){const z=Ce({start:$.start,end:(le=$.end)!=null?le:j-1,totalSize:j});W.headers.set("Content-Range",z)}}return W}))(u,h);if(g.body==null)throw new Error("Body expected for initial response");if(g.status!==206)return g;const x=ht(g.headers);if(x==null)throw new Error("Header Content-Range expected for 206 response");const m=(()=>{var le;const Q=se(g.headers);if(Q!=null&&Q<t)return g.body;const Y=new Headers(c.headers),U=S({start:null,end:null},d);if(U.start=((le=U.start)!=null?le:0)+t,U.end!=null&&U.end<U.start)return g.body;k("doWithInitialOptimization followingRange",U),Y.set("Range",Ee(U));const $=new re(l,V(S({},c),{headers:Y})),W=new TransformStream;return g.body.pipeTo(W.writable,{preventClose:!0}).then(()=>b(this,null,function*(){k("doWithInitialOptimization initialBody transfered");let j;try{const z=yield s(i,$);if(z.body==null)throw new Error(`Body expected for following response of ${l}`);if(z.status===200)j=wt(z.body,[U.start,U.end==null?null:U.end+1]);else if(z.status===206)j=z.body;else throw new Ne(z)}catch(z){if(Rt(z))k("use fallback fetch for doWithInitialOptimization followingBody",z),j=(yield e(i,$)).body;else{k("doWithInitialOptimization get followingBody failed",z),W.writable.abort(z);return}}j.pipeTo(W.writable).then(()=>k("doWithInitialOptimization followingBody transfered"),z=>k("doWithInitialOptimization followingBody transfer failed",z))}),j=>b(this,null,function*(){k("doWithInitialOptimization initialBody transfer failed",j)})),W.readable})(),v=x.totalSize,R=new Headers(g.headers);if(R.delete("Content-Range"),R.delete("Content-Length"),d==null)return v!=null&&R.set("Content-Length",v+""),new ne(m,{status:200,statusText:"OK",headers:R,underlayer:g.underlayer});const C=(F=d.start)!=null?F:0,D=d.end!=null?d.end:v!=null?v-1:null;return D!=null&&R.set("Content-Length",D-C+1+""),R.set("Content-Range",Ce({start:C,end:D,totalSize:v})),new ne(m,{status:206,statusText:"Partial Content",headers:R,underlayer:g.underlayer})})}}function Er(s,e,t){return b(this,null,function*(){const n=new Headers(e);n.delete("Range");const r=yield t(new q,new re(s,{method:"HEAD",headers:n}));return se(r.headers)})}function Rt(s){return[mt,oe,rn,gt,Re,de].some(e=>s instanceof e)}class xr{constructor(){y(this,"locked",!1);y(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 _r(){var r,i;const{os:s,device:e,browser:t}=Ze(navigator.userAgent);let n;return typeof window!="undefined"?n=window.location:typeof self!==void 0&&(n=self.location),{os:`${s.name}_${s.version}`,browser:`${t.name}_${t.version}`,app:(r=n==null?void 0:n.host)!=null?r:"",sdk:`Web SDK v${cn}`,dev_model:(i=e.model)!=null?i:"",dev_id:""}}const Ct=200,St=E("log"),Tr=O("log");class vn{constructor(e,t=self.fetch,n=100,r=3){y(this,"env",et(_r()));y(this,"flushMutex",new xr);y(this,"buffer",[]);this.appInfo=e,this.fetch=t,this.flushNum=n,this.flushWait=r}callApiLog(e,t=3,n=2e3){return b(this,null,function*(){const r=Ar(e),i=r.map(u=>u.schema).join(","),o=`${rs}/v1/log/${i}`,l=lt({appID:this.appInfo.appID,appSalt:this.appInfo.appSalt,path:o}),c={method:"POST",headers:{Authorization:l,"Content-Type":"text/csv","X-Env":this.env},body:Dr(r)},d=this.fetch;for(let u=1;u<=t;u++)try{const p=yield d(new Request(o,c));if(p.ok)return;throw new Error(`Unexpected response status: ${p.status} ${p.statusText}`)}catch(p){const a=u<t;Tr("Call log API failed:",p,a?`Retry after ${n}ms`:""),a&&(yield jn(n))}})}flush(){return this.flushMutex.runExclusive(()=>{const e=this.buffer.splice(0);if(e.length===0)return;const t=Math.ceil(e.length/Ct);return Promise.all(Array.from({length:t}).map((n,r)=>this.callApiLog(e.slice(r*Ct,(r+1)*Ct))))})}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 St("buffer.length >= this.flushNum"),!0;const n=Date.now()-t[0].log.ts;return n>=this.flushWait*1e3?(St("waited >= this.flushWait"),!0):this.flushWait*1e3-n});if(e===!0)return this.flush();typeof e=="number"&&setTimeout(()=>this.tryFlush(),e)})}log(e,t){St("log",e,t),this.buffer.push({schema:e,log:S({ts:Date.now()},t)}),this.tryFlush()}}function Ar(s){const e=[];return s.forEach(({schema:t,log:n})=>{let r=e.find(i=>i.schema===t);r==null&&(r={schema:t,logs:[]},e.push(r)),r.logs.push(n)}),e}function Dr(s){return s.map(e=>e.logs).map(Ir).join(`
4
+
5
+ `)}function Ir(s){const e=Object.keys(s[0]),t=["ts",...e.filter(i=>i!=="ts")],n=t.map(yn).join(","),r=s.map(i=>t.map(o=>i[o]).map(o=>o!=null?o+"":"").map(yn).join(","));return[n,...r].join(`
6
+ `)}function yn(s){let e=s.replace(/"/g,'""');return/("|,|\n)/.test(e)&&(e='"'+e+'"'),e}class kr{constructor(e){this.logger=e}log(e){return this.logger.log("LiveScheduleLog",e)}}const Lr=new URL(rt).hostname;function Mr(s,e,t,n){return b(this,null,function*(){var a,f;const r=new kr(n),i={url:e,cip:""},o=lt(V(S({},t),{path:rt})),l=Date.now();let c,d=null,u=null,p=null;try{if(d=yield fetch(rt,{method:"POST",body:JSON.stringify(i),headers:{"Content-Type":"application/json",Authorization:o}}),u=Date.now(),!d.ok)throw new Error(`Call Schedule API failed, status: ${d.status} ${d.statusText}`);return p=yield d.json()}catch(h){throw c=h}finally{const h=H(Date.now(),l),w=p==null?ue(c):{err_msg:"",err_desc:""};r.log(V(S({r_id:(a=d==null?void 0:d.headers.get("x-reqid"))!=null?a:"",ip:"",domain:Lr,status_code:(f=d==null?void 0:d.status)!=null?f:-1},w),{t_conn:H(u,l),t_total:h,type:1}))}})}const Te=E("dns"),Et=O("dns"),Br=60,Pr=60*1e3;class Or{constructor(e,t,n=Mr,r=ye){y(this,"scheduling",new Map);y(this,"cache",new Map);y(this,"m3u8SegmentCache",new Map);this.logger=e,this.app=t,this.scheduler=n,this.cacheUrl=r}getScheduleResult(e,t){return b(this,null,function*(){var o;const n=Date.now();let r;try{r=yield this.scheduler(e,t,this.app,this.logger)}catch(l){throw Et("Live schedule failed:",l),new mt(l)}finally{e.set("dnsResolveTotalTime",H(Date.now(),n))}if(r.code===1)throw new oe(`Local DNS for ${t}`);if(r.code!==0)throw new Error(`Unexpected schedule code: ${r.code}`);const i=(o=r.ttl)!=null?o:Br;return{nodes:r.hosts.map(l=>{const[c,d]=Kn(l,0),[u,p]=["",0];return{addr:{ip:u,host:c,http:d+80,https:d+443,how:p},after:0}}),expireAt:Date.now()+i*1e3,ttl:i}})}saveM3u8SegmentResult(e,t){return b(this,null,function*(){const n=this.cacheUrl(e),r=this.cache.get(n);if(r==null){Et("No schedule result for m3u8:",e);return}const i=t.map(this.cacheUrl);i.forEach(o=>{this.m3u8SegmentCache.set(o,r)}),setTimeout(()=>{i.forEach(o=>{this.m3u8SegmentCache.delete(o)})},60*1e3)})}schedule(e,t){return b(this,null,function*(){const n=this.cacheUrl(t);if(!Le(t)&&!$t(t)){const l=this.m3u8SegmentCache.get(n);if(l==null)throw new oe("Neither m3u8 / flv URL, or m3u8 segment URL");return l}const r=this.cache.get(n);if(r!=null&&xt(r))return e.set("dnsResolveFromCache",!0),r;const i=this.scheduling.get(n);if(i!=null){let l;try{l=yield i}catch(c){if(c instanceof oe)throw c}if(l!=null&&xt(l))return e.set("dnsResolveFromCache",!0),l;this.scheduling.delete(n)}const o=this.getScheduleResult(e,t);return Te("save scheduling for",t),this.scheduling.set(n,o),o.then(l=>{Te("save cache for",t),this.cache.set(n,l)},()=>{}),o})}hasResult(e){const t=this.cacheUrl(e),n=Le(e)||$t(e)?this.cache.get(t):this.m3u8SegmentCache.get(t);return n!=null&&xt(n)}do(e,t,n,r){return b(this,null,function*(){let i;Te("schedule for",t);const o=yield this.schedule(e,t);Te("scheduled for",t);for(let l=0;l<n;l++){const c=Nr(o.nodes);if(c==null)break;try{Te("do job with",c,t),yield r(c.addr),o.expireAt=Date.now()+o.ttl*1e3;return}catch(d){if(Et("do job with",c.addr,"failed:",d,t),i=d,ie(d))break;He(d)&&(c.after=Date.now()+Pr)}}throw i=ie(i)?i:new gt(i),i})}}function Rn(s,e=Date.now()){return s.after<e}function Nr(s){for(const e of s)if(Rn(e))return e;return null}function xt(s){const e=Date.now();return s.expireAt<=e?!1:s.nodes.some(t=>Rn(t,e))}const fe=E("utils/fetch");function Cn(s){return b(this,null,function*(){var f,h;const e=yield fetch(s),t=Se(s.headers);if(t==null||e.status!==206||e.body==null)return e;const{body:n,status:r,statusText:i,headers:o}=e,l=(f=ht(o))==null?void 0:f.end,c=100;let d=(h=t.start)!=null?h:0,u=n.getReader(),p=null;const a=new ReadableStream({pull:w=>b(this,null,function*(){p!=null&&(clearTimeout(p),p=null),u==null&&(fe("resume on pull"),s.headers.set("range",Ee(V(S({},t),{start:d}))),u=(yield fetch(s)).body.getReader());const{value:g,done:x}=yield u.read();if(x){fe("read done"),w.close();return}try{w.enqueue(g)}catch(m){fe("enqueue failed:",m),u==null||u.cancel("target stream enqueue failed");return}if(d+=g.byteLength,l!=null&&d>l){fe("all enqueued"),u.cancel("all enqueued"),w.close();return}p=setTimeout(()=>b(this,null,function*(){p=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(a,{status:r,statusText:i,headers:o})})}class Sn{constructor(e){this.logger=e}start(e,t){let n;const r=Date.now(),i=c=>{var f,h,w,g,x,m,v,R,C,D,P;const d=t.headers.get("Range"),u=d==null?null:Yt(d),p=n==null?void 0:n.headers.get("X-M-Reqid"),a=p?p.split(", ").pop():"";this.log(S({ip:(f=e.get("downloadReqIP"))!=null?f:"",domain:(h=e.get("taskDomain"))!=null?h:"",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:(x=e.get("downloadRetryCount"))!=null?x:0,ftask_id:(m=e.get("downloadFileTaskID"))!=null?m:"",task_id:(v=e.get("taskID"))!=null?v:"",d_id:(R=e.get("doID"))!=null?R:"",ts_st:r,r_id:a,elt_id:(C=e.get("downloadEltID"))!=null?C:"",status_code:(D=n==null?void 0:n.status)!=null?D:-1,t_req_msg:H(e.get("downloadReqMessageAt"),r),t_conn:H(e.get("downloadConnectionAt"),(P=e.get("downloadReqMessageAt"))!=null?P:r),t_tls:-1,t_st_trans:H(e.get("downloadStartTransferAt"),e.get("downloadConnectionAt")),t_resp_msg:H(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 d=Date.now();i(S({t_total:H(d,r)},ue(c)))},onResponse:c=>{n=c,n.bodyReadResult.then(d=>{var a;const u=Date.now(),p=d.success?null:ue(d.error);i(S({t_content_trans:H(u,(a=e.get("downloadRespMessageAt"))!=null?a:e.get("downloadStartTransferAt")),t_total:H(u,r),resp_size:d.size},p))})}}}wrap(e,t,n){return b(this,null,function*(){const r=this.start(e,t);try{const i=yield n();return r.onResponse(i),i}catch(i){throw r.onError(i),i}})}log(e){return this.logger.log("DownloadLog",e)}}class Hr{constructor(e){y(this,"downloadLogger");this.downloadLogger=new Sn(e)}fetch(e,t,n=!0,r=!0){return b(this,null,function*(){return this.downloadLogger.wrap(e,t,()=>b(this,null,function*(){const u=t,{url:i}=u,o=Qe(u,["url"]),l=new Request(i,S(S(S({},n?En:null),r?{cache:"no-store"}:null),o)),c=yield Cn(l),d=Date.now();return e.set("downloadConnectionAt",d),e.set("downloadStartTransferAt",d),Oe(c)}))})}}const En={mode:"cors",credentials:"omit"};class xn{constructor(e,t=!0,n=Cn){y(this,"downloadLogger");this.https=t,this.nativeFetch=n,this.downloadLogger=new Sn(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 r=this.nativeFetch,i=_n(t,n,this.https),o=yield r(i),l=Date.now();return e.set("downloadConnectionAt",l),e.set("downloadStartTransferAt",l),Oe(o)}))})}dispose(){}}function _n(s,e,t=!0){const{url:n,headers:r,method:i,signal:o}=s,l=new URL(n),c=l.host,d=new Headers(r);l.protocol=t?"https:":"http:",l.host=`${e.host}:${t?e.https:e.http}`,l.pathname=`/${c}${l.pathname}`;let u=l.toString();const p=Je()?{cache:"no-store"}:null;if(d.has("X-Miku-Agent")){const a=d.get("X-Miku-Agent");d.delete("X-Miku-Agent");const f=u.includes("?")?"&":"?",h=["X-Miku-Agent",a].map(encodeURIComponent).join("=");u=u+f+h}return new Request(u,V(S(S({},En),p),{headers:d,method:i,signal:o}))}function Ur(s){const e=[],t=s.split(`
7
+ `).map(r=>r.trim()).filter(r=>r.length>0);if(t[0]!=="#EXTM3U")throw new Error("Invalid Extended M3U Playlist");let n=null;for(const r of t){if(r.startsWith("#")){r.startsWith("#EXTINF:")&&(n=r);continue}n!=null&&(e.push({uri:r}),n=null)}return e}const Tn=E("client"),_t=O("client");class zr{constructor(e,t){y(this,"fileTasks",new Map);y(this,"cache");y(this,"cdnResolver");y(this,"liveResolver");y(this,"nativeHttpClient");y(this,"http");y(this,"liveHttp");y(this,"patterns");y(this,"logger");var o,l,c,d,u;this.config=t,t!=null&&t.debug&&B(),this.cache=new tr(t==null?void 0:t.cache),this.logger=(o=t==null?void 0:t.logger)!=null?o:new vn(e),this.cdnResolver=(l=t==null?void 0:t.resolver)!=null?l:new $s(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 Or(this.logger,e,t==null?void 0:t.scheduler),this.nativeHttpClient=new Hr(this.logger);const n=(d=t==null?void 0:t.httpClient)!=null?d:new xn(this.logger),r=(u=t==null?void 0:t.liveHttpClient)!=null?u:new xn(this.logger);this.patterns=S(S({},zt),t==null?void 0:t.patterns),this.http=new hn(this.logger,n,this.cdnResolver,6e3);const i=2e3;this.liveHttp=new hn(this.logger,r,this.liveResolver,i)}prepare(e){return b(this,null,function*(){return Promise.all(e.map(t=>this.cdnResolver.resolveDomain(new q,t))).catch(t=>{_t("prepare failed:",t)})})}createTask(e,t){const n=e.indexOf("#");return n>=0&&(e=e.slice(0,n)),new dn(e,t!=null?t:null,this.logger,(r,i)=>(r.set("taskType",1),this.startTask(r,i)))}createLiveTask(e,t){const n=e.indexOf("#");return n>=0&&(e=e.slice(0,n)),new dn(e,t!=null?t:null,this.logger,(r,i)=>(r.set("taskType",2),this.startLiveTask(r,i)))}startTask(e,t){return b(this,null,function*(){const n=new URL(t.url).hostname,r=yield this.cdnResolver.getCacheKey(t.url,n);let i=this.fileTasks.get(r);if(i==null){const o=()=>b(this,null,function*(){var c;const l=yield this.cdnResolver.getMediaOptimization(n);return S(S(S({},Rr),l),(c=this.config)==null?void 0:c.mediaOptimization)});i=new Cr(this.cache,this.nativeHttpClient,this.http,r,t.url,this.patterns,o),this.fileTasks.set(r,i)}return i.startTask(e,t)})}saveM3u8SegmentResult(e,t){return b(this,null,function*(){const n=yield Ss(t),i=Ur(n).map(o=>Gn(o.uri,e));Tn("saveM3u8SegmentResult",ye(e),i.map(ye)),yield this.liveResolver.saveM3u8SegmentResult(e,i)})}startLiveTask(e,t){return b(this,null,function*(){var d,u;const n={};t.range!=null&&(n.Range=Ee({start:t.range.start,end:t.range.end==null?null:t.range.end-1}));const r=new re(t.url,{method:"GET",headers:n,signal:t.signal});let i,l=((u=(d=this.config)==null?void 0:d.liveOptimization)!=null?u:!0)&&Le(t.url)&&!this.liveResolver.hasResult(t.url);if(l){Tn("use nativeClient for",t.url);const p=this.nativeHttpClient.fetch(e,r);this.liveHttp.do(new q(e),r).catch(a=>{_t("do failed when prefetch for liveOptimization:",a)}),i=yield p}else i=yield this.liveHttp.do(e,r);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(!l&&ke()&&Le(t.url)){const[p,a]=i.body.tee();this.saveM3u8SegmentResult(t.url,a).catch(f=>{_t("Save M3u8 segment cache failed:",t.url,f)}),c=p}return new fn(c,se(i.headers),ft(i.headers),i.headers.get("Content-Type"),i)})}dispose(){this.cache.dispose()}}function Fr(s){return s&&s.mikuDeliveryProxy===!0}const $r="md_download_url",qr="md_download_filename";function Wr(s,e){var o;if(s!==e.url.split("?")[0])return!1;const t=new URL(e.url),n=Ot(t.search),r=n[$r];if(!r)return!1;const i=((o=n[qr])==null?void 0:o.trim())||ye(r).split("/").pop();return{url:r,filename:i.replace(/\/\\/g,"_")}}const jr=E("proxy/common");function Vr(s,e){return b(this,null,function*(){var h;const{browser:t}=Ze(navigator.userAgent);if(t.name==="Firefox"&&e.headers.get("Range")){jr("Short circuit for Firefox:",e.url);const w=yield s.cdnResolver.resolve(new q,e.url),g=_n(e,w);return Response.redirect(g.url)}const n=Se(e.headers),r=n==null?void 0:{start:n.start,end:n.end==null?null:n.end+1},i=s.createTask(e.url,r!=null?r:void 0);let o;try{o=yield i.start(e.signal)}catch(w){if(w instanceof Ne){const{status:g,statusText:x,headers:m,body:v,underlayer:R}=w.response;return ce()?new Response(v,{status:g,statusText:x,headers:m}):R}throw w}let{stream:l,contentType:c,size:d,fileSize:u,underlayer:p}=o;if(!ce())return p.underlayer;let a=Jt(p==null?void 0:p.headers);return a.set("Accept-Ranges","bytes"),a.set("Access-Control-Allow-Origin","*"),a.set("Content-Type",c!=null?c:""),a.set("Content-Length",(d!=null?d:"")+""),a.set("Content-Transfer-Encoding","binary"),r!=null&&a.set("Content-Range",Ce({start:(h=r.start)!=null?h:0,end:r.end!=null?r.end-1:u!=null?u-1:null,totalSize:u})),new Response(l,{status:r==null?200:206,statusText:r==null?"OK":"Partial Content",headers:a})})}function Kr(s,e){return b(this,null,function*(){var a;const t=Se(e.headers),n=t==null?void 0:{start:t.start,end:t.end==null?null:t.end+1},r=s.createLiveTask(e.url,n!=null?n:void 0);let{stream:i,contentType:o,size:l,fileSize:c,underlayer:d}=yield r.start(e.signal);if(!ke())return d.underlayer;let u=new Headers(d==null?void 0:d.headers);return u.set("Accept-Ranges","bytes"),u.set("Access-Control-Allow-Origin","*"),u.set("Content-Type",o!=null?o:""),u.set("Content-Length",(l!=null?l:"")+""),n!=null&&u.set("Content-Range",Ce({start:(a=n.start)!=null?a:0,end:n.end!=null?n.end-1:c!=null?c-1:null,totalSize:c})),new Response(i,{status:n==null?200:206,statusText:n==null?"OK":"Partial Content",headers:u})})}const Gr="MIKU_DELIVERY_PROXY_CONFIG";function Qr(s){const e=s.split("?")[1];if(!e)throw new Error("Invalid script url");const n=new URLSearchParams(e).get(Gr);if(n==null)throw new Error("Invalid script url: no config info");const r=JSON.parse(n),i=o=>o==null?void 0:o.map(({source:l,flags:c})=>new RegExp(l,c));return V(S({},r),{patterns:r.patterns==null?void 0:Wn(r.patterns,o=>i(o))})}function Xr(s){return Array.isArray(s)?{cdn:s,live:[]}:S({cdn:[],live:[]},s)}function An(s,e){const t=s.hostname;return e.includes("*")||e.includes(t)}function Dn(s,e){const t=s.headers.get("Content-Disposition");if(t!=null){const r=t.toLowerCase().indexOf("filename*=");if(r>=0){s.headers.set("Content-Disposition","attachment; "+t.slice(r));return}const i=t.toLowerCase().indexOf("filename=");if(i>=0){s.headers.set("Content-Disposition","attachment; "+t.slice(i));return}}const n=Cs(e);s.headers.set("Content-Disposition","attachment; filename*="+n)}class Yr{constructor(e){this.logger=e}log(e){return this.logger.log("PageStatusLog",e)}}const Zr=O("proxy/statistics");class Jr{constructor(e){y(this,"windowFetchItemsMap",new Map);y(this,"perfIdMap",new Map);y(this,"statusLogger");this.app=e,this.statusLogger=new Yr(new vn(e))}onFetchItem(e,t,n,r,i){const o={url:t,ecdn:r,fallback:i!=null?i:!1,size:se(n.headers)};let l=this.windowFetchItemsMap.get(e);l==null&&(l=[],this.windowFetchItemsMap.set(e,l)),l.push(o)}logResponse(e,t,n){var r;this.statusLogger.log({r_id:(r=this.perfIdMap.get(e))!=null?r:"",text:n.statusText,code:n.status,url:t})}logError(e,t,n){var r;this.statusLogger.log({r_id:(r=this.perfIdMap.get(e))!=null?r:"",text:n instanceof Error?n.message:"",code:-1,url:t})}onWindowClose(e){this.windowFetchItemsMap.delete(e),this.perfIdMap.delete(e)}onPerfRidReceived(e,t){this.perfIdMap.set(e,t)}getFetchItems(e){return this.windowFetchItemsMap.get(e)||[]}}function ei(t){return b(this,arguments,function*(s,e={}){const{url:n,headers:r,method:i,redirect:o,signal:l}=s,c=self.location.host,d=new URL(n).host;if(c===d)return fetch(s,e);const u=new Request(n,S({mode:"cors",credentials:"omit",headers:r,method:i,redirect:o,signal:l},e));try{return yield fetch(u)}catch(p){return Zr("Request with CORS failed:",n,p),fetch(s)}})}const $e=E("proxy/sw"),we=self,G=Qr(we.location.href),Tt=Xr(G.domains),In=S(S({},zt),G.patterns),qe=new zr(G.app,S({debug:G.debug,patterns:G.patterns},G.client));qe.prepare(Tt.cdn);const ti=qe.nativeHttpClient,X=new Jr(G.app);we.addEventListener("activate",s=>{s.waitUntil(we.clients.claim()),K.onRemove(e=>{X.onWindowClose(e)})}),we.addEventListener("fetch",s=>b(this,null,function*(){if(s.clientId!==""&&K.add(s.clientId),s.request.method!=="GET")return;let e=s.request,t=!1;if(G.anchorDownload&&(t=Wr(we.registration.scope,e),t!==!1)){const i=e,{url:o}=i,l=Qe(i,["url"]);e=new Request(t.url,S({},l))}const n=new URL(e.url),r=new AbortController;if(Ut(r,s.request.signal),Object.defineProperty(e,"signal",{value:r.signal}),K.whenRemoved(s.clientId,()=>r.abort(new Vn(`Source client ${s.clientId} closed`))),An(n,Tt.cdn)&&Ft(n,In))return ni(s,e,t);if(An(n,Tt.live)&&Ft(n,In,["live"]))return si(s,e);G.statistics&&s.respondWith(ei(e).then(o=>(X.onFetchItem(s.clientId,e.url,o,!1),X.logResponse(s.clientId,e.url,o),o),o=>{throw X.logError(s.clientId,e.url,o),o}))})),we.addEventListener("message",s=>b(this,null,function*(){if(s.source instanceof WindowClient&&!!Fr(s.data))switch($e("got proxy message",s.data,"from",s.source.id),s.data.type){case"window-available":K.add(s.source.id);break;case"window-unavailable":K.remove(s.source.id);break;case"get-window-fetch-items":const e=s.source.id,t=X.getFetchItems(e),n=yield K.get(e);if(n==null)throw new Error(`Invalid window client ID: ${e}`);const r={mikuDeliveryProxy:!0,type:"window-fetch-items",items:t};n.postMessage(r);break;case"get-perf-rid":X.onPerfRidReceived(s.source.id,s.data.rid)}}));function ni(s,e,t=!1){$e("use cdn",e.url),s.respondWith(Vr(qe,e).then(n=>(t!==!1&&Dn(n,t.filename),G.statistics&&(X.onFetchItem(s.clientId,e.url,n,!0,!1),X.logResponse(s.clientId,e.url,n)),n),n=>b(this,null,function*(){let r=n;if(Rt(n)){$e("Use fallback fetch for request",e.url,", error:",n);try{const i=new q;i.set("taskDomain",new URL(e.url).hostname);const o=!!G.statistics,{body:l,status:c,statusText:d,headers:u,underlayer:p}=yield ti.fetch(i,Ts(e),o,!1),a=ce()?new Response(l,{status:c,statusText:d,headers:u}):p;return t!==!1&&Dn(a,t.filename),G.statistics&&(X.onFetchItem(s.clientId,e.url,a,!0,!0),X.logResponse(s.clientId,e.url,a)),a}catch(i){r=i}}throw G.statistics&&X.logError(s.clientId,e.url,r),r})))}function si(s,e){s.respondWith(Kr(qe,e).then(void 0,t=>b(this,null,function*(){if(Rt(t))return $e("Use fallback fetch for request",e.url,", error:",t),fetch(e);throw t})))}})();
@@ -0,0 +1,157 @@
1
+ <!DOCTYPE html>
2
+ <html lang=zh-CN>
3
+
4
+ <head>
5
+ <meta charset=utf-8>
6
+ <meta http-equiv=X-UA-Compatible content="IE=edge">
7
+ <meta name=viewport
8
+ content="width=device-width,user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1">
9
+ <title></title>
10
+ <style type="text/css">
11
+ body {
12
+ position: absolute;
13
+ width: 100%;
14
+ height: 100%;
15
+ overflow: hidden;
16
+ }
17
+
18
+ .wrapper {
19
+ width: 500px;
20
+ height: 500px;
21
+ position: absolute;
22
+ top: 50%;
23
+ left: 50%;
24
+ margin-top: -200px;
25
+ margin-left: -500px;
26
+ text-align: center;
27
+ }
28
+
29
+ .barcode-image {
30
+ display: inline-block;
31
+ vertical-align: middle;
32
+ width: 200px;
33
+ height: 200px;
34
+ }
35
+
36
+ .list {
37
+ width: 500px;
38
+ }
39
+
40
+ .h5-viwer-box {
41
+ position: absolute;
42
+ width: 45vh;
43
+ height: 80vh;
44
+ right: 50px;
45
+ top: 8vh;
46
+ box-sizing: content-box;
47
+ border: solid 10px #000000;
48
+ border-radius: 10px;
49
+ box-shadow: #DDDDDD 10px 10px 20px;
50
+ }
51
+
52
+ .h5-viwer {
53
+ width: 45vh;
54
+ height: 80vh;
55
+ border: 0;
56
+ padding: 0;
57
+ }
58
+
59
+ .h5-copy-link {
60
+ position: absolute;
61
+ width: 45vh;
62
+ height: 40px;
63
+ right: 50px;
64
+ bottom: 4vh;
65
+ text-align: center;
66
+ }
67
+
68
+ #copy-link-btn {
69
+ display: inline-block;
70
+ width: 100px;
71
+ height: 40px;
72
+ text-align: center;
73
+ line-height: 40px;
74
+ border-radius: 6px;
75
+ color: white;
76
+ font-size: 16px;
77
+ cursor: pointer;
78
+ user-select: none;
79
+ -ms-user-select: none;
80
+ -moz-user-select: none;
81
+ -webkit-user-select: none;
82
+ background-color: #42b983;
83
+ }
84
+
85
+ #copy-link-btn:active {
86
+ opacity: 0.7;
87
+ }
88
+
89
+ #copy-link-tooltip {
90
+ position: absolute;
91
+ width: 100px;
92
+ height: 30px;
93
+ left: 50%;
94
+ top: 5px;
95
+ margin-left: 120px;
96
+ line-height: 30px;
97
+ color: white;
98
+ background-color: rgba(0, 0, 0, 0.5);
99
+ border-radius: 6px;
100
+ opacity: 0;
101
+ transition: all 0.3s ease;
102
+ -ms-transition: all 0.3s ease;
103
+ -moz-transition: all 0.3s ease;
104
+ -webkit-transition: all 0.3s ease;
105
+ }
106
+
107
+
108
+ #copy-link-tooltip:after {
109
+ content: "";
110
+ position: absolute;
111
+ width: 0;
112
+ height: 0;
113
+ right: 100%;
114
+ top: 50%;
115
+ margin-top: -8px;
116
+ border: solid 8px transparent;
117
+ border-right: solid 8px rgba(0, 0, 0, 0.5);
118
+ }
119
+
120
+ #copy-link-tooltip.show {
121
+ opacity: 1;
122
+ transform: translateX(-50px);
123
+ -ms-transform: translateX(-50px);
124
+ -moz-transform: translateX(-50px);
125
+ -webkit-transform: translateX(-50px);
126
+ }
127
+ </style>
128
+ </head>
129
+
130
+ <body>
131
+ <div class="wrapper">
132
+ <canvas id="canvas" class="barcode-image"></canvas>
133
+ <div class="list">
134
+ <p class="list-cell">请使用手机浏览器,扫描上方二维码浏览。</p>
135
+ </div>
136
+ </div>
137
+ <div class="h5-viwer-box">
138
+ <iframe id="iframe" class="h5-viwer" src="" width="414" height="736"></iframe>
139
+ </div>
140
+ <script src="https://unpkg.com/qrcode@1.4.4/build/qrcode.min.js"></script>
141
+ <script>
142
+ var src = decodeURIComponent(location.hash.replace(/^#/, ''))
143
+ if(!/^https?:\/\//.test(src)) {
144
+ src = 'https://uniapp.dcloud.io/h5/'
145
+ }
146
+ document.getElementById('iframe').src = src
147
+ QRCode.toCanvas(document.getElementById('canvas'), src)
148
+ var userAgent = navigator.userAgent
149
+ window.addEventListener('resize', function() {
150
+ if(navigator.userAgent !== userAgent) {
151
+ location.replace(src)
152
+ }
153
+ })
154
+ </script>
155
+ </body>
156
+
157
+ </html>
@@ -0,0 +1,119 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
6
+ <title>网络网页</title>
7
+ <style type="text/css">
8
+ .btn {
9
+ display: block;
10
+ margin: 20px auto;
11
+ padding: 5px;
12
+ background-color: #007aff;
13
+ border: 0;
14
+ color: #ffffff;
15
+ height: 40px;
16
+ width: 200px;
17
+ }
18
+
19
+ .btn-red {
20
+ background-color: #dd524d;
21
+ }
22
+
23
+ .btn-yellow {
24
+ background-color: #f0ad4e;
25
+ }
26
+
27
+ .desc {
28
+ padding: 10px;
29
+ color: #999999;
30
+ }
31
+
32
+ .post-message-section {
33
+ visibility: hidden;
34
+ }
35
+ </style>
36
+ </head>
37
+ <body>
38
+ <p class="desc">web-view 组件加载网络 html 示例。点击下列按钮,跳转至其它页面。</p>
39
+ <div class="btn-list">
40
+ <button class="btn" type="button" data-action="navigateTo">navigateTo</button>
41
+ <button class="btn" type="button" data-action="redirectTo">redirectTo</button>
42
+ <button class="btn" type="button" data-action="navigateBack">navigateBack</button>
43
+ <button class="btn" type="button" data-action="reLaunch">reLaunch</button>
44
+ <button class="btn" type="button" data-action="switchTab">switchTab</button>
45
+ </div>
46
+ <div class="post-message-section">
47
+ <p class="desc">网页向应用发送消息,应用会在此页面后退时接收到消息。</p>
48
+ <div class="btn-list">
49
+ <button class="btn btn-red" type="button" id="postMessage">postMessage</button>
50
+ </div>
51
+ </div>
52
+ <script type="text/javascript">
53
+ var userAgent = navigator.userAgent;
54
+ if (userAgent.indexOf('AlipayClient') > -1) {
55
+ // 支付宝小程序的 JS-SDK 防止 404 需要动态加载,如果不需要兼容支付宝小程序,则无需引用此 JS 文件。
56
+ document.writeln('<script src="https://appx/web-view.min.js"' + '>' + '<' + '/' + 'script>');
57
+ } else if (/QQ/i.test(userAgent) && /miniProgram/i.test(userAgent)) {
58
+ // QQ 小程序
59
+ document.write('<script type="text/javascript" src="https://qqq.gtimg.cn/miniprogram/webview_jssdk/qqjssdk-1.0.0.js"><\/script>');
60
+ } else if (/miniProgram/i.test(userAgent) && /micromessenger/i.test(userAgent)) {
61
+ // 微信小程序 JS-SDK 如果不需要兼容微信小程序,则无需引用此 JS 文件。
62
+ document.write('<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.4.0.js"><\/script>');
63
+ } else if (/toutiaomicroapp/i.test(userAgent)) {
64
+ // 头条小程序 JS-SDK 如果不需要兼容头条小程序,则无需引用此 JS 文件。
65
+ document.write('<script type="text/javascript" src="https://s3.pstatp.com/toutiao/tmajssdk/jssdk-1.0.1.js"><\/script>');
66
+ } else if (/swan/i.test(userAgent)) {
67
+ // 百度小程序 JS-SDK 如果不需要兼容百度小程序,则无需引用此 JS 文件。
68
+ document.write('<script type="text/javascript" src="https://b.bdstatic.com/searchbox/icms/searchbox/js/swan-2.0.18.js"><\/script>');
69
+ } else if (/quickapp/i.test(userAgent)) {
70
+ // quickapp
71
+ document.write('<script type="text/javascript" src="https://quickapp/jssdk.webview.min.js"><\/script>');
72
+ }
73
+ if (!/toutiaomicroapp/i.test(userAgent)) {
74
+ document.querySelector('.post-message-section').style.visibility = 'visible';
75
+ }
76
+ </script>
77
+ <!-- uni 的 SDK -->
78
+ <script type="text/javascript" src="https://unpkg.com/@dcloudio/uni-webview-js@0.0.1/index.js"></script>
79
+ <script type="text/javascript">
80
+ document.addEventListener('UniAppJSBridgeReady', function() {
81
+ document.querySelector('.btn-list').addEventListener('click', function(evt) {
82
+ var target = evt.target;
83
+ if (target.tagName === 'BUTTON') {
84
+ var action = target.getAttribute('data-action');
85
+ switch (action) {
86
+ case 'switchTab':
87
+ uni.switchTab({
88
+ url: '/pages/tabBar/center/center'
89
+ });
90
+ break;
91
+ case 'reLaunch':
92
+ uni.reLaunch({
93
+ url: '/pages/tabBar/case/case'
94
+ });
95
+ break;
96
+ case 'navigateBack':
97
+ uni.navigateBack({
98
+ delta: 1
99
+ });
100
+ break;
101
+ default:
102
+ uni[action]({
103
+ url: '/pages/component/button/button'
104
+ });
105
+ break;
106
+ }
107
+ }
108
+ });
109
+ document.getElementById('postMessage').addEventListener('click', function() {
110
+ uni.postMessage({
111
+ data: {
112
+ action: 'message'
113
+ }
114
+ });
115
+ });
116
+ });
117
+ </script>
118
+ </body>
119
+ </html>
@@ -0,0 +1,119 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
6
+ <title>网络网页</title>
7
+ <style type="text/css">
8
+ .btn {
9
+ display: block;
10
+ margin: 20px auto;
11
+ padding: 5px;
12
+ background-color: #007aff;
13
+ border: 0;
14
+ color: #ffffff;
15
+ height: 40px;
16
+ width: 200px;
17
+ }
18
+
19
+ .btn-red {
20
+ background-color: #dd524d;
21
+ }
22
+
23
+ .btn-yellow {
24
+ background-color: #f0ad4e;
25
+ }
26
+
27
+ .desc {
28
+ padding: 10px;
29
+ color: #999999;
30
+ }
31
+
32
+ .post-message-section {
33
+ visibility: hidden;
34
+ }
35
+ </style>
36
+ </head>
37
+ <body>
38
+ <p class="desc">web-view 组件加载网络 html 示例。点击下列按钮,跳转至其它页面。</p>
39
+ <div class="btn-list">
40
+ <button class="btn" type="button" data-action="navigateTo">navigateTo</button>
41
+ <button class="btn" type="button" data-action="redirectTo">redirectTo</button>
42
+ <button class="btn" type="button" data-action="navigateBack">navigateBack</button>
43
+ <button class="btn" type="button" data-action="reLaunch">reLaunch</button>
44
+ <button class="btn" type="button" data-action="switchTab">switchTab</button>
45
+ </div>
46
+ <div class="post-message-section">
47
+ <p class="desc">网页向应用发送消息,注意:小程序端应用会在此页面后退时接收到消息。</p>
48
+ <div class="btn-list">
49
+ <button class="btn btn-red" type="button" id="postMessage">postMessage</button>
50
+ </div>
51
+ </div>
52
+ <script type="text/javascript">
53
+ var userAgent = navigator.userAgent;
54
+ if (userAgent.indexOf('AlipayClient') > -1) {
55
+ // 支付宝小程序的 JS-SDK 防止 404 需要动态加载,如果不需要兼容支付宝小程序,则无需引用此 JS 文件。
56
+ document.writeln('<script src="https://appx/web-view.min.js"' + '>' + '<' + '/' + 'script>');
57
+ } else if (/QQ/i.test(userAgent) && /miniProgram/i.test(userAgent)) {
58
+ // QQ 小程序
59
+ document.write('<script type="text/javascript" src="https://qqq.gtimg.cn/miniprogram/webview_jssdk/qqjssdk-1.0.0.js"><\/script>');
60
+ } else if (/miniProgram/i.test(userAgent) && /micromessenger/i.test(userAgent)) {
61
+ // 微信小程序 JS-SDK 如果不需要兼容微信小程序,则无需引用此 JS 文件。
62
+ document.write('<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.4.0.js"><\/script>');
63
+ } else if (/toutiaomicroapp/i.test(userAgent)) {
64
+ // 头条小程序 JS-SDK 如果不需要兼容头条小程序,则无需引用此 JS 文件。
65
+ document.write('<script type="text/javascript" src="https://s3.pstatp.com/toutiao/tmajssdk/jssdk-1.0.1.js"><\/script>');
66
+ } else if (/swan/i.test(userAgent)) {
67
+ // 百度小程序 JS-SDK 如果不需要兼容百度小程序,则无需引用此 JS 文件。
68
+ document.write('<script type="text/javascript" src="https://b.bdstatic.com/searchbox/icms/searchbox/js/swan-2.0.18.js"><\/script>');
69
+ } else if (/quickapp/i.test(userAgent)) {
70
+ // quickapp
71
+ document.write('<script type="text/javascript" src="https://quickapp/jssdk.webview.min.js"><\/script>');
72
+ }
73
+ if (!/toutiaomicroapp/i.test(userAgent)) {
74
+ document.querySelector('.post-message-section').style.visibility = 'visible';
75
+ }
76
+ </script>
77
+ <!-- uni 的 SDK -->
78
+ <script type="text/javascript" src="https://unpkg.com/@dcloudio/uni-webview-js@0.0.1/index.js"></script>
79
+ <script type="text/javascript">
80
+ document.addEventListener('UniAppJSBridgeReady', function() {
81
+ document.querySelector('.btn-list').addEventListener('click', function(evt) {
82
+ var target = evt.target;
83
+ if (target.tagName === 'BUTTON') {
84
+ var action = target.getAttribute('data-action');
85
+ switch (action) {
86
+ case 'switchTab':
87
+ uni.switchTab({
88
+ url: '/pages/tabBar/API/API'
89
+ });
90
+ break;
91
+ case 'reLaunch':
92
+ uni.reLaunch({
93
+ url: '/pages/tabBar/component/component'
94
+ });
95
+ break;
96
+ case 'navigateBack':
97
+ uni.navigateBack({
98
+ delta: 1
99
+ });
100
+ break;
101
+ default:
102
+ uni[action]({
103
+ url: '/pages/component/button/button'
104
+ });
105
+ break;
106
+ }
107
+ }
108
+ });
109
+ document.getElementById('postMessage').addEventListener('click', function() {
110
+ uni.postMessage({
111
+ data: {
112
+ action: 'message'
113
+ }
114
+ });
115
+ });
116
+ });
117
+ </script>
118
+ </body>
119
+ </html>