@opendesign-plus/components 0.0.1-rc.103 → 0.0.1-rc.105

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 (1169) hide show
  1. package/dist/chunk-element-plus.cjs.js +1 -0
  2. package/dist/chunk-element-plus.es.js +1442 -0
  3. package/dist/components/article-anchor/components/ArticleAnchorPad.vue.d.ts +2 -6
  4. package/dist/components/community-updates/OCommunityUpdates.vue.d.ts +46 -0
  5. package/dist/components/community-updates/OCommunityUpdatesCard.vue.d.ts +7 -0
  6. package/dist/components/community-updates/index.d.ts +91 -0
  7. package/dist/components/community-updates/types.d.ts +36 -0
  8. package/dist/components/doc-layout/ODocLayout.vue.d.ts +8 -4
  9. package/dist/components/doc-layout/index.d.ts +9 -0
  10. package/dist/components/meeting/config.d.ts +0 -2
  11. package/dist/components/search-doc-result/OSearchDocResult.vue.d.ts +2 -0
  12. package/dist/components/search-doc-result/index.d.ts +6 -0
  13. package/dist/components.cjs.js +55 -89
  14. package/dist/components.css +2 -9
  15. package/dist/components.element.cjs.js +1 -1
  16. package/dist/components.element.es.js +1 -4
  17. package/dist/components.es.js +48365 -66118
  18. package/dist/index.d.ts +1 -0
  19. package/dist/treeshaking/_virtual/@babel/runtime/helpers/esm/extends.js.mjs +9 -10
  20. package/dist/treeshaking/_virtual/@babel/runtime/helpers/extends.js.mjs +16 -22
  21. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/byte-helpers.js.mjs +133 -128
  22. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/codec-helpers.js.mjs +1 -0
  23. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/codecs.js.mjs +152 -146
  24. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/containers.js.mjs +176 -150
  25. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/decode-b64-to-uint8-array.js.mjs +11 -12
  26. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/ebml-helpers.js.mjs +157 -118
  27. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/id3-helpers.js.mjs +21 -30
  28. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/media-groups.js.mjs +20 -12
  29. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/media-types.js.mjs +18 -14
  30. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/mp4-helpers.js.mjs +150 -53
  31. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/nal-helpers.js.mjs +78 -74
  32. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/opus-helpers.js.mjs +10 -0
  33. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/resolve-url.js.mjs +15 -21
  34. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/stream.js.mjs +55 -51
  35. package/dist/treeshaking/_virtual/@videojs/xhr/lib/http-handler.js.mjs +40 -55
  36. package/dist/treeshaking/_virtual/@videojs/xhr/lib/index.js.mjs +242 -7
  37. package/dist/treeshaking/_virtual/@videojs/xhr/lib/interceptors.js.mjs +94 -109
  38. package/dist/treeshaking/_virtual/@videojs/xhr/lib/retry.js.mjs +100 -104
  39. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/conventions.js.mjs +177 -142
  40. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/dom-parser.js.mjs +244 -224
  41. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/dom.js.mjs +1443 -1449
  42. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/entities.js.mjs +2168 -2149
  43. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/index.js.mjs +12 -5
  44. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/sax.js.mjs +489 -594
  45. package/dist/treeshaking/_virtual/__vite-browser-external.mjs +7 -4
  46. package/dist/treeshaking/_virtual/_plugin-vue_export-helper.mjs +6 -9
  47. package/dist/treeshaking/_virtual/_rolldown/runtime.mjs +27 -0
  48. package/dist/treeshaking/_virtual/cropperjs/dist/cropper.js.mjs +2575 -0
  49. package/dist/treeshaking/_virtual/crypto-js/aes.js.mjs +163 -162
  50. package/dist/treeshaking/_virtual/crypto-js/blowfish.js.mjs +1214 -1197
  51. package/dist/treeshaking/_virtual/crypto-js/cipher-core.js.mjs +683 -649
  52. package/dist/treeshaking/_virtual/crypto-js/core.js.mjs +589 -614
  53. package/dist/treeshaking/_virtual/crypto-js/enc-base64.js.mjs +90 -112
  54. package/dist/treeshaking/_virtual/crypto-js/enc-base64url.js.mjs +97 -123
  55. package/dist/treeshaking/_virtual/crypto-js/enc-utf16.js.mjs +113 -122
  56. package/dist/treeshaking/_virtual/crypto-js/evpkdf.js.mjs +113 -97
  57. package/dist/treeshaking/_virtual/crypto-js/format-hex.js.mjs +56 -65
  58. package/dist/treeshaking/_virtual/crypto-js/hmac.js.mjs +97 -111
  59. package/dist/treeshaking/_virtual/crypto-js/index.js.mjs +84 -7
  60. package/dist/treeshaking/_virtual/crypto-js/lib-typedarrays.js.mjs +30 -49
  61. package/dist/treeshaking/_virtual/crypto-js/md5.js.mjs +205 -183
  62. package/dist/treeshaking/_virtual/crypto-js/mode-cfb.js.mjs +45 -57
  63. package/dist/treeshaking/_virtual/crypto-js/mode-ctr-gladman.js.mjs +62 -85
  64. package/dist/treeshaking/_virtual/crypto-js/mode-ctr.js.mjs +36 -45
  65. package/dist/treeshaking/_virtual/crypto-js/mode-ecb.js.mjs +28 -36
  66. package/dist/treeshaking/_virtual/crypto-js/mode-ofb.js.mjs +34 -43
  67. package/dist/treeshaking/_virtual/crypto-js/pad-ansix923.js.mjs +33 -37
  68. package/dist/treeshaking/_virtual/crypto-js/pad-iso10126.js.mjs +29 -33
  69. package/dist/treeshaking/_virtual/crypto-js/pad-iso97971.js.mjs +28 -32
  70. package/dist/treeshaking/_virtual/crypto-js/pad-nopadding.js.mjs +22 -28
  71. package/dist/treeshaking/_virtual/crypto-js/pad-zeropadding.js.mjs +33 -39
  72. package/dist/treeshaking/_virtual/crypto-js/pbkdf2.js.mjs +119 -104
  73. package/dist/treeshaking/_virtual/crypto-js/rabbit-legacy.js.mjs +139 -134
  74. package/dist/treeshaking/_virtual/crypto-js/rabbit.js.mjs +136 -137
  75. package/dist/treeshaking/_virtual/crypto-js/rc4.js.mjs +105 -91
  76. package/dist/treeshaking/_virtual/crypto-js/ripemd160.js.mjs +510 -485
  77. package/dist/treeshaking/_virtual/crypto-js/sha1.js.mjs +113 -95
  78. package/dist/treeshaking/_virtual/crypto-js/sha224.js.mjs +73 -50
  79. package/dist/treeshaking/_virtual/crypto-js/sha256.js.mjs +142 -125
  80. package/dist/treeshaking/_virtual/crypto-js/sha3.js.mjs +210 -207
  81. package/dist/treeshaking/_virtual/crypto-js/sha384.js.mjs +80 -52
  82. package/dist/treeshaking/_virtual/crypto-js/sha512.js.mjs +307 -287
  83. package/dist/treeshaking/_virtual/crypto-js/tripledes.js.mjs +817 -789
  84. package/dist/treeshaking/_virtual/crypto-js/x64-core.js.mjs +102 -261
  85. package/dist/treeshaking/_virtual/global/document.js.mjs +16 -7
  86. package/dist/treeshaking/_virtual/global/window.js.mjs +12 -7
  87. package/dist/treeshaking/_virtual/is-function/index.js.mjs +13 -20
  88. package/dist/treeshaking/_virtual/m3u8-parser/dist/m3u8-parser.es.js.mjs +1145 -1380
  89. package/dist/treeshaking/_virtual/mpd-parser/dist/mpd-parser.es.js.mjs +1723 -1628
  90. package/dist/treeshaking/_virtual/mux.js/lib/tools/parse-sidx.js.mjs +39 -7
  91. package/dist/treeshaking/_virtual/mux.js/lib/utils/clock.js.mjs +44 -5
  92. package/dist/treeshaking/_virtual/mux.js/lib/utils/numbers.js.mjs +21 -27
  93. package/dist/treeshaking/_virtual/rxjs/dist/esm5/internal/NotificationFactories.js.mjs +18 -0
  94. package/dist/treeshaking/_virtual/rxjs/dist/esm5/internal/Observable.js.mjs +86 -91
  95. package/dist/treeshaking/_virtual/rxjs/dist/esm5/internal/Subscriber.js.mjs +141 -136
  96. package/dist/treeshaking/_virtual/rxjs/dist/esm5/internal/Subscription.js.mjs +105 -131
  97. package/dist/treeshaking/_virtual/rxjs/dist/esm5/internal/config.js.mjs +7 -4
  98. package/dist/treeshaking/_virtual/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js.mjs +15 -15
  99. package/dist/treeshaking/_virtual/rxjs/dist/esm5/internal/symbol/observable.js.mjs +3 -4
  100. package/dist/treeshaking/_virtual/rxjs/dist/esm5/internal/util/UnsubscriptionError.js.mjs +10 -11
  101. package/dist/treeshaking/_virtual/rxjs/dist/esm5/internal/util/arrRemove.js.mjs +6 -7
  102. package/dist/treeshaking/_virtual/rxjs/dist/esm5/internal/util/createErrorClass.js.mjs +10 -11
  103. package/dist/treeshaking/_virtual/rxjs/dist/esm5/internal/util/errorContext.js.mjs +23 -6
  104. package/dist/treeshaking/_virtual/rxjs/dist/esm5/internal/util/identity.js.mjs +3 -4
  105. package/dist/treeshaking/_virtual/rxjs/dist/esm5/internal/util/isFunction.js.mjs +3 -4
  106. package/dist/treeshaking/_virtual/rxjs/dist/esm5/internal/util/noop.js.mjs +3 -5
  107. package/dist/treeshaking/_virtual/rxjs/dist/esm5/internal/util/pipe.js.mjs +9 -14
  108. package/dist/treeshaking/_virtual/rxjs/dist/esm5/internal/util/reportUnhandledError.js.mjs +8 -8
  109. package/dist/treeshaking/_virtual/tslib/tslib.es6.mjs.mjs +60 -54
  110. package/dist/treeshaking/_virtual/video.js/dist/video.es.js.mjs +41510 -39526
  111. package/dist/treeshaking/_virtual/videojs-vtt.js/lib/browser-index.js.mjs +46 -7
  112. package/dist/treeshaking/_virtual/videojs-vtt.js/lib/vtt.js.mjs +911 -1082
  113. package/dist/treeshaking/_virtual/videojs-vtt.js/lib/vttcue.js.mjs +238 -235
  114. package/dist/treeshaking/_virtual/videojs-vtt.js/lib/vttregion.js.mjs +115 -122
  115. package/dist/treeshaking/_virtual/~icons/components/icon-address.mjs +21 -0
  116. package/dist/treeshaking/_virtual/~icons/components/icon-anchor-expand.mjs +20 -0
  117. package/dist/treeshaking/_virtual/~icons/components/icon-anchor.mjs +22 -0
  118. package/dist/treeshaking/_virtual/~icons/components/icon-arrow-left.mjs +20 -0
  119. package/dist/treeshaking/_virtual/~icons/components/icon-avatar-line.mjs +20 -0
  120. package/dist/treeshaking/_virtual/~icons/components/icon-caret-left.mjs +20 -0
  121. package/dist/treeshaking/_virtual/~icons/components/icon-caret-right.mjs +20 -0
  122. package/dist/treeshaking/_virtual/~icons/components/icon-chevron-down.mjs +20 -0
  123. package/dist/treeshaking/_virtual/~icons/components/icon-chevron-right.mjs +20 -0
  124. package/dist/treeshaking/_virtual/~icons/components/icon-chevron-up.mjs +20 -0
  125. package/dist/treeshaking/_virtual/~icons/components/icon-close.mjs +20 -0
  126. package/dist/treeshaking/_virtual/~icons/components/icon-copy.mjs +20 -0
  127. package/dist/treeshaking/_virtual/~icons/components/icon-delete-hover.mjs +23 -0
  128. package/dist/treeshaking/_virtual/~icons/components/icon-delete.mjs +17 -0
  129. package/dist/treeshaking/_virtual/~icons/components/icon-download.mjs +17 -0
  130. package/dist/treeshaking/_virtual/~icons/components/icon-edit.mjs +40 -0
  131. package/dist/treeshaking/_virtual/~icons/components/icon-email.mjs +21 -0
  132. package/dist/treeshaking/_virtual/~icons/components/icon-expand.mjs +21 -0
  133. package/dist/treeshaking/_virtual/~icons/components/icon-forum.mjs +21 -0
  134. package/dist/treeshaking/_virtual/~icons/components/icon-header-back.mjs +20 -0
  135. package/dist/treeshaking/_virtual/~icons/components/icon-header-menu.mjs +20 -0
  136. package/dist/treeshaking/_virtual/~icons/components/icon-header-search.mjs +20 -0
  137. package/dist/treeshaking/_virtual/~icons/components/icon-image-upload.mjs +20 -0
  138. package/dist/treeshaking/_virtual/~icons/components/icon-image-zoomin.mjs +20 -0
  139. package/dist/treeshaking/_virtual/~icons/components/icon-like.mjs +20 -0
  140. package/dist/treeshaking/_virtual/~icons/components/icon-link.mjs +30 -0
  141. package/dist/treeshaking/_virtual/~icons/components/icon-locale.mjs +20 -0
  142. package/dist/treeshaking/_virtual/~icons/components/icon-menu-fold.mjs +20 -0
  143. package/dist/treeshaking/_virtual/~icons/components/icon-menu-unfold.mjs +20 -0
  144. package/dist/treeshaking/_virtual/~icons/components/icon-moon.mjs +20 -0
  145. package/dist/treeshaking/_virtual/~icons/components/icon-more.mjs +19 -0
  146. package/dist/treeshaking/_virtual/~icons/components/icon-next.mjs +22 -0
  147. package/dist/treeshaking/_virtual/~icons/components/icon-notice.mjs +20 -0
  148. package/dist/treeshaking/_virtual/~icons/components/icon-outlink.mjs +20 -0
  149. package/dist/treeshaking/_virtual/~icons/components/icon-refresh.mjs +21 -0
  150. package/dist/treeshaking/_virtual/~icons/components/icon-relative-search.mjs +21 -0
  151. package/dist/treeshaking/_virtual/~icons/components/icon-search.mjs +17 -0
  152. package/dist/treeshaking/_virtual/~icons/components/icon-smile.mjs +21 -0
  153. package/dist/treeshaking/_virtual/~icons/components/icon-star.mjs +20 -0
  154. package/dist/treeshaking/_virtual/~icons/components/icon-sun.mjs +20 -0
  155. package/dist/treeshaking/_virtual/~icons/components/icon-time.mjs +20 -0
  156. package/dist/treeshaking/_virtual/~icons/components/icon-tips.mjs +17 -0
  157. package/dist/treeshaking/_virtual/~icons/components/icon-unexpand.mjs +22 -0
  158. package/dist/treeshaking/_virtual/~icons/components/icon-unlike.mjs +20 -0
  159. package/dist/treeshaking/_virtual/~icons/components/icon-working.mjs +17 -0
  160. package/dist/treeshaking/_virtual/~icons/events/icon-checked.mjs +20 -0
  161. package/dist/treeshaking/_virtual/~icons/events/icon-competition.mjs +30 -0
  162. package/dist/treeshaking/_virtual/~icons/events/icon-events.mjs +30 -0
  163. package/dist/treeshaking/_virtual/~icons/events/icon-release.mjs +30 -0
  164. package/dist/treeshaking/_virtual/~icons/events/icon-summit.mjs +30 -0
  165. package/dist/treeshaking/_virtual/~icons/meeting/icon-all.mjs +20 -0
  166. package/dist/treeshaking/_virtual/~icons/meeting/icon-copy.mjs +21 -0
  167. package/dist/treeshaking/_virtual/~icons/meeting/icon-event.mjs +21 -0
  168. package/dist/treeshaking/_virtual/~icons/meeting/icon-help.mjs +21 -0
  169. package/dist/treeshaking/_virtual/~icons/meeting/icon-meet.mjs +20 -0
  170. package/dist/treeshaking/_virtual/~icons/meeting/icon-playing.mjs +35 -0
  171. package/dist/treeshaking/_virtual/~icons/meeting/icon-speaker.mjs +17 -0
  172. package/dist/treeshaking/_virtual/~icons/meeting/icon-summit.mjs +21 -0
  173. package/dist/treeshaking/_virtual/~icons/meeting/icon-tip.mjs +21 -0
  174. package/dist/treeshaking/_virtual/~icons/sig/icon-atomgit.mjs +24 -0
  175. package/dist/treeshaking/_virtual/~icons/sig/icon-gitee.mjs +20 -0
  176. package/dist/treeshaking/_virtual/~icons/sig/icon-mail.mjs +17 -0
  177. package/dist/treeshaking/_virtual/~icons/sig/icon-search.mjs +17 -0
  178. package/dist/treeshaking/_virtual/~icons/sig/icon-user.mjs +17 -0
  179. package/dist/treeshaking/_virtual/~icons/sig/sig-space.mjs +20 -0
  180. package/dist/treeshaking/_virtual/~icons/user-center/icon-add-dark.mjs +42 -0
  181. package/dist/treeshaking/_virtual/~icons/user-center/icon-add-new.mjs +17 -0
  182. package/dist/treeshaking/_virtual/~icons/user-center/icon-check.mjs +20 -0
  183. package/dist/treeshaking/_virtual/~icons/user-center/icon-chevron-right.mjs +20 -0
  184. package/dist/treeshaking/_virtual/~icons/user-center/icon-close.mjs +20 -0
  185. package/dist/treeshaking/_virtual/~icons/user-center/icon-done.mjs +20 -0
  186. package/dist/treeshaking/_virtual/~icons/user-center/icon-edit-new.mjs +17 -0
  187. package/dist/treeshaking/_virtual/~icons/user-center/icon-email.mjs +22 -0
  188. package/dist/treeshaking/_virtual/~icons/user-center/icon-eye-off.mjs +20 -0
  189. package/dist/treeshaking/_virtual/~icons/user-center/icon-eye.mjs +20 -0
  190. package/dist/treeshaking/_virtual/~icons/user-center/icon-gitcode-new.mjs +29 -0
  191. package/dist/treeshaking/_virtual/~icons/user-center/icon-gitee.mjs +20 -0
  192. package/dist/treeshaking/_virtual/~icons/user-center/icon-github.mjs +20 -0
  193. package/dist/treeshaking/_virtual/~icons/user-center/icon-loading.mjs +23 -0
  194. package/dist/treeshaking/_virtual/~icons/user-center/icon-minus-dark.mjs +64 -0
  195. package/dist/treeshaking/_virtual/~icons/user-center/icon-minus-new.mjs +17 -0
  196. package/dist/treeshaking/_virtual/~icons/user-center/icon-openatom.mjs +20 -0
  197. package/dist/treeshaking/_virtual/~icons/user-center/icon-phone.mjs +22 -0
  198. package/dist/treeshaking/_virtual/~icons/user-center/icon-refresh.mjs +45 -0
  199. package/dist/treeshaking/_virtual/~icons/user-center/icon-setting.mjs +20 -0
  200. package/dist/treeshaking/_virtual/~icons/user-center/icon-tips.mjs +30 -0
  201. package/dist/treeshaking/_virtual/~icons/user-center/icon-wechat.mjs +18 -0
  202. package/dist/treeshaking/_virtual/~icons/video/icon-material.mjs +21 -0
  203. package/dist/treeshaking/_virtual/~icons/video/icon-video.mjs +30 -0
  204. package/dist/treeshaking/assets/meeting/empty.mjs +3 -0
  205. package/dist/treeshaking/assets/meeting/transparent.mjs +3 -0
  206. package/dist/treeshaking/assets/search/search-empty.mjs +3 -0
  207. package/dist/treeshaking/assets/styles/element-plus.css +302 -0
  208. package/dist/treeshaking/assets/svg-icons/icon-zoom.mjs +3 -0
  209. package/dist/treeshaking/assets/user-center/images/avatar.mjs +3 -0
  210. package/dist/treeshaking/assets/user-center/images/default-user-photo.mjs +3 -0
  211. package/dist/treeshaking/assets/user-center/images/left-arrow-dark.mjs +3 -0
  212. package/dist/treeshaking/assets/user-center/images/left-arrow-light.mjs +3 -0
  213. package/dist/treeshaking/assets/user-center/images/noData.mjs +3 -0
  214. package/dist/treeshaking/assets/user-center/images/warning-dark.mjs +3 -0
  215. package/dist/treeshaking/assets/user-center/images/warning-light.mjs +3 -0
  216. package/dist/treeshaking/components/activity/OActivityApproval.mjs +6 -0
  217. package/dist/treeshaking/components/activity/OActivityApproval.vue_vue_type_script_setup_true_lang.mjs +586 -0
  218. package/dist/treeshaking/components/activity/OActivityForm.mjs +6 -0
  219. package/dist/treeshaking/components/activity/OActivityForm.vue_vue_type_script_setup_true_lang.mjs +517 -0
  220. package/dist/treeshaking/components/activity/OActivityForm.vue_vue_type_style_index_0_lang.css +369 -0
  221. package/dist/treeshaking/components/activity/OActivityForm.vue_vue_type_style_index_1_lang.css +332 -0
  222. package/dist/treeshaking/components/activity/OActivityMyCalendar.mjs +6 -0
  223. package/dist/treeshaking/components/activity/OActivityMyCalendar.vue_vue_type_script_setup_true_lang.mjs +622 -0
  224. package/dist/treeshaking/components/activity/OActivityMyCalendar.vue_vue_type_style_index_0_lang.css +1380 -0
  225. package/dist/treeshaking/components/activity/OActivityMyCalendar.vue_vue_type_style_index_1_lang.css +323 -0
  226. package/dist/treeshaking/components/activity/composables/useActivityConfig.mjs +88 -137
  227. package/dist/treeshaking/components/activity/config.mjs +3 -4
  228. package/dist/treeshaking/components/activity/index.mjs +14 -29
  229. package/dist/treeshaking/components/anchor-bar/OAnchorBar.mjs +6 -0
  230. package/dist/treeshaking/components/anchor-bar/OAnchorBar.vue_vue_type_script_setup_true_lang.mjs +84 -0
  231. package/dist/treeshaking/components/anchor-bar/index.mjs +6 -9
  232. package/dist/treeshaking/components/article/OArticle.mjs +6 -0
  233. package/dist/treeshaking/components/article/OArticle.vue_vue_type_script_setup_true_lang.mjs +133 -0
  234. package/dist/treeshaking/components/article/OArticleList.mjs +5 -0
  235. package/dist/treeshaking/components/article/OArticleList.vue_vue_type_script_setup_true_lang.mjs +182 -0
  236. package/dist/treeshaking/components/article/OArticleList.vue_vue_type_style_index_0_lang.css +259 -0
  237. package/dist/treeshaking/components/article/components/ArticleTitle.mjs +6 -0
  238. package/dist/treeshaking/components/article/components/ArticleTitle.vue_vue_type_script_setup_true_lang.mjs +77 -0
  239. package/dist/treeshaking/components/article/components/DocTitle.mjs +6 -0
  240. package/dist/treeshaking/components/article/components/DocTitle.vue_vue_type_script_setup_true_lang.mjs +224 -0
  241. package/dist/treeshaking/components/article/index.mjs +10 -17
  242. package/dist/treeshaking/components/article-anchor/OArticleAnchor.mjs +6 -0
  243. package/dist/treeshaking/components/article-anchor/OArticleAnchor.vue_vue_type_script_setup_true_lang.mjs +306 -0
  244. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorItems.mjs +6 -0
  245. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorItems.vue_vue_type_script_setup_true_lang.mjs +32 -0
  246. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorMobile.mjs +6 -0
  247. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorMobile.vue_vue_type_script_setup_true_lang.mjs +132 -0
  248. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorMobile.vue_vue_type_style_index_0_scoped_8190c89e_lang.css +47 -0
  249. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorPad.mjs +6 -0
  250. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorPad.vue.d.ts +2 -6
  251. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorPad.vue_vue_type_script_setup_true_lang.mjs +46 -0
  252. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorPad.vue_vue_type_style_index_0_scoped_2ae25d23_lang.css +80 -0
  253. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorPc.mjs +6 -0
  254. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorPc.vue_vue_type_script_setup_true_lang.mjs +27 -0
  255. package/dist/treeshaking/components/article-anchor/index.mjs +6 -9
  256. package/dist/treeshaking/components/article-pagination/OArticlePagination.mjs +6 -0
  257. package/dist/treeshaking/components/article-pagination/OArticlePagination.vue_vue_type_script_setup_true_lang.mjs +82 -0
  258. package/dist/treeshaking/components/article-pagination/index.mjs +6 -9
  259. package/dist/treeshaking/components/banner/OBanner.mjs +7 -0
  260. package/dist/treeshaking/components/banner/OBanner.vue_vue_type_script_setup_true_lang.mjs +129 -0
  261. package/dist/treeshaking/components/banner/OBannerContent.mjs +6 -0
  262. package/dist/treeshaking/components/banner/OBannerContent.vue_vue_type_script_setup_true_lang.mjs +93 -0
  263. package/dist/treeshaking/components/banner/index.mjs +10 -16
  264. package/dist/treeshaking/components/brand/OBrandFile.mjs +6 -0
  265. package/dist/treeshaking/components/brand/OBrandFile.vue_vue_type_script_setup_true_lang.mjs +59 -0
  266. package/dist/treeshaking/components/brand/OBrandLogo.mjs +7 -0
  267. package/dist/treeshaking/components/brand/OBrandLogo.vue_vue_type_script_setup_true_lang.mjs +101 -0
  268. package/dist/treeshaking/components/brand/OBrandStandard.mjs +6 -0
  269. package/dist/treeshaking/components/brand/OBrandStandard.vue_vue_type_script_setup_true_lang.mjs +51 -0
  270. package/dist/treeshaking/components/brand/index.mjs +14 -23
  271. package/dist/treeshaking/components/brand/utils.mjs +21 -25
  272. package/dist/treeshaking/components/common/AppAvatar.mjs +6 -0
  273. package/dist/treeshaking/components/common/AppAvatar.vue_vue_type_script_setup_true_lang.mjs +73 -0
  274. package/dist/treeshaking/components/common/ClientOnly.mjs +4 -0
  275. package/dist/treeshaking/components/common/ClientOnly.vue_vue_type_script_setup_true_lang.mjs +15 -0
  276. package/dist/treeshaking/components/common/ContentWrapper.mjs +6 -0
  277. package/dist/treeshaking/components/common/ContentWrapper.vue_vue_type_script_setup_true_lang.mjs +40 -0
  278. package/dist/treeshaking/components/common/TooltipText.mjs +5 -0
  279. package/dist/treeshaking/components/common/TooltipText.vue_vue_type_script_setup_true_lang.mjs +92 -0
  280. package/dist/treeshaking/components/common/WordAvatar.mjs +5 -0
  281. package/dist/treeshaking/components/common/WordAvatar.vue_vue_type_script_setup_true_lang.mjs +77 -0
  282. package/dist/treeshaking/components/community-updates/OCommunityUpdates.mjs +6 -0
  283. package/dist/treeshaking/components/community-updates/OCommunityUpdates.vue.d.ts +46 -0
  284. package/dist/treeshaking/components/community-updates/OCommunityUpdates.vue_vue_type_script_setup_true_lang.mjs +100 -0
  285. package/dist/treeshaking/components/community-updates/OCommunityUpdates.vue_vue_type_style_index_0_scoped_1da301c6_lang.css +107 -0
  286. package/dist/treeshaking/components/community-updates/OCommunityUpdatesCard.mjs +5 -0
  287. package/dist/treeshaking/components/community-updates/OCommunityUpdatesCard.vue.d.ts +7 -0
  288. package/dist/treeshaking/components/community-updates/OCommunityUpdatesCard.vue_vue_type_script_setup_true_lang.mjs +49 -0
  289. package/dist/treeshaking/components/community-updates/OCommunityUpdatesCard.vue_vue_type_style_index_0_lang.css +130 -0
  290. package/dist/treeshaking/components/community-updates/index.d.ts +91 -0
  291. package/dist/treeshaking/components/community-updates/index.mjs +10 -0
  292. package/dist/treeshaking/components/community-updates/types.d.ts +36 -0
  293. package/dist/treeshaking/components/config-provider/OPlusConfigProvider.mjs +4 -0
  294. package/dist/treeshaking/components/config-provider/OPlusConfigProvider.vue_vue_type_script_setup_true_lang.mjs +30 -0
  295. package/dist/treeshaking/components/config-provider/index.mjs +6 -9
  296. package/dist/treeshaking/components/cookie-notice/OCookieNotice.mjs +6 -0
  297. package/dist/treeshaking/components/cookie-notice/OCookieNotice.vue_vue_type_script_setup_true_lang.mjs +283 -0
  298. package/dist/treeshaking/components/cookie-notice/OCookieNotice.vue_vue_type_style_index_0_scoped_a7993ee9_lang.css +324 -0
  299. package/dist/treeshaking/components/cookie-notice/index.mjs +6 -9
  300. package/dist/treeshaking/components/doc-layout/ODocLayout.mjs +6 -0
  301. package/dist/treeshaking/components/doc-layout/ODocLayout.vue.d.ts +8 -4
  302. package/dist/treeshaking/components/doc-layout/ODocLayout.vue_vue_type_script_setup_true_lang.mjs +168 -0
  303. package/dist/treeshaking/components/doc-layout/ODocLayout.vue_vue_type_style_index_0_scoped_b4aff4ce_lang.css +306 -0
  304. package/dist/treeshaking/components/doc-layout/index.d.ts +9 -0
  305. package/dist/treeshaking/components/doc-layout/index.mjs +6 -9
  306. package/dist/treeshaking/components/element-plus/OElCookieNotice.mjs +7 -0
  307. package/dist/treeshaking/components/element-plus/OElCookieNotice.vue_vue_type_script_setup_true_lang.mjs +291 -0
  308. package/dist/treeshaking/components/element-plus/OElCookieNotice.vue_vue_type_style_index_0_lang.css +308 -0
  309. package/dist/treeshaking/components/element-plus/OElCookieNotice.vue_vue_type_style_index_1_scoped_d9e2bcf9_lang.css +699 -0
  310. package/dist/treeshaking/components/empty/404.mjs +3 -0
  311. package/dist/treeshaking/components/empty/404_dark.mjs +3 -0
  312. package/dist/treeshaking/components/empty/OEmpty.mjs +6 -0
  313. package/dist/treeshaking/components/empty/OEmpty.vue_vue_type_script_setup_true_lang.mjs +39 -0
  314. package/dist/treeshaking/components/empty/index.mjs +6 -9
  315. package/dist/treeshaking/components/events/OEventsApply.mjs +5 -0
  316. package/dist/treeshaking/components/events/OEventsApply.vue_vue_type_script_setup_true_lang.mjs +64 -0
  317. package/dist/treeshaking/components/events/OEventsCalendar.mjs +5 -0
  318. package/dist/treeshaking/components/events/OEventsCalendar.vue_vue_type_script_setup_true_lang.mjs +205 -0
  319. package/dist/treeshaking/components/events/OEventsList.mjs +5 -0
  320. package/dist/treeshaking/components/events/OEventsList.vue_vue_type_script_setup_true_lang.mjs +195 -0
  321. package/dist/treeshaking/components/events/config.mjs +30 -34
  322. package/dist/treeshaking/components/events/index.mjs +15 -26
  323. package/dist/treeshaking/components/events/types.mjs +8 -9
  324. package/dist/treeshaking/components/events/utils.mjs +10 -5
  325. package/dist/treeshaking/components/feedback-doc/OFeedbackDoc.mjs +6 -0
  326. package/dist/treeshaking/components/feedback-doc/OFeedbackDoc.vue_vue_type_script_setup_true_lang.mjs +174 -0
  327. package/dist/treeshaking/components/feedback-doc/OFeedbackDocContent.mjs +6 -0
  328. package/dist/treeshaking/components/feedback-doc/OFeedbackDocContent.vue_vue_type_script_setup_true_lang.mjs +276 -0
  329. package/dist/treeshaking/components/feedback-doc/OFeedbackDocDialog.mjs +4 -0
  330. package/dist/treeshaking/components/feedback-doc/OFeedbackDocDialog.vue_vue_type_script_setup_true_lang.mjs +102 -0
  331. package/dist/treeshaking/components/feedback-doc/OFeedbackDocPopup.mjs +6 -0
  332. package/dist/treeshaking/components/feedback-doc/OFeedbackDocPopup.vue_vue_type_script_setup_true_lang.mjs +112 -0
  333. package/dist/treeshaking/components/feedback-doc/index.mjs +18 -30
  334. package/dist/treeshaking/components/float-poster/OFloatPoster.mjs +6 -0
  335. package/dist/treeshaking/components/float-poster/OFloatPoster.vue_vue_type_script_setup_true_lang.mjs +77 -0
  336. package/dist/treeshaking/components/float-poster/index.mjs +6 -9
  337. package/dist/treeshaking/components/footer/OFooter.mjs +6 -0
  338. package/dist/treeshaking/components/footer/OFooter.vue_vue_type_script_setup_true_lang.mjs +78 -0
  339. package/dist/treeshaking/components/footer/components/FooterList.mjs +6 -0
  340. package/dist/treeshaking/components/footer/components/FooterList.vue_vue_type_script_setup_true_lang.mjs +150 -0
  341. package/dist/treeshaking/components/footer/components/FooterSimple.mjs +6 -0
  342. package/dist/treeshaking/components/footer/components/FooterSimple.vue_vue_type_script_setup_true_lang.mjs +100 -0
  343. package/dist/treeshaking/components/footer/index.mjs +6 -9
  344. package/dist/treeshaking/components/header/OHeader.mjs +6 -0
  345. package/dist/treeshaking/components/header/OHeader.vue_vue_type_script_setup_true_lang.mjs +256 -0
  346. package/dist/treeshaking/components/header/OHeaderMobile.mjs +6 -0
  347. package/dist/treeshaking/components/header/OHeaderMobile.vue_vue_type_script_setup_true_lang.mjs +121 -0
  348. package/dist/treeshaking/components/header/components/HeaderContent.mjs +6 -0
  349. package/dist/treeshaking/components/header/components/HeaderContent.vue_vue_type_script_setup_true_lang.mjs +286 -0
  350. package/dist/treeshaking/components/header/components/HeaderFlatten.mjs +6 -0
  351. package/dist/treeshaking/components/header/components/HeaderFlatten.vue_vue_type_script_setup_true_lang.mjs +247 -0
  352. package/dist/treeshaking/components/header/components/HeaderNav.mjs +6 -0
  353. package/dist/treeshaking/components/header/components/HeaderNav.vue_vue_type_script_setup_true_lang.mjs +210 -0
  354. package/dist/treeshaking/components/header/components/HeaderNavMobile.mjs +6 -0
  355. package/dist/treeshaking/components/header/components/HeaderNavMobile.vue_vue_type_script_setup_true_lang.mjs +197 -0
  356. package/dist/treeshaking/components/header/index.mjs +11 -16
  357. package/dist/treeshaking/components/header/types.mjs +8 -9
  358. package/dist/treeshaking/components/header/utils.mjs +10 -18
  359. package/dist/treeshaking/components/header-language-switcher/OHeaderLanguageSwitcher.mjs +7 -0
  360. package/dist/treeshaking/components/header-language-switcher/OHeaderLanguageSwitcher.vue_vue_type_script_setup_true_lang.mjs +109 -0
  361. package/dist/treeshaking/components/header-language-switcher/index.mjs +6 -9
  362. package/dist/treeshaking/components/header-search/OHeaderSearch.mjs +6 -0
  363. package/dist/treeshaking/components/header-search/OHeaderSearch.vue_vue_type_script_setup_true_lang.mjs +434 -0
  364. package/dist/treeshaking/components/header-search/index.mjs +6 -9
  365. package/dist/treeshaking/components/header-source-code/OHeaderSourceCode.mjs +6 -0
  366. package/dist/treeshaking/components/header-source-code/OHeaderSourceCode.vue_vue_type_script_setup_true_lang.mjs +73 -0
  367. package/dist/treeshaking/components/header-source-code/index.mjs +6 -9
  368. package/dist/treeshaking/components/header-theme/OHeaderTheme.mjs +6 -0
  369. package/dist/treeshaking/components/header-theme/OHeaderTheme.vue_vue_type_script_setup_true_lang.mjs +75 -0
  370. package/dist/treeshaking/components/header-theme/index.mjs +6 -9
  371. package/dist/treeshaking/components/header-user/OHeaderUser.mjs +7 -0
  372. package/dist/treeshaking/components/header-user/OHeaderUser.vue_vue_type_script_setup_true_lang.mjs +124 -0
  373. package/dist/treeshaking/components/header-user/index.mjs +6 -9
  374. package/dist/treeshaking/components/html-viewer/OHtmlViewer.mjs +6 -0
  375. package/dist/treeshaking/components/html-viewer/OHtmlViewer.vue_vue_type_script_setup_true_lang.mjs +87 -0
  376. package/dist/treeshaking/components/html-viewer/index.mjs +6 -9
  377. package/dist/treeshaking/components/html-viewer/utils.mjs +71 -66
  378. package/dist/treeshaking/components/icon/index.mjs +14 -10
  379. package/dist/treeshaking/components/logo-swiper/OLogoSwiper.mjs +6 -0
  380. package/dist/treeshaking/components/logo-swiper/OLogoSwiper.vue_vue_type_script_setup_true_lang.mjs +15 -0
  381. package/dist/treeshaking/components/logo-swiper/OLogoSwiperItems.mjs +6 -0
  382. package/dist/treeshaking/components/logo-swiper/OLogoSwiperItems.vue_vue_type_script_setup_true_lang.mjs +145 -0
  383. package/dist/treeshaking/components/logo-swiper/index.mjs +10 -16
  384. package/dist/treeshaking/components/markdown/OMarkdown.mjs +7 -0
  385. package/dist/treeshaking/components/markdown/OMarkdown.vue_vue_type_script_setup_true_lang.mjs +180 -0
  386. package/dist/treeshaking/components/markdown/components/MarkdownCode.mjs +7 -0
  387. package/dist/treeshaking/components/markdown/components/MarkdownCode.vue_vue_type_script_setup_true_lang.mjs +94 -0
  388. package/dist/treeshaking/components/markdown/components/MarkdownImage.mjs +6 -0
  389. package/dist/treeshaking/components/markdown/components/MarkdownImage.vue_vue_type_script_setup_true_lang.mjs +67 -0
  390. package/dist/treeshaking/components/markdown/components/MarkdownTable.mjs +6 -0
  391. package/dist/treeshaking/components/markdown/components/MarkdownTable.vue_vue_type_script_setup_true_lang.mjs +44 -0
  392. package/dist/treeshaking/components/markdown/components/MarkdownTableData.mjs +6 -0
  393. package/dist/treeshaking/components/markdown/components/MarkdownTableData.vue_vue_type_script_setup_true_lang.mjs +145 -0
  394. package/dist/treeshaking/components/markdown/components/MarkdownTableExpand.mjs +6 -0
  395. package/dist/treeshaking/components/markdown/components/MarkdownTableExpand.vue_vue_type_script_setup_true_lang.mjs +45 -0
  396. package/dist/treeshaking/components/markdown/components/MarkdownTitle.mjs +6 -0
  397. package/dist/treeshaking/components/markdown/components/MarkdownTitle.vue_vue_type_script_setup_true_lang.mjs +46 -0
  398. package/dist/treeshaking/components/markdown/index.mjs +6 -9
  399. package/dist/treeshaking/components/markdown/replacer/code.mjs +16 -20
  400. package/dist/treeshaking/components/markdown/replacer/h2.mjs +13 -19
  401. package/dist/treeshaking/components/markdown/replacer/img.mjs +13 -19
  402. package/dist/treeshaking/components/markdown/replacer/table.mjs +13 -19
  403. package/dist/treeshaking/components/meeting/OMeetingCalendar.mjs +5 -0
  404. package/dist/treeshaking/components/meeting/OMeetingCalendar.vue_vue_type_script_setup_true_lang.mjs +470 -0
  405. package/dist/treeshaking/components/meeting/OMeetingCalendar.vue_vue_type_style_index_0_lang.css +1105 -0
  406. package/dist/treeshaking/components/meeting/OMeetingForm.mjs +6 -0
  407. package/dist/treeshaking/components/meeting/OMeetingForm.vue_vue_type_script_setup_true_lang.mjs +857 -0
  408. package/dist/treeshaking/components/meeting/OMeetingForm.vue_vue_type_style_index_0_lang.css +771 -0
  409. package/dist/treeshaking/components/meeting/OMeetingForm.vue_vue_type_style_index_1_lang.css +363 -0
  410. package/dist/treeshaking/components/meeting/OMeetingMinutes.mjs +5 -0
  411. package/dist/treeshaking/components/meeting/OMeetingMinutes.vue_vue_type_script_setup_true_lang.mjs +307 -0
  412. package/dist/treeshaking/components/meeting/OMeetingMinutesCopyDetail.mjs +6 -0
  413. package/dist/treeshaking/components/meeting/OMeetingMinutesCopyDetail.vue_vue_type_script_setup_true_lang.mjs +52 -0
  414. package/dist/treeshaking/components/meeting/OMeetingMyCalendar.mjs +6 -0
  415. package/dist/treeshaking/components/meeting/OMeetingMyCalendar.vue_vue_type_script_setup_true_lang.mjs +661 -0
  416. package/dist/treeshaking/components/meeting/OMeetingMyCalendar.vue_vue_type_style_index_0_lang.css +1349 -0
  417. package/dist/treeshaking/components/meeting/OMeetingMyCalendar.vue_vue_type_style_index_1_lang.css +335 -0
  418. package/dist/treeshaking/components/meeting/OMeetingPlayback.mjs +5 -0
  419. package/dist/treeshaking/components/meeting/OMeetingPlayback.vue_vue_type_script_setup_true_lang.mjs +328 -0
  420. package/dist/treeshaking/components/meeting/OMeetingSendMinutesForm.mjs +5 -0
  421. package/dist/treeshaking/components/meeting/OMeetingSendMinutesForm.vue_vue_type_script_setup_true_lang.mjs +189 -0
  422. package/dist/treeshaking/components/meeting/OMeetingSigCalendar.mjs +5 -0
  423. package/dist/treeshaking/components/meeting/OMeetingSigCalendar.vue_vue_type_script_setup_true_lang.mjs +329 -0
  424. package/dist/treeshaking/components/meeting/components/OMeetingCalendarList.mjs +5 -0
  425. package/dist/treeshaking/components/meeting/components/OMeetingCalendarList.vue_vue_type_script_setup_true_lang.mjs +281 -0
  426. package/dist/treeshaking/components/meeting/components/OMeetingCalendarSelector.mjs +6 -0
  427. package/dist/treeshaking/components/meeting/components/OMeetingCalendarSelector.vue_vue_type_script_setup_true_lang.mjs +112 -0
  428. package/dist/treeshaking/components/meeting/components/OMeetingCalendarSelector.vue_vue_type_style_index_0_lang.css +384 -0
  429. package/dist/treeshaking/components/meeting/components/OMeetingCalendarSelector.vue_vue_type_style_index_1_lang.css +348 -0
  430. package/dist/treeshaking/components/meeting/components/OMeetingDetail.mjs +5 -0
  431. package/dist/treeshaking/components/meeting/components/OMeetingDetail.vue_vue_type_script_setup_true_lang.mjs +245 -0
  432. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackSubtitles.mjs +6 -0
  433. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackSubtitles.vue_vue_type_script_setup_true_lang.mjs +314 -0
  434. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackSubtitles.vue_vue_type_style_index_0_lang.css +748 -0
  435. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackSubtitles.vue_vue_type_style_index_1_lang.css +349 -0
  436. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackVideo.mjs +5 -0
  437. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackVideo.vue_vue_type_script_setup_true_lang.mjs +208 -0
  438. package/dist/treeshaking/components/meeting/components/OMeetingSendMinutesDialog.mjs +6 -0
  439. package/dist/treeshaking/components/meeting/components/OMeetingSendMinutesDialog.vue_vue_type_script_setup_true_lang.mjs +72 -0
  440. package/dist/treeshaking/components/meeting/components/OMeetingSigAside.mjs +5 -0
  441. package/dist/treeshaking/components/meeting/components/OMeetingSigAside.vue_vue_type_script_setup_true_lang.mjs +118 -0
  442. package/dist/treeshaking/components/meeting/composables/useMeetingConfig.mjs +130 -94
  443. package/dist/treeshaking/components/meeting/config.d.ts +0 -2
  444. package/dist/treeshaking/components/meeting/config.mjs +16 -20
  445. package/dist/treeshaking/components/meeting/index.mjs +35 -67
  446. package/dist/treeshaking/components/meeting/types.mjs +15 -17
  447. package/dist/treeshaking/components/meeting/utils.mjs +56 -72
  448. package/dist/treeshaking/components/org/OOrgDesc.mjs +6 -0
  449. package/dist/treeshaking/components/org/OOrgDesc.vue_vue_type_script_setup_true_lang.mjs +39 -0
  450. package/dist/treeshaking/components/org/OOrgMembers.mjs +6 -0
  451. package/dist/treeshaking/components/org/OOrgMembers.vue_vue_type_script_setup_true_lang.mjs +86 -0
  452. package/dist/treeshaking/components/org/index.mjs +10 -16
  453. package/dist/treeshaking/components/recursion-menu/ORecursionMenu.mjs +4 -0
  454. package/dist/treeshaking/components/recursion-menu/ORecursionMenu.vue_vue_type_script_setup_true_lang.mjs +85 -0
  455. package/dist/treeshaking/components/recursion-menu/ORecursionMenuItem.mjs +6 -0
  456. package/dist/treeshaking/components/recursion-menu/ORecursionMenuItem.vue_vue_type_script_setup_true_lang.mjs +103 -0
  457. package/dist/treeshaking/components/recursion-menu/index.mjs +11 -16
  458. package/dist/treeshaking/components/recursion-menu/types.mjs +4 -4
  459. package/dist/treeshaking/components/search/OSearchInput.mjs +6 -0
  460. package/dist/treeshaking/components/search/OSearchInput.vue_vue_type_script_setup_true_lang.mjs +407 -0
  461. package/dist/treeshaking/components/search/composables/useImageSearch.mjs +114 -132
  462. package/dist/treeshaking/components/search/composables/useKeywordHighlight.mjs +33 -26
  463. package/dist/treeshaking/components/search/composables/useSearchHistory.mjs +53 -56
  464. package/dist/treeshaking/components/search/index.mjs +6 -9
  465. package/dist/treeshaking/components/search/internal/HighlightText.mjs +6 -0
  466. package/dist/treeshaking/components/search/internal/HighlightText.vue_vue_type_script_setup_true_lang.mjs +34 -0
  467. package/dist/treeshaking/components/search/internal/SearchImageInput.mjs +7 -0
  468. package/dist/treeshaking/components/search/internal/SearchImageInput.vue_vue_type_script_setup_true_lang.mjs +291 -0
  469. package/dist/treeshaking/components/search/internal/SearchPanel.mjs +6 -0
  470. package/dist/treeshaking/components/search/internal/SearchPanel.vue_vue_type_script_setup_true_lang.mjs +221 -0
  471. package/dist/treeshaking/components/search-doc-result/OSearchDocResult.mjs +6 -0
  472. package/dist/treeshaking/components/search-doc-result/OSearchDocResult.vue.d.ts +2 -0
  473. package/dist/treeshaking/components/search-doc-result/OSearchDocResult.vue_vue_type_script_setup_true_lang.mjs +175 -0
  474. package/dist/treeshaking/components/search-doc-result/OSearchDocResult.vue_vue_type_style_index_0_scoped_9eb9bdd4_lang.css +156 -0
  475. package/dist/treeshaking/components/search-doc-result/index.d.ts +6 -0
  476. package/dist/treeshaking/components/search-doc-result/index.mjs +6 -9
  477. package/dist/treeshaking/components/search-result/OSearchResult.mjs +6 -0
  478. package/dist/treeshaking/components/search-result/OSearchResult.vue_vue_type_script_setup_true_lang.mjs +154 -0
  479. package/dist/treeshaking/components/search-result/OSearchResult.vue_vue_type_style_index_0_scoped_a8453c65_lang.css +165 -0
  480. package/dist/treeshaking/components/search-result/OSearchResultHeader.mjs +6 -0
  481. package/dist/treeshaking/components/search-result/OSearchResultHeader.vue_vue_type_script_setup_true_lang.mjs +102 -0
  482. package/dist/treeshaking/components/search-result/OSearchResultItem.mjs +6 -0
  483. package/dist/treeshaking/components/search-result/OSearchResultItem.vue_vue_type_script_setup_true_lang.mjs +89 -0
  484. package/dist/treeshaking/components/search-result/components/OSearchResultEmpty.mjs +6 -0
  485. package/dist/treeshaking/components/search-result/components/OSearchResultEmpty.vue_vue_type_script_setup_true_lang.mjs +25 -0
  486. package/dist/treeshaking/components/search-result/components/OSearchResultFeedback.mjs +6 -0
  487. package/dist/treeshaking/components/search-result/components/OSearchResultFeedback.vue_vue_type_script_setup_true_lang.mjs +128 -0
  488. package/dist/treeshaking/components/search-result/components/OSearchResultFeedbackBanner.mjs +6 -0
  489. package/dist/treeshaking/components/search-result/components/OSearchResultFeedbackBanner.vue_vue_type_script_setup_true_lang.mjs +132 -0
  490. package/dist/treeshaking/components/search-result/components/OSearchResultRelative.mjs +6 -0
  491. package/dist/treeshaking/components/search-result/components/OSearchResultRelative.vue_vue_type_script_setup_true_lang.mjs +43 -0
  492. package/dist/treeshaking/components/search-result/index.mjs +14 -23
  493. package/dist/treeshaking/components/section/OSection.mjs +6 -0
  494. package/dist/treeshaking/components/section/OSection.vue_vue_type_script_setup_true_lang.mjs +67 -0
  495. package/dist/treeshaking/components/section/index.mjs +6 -9
  496. package/dist/treeshaking/components/sig/OSigDetail.mjs +5 -0
  497. package/dist/treeshaking/components/sig/OSigDetail.vue_vue_type_script_setup_true_lang.mjs +189 -0
  498. package/dist/treeshaking/components/sig/OSigList.mjs +5 -0
  499. package/dist/treeshaking/components/sig/OSigList.vue_vue_type_script_setup_true_lang.mjs +513 -0
  500. package/dist/treeshaking/components/sig/OSigList.vue_vue_type_style_index_0_lang.css +850 -0
  501. package/dist/treeshaking/components/sig/components/OSigDetailInfoCard.mjs +5 -0
  502. package/dist/treeshaking/components/sig/components/OSigDetailInfoCard.vue_vue_type_script_setup_true_lang.mjs +69 -0
  503. package/dist/treeshaking/components/sig/components/OSigItem.mjs +5 -0
  504. package/dist/treeshaking/components/sig/components/OSigItem.vue_vue_type_script_setup_true_lang.mjs +154 -0
  505. package/dist/treeshaking/components/sig/components/OSigMember.mjs +5 -0
  506. package/dist/treeshaking/components/sig/components/OSigMember.vue_vue_type_script_setup_true_lang.mjs +190 -0
  507. package/dist/treeshaking/components/sig/components/OSigRepo.mjs +5 -0
  508. package/dist/treeshaking/components/sig/components/OSigRepo.vue_vue_type_script_setup_true_lang.mjs +181 -0
  509. package/dist/treeshaking/components/sig/components/OSigUserContribute.mjs +5 -0
  510. package/dist/treeshaking/components/sig/components/OSigUserContribute.vue_vue_type_script_setup_true_lang.mjs +326 -0
  511. package/dist/treeshaking/components/sig/components/utils.mjs +61 -38
  512. package/dist/treeshaking/components/sig/index.mjs +10 -18
  513. package/dist/treeshaking/components/summit/OSummit.mjs +6 -0
  514. package/dist/treeshaking/components/summit/OSummit.vue_vue_type_script_setup_true_lang.mjs +59 -0
  515. package/dist/treeshaking/components/summit/OSummitIntro.mjs +6 -0
  516. package/dist/treeshaking/components/summit/OSummitIntro.vue_vue_type_script_setup_true_lang.mjs +22 -0
  517. package/dist/treeshaking/components/summit/OSummitLive.mjs +6 -0
  518. package/dist/treeshaking/components/summit/OSummitLive.vue_vue_type_script_setup_true_lang.mjs +141 -0
  519. package/dist/treeshaking/components/summit/OSummitSchedule.mjs +7 -0
  520. package/dist/treeshaking/components/summit/OSummitSchedule.vue_vue_type_script_setup_true_lang.mjs +229 -0
  521. package/dist/treeshaking/components/summit/components/OSummitTabs.mjs +6 -0
  522. package/dist/treeshaking/components/summit/components/OSummitTabs.vue_vue_type_script_setup_true_lang.mjs +127 -0
  523. package/dist/treeshaking/components/summit/index.mjs +18 -30
  524. package/dist/treeshaking/components/summit/utils.mjs +103 -88
  525. package/dist/treeshaking/components/user-center/OAccountSecurity.mjs +6 -0
  526. package/dist/treeshaking/components/user-center/OAccountSecurity.vue_vue_type_script_setup_true_lang.mjs +298 -0
  527. package/dist/treeshaking/components/user-center/OAccountSecurity.vue_vue_type_style_index_0_scoped_34dbfef7_lang.css +253 -0
  528. package/dist/treeshaking/components/user-center/OAccountSetting.mjs +6 -0
  529. package/dist/treeshaking/components/user-center/OAccountSetting.vue_vue_type_script_setup_true_lang.mjs +337 -0
  530. package/dist/treeshaking/components/user-center/OAccountSetting.vue_vue_type_style_index_0_scoped_5887ac06_lang.css +284 -0
  531. package/dist/treeshaking/components/user-center/OAppHeader.mjs +6 -0
  532. package/dist/treeshaking/components/user-center/OAppHeader.vue_vue_type_script_setup_true_lang.mjs +215 -0
  533. package/dist/treeshaking/components/user-center/OAsideBar.mjs +6 -0
  534. package/dist/treeshaking/components/user-center/OAsideBar.vue_vue_type_script_setup_true_lang.mjs +89 -0
  535. package/dist/treeshaking/components/user-center/OLayout.mjs +6 -0
  536. package/dist/treeshaking/components/user-center/OLayout.vue_vue_type_script_setup_true_lang.mjs +19 -0
  537. package/dist/treeshaking/components/user-center/OTheAccountManage.mjs +6 -0
  538. package/dist/treeshaking/components/user-center/OTheAccountManage.vue_vue_type_script_setup_true_lang.mjs +14 -0
  539. package/dist/treeshaking/components/user-center/OTheCreateMeeting.mjs +6 -0
  540. package/dist/treeshaking/components/user-center/OTheCreateMeeting.vue_vue_type_script_setup_true_lang.mjs +90 -0
  541. package/dist/treeshaking/components/user-center/OTheMeeting.mjs +6 -0
  542. package/dist/treeshaking/components/user-center/OTheMeeting.vue_vue_type_script_setup_true_lang.mjs +111 -0
  543. package/dist/treeshaking/components/user-center/OThirdPartyBindings.mjs +6 -0
  544. package/dist/treeshaking/components/user-center/OThirdPartyBindings.vue_vue_type_script_setup_true_lang.mjs +343 -0
  545. package/dist/treeshaking/components/user-center/OUserInfo.mjs +8 -0
  546. package/dist/treeshaking/components/user-center/OUserInfo.vue_vue_type_script_setup_true_lang.mjs +491 -0
  547. package/dist/treeshaking/components/user-center/const/common.const.mjs +22 -30
  548. package/dist/treeshaking/components/user-center/index.mjs +42 -72
  549. package/dist/treeshaking/components/user-center/internal/OAppDialog.mjs +6 -0
  550. package/dist/treeshaking/components/user-center/internal/OAppDialog.vue_vue_type_script_setup_true_lang.mjs +363 -0
  551. package/dist/treeshaking/components/user-center/internal/OAppEmpty.mjs +6 -0
  552. package/dist/treeshaking/components/user-center/internal/OAppEmpty.vue_vue_type_script_setup_true_lang.mjs +30 -0
  553. package/dist/treeshaking/components/user-center/internal/OCommonHeader.mjs +6 -0
  554. package/dist/treeshaking/components/user-center/internal/OCommonHeader.vue_vue_type_script_setup_true_lang.mjs +165 -0
  555. package/dist/treeshaking/components/user-center/internal/OCountdownButton.mjs +4 -0
  556. package/dist/treeshaking/components/user-center/internal/OCountdownButton.vue_vue_type_script_setup_true_lang.mjs +55 -0
  557. package/dist/treeshaking/components/user-center/internal/ODeleteAccountModal.mjs +7 -0
  558. package/dist/treeshaking/components/user-center/internal/ODeleteAccountModal.vue_vue_type_script_setup_true_lang.mjs +281 -0
  559. package/dist/treeshaking/components/user-center/internal/OEditNicknameDialog.mjs +7 -0
  560. package/dist/treeshaking/components/user-center/internal/OEditNicknameDialog.vue_vue_type_script_setup_true_lang.mjs +121 -0
  561. package/dist/treeshaking/components/user-center/internal/OEditOrgDialog.mjs +7 -0
  562. package/dist/treeshaking/components/user-center/internal/OEditOrgDialog.vue_vue_type_script_setup_true_lang.mjs +134 -0
  563. package/dist/treeshaking/components/user-center/internal/OMaskEye.mjs +6 -0
  564. package/dist/treeshaking/components/user-center/internal/OMaskEye.vue_vue_type_script_setup_true_lang.mjs +26 -0
  565. package/dist/treeshaking/components/user-center/internal/OModifyPwd.mjs +6 -0
  566. package/dist/treeshaking/components/user-center/internal/OModifyPwd.vue_vue_type_script_setup_true_lang.mjs +401 -0
  567. package/dist/treeshaking/components/user-center/internal/OPasswordPopInput.mjs +6 -0
  568. package/dist/treeshaking/components/user-center/internal/OPasswordPopInput.vue_vue_type_script_setup_true_lang.mjs +118 -0
  569. package/dist/treeshaking/components/user-center/internal/OToBindingTipModal.mjs +6 -0
  570. package/dist/treeshaking/components/user-center/internal/OToBindingTipModal.vue_vue_type_script_setup_true_lang.mjs +97 -0
  571. package/dist/treeshaking/components/user-center/internal/OUnbindingThirdpartyAccountModal.mjs +6 -0
  572. package/dist/treeshaking/components/user-center/internal/OUnbindingThirdpartyAccountModal.vue_vue_type_script_setup_true_lang.mjs +88 -0
  573. package/dist/treeshaking/components/user-center/internal/OUploadAvatar.mjs +7 -0
  574. package/dist/treeshaking/components/user-center/internal/OUploadAvatar.vue_vue_type_script_setup_true_lang.mjs +347 -0
  575. package/dist/treeshaking/components/user-center/internal/OUploadAvatar.vue_vue_type_style_index_0_scoped_7067a565_lang.css +530 -0
  576. package/dist/treeshaking/components/user-center/internal/OUploadAvatar.vue_vue_type_style_index_1_lang.css +309 -0
  577. package/dist/treeshaking/components/user-center/rolesMap.mjs +16 -21
  578. package/dist/treeshaking/components/user-center/utils/helper.mjs +7 -5
  579. package/dist/treeshaking/components/user-center/utils/rules.mjs +99 -136
  580. package/dist/treeshaking/components/user-center/utils/utils.mjs +30 -38
  581. package/dist/treeshaking/components/user-center/verify/Verify.mjs +58 -0
  582. package/dist/treeshaking/components/user-center/verify/Verify.vue_vue_type_script_lang.mjs +72 -0
  583. package/dist/treeshaking/components/user-center/verify/VerifySlide.mjs +105 -0
  584. package/dist/treeshaking/components/user-center/verify/VerifySlide.vue_vue_type_script_lang.mjs +334 -0
  585. package/dist/treeshaking/components/user-center/verify/utils/ase.mjs +15 -11
  586. package/dist/treeshaking/components/user-center/verify/utils/util.mjs +19 -32
  587. package/dist/treeshaking/components/video/OVideoDetail.mjs +5 -0
  588. package/dist/treeshaking/components/video/OVideoDetail.vue_vue_type_script_setup_true_lang.mjs +206 -0
  589. package/dist/treeshaking/components/video/index.mjs +6 -10
  590. package/dist/treeshaking/i18n/en.mjs +596 -603
  591. package/dist/treeshaking/i18n/index.mjs +41 -45
  592. package/dist/treeshaking/i18n/zh.mjs +599 -606
  593. package/dist/treeshaking/index.d.ts +1 -0
  594. package/dist/treeshaking/index.mjs +9 -87
  595. package/dist/treeshaking/shared/anchor.mjs +3 -8
  596. package/dist/treeshaking/shared/provide.mjs +3 -4
  597. package/dist/treeshaking/shared/theme.mjs +22 -23
  598. package/package.json +1 -1
  599. package/dist/chunk-OElCookieNotice.cjs.js +0 -1
  600. package/dist/chunk-OElCookieNotice.es.js +0 -1525
  601. package/dist/treeshaking/_virtual/@babel/runtime/helpers/extends.js2.mjs +0 -4
  602. package/dist/treeshaking/_virtual/@videojs/xhr/lib/index.js2.mjs +0 -300
  603. package/dist/treeshaking/_virtual/@videojs/xhr/lib/index.js3.mjs +0 -4
  604. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/conventions.js2.mjs +0 -4
  605. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/dom-parser.js2.mjs +0 -4
  606. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/dom.js2.mjs +0 -4
  607. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/entities.js2.mjs +0 -4
  608. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/index.js2.mjs +0 -16
  609. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/index.js3.mjs +0 -4
  610. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/sax.js2.mjs +0 -4
  611. package/dist/treeshaking/_virtual/___vite-browser-external.mjs +0 -6
  612. package/dist/treeshaking/_virtual/_commonjs-dynamic-modules.mjs +0 -6
  613. package/dist/treeshaking/_virtual/_commonjsHelpers.mjs +0 -33
  614. package/dist/treeshaking/_virtual/cropperjs/dist/cropper.esm.js.mjs +0 -2739
  615. package/dist/treeshaking/_virtual/crypto-js/aes.js2.mjs +0 -4
  616. package/dist/treeshaking/_virtual/crypto-js/blowfish.js2.mjs +0 -4
  617. package/dist/treeshaking/_virtual/crypto-js/cipher-core.js2.mjs +0 -4
  618. package/dist/treeshaking/_virtual/crypto-js/core.js2.mjs +0 -4
  619. package/dist/treeshaking/_virtual/crypto-js/enc-base64.js2.mjs +0 -4
  620. package/dist/treeshaking/_virtual/crypto-js/enc-base64url.js2.mjs +0 -4
  621. package/dist/treeshaking/_virtual/crypto-js/enc-utf16.js2.mjs +0 -4
  622. package/dist/treeshaking/_virtual/crypto-js/evpkdf.js2.mjs +0 -4
  623. package/dist/treeshaking/_virtual/crypto-js/format-hex.js2.mjs +0 -4
  624. package/dist/treeshaking/_virtual/crypto-js/hmac.js2.mjs +0 -4
  625. package/dist/treeshaking/_virtual/crypto-js/index.js2.mjs +0 -55
  626. package/dist/treeshaking/_virtual/crypto-js/index.js3.mjs +0 -4
  627. package/dist/treeshaking/_virtual/crypto-js/lib-typedarrays.js2.mjs +0 -4
  628. package/dist/treeshaking/_virtual/crypto-js/md5.js2.mjs +0 -4
  629. package/dist/treeshaking/_virtual/crypto-js/mode-cfb.js2.mjs +0 -4
  630. package/dist/treeshaking/_virtual/crypto-js/mode-ctr-gladman.js2.mjs +0 -4
  631. package/dist/treeshaking/_virtual/crypto-js/mode-ctr.js2.mjs +0 -4
  632. package/dist/treeshaking/_virtual/crypto-js/mode-ecb.js2.mjs +0 -4
  633. package/dist/treeshaking/_virtual/crypto-js/mode-ofb.js2.mjs +0 -4
  634. package/dist/treeshaking/_virtual/crypto-js/pad-ansix923.js2.mjs +0 -4
  635. package/dist/treeshaking/_virtual/crypto-js/pad-iso10126.js2.mjs +0 -4
  636. package/dist/treeshaking/_virtual/crypto-js/pad-iso97971.js2.mjs +0 -4
  637. package/dist/treeshaking/_virtual/crypto-js/pad-nopadding.js2.mjs +0 -4
  638. package/dist/treeshaking/_virtual/crypto-js/pad-zeropadding.js2.mjs +0 -4
  639. package/dist/treeshaking/_virtual/crypto-js/pbkdf2.js2.mjs +0 -4
  640. package/dist/treeshaking/_virtual/crypto-js/rabbit-legacy.js2.mjs +0 -4
  641. package/dist/treeshaking/_virtual/crypto-js/rabbit.js2.mjs +0 -4
  642. package/dist/treeshaking/_virtual/crypto-js/rc4.js2.mjs +0 -4
  643. package/dist/treeshaking/_virtual/crypto-js/ripemd160.js2.mjs +0 -4
  644. package/dist/treeshaking/_virtual/crypto-js/sha1.js2.mjs +0 -4
  645. package/dist/treeshaking/_virtual/crypto-js/sha224.js2.mjs +0 -4
  646. package/dist/treeshaking/_virtual/crypto-js/sha256.js2.mjs +0 -4
  647. package/dist/treeshaking/_virtual/crypto-js/sha3.js2.mjs +0 -4
  648. package/dist/treeshaking/_virtual/crypto-js/sha384.js2.mjs +0 -4
  649. package/dist/treeshaking/_virtual/crypto-js/sha512.js2.mjs +0 -4
  650. package/dist/treeshaking/_virtual/crypto-js/tripledes.js2.mjs +0 -4
  651. package/dist/treeshaking/_virtual/crypto-js/x64-core.js2.mjs +0 -4
  652. package/dist/treeshaking/_virtual/global/document.js2.mjs +0 -24
  653. package/dist/treeshaking/_virtual/global/window.js2.mjs +0 -22
  654. package/dist/treeshaking/_virtual/icon-add-dark.mjs +0 -40
  655. package/dist/treeshaking/_virtual/icon-add-new.mjs +0 -17
  656. package/dist/treeshaking/_virtual/icon-address.mjs +0 -21
  657. package/dist/treeshaking/_virtual/icon-all.mjs +0 -20
  658. package/dist/treeshaking/_virtual/icon-anchor-expand.mjs +0 -20
  659. package/dist/treeshaking/_virtual/icon-anchor.mjs +0 -22
  660. package/dist/treeshaking/_virtual/icon-arrow-left.mjs +0 -20
  661. package/dist/treeshaking/_virtual/icon-atomgit.mjs +0 -25
  662. package/dist/treeshaking/_virtual/icon-avatar-line.mjs +0 -20
  663. package/dist/treeshaking/_virtual/icon-caret-left.mjs +0 -20
  664. package/dist/treeshaking/_virtual/icon-caret-right.mjs +0 -20
  665. package/dist/treeshaking/_virtual/icon-check.mjs +0 -20
  666. package/dist/treeshaking/_virtual/icon-checked.mjs +0 -20
  667. package/dist/treeshaking/_virtual/icon-chevron-down.mjs +0 -20
  668. package/dist/treeshaking/_virtual/icon-chevron-right.mjs +0 -20
  669. package/dist/treeshaking/_virtual/icon-chevron-right2.mjs +0 -20
  670. package/dist/treeshaking/_virtual/icon-chevron-up.mjs +0 -20
  671. package/dist/treeshaking/_virtual/icon-close.mjs +0 -20
  672. package/dist/treeshaking/_virtual/icon-close2.mjs +0 -20
  673. package/dist/treeshaking/_virtual/icon-competition.mjs +0 -31
  674. package/dist/treeshaking/_virtual/icon-copy.mjs +0 -21
  675. package/dist/treeshaking/_virtual/icon-copy2.mjs +0 -20
  676. package/dist/treeshaking/_virtual/icon-delete-hover.mjs +0 -24
  677. package/dist/treeshaking/_virtual/icon-delete.mjs +0 -17
  678. package/dist/treeshaking/_virtual/icon-done.mjs +0 -20
  679. package/dist/treeshaking/_virtual/icon-download.mjs +0 -17
  680. package/dist/treeshaking/_virtual/icon-edit-new.mjs +0 -17
  681. package/dist/treeshaking/_virtual/icon-edit.mjs +0 -38
  682. package/dist/treeshaking/_virtual/icon-email.mjs +0 -22
  683. package/dist/treeshaking/_virtual/icon-email2.mjs +0 -21
  684. package/dist/treeshaking/_virtual/icon-event.mjs +0 -21
  685. package/dist/treeshaking/_virtual/icon-events.mjs +0 -31
  686. package/dist/treeshaking/_virtual/icon-expand.mjs +0 -21
  687. package/dist/treeshaking/_virtual/icon-eye-off.mjs +0 -20
  688. package/dist/treeshaking/_virtual/icon-eye.mjs +0 -20
  689. package/dist/treeshaking/_virtual/icon-forum.mjs +0 -21
  690. package/dist/treeshaking/_virtual/icon-gitcode-new.mjs +0 -30
  691. package/dist/treeshaking/_virtual/icon-gitee.mjs +0 -20
  692. package/dist/treeshaking/_virtual/icon-gitee2.mjs +0 -20
  693. package/dist/treeshaking/_virtual/icon-github.mjs +0 -20
  694. package/dist/treeshaking/_virtual/icon-header-back.mjs +0 -20
  695. package/dist/treeshaking/_virtual/icon-header-menu.mjs +0 -20
  696. package/dist/treeshaking/_virtual/icon-header-search.mjs +0 -20
  697. package/dist/treeshaking/_virtual/icon-help.mjs +0 -21
  698. package/dist/treeshaking/_virtual/icon-image-upload.mjs +0 -20
  699. package/dist/treeshaking/_virtual/icon-image-zoomin.mjs +0 -20
  700. package/dist/treeshaking/_virtual/icon-like.mjs +0 -20
  701. package/dist/treeshaking/_virtual/icon-link.mjs +0 -31
  702. package/dist/treeshaking/_virtual/icon-loading.mjs +0 -24
  703. package/dist/treeshaking/_virtual/icon-locale.mjs +0 -20
  704. package/dist/treeshaking/_virtual/icon-mail.mjs +0 -17
  705. package/dist/treeshaking/_virtual/icon-material.mjs +0 -21
  706. package/dist/treeshaking/_virtual/icon-meet.mjs +0 -20
  707. package/dist/treeshaking/_virtual/icon-menu-fold.mjs +0 -20
  708. package/dist/treeshaking/_virtual/icon-menu-unfold.mjs +0 -20
  709. package/dist/treeshaking/_virtual/icon-minus-dark.mjs +0 -74
  710. package/dist/treeshaking/_virtual/icon-minus-new.mjs +0 -17
  711. package/dist/treeshaking/_virtual/icon-moon.mjs +0 -20
  712. package/dist/treeshaking/_virtual/icon-more.mjs +0 -19
  713. package/dist/treeshaking/_virtual/icon-next.mjs +0 -23
  714. package/dist/treeshaking/_virtual/icon-notice.mjs +0 -20
  715. package/dist/treeshaking/_virtual/icon-openatom.mjs +0 -21
  716. package/dist/treeshaking/_virtual/icon-outlink.mjs +0 -20
  717. package/dist/treeshaking/_virtual/icon-phone.mjs +0 -22
  718. package/dist/treeshaking/_virtual/icon-playing.mjs +0 -33
  719. package/dist/treeshaking/_virtual/icon-refresh.mjs +0 -21
  720. package/dist/treeshaking/_virtual/icon-refresh2.mjs +0 -45
  721. package/dist/treeshaking/_virtual/icon-relative-search.mjs +0 -21
  722. package/dist/treeshaking/_virtual/icon-release.mjs +0 -31
  723. package/dist/treeshaking/_virtual/icon-search.mjs +0 -17
  724. package/dist/treeshaking/_virtual/icon-search2.mjs +0 -17
  725. package/dist/treeshaking/_virtual/icon-setting.mjs +0 -20
  726. package/dist/treeshaking/_virtual/icon-smile.mjs +0 -21
  727. package/dist/treeshaking/_virtual/icon-speaker.mjs +0 -17
  728. package/dist/treeshaking/_virtual/icon-star.mjs +0 -20
  729. package/dist/treeshaking/_virtual/icon-summit.mjs +0 -21
  730. package/dist/treeshaking/_virtual/icon-summit2.mjs +0 -31
  731. package/dist/treeshaking/_virtual/icon-sun.mjs +0 -20
  732. package/dist/treeshaking/_virtual/icon-time.mjs +0 -20
  733. package/dist/treeshaking/_virtual/icon-tip.mjs +0 -21
  734. package/dist/treeshaking/_virtual/icon-tips.mjs +0 -17
  735. package/dist/treeshaking/_virtual/icon-tips2.mjs +0 -28
  736. package/dist/treeshaking/_virtual/icon-unexpand.mjs +0 -22
  737. package/dist/treeshaking/_virtual/icon-unlike.mjs +0 -20
  738. package/dist/treeshaking/_virtual/icon-user.mjs +0 -17
  739. package/dist/treeshaking/_virtual/icon-video.mjs +0 -28
  740. package/dist/treeshaking/_virtual/icon-wechat.mjs +0 -18
  741. package/dist/treeshaking/_virtual/icon-working.mjs +0 -17
  742. package/dist/treeshaking/_virtual/mux.js/lib/tools/parse-sidx.js2.mjs +0 -45
  743. package/dist/treeshaking/_virtual/mux.js/lib/utils/clock.js2.mjs +0 -42
  744. package/dist/treeshaking/_virtual/sig-space.mjs +0 -20
  745. package/dist/treeshaking/_virtual/videojs-vtt.js/lib/browser-index.js2.mjs +0 -37
  746. package/dist/treeshaking/_virtual/videojs-vtt.js/lib/browser-index.js3.mjs +0 -4
  747. package/dist/treeshaking/assets/meeting/empty.png.mjs +0 -4
  748. package/dist/treeshaking/assets/meeting/transparent.png.mjs +0 -4
  749. package/dist/treeshaking/assets/search/search-empty.png.mjs +0 -4
  750. package/dist/treeshaking/assets/svg-icons/icon-zoom.svg.mjs +0 -4
  751. package/dist/treeshaking/assets/user-center/images/avatar.png.mjs +0 -4
  752. package/dist/treeshaking/assets/user-center/images/default-user-photo.png.mjs +0 -4
  753. package/dist/treeshaking/assets/user-center/images/left-arrow-dark.svg.mjs +0 -4
  754. package/dist/treeshaking/assets/user-center/images/left-arrow-light.svg.mjs +0 -4
  755. package/dist/treeshaking/assets/user-center/images/noData.svg.mjs +0 -4
  756. package/dist/treeshaking/assets/user-center/images/warning-dark.svg.mjs +0 -4
  757. package/dist/treeshaking/assets/user-center/images/warning-light.svg.mjs +0 -4
  758. package/dist/treeshaking/components/activity/OActivityApproval.vue.mjs +0 -672
  759. package/dist/treeshaking/components/activity/OActivityApproval.vue4.mjs +0 -6
  760. package/dist/treeshaking/components/activity/OActivityForm.css +0 -364
  761. package/dist/treeshaking/components/activity/OActivityForm.vue.mjs +0 -628
  762. package/dist/treeshaking/components/activity/OActivityForm.vue4.mjs +0 -6
  763. package/dist/treeshaking/components/activity/OActivityForm2.css +0 -327
  764. package/dist/treeshaking/components/activity/OActivityMyCalendar.css +0 -1375
  765. package/dist/treeshaking/components/activity/OActivityMyCalendar.vue.mjs +0 -861
  766. package/dist/treeshaking/components/activity/OActivityMyCalendar.vue4.mjs +0 -6
  767. package/dist/treeshaking/components/activity/OActivityMyCalendar2.css +0 -318
  768. package/dist/treeshaking/components/anchor-bar/OAnchorBar.vue.mjs +0 -7
  769. package/dist/treeshaking/components/anchor-bar/OAnchorBar.vue2.mjs +0 -103
  770. package/dist/treeshaking/components/article/OArticle.vue.mjs +0 -7
  771. package/dist/treeshaking/components/article/OArticle.vue2.mjs +0 -102
  772. package/dist/treeshaking/components/article/OArticleList.css +0 -253
  773. package/dist/treeshaking/components/article/OArticleList.vue.mjs +0 -219
  774. package/dist/treeshaking/components/article/OArticleList.vue3.mjs +0 -5
  775. package/dist/treeshaking/components/article/components/ArticleTitle.vue.mjs +0 -7
  776. package/dist/treeshaking/components/article/components/ArticleTitle.vue2.mjs +0 -97
  777. package/dist/treeshaking/components/article/components/DocTitle.vue.mjs +0 -7
  778. package/dist/treeshaking/components/article/components/DocTitle.vue2.mjs +0 -310
  779. package/dist/treeshaking/components/article-anchor/OArticleAnchor.vue.mjs +0 -7
  780. package/dist/treeshaking/components/article-anchor/OArticleAnchor.vue2.mjs +0 -303
  781. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorItems.vue.mjs +0 -7
  782. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorItems.vue2.mjs +0 -36
  783. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorMobile.css +0 -47
  784. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorMobile.vue.mjs +0 -7
  785. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorMobile.vue2.mjs +0 -182
  786. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorPad.css +0 -80
  787. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorPad.vue.mjs +0 -7
  788. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorPad.vue2.mjs +0 -78
  789. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorPc.vue.mjs +0 -7
  790. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorPc.vue2.mjs +0 -38
  791. package/dist/treeshaking/components/article-pagination/OArticlePagination.vue.mjs +0 -7
  792. package/dist/treeshaking/components/article-pagination/OArticlePagination.vue2.mjs +0 -107
  793. package/dist/treeshaking/components/banner/OBanner.vue.mjs +0 -8
  794. package/dist/treeshaking/components/banner/OBanner.vue2.mjs +0 -142
  795. package/dist/treeshaking/components/banner/OBannerContent.vue.mjs +0 -7
  796. package/dist/treeshaking/components/banner/OBannerContent.vue2.mjs +0 -102
  797. package/dist/treeshaking/components/brand/OBrandFile.vue.mjs +0 -7
  798. package/dist/treeshaking/components/brand/OBrandFile.vue2.mjs +0 -70
  799. package/dist/treeshaking/components/brand/OBrandLogo.vue.mjs +0 -8
  800. package/dist/treeshaking/components/brand/OBrandLogo.vue2.mjs +0 -120
  801. package/dist/treeshaking/components/brand/OBrandStandard.vue.mjs +0 -7
  802. package/dist/treeshaking/components/brand/OBrandStandard.vue2.mjs +0 -59
  803. package/dist/treeshaking/components/common/AppAvatar.vue.mjs +0 -7
  804. package/dist/treeshaking/components/common/AppAvatar.vue2.mjs +0 -83
  805. package/dist/treeshaking/components/common/ClientOnly.vue.mjs +0 -16
  806. package/dist/treeshaking/components/common/ClientOnly.vue2.mjs +0 -4
  807. package/dist/treeshaking/components/common/ContentWrapper.vue.mjs +0 -7
  808. package/dist/treeshaking/components/common/ContentWrapper.vue2.mjs +0 -50
  809. package/dist/treeshaking/components/common/TooltipText.vue.mjs +0 -105
  810. package/dist/treeshaking/components/common/TooltipText.vue3.mjs +0 -5
  811. package/dist/treeshaking/components/common/WordAvatar.vue.mjs +0 -84
  812. package/dist/treeshaking/components/common/WordAvatar.vue3.mjs +0 -5
  813. package/dist/treeshaking/components/config-provider/OPlusConfigProvider.vue.mjs +0 -35
  814. package/dist/treeshaking/components/config-provider/OPlusConfigProvider.vue2.mjs +0 -4
  815. package/dist/treeshaking/components/cookie-notice/OCookieNotice.css +0 -35
  816. package/dist/treeshaking/components/cookie-notice/OCookieNotice.vue.mjs +0 -8
  817. package/dist/treeshaking/components/cookie-notice/OCookieNotice.vue2.mjs +0 -367
  818. package/dist/treeshaking/components/cookie-notice/OCookieNotice2.css +0 -309
  819. package/dist/treeshaking/components/doc-layout/ODocLayout.css +0 -286
  820. package/dist/treeshaking/components/doc-layout/ODocLayout.vue.mjs +0 -7
  821. package/dist/treeshaking/components/doc-layout/ODocLayout.vue2.mjs +0 -179
  822. package/dist/treeshaking/components/element-plus/OElCookieNotice.css +0 -303
  823. package/dist/treeshaking/components/element-plus/OElCookieNotice.vue.mjs +0 -8
  824. package/dist/treeshaking/components/element-plus/OElCookieNotice.vue2.mjs +0 -384
  825. package/dist/treeshaking/components/element-plus/OElCookieNotice2.css +0 -688
  826. package/dist/treeshaking/components/empty/404.png.mjs +0 -4
  827. package/dist/treeshaking/components/empty/404_dark.png.mjs +0 -4
  828. package/dist/treeshaking/components/empty/OEmpty.vue.mjs +0 -7
  829. package/dist/treeshaking/components/empty/OEmpty.vue2.mjs +0 -44
  830. package/dist/treeshaking/components/events/OEventsApply.vue.mjs +0 -98
  831. package/dist/treeshaking/components/events/OEventsApply.vue3.mjs +0 -5
  832. package/dist/treeshaking/components/events/OEventsCalendar.vue.mjs +0 -289
  833. package/dist/treeshaking/components/events/OEventsCalendar.vue3.mjs +0 -5
  834. package/dist/treeshaking/components/events/OEventsList.vue.mjs +0 -237
  835. package/dist/treeshaking/components/events/OEventsList.vue3.mjs +0 -5
  836. package/dist/treeshaking/components/feedback-doc/OFeedbackDoc.vue.mjs +0 -7
  837. package/dist/treeshaking/components/feedback-doc/OFeedbackDoc.vue2.mjs +0 -165
  838. package/dist/treeshaking/components/feedback-doc/OFeedbackDocContent.vue.mjs +0 -7
  839. package/dist/treeshaking/components/feedback-doc/OFeedbackDocContent.vue2.mjs +0 -309
  840. package/dist/treeshaking/components/feedback-doc/OFeedbackDocDialog.vue.mjs +0 -99
  841. package/dist/treeshaking/components/feedback-doc/OFeedbackDocDialog.vue2.mjs +0 -4
  842. package/dist/treeshaking/components/feedback-doc/OFeedbackDocPopup.vue.mjs +0 -7
  843. package/dist/treeshaking/components/feedback-doc/OFeedbackDocPopup.vue2.mjs +0 -95
  844. package/dist/treeshaking/components/float-poster/OFloatPoster.vue.mjs +0 -7
  845. package/dist/treeshaking/components/float-poster/OFloatPoster.vue2.mjs +0 -84
  846. package/dist/treeshaking/components/footer/OFooter.vue.mjs +0 -7
  847. package/dist/treeshaking/components/footer/OFooter.vue2.mjs +0 -92
  848. package/dist/treeshaking/components/footer/components/FooterList.vue.mjs +0 -7
  849. package/dist/treeshaking/components/footer/components/FooterList.vue2.mjs +0 -214
  850. package/dist/treeshaking/components/footer/components/FooterSimple.vue.mjs +0 -7
  851. package/dist/treeshaking/components/footer/components/FooterSimple.vue2.mjs +0 -126
  852. package/dist/treeshaking/components/header/OHeader.vue.mjs +0 -7
  853. package/dist/treeshaking/components/header/OHeader.vue2.mjs +0 -272
  854. package/dist/treeshaking/components/header/OHeaderMobile.vue.mjs +0 -7
  855. package/dist/treeshaking/components/header/OHeaderMobile.vue2.mjs +0 -145
  856. package/dist/treeshaking/components/header/components/HeaderContent.vue.mjs +0 -7
  857. package/dist/treeshaking/components/header/components/HeaderContent.vue2.mjs +0 -371
  858. package/dist/treeshaking/components/header/components/HeaderFlatten.vue.mjs +0 -7
  859. package/dist/treeshaking/components/header/components/HeaderFlatten.vue2.mjs +0 -288
  860. package/dist/treeshaking/components/header/components/HeaderNav.vue.mjs +0 -7
  861. package/dist/treeshaking/components/header/components/HeaderNav.vue2.mjs +0 -244
  862. package/dist/treeshaking/components/header/components/HeaderNavMobile.vue.mjs +0 -7
  863. package/dist/treeshaking/components/header/components/HeaderNavMobile.vue2.mjs +0 -253
  864. package/dist/treeshaking/components/header-language-switcher/OHeaderLanguageSwitcher.vue.mjs +0 -8
  865. package/dist/treeshaking/components/header-language-switcher/OHeaderLanguageSwitcher.vue2.mjs +0 -129
  866. package/dist/treeshaking/components/header-search/OHeaderSearch.vue.mjs +0 -7
  867. package/dist/treeshaking/components/header-search/OHeaderSearch.vue2.mjs +0 -436
  868. package/dist/treeshaking/components/header-source-code/OHeaderSourceCode.vue.mjs +0 -7
  869. package/dist/treeshaking/components/header-source-code/OHeaderSourceCode.vue2.mjs +0 -89
  870. package/dist/treeshaking/components/header-theme/OHeaderTheme.vue.mjs +0 -7
  871. package/dist/treeshaking/components/header-theme/OHeaderTheme.vue2.mjs +0 -86
  872. package/dist/treeshaking/components/header-user/OHeaderUser.vue.mjs +0 -8
  873. package/dist/treeshaking/components/header-user/OHeaderUser.vue2.mjs +0 -161
  874. package/dist/treeshaking/components/html-viewer/OHtmlViewer.vue.mjs +0 -7
  875. package/dist/treeshaking/components/html-viewer/OHtmlViewer.vue2.mjs +0 -117
  876. package/dist/treeshaking/components/logo-swiper/OLogoSwiper.vue.mjs +0 -7
  877. package/dist/treeshaking/components/logo-swiper/OLogoSwiper.vue2.mjs +0 -21
  878. package/dist/treeshaking/components/logo-swiper/OLogoSwiperItems.vue.mjs +0 -7
  879. package/dist/treeshaking/components/logo-swiper/OLogoSwiperItems.vue2.mjs +0 -164
  880. package/dist/treeshaking/components/markdown/OMarkdown.vue.mjs +0 -8
  881. package/dist/treeshaking/components/markdown/OMarkdown.vue2.mjs +0 -195
  882. package/dist/treeshaking/components/markdown/components/MarkdownCode.vue.mjs +0 -8
  883. package/dist/treeshaking/components/markdown/components/MarkdownCode.vue2.mjs +0 -127
  884. package/dist/treeshaking/components/markdown/components/MarkdownImage.vue.mjs +0 -7
  885. package/dist/treeshaking/components/markdown/components/MarkdownImage.vue2.mjs +0 -76
  886. package/dist/treeshaking/components/markdown/components/MarkdownTable.vue.mjs +0 -7
  887. package/dist/treeshaking/components/markdown/components/MarkdownTable.vue2.mjs +0 -59
  888. package/dist/treeshaking/components/markdown/components/MarkdownTableData.vue.mjs +0 -7
  889. package/dist/treeshaking/components/markdown/components/MarkdownTableData.vue2.mjs +0 -181
  890. package/dist/treeshaking/components/markdown/components/MarkdownTableExpand.vue.mjs +0 -7
  891. package/dist/treeshaking/components/markdown/components/MarkdownTableExpand.vue2.mjs +0 -57
  892. package/dist/treeshaking/components/markdown/components/MarkdownTitle.vue.mjs +0 -7
  893. package/dist/treeshaking/components/markdown/components/MarkdownTitle.vue2.mjs +0 -75
  894. package/dist/treeshaking/components/meeting/OMeetingCalendar.css +0 -1100
  895. package/dist/treeshaking/components/meeting/OMeetingCalendar.vue.mjs +0 -597
  896. package/dist/treeshaking/components/meeting/OMeetingCalendar.vue3.mjs +0 -5
  897. package/dist/treeshaking/components/meeting/OMeetingForm.css +0 -765
  898. package/dist/treeshaking/components/meeting/OMeetingForm.vue.mjs +0 -1081
  899. package/dist/treeshaking/components/meeting/OMeetingForm.vue4.mjs +0 -6
  900. package/dist/treeshaking/components/meeting/OMeetingForm2.css +0 -358
  901. package/dist/treeshaking/components/meeting/OMeetingMinutes.vue.mjs +0 -415
  902. package/dist/treeshaking/components/meeting/OMeetingMinutes.vue3.mjs +0 -5
  903. package/dist/treeshaking/components/meeting/OMeetingMinutesCopyDetail.vue.mjs +0 -7
  904. package/dist/treeshaking/components/meeting/OMeetingMinutesCopyDetail.vue2.mjs +0 -74
  905. package/dist/treeshaking/components/meeting/OMeetingMyCalendar.css +0 -1344
  906. package/dist/treeshaking/components/meeting/OMeetingMyCalendar.vue.mjs +0 -931
  907. package/dist/treeshaking/components/meeting/OMeetingMyCalendar.vue4.mjs +0 -6
  908. package/dist/treeshaking/components/meeting/OMeetingMyCalendar2.css +0 -330
  909. package/dist/treeshaking/components/meeting/OMeetingPlayback.vue.mjs +0 -406
  910. package/dist/treeshaking/components/meeting/OMeetingPlayback.vue3.mjs +0 -5
  911. package/dist/treeshaking/components/meeting/OMeetingSendMinutesForm.vue.mjs +0 -221
  912. package/dist/treeshaking/components/meeting/OMeetingSendMinutesForm.vue3.mjs +0 -5
  913. package/dist/treeshaking/components/meeting/OMeetingSigCalendar.vue.mjs +0 -396
  914. package/dist/treeshaking/components/meeting/OMeetingSigCalendar.vue3.mjs +0 -5
  915. package/dist/treeshaking/components/meeting/components/OMeetingCalendarList.vue.mjs +0 -422
  916. package/dist/treeshaking/components/meeting/components/OMeetingCalendarList.vue3.mjs +0 -5
  917. package/dist/treeshaking/components/meeting/components/OMeetingCalendarSelector.css +0 -379
  918. package/dist/treeshaking/components/meeting/components/OMeetingCalendarSelector.vue.mjs +0 -132
  919. package/dist/treeshaking/components/meeting/components/OMeetingCalendarSelector.vue4.mjs +0 -6
  920. package/dist/treeshaking/components/meeting/components/OMeetingCalendarSelector2.css +0 -343
  921. package/dist/treeshaking/components/meeting/components/OMeetingDetail.vue.mjs +0 -194
  922. package/dist/treeshaking/components/meeting/components/OMeetingDetail.vue3.mjs +0 -5
  923. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackSubtitles.css +0 -743
  924. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackSubtitles.vue.mjs +0 -434
  925. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackSubtitles.vue4.mjs +0 -6
  926. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackSubtitles2.css +0 -344
  927. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackVideo.vue.mjs +0 -242
  928. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackVideo.vue3.mjs +0 -5
  929. package/dist/treeshaking/components/meeting/components/OMeetingSendMinutesDialog.vue.mjs +0 -7
  930. package/dist/treeshaking/components/meeting/components/OMeetingSendMinutesDialog.vue2.mjs +0 -93
  931. package/dist/treeshaking/components/meeting/components/OMeetingSigAside.vue.mjs +0 -152
  932. package/dist/treeshaking/components/meeting/components/OMeetingSigAside.vue3.mjs +0 -5
  933. package/dist/treeshaking/components/org/OOrgDesc.vue.mjs +0 -7
  934. package/dist/treeshaking/components/org/OOrgDesc.vue2.mjs +0 -40
  935. package/dist/treeshaking/components/org/OOrgMembers.vue.mjs +0 -7
  936. package/dist/treeshaking/components/org/OOrgMembers.vue2.mjs +0 -108
  937. package/dist/treeshaking/components/recursion-menu/ORecursionMenu.vue.mjs +0 -95
  938. package/dist/treeshaking/components/recursion-menu/ORecursionMenu.vue2.mjs +0 -4
  939. package/dist/treeshaking/components/recursion-menu/ORecursionMenuItem.vue.mjs +0 -7
  940. package/dist/treeshaking/components/recursion-menu/ORecursionMenuItem.vue2.mjs +0 -107
  941. package/dist/treeshaking/components/search/OSearchInput.vue.mjs +0 -7
  942. package/dist/treeshaking/components/search/OSearchInput.vue2.mjs +0 -382
  943. package/dist/treeshaking/components/search/internal/HighlightText.vue.mjs +0 -7
  944. package/dist/treeshaking/components/search/internal/HighlightText.vue2.mjs +0 -33
  945. package/dist/treeshaking/components/search/internal/SearchImageInput.vue.mjs +0 -8
  946. package/dist/treeshaking/components/search/internal/SearchImageInput.vue2.mjs +0 -305
  947. package/dist/treeshaking/components/search/internal/SearchPanel.vue.mjs +0 -7
  948. package/dist/treeshaking/components/search/internal/SearchPanel.vue2.mjs +0 -255
  949. package/dist/treeshaking/components/search-doc-result/OSearchDocResult.css +0 -156
  950. package/dist/treeshaking/components/search-doc-result/OSearchDocResult.vue.mjs +0 -7
  951. package/dist/treeshaking/components/search-doc-result/OSearchDocResult.vue2.mjs +0 -214
  952. package/dist/treeshaking/components/search-result/OSearchResult.css +0 -165
  953. package/dist/treeshaking/components/search-result/OSearchResult.vue.mjs +0 -7
  954. package/dist/treeshaking/components/search-result/OSearchResult.vue2.mjs +0 -185
  955. package/dist/treeshaking/components/search-result/OSearchResultHeader.vue.mjs +0 -7
  956. package/dist/treeshaking/components/search-result/OSearchResultHeader.vue2.mjs +0 -112
  957. package/dist/treeshaking/components/search-result/OSearchResultItem.vue.mjs +0 -7
  958. package/dist/treeshaking/components/search-result/OSearchResultItem.vue2.mjs +0 -118
  959. package/dist/treeshaking/components/search-result/components/OSearchResultEmpty.vue.mjs +0 -7
  960. package/dist/treeshaking/components/search-result/components/OSearchResultEmpty.vue2.mjs +0 -29
  961. package/dist/treeshaking/components/search-result/components/OSearchResultFeedback.vue.mjs +0 -7
  962. package/dist/treeshaking/components/search-result/components/OSearchResultFeedback.vue2.mjs +0 -171
  963. package/dist/treeshaking/components/search-result/components/OSearchResultFeedbackBanner.vue.mjs +0 -7
  964. package/dist/treeshaking/components/search-result/components/OSearchResultFeedbackBanner.vue2.mjs +0 -185
  965. package/dist/treeshaking/components/search-result/components/OSearchResultRelative.vue.mjs +0 -7
  966. package/dist/treeshaking/components/search-result/components/OSearchResultRelative.vue2.mjs +0 -55
  967. package/dist/treeshaking/components/section/OSection.vue.mjs +0 -7
  968. package/dist/treeshaking/components/section/OSection.vue2.mjs +0 -93
  969. package/dist/treeshaking/components/sig/OSigDetail.vue.mjs +0 -262
  970. package/dist/treeshaking/components/sig/OSigDetail.vue3.mjs +0 -5
  971. package/dist/treeshaking/components/sig/OSigList.css +0 -845
  972. package/dist/treeshaking/components/sig/OSigList.vue.mjs +0 -524
  973. package/dist/treeshaking/components/sig/OSigList.vue3.mjs +0 -5
  974. package/dist/treeshaking/components/sig/components/OSigDetailInfoCard.vue.mjs +0 -90
  975. package/dist/treeshaking/components/sig/components/OSigDetailInfoCard.vue3.mjs +0 -5
  976. package/dist/treeshaking/components/sig/components/OSigItem.vue.mjs +0 -212
  977. package/dist/treeshaking/components/sig/components/OSigItem.vue3.mjs +0 -5
  978. package/dist/treeshaking/components/sig/components/OSigMember.vue.mjs +0 -274
  979. package/dist/treeshaking/components/sig/components/OSigMember.vue3.mjs +0 -5
  980. package/dist/treeshaking/components/sig/components/OSigRepo.vue.mjs +0 -191
  981. package/dist/treeshaking/components/sig/components/OSigRepo.vue3.mjs +0 -5
  982. package/dist/treeshaking/components/sig/components/OSigUserContribute.vue.mjs +0 -328
  983. package/dist/treeshaking/components/sig/components/OSigUserContribute.vue3.mjs +0 -5
  984. package/dist/treeshaking/components/summit/OSummit.vue.mjs +0 -7
  985. package/dist/treeshaking/components/summit/OSummit.vue2.mjs +0 -60
  986. package/dist/treeshaking/components/summit/OSummitIntro.vue.mjs +0 -7
  987. package/dist/treeshaking/components/summit/OSummitIntro.vue2.mjs +0 -26
  988. package/dist/treeshaking/components/summit/OSummitLive.vue.mjs +0 -7
  989. package/dist/treeshaking/components/summit/OSummitLive.vue2.mjs +0 -171
  990. package/dist/treeshaking/components/summit/OSummitSchedule.vue.mjs +0 -8
  991. package/dist/treeshaking/components/summit/OSummitSchedule.vue2.mjs +0 -317
  992. package/dist/treeshaking/components/summit/components/OSummitTabs.vue.mjs +0 -7
  993. package/dist/treeshaking/components/summit/components/OSummitTabs.vue2.mjs +0 -157
  994. package/dist/treeshaking/components/user-center/OAccountSecurity.css +0 -253
  995. package/dist/treeshaking/components/user-center/OAccountSecurity.vue.mjs +0 -7
  996. package/dist/treeshaking/components/user-center/OAccountSecurity.vue2.mjs +0 -308
  997. package/dist/treeshaking/components/user-center/OAccountSetting.css +0 -284
  998. package/dist/treeshaking/components/user-center/OAccountSetting.vue.mjs +0 -7
  999. package/dist/treeshaking/components/user-center/OAccountSetting.vue2.mjs +0 -395
  1000. package/dist/treeshaking/components/user-center/OAppHeader.vue.mjs +0 -7
  1001. package/dist/treeshaking/components/user-center/OAppHeader.vue2.mjs +0 -207
  1002. package/dist/treeshaking/components/user-center/OAsideBar.vue.mjs +0 -7
  1003. package/dist/treeshaking/components/user-center/OAsideBar.vue2.mjs +0 -108
  1004. package/dist/treeshaking/components/user-center/OLayout.vue.mjs +0 -7
  1005. package/dist/treeshaking/components/user-center/OLayout.vue2.mjs +0 -27
  1006. package/dist/treeshaking/components/user-center/OTheAccountManage.vue.mjs +0 -7
  1007. package/dist/treeshaking/components/user-center/OTheAccountManage.vue2.mjs +0 -26
  1008. package/dist/treeshaking/components/user-center/OTheCreateMeeting.vue.mjs +0 -7
  1009. package/dist/treeshaking/components/user-center/OTheCreateMeeting.vue2.mjs +0 -103
  1010. package/dist/treeshaking/components/user-center/OTheMeeting.vue.mjs +0 -7
  1011. package/dist/treeshaking/components/user-center/OTheMeeting.vue2.mjs +0 -128
  1012. package/dist/treeshaking/components/user-center/OThirdPartyBindings.vue.mjs +0 -7
  1013. package/dist/treeshaking/components/user-center/OThirdPartyBindings.vue2.mjs +0 -388
  1014. package/dist/treeshaking/components/user-center/OUserInfo.vue.mjs +0 -9
  1015. package/dist/treeshaking/components/user-center/OUserInfo.vue2.mjs +0 -562
  1016. package/dist/treeshaking/components/user-center/internal/OAppDialog.vue.mjs +0 -7
  1017. package/dist/treeshaking/components/user-center/internal/OAppDialog.vue2.mjs +0 -446
  1018. package/dist/treeshaking/components/user-center/internal/OAppEmpty.vue.mjs +0 -7
  1019. package/dist/treeshaking/components/user-center/internal/OAppEmpty.vue2.mjs +0 -41
  1020. package/dist/treeshaking/components/user-center/internal/OCommonHeader.vue.mjs +0 -7
  1021. package/dist/treeshaking/components/user-center/internal/OCommonHeader.vue2.mjs +0 -148
  1022. package/dist/treeshaking/components/user-center/internal/OCountdownButton.vue.mjs +0 -67
  1023. package/dist/treeshaking/components/user-center/internal/OCountdownButton.vue2.mjs +0 -4
  1024. package/dist/treeshaking/components/user-center/internal/ODeleteAccountModal.vue.mjs +0 -8
  1025. package/dist/treeshaking/components/user-center/internal/ODeleteAccountModal.vue2.mjs +0 -325
  1026. package/dist/treeshaking/components/user-center/internal/OEditNicknameDialog.vue.mjs +0 -8
  1027. package/dist/treeshaking/components/user-center/internal/OEditNicknameDialog.vue2.mjs +0 -149
  1028. package/dist/treeshaking/components/user-center/internal/OEditOrgDialog.vue.mjs +0 -8
  1029. package/dist/treeshaking/components/user-center/internal/OEditOrgDialog.vue2.mjs +0 -162
  1030. package/dist/treeshaking/components/user-center/internal/OMaskEye.vue.mjs +0 -7
  1031. package/dist/treeshaking/components/user-center/internal/OMaskEye.vue2.mjs +0 -30
  1032. package/dist/treeshaking/components/user-center/internal/OModifyPwd.vue.mjs +0 -7
  1033. package/dist/treeshaking/components/user-center/internal/OModifyPwd.vue2.mjs +0 -461
  1034. package/dist/treeshaking/components/user-center/internal/OPasswordPopInput.vue.mjs +0 -7
  1035. package/dist/treeshaking/components/user-center/internal/OPasswordPopInput.vue2.mjs +0 -147
  1036. package/dist/treeshaking/components/user-center/internal/OToBindingTipModal.vue.mjs +0 -7
  1037. package/dist/treeshaking/components/user-center/internal/OToBindingTipModal.vue2.mjs +0 -117
  1038. package/dist/treeshaking/components/user-center/internal/OUnbindingThirdpartyAccountModal.vue.mjs +0 -7
  1039. package/dist/treeshaking/components/user-center/internal/OUnbindingThirdpartyAccountModal.vue2.mjs +0 -107
  1040. package/dist/treeshaking/components/user-center/internal/OUploadAvatar.css +0 -525
  1041. package/dist/treeshaking/components/user-center/internal/OUploadAvatar.vue.mjs +0 -8
  1042. package/dist/treeshaking/components/user-center/internal/OUploadAvatar.vue2.mjs +0 -455
  1043. package/dist/treeshaking/components/user-center/internal/OUploadAvatar2.css +0 -304
  1044. package/dist/treeshaking/components/user-center/verify/Verify.vue.mjs +0 -61
  1045. package/dist/treeshaking/components/user-center/verify/Verify.vue2.mjs +0 -83
  1046. package/dist/treeshaking/components/user-center/verify/VerifySlide.vue.mjs +0 -122
  1047. package/dist/treeshaking/components/user-center/verify/VerifySlide.vue2.mjs +0 -367
  1048. package/dist/treeshaking/components/video/OVideoDetail.vue.mjs +0 -318
  1049. package/dist/treeshaking/components/video/OVideoDetail.vue3.mjs +0 -5
  1050. /package/dist/treeshaking/components/activity/{OActivityApproval.css → OActivityApproval.vue_vue_type_style_index_0_lang.css} +0 -0
  1051. /package/dist/treeshaking/components/activity/{OActivityApproval2.css → OActivityApproval.vue_vue_type_style_index_1_lang.css} +0 -0
  1052. /package/dist/treeshaking/components/anchor-bar/{OAnchorBar.css → OAnchorBar.vue_vue_type_style_index_0_scoped_f662dd83_lang.css} +0 -0
  1053. /package/dist/treeshaking/components/article/{OArticle.css → OArticle.vue_vue_type_style_index_0_scoped_f94c0e57_lang.css} +0 -0
  1054. /package/dist/treeshaking/components/article/components/{ArticleTitle.css → ArticleTitle.vue_vue_type_style_index_0_scoped_b96d293f_lang.css} +0 -0
  1055. /package/dist/treeshaking/components/article/components/{DocTitle.css → DocTitle.vue_vue_type_style_index_0_scoped_12467c9f_lang.css} +0 -0
  1056. /package/dist/treeshaking/components/article-anchor/{OArticleAnchor.css → OArticleAnchor.vue_vue_type_style_index_0_scoped_dcc5e0d5_lang.css} +0 -0
  1057. /package/dist/treeshaking/components/article-anchor/components/{ArticleAnchorItems.css → ArticleAnchorItems.vue_vue_type_style_index_0_scoped_126e1824_lang.css} +0 -0
  1058. /package/dist/treeshaking/components/article-anchor/components/{ArticleAnchorPc.css → ArticleAnchorPc.vue_vue_type_style_index_0_scoped_a480e4e7_lang.css} +0 -0
  1059. /package/dist/treeshaking/components/article-pagination/{OArticlePagination.css → OArticlePagination.vue_vue_type_style_index_0_scoped_8a8cf9f8_lang.css} +0 -0
  1060. /package/dist/treeshaking/components/banner/{OBanner.css → OBanner.vue_vue_type_style_index_0_scoped_8cfcc7ff_lang.css} +0 -0
  1061. /package/dist/treeshaking/components/banner/{OBanner2.css → OBanner.vue_vue_type_style_index_1_scoped_8cfcc7ff_lang.css} +0 -0
  1062. /package/dist/treeshaking/components/banner/{OBannerContent.css → OBannerContent.vue_vue_type_style_index_0_scoped_1904d05a_lang.css} +0 -0
  1063. /package/dist/treeshaking/components/brand/{OBrandFile.css → OBrandFile.vue_vue_type_style_index_0_scoped_9919f662_lang.css} +0 -0
  1064. /package/dist/treeshaking/components/brand/{OBrandLogo.css → OBrandLogo.vue_vue_type_style_index_0_scoped_6b4fb6c1_lang.css} +0 -0
  1065. /package/dist/treeshaking/components/brand/{OBrandLogo2.css → OBrandLogo.vue_vue_type_style_index_1_lang.css} +0 -0
  1066. /package/dist/treeshaking/components/brand/{OBrandStandard.css → OBrandStandard.vue_vue_type_style_index_0_scoped_a9afbc57_lang.css} +0 -0
  1067. /package/dist/treeshaking/components/common/{AppAvatar.css → AppAvatar.vue_vue_type_style_index_0_scoped_9aaf13f3_lang.css} +0 -0
  1068. /package/dist/treeshaking/components/common/{ContentWrapper.css → ContentWrapper.vue_vue_type_style_index_0_scoped_9e217f8f_lang.css} +0 -0
  1069. /package/dist/treeshaking/components/common/{TooltipText.css → TooltipText.vue_vue_type_style_index_0_lang.css} +0 -0
  1070. /package/dist/treeshaking/components/common/{WordAvatar.css → WordAvatar.vue_vue_type_style_index_0_lang.css} +0 -0
  1071. /package/dist/treeshaking/components/empty/{OEmpty.css → OEmpty.vue_vue_type_style_index_0_scoped_4381b83c_lang.css} +0 -0
  1072. /package/dist/treeshaking/components/events/{OEventsApply.css → OEventsApply.vue_vue_type_style_index_0_lang.css} +0 -0
  1073. /package/dist/treeshaking/components/events/{OEventsCalendar.css → OEventsCalendar.vue_vue_type_style_index_0_lang.css} +0 -0
  1074. /package/dist/treeshaking/components/events/{OEventsList.css → OEventsList.vue_vue_type_style_index_0_lang.css} +0 -0
  1075. /package/dist/treeshaking/components/feedback-doc/{OFeedbackDoc.css → OFeedbackDoc.vue_vue_type_style_index_0_scoped_a8f7d8ef_lang.css} +0 -0
  1076. /package/dist/treeshaking/components/feedback-doc/{OFeedbackDocContent.css → OFeedbackDocContent.vue_vue_type_style_index_0_scoped_994ce5c5_lang.css} +0 -0
  1077. /package/dist/treeshaking/components/feedback-doc/{OFeedbackDocPopup.css → OFeedbackDocPopup.vue_vue_type_style_index_0_scoped_61cd944c_lang.css} +0 -0
  1078. /package/dist/treeshaking/components/float-poster/{OFloatPoster.css → OFloatPoster.vue_vue_type_style_index_0_scoped_e67cdd62_lang.css} +0 -0
  1079. /package/dist/treeshaking/components/footer/{OFooter.css → OFooter.vue_vue_type_style_index_0_scoped_41010b1f_lang.css} +0 -0
  1080. /package/dist/treeshaking/components/footer/components/{FooterList.css → FooterList.vue_vue_type_style_index_0_scoped_1d7a4555_lang.css} +0 -0
  1081. /package/dist/treeshaking/components/footer/components/{FooterSimple.css → FooterSimple.vue_vue_type_style_index_0_scoped_bb36ddad_lang.css} +0 -0
  1082. /package/dist/treeshaking/components/header/{OHeader.css → OHeader.vue_vue_type_style_index_0_scoped_c1620a61_lang.css} +0 -0
  1083. /package/dist/treeshaking/components/header/{OHeaderMobile.css → OHeaderMobile.vue_vue_type_style_index_0_scoped_0a2d44bb_lang.css} +0 -0
  1084. /package/dist/treeshaking/components/header/components/{HeaderContent.css → HeaderContent.vue_vue_type_style_index_0_scoped_366a2b01_lang.css} +0 -0
  1085. /package/dist/treeshaking/components/header/components/{HeaderFlatten.css → HeaderFlatten.vue_vue_type_style_index_0_scoped_edcea052_lang.css} +0 -0
  1086. /package/dist/treeshaking/components/header/components/{HeaderNav.css → HeaderNav.vue_vue_type_style_index_0_scoped_01bf1a8c_lang.css} +0 -0
  1087. /package/dist/treeshaking/components/header/components/{HeaderNavMobile.css → HeaderNavMobile.vue_vue_type_style_index_0_scoped_5c72051b_lang.css} +0 -0
  1088. /package/dist/treeshaking/components/header-language-switcher/{OHeaderLanguageSwitcher.css → OHeaderLanguageSwitcher.vue_vue_type_style_index_0_scoped_423f1b29_lang.css} +0 -0
  1089. /package/dist/treeshaking/components/header-language-switcher/{OHeaderLanguageSwitcher2.css → OHeaderLanguageSwitcher.vue_vue_type_style_index_1_lang.css} +0 -0
  1090. /package/dist/treeshaking/components/header-search/{OHeaderSearch.css → OHeaderSearch.vue_vue_type_style_index_0_scoped_bf46f1ee_lang.css} +0 -0
  1091. /package/dist/treeshaking/components/header-source-code/{OHeaderSourceCode.css → OHeaderSourceCode.vue_vue_type_style_index_0_scoped_4c72b8c0_lang.css} +0 -0
  1092. /package/dist/treeshaking/components/header-theme/{OHeaderTheme.css → OHeaderTheme.vue_vue_type_style_index_0_scoped_a8461f7a_lang.css} +0 -0
  1093. /package/dist/treeshaking/components/header-user/{OHeaderUser.css → OHeaderUser.vue_vue_type_style_index_0_scoped_01df49a0_lang.css} +0 -0
  1094. /package/dist/treeshaking/components/header-user/{OHeaderUser2.css → OHeaderUser.vue_vue_type_style_index_1_lang.css} +0 -0
  1095. /package/dist/treeshaking/components/html-viewer/{OHtmlViewer.css → OHtmlViewer.vue_vue_type_style_index_0_scoped_2f5d08df_lang.css} +0 -0
  1096. /package/dist/treeshaking/components/logo-swiper/{OLogoSwiper.css → OLogoSwiper.vue_vue_type_style_index_0_scoped_6c8c87fc_lang.css} +0 -0
  1097. /package/dist/treeshaking/components/logo-swiper/{OLogoSwiperItems.css → OLogoSwiperItems.vue_vue_type_style_index_0_scoped_2d960cc9_lang.css} +0 -0
  1098. /package/dist/treeshaking/components/markdown/{OMarkdown.css → OMarkdown.vue_vue_type_style_index_0_lang.css} +0 -0
  1099. /package/dist/treeshaking/components/markdown/{OMarkdown2.css → OMarkdown.vue_vue_type_style_index_1_scoped_c19788db_lang.css} +0 -0
  1100. /package/dist/treeshaking/components/markdown/components/{MarkdownCode.css → MarkdownCode.vue_vue_type_style_index_0_lang.css} +0 -0
  1101. /package/dist/treeshaking/components/markdown/components/{MarkdownCode2.css → MarkdownCode.vue_vue_type_style_index_1_scoped_8895ed58_lang.css} +0 -0
  1102. /package/dist/treeshaking/components/markdown/components/{MarkdownImage.css → MarkdownImage.vue_vue_type_style_index_0_scoped_af8b0296_lang.css} +0 -0
  1103. /package/dist/treeshaking/components/markdown/components/{MarkdownTable.css → MarkdownTable.vue_vue_type_style_index_0_scoped_ce85236e_lang.css} +0 -0
  1104. /package/dist/treeshaking/components/markdown/components/{MarkdownTableData.css → MarkdownTableData.vue_vue_type_style_index_0_scoped_5f73735b_lang.css} +0 -0
  1105. /package/dist/treeshaking/components/markdown/components/{MarkdownTableExpand.css → MarkdownTableExpand.vue_vue_type_style_index_0_scoped_e625a513_lang.css} +0 -0
  1106. /package/dist/treeshaking/components/markdown/components/{MarkdownTitle.css → MarkdownTitle.vue_vue_type_style_index_0_scoped_73874b80_lang.css} +0 -0
  1107. /package/dist/treeshaking/components/meeting/{OMeetingMinutes.css → OMeetingMinutes.vue_vue_type_style_index_0_lang.css} +0 -0
  1108. /package/dist/treeshaking/components/meeting/{OMeetingMinutesCopyDetail.css → OMeetingMinutesCopyDetail.vue_vue_type_style_index_0_scoped_6e742903_lang.css} +0 -0
  1109. /package/dist/treeshaking/components/meeting/{OMeetingPlayback.css → OMeetingPlayback.vue_vue_type_style_index_0_lang.css} +0 -0
  1110. /package/dist/treeshaking/components/meeting/{OMeetingSendMinutesForm.css → OMeetingSendMinutesForm.vue_vue_type_style_index_0_lang.css} +0 -0
  1111. /package/dist/treeshaking/components/meeting/{OMeetingSigCalendar.css → OMeetingSigCalendar.vue_vue_type_style_index_0_lang.css} +0 -0
  1112. /package/dist/treeshaking/components/meeting/components/{OMeetingCalendarList.css → OMeetingCalendarList.vue_vue_type_style_index_0_lang.css} +0 -0
  1113. /package/dist/treeshaking/components/meeting/components/{OMeetingDetail.css → OMeetingDetail.vue_vue_type_style_index_0_lang.css} +0 -0
  1114. /package/dist/treeshaking/components/meeting/components/{OMeetingPlaybackVideo.css → OMeetingPlaybackVideo.vue_vue_type_style_index_0_lang.css} +0 -0
  1115. /package/dist/treeshaking/components/meeting/components/{OMeetingSendMinutesDialog.css → OMeetingSendMinutesDialog.vue_vue_type_style_index_0_scoped_1bd384f6_lang.css} +0 -0
  1116. /package/dist/treeshaking/components/meeting/components/{OMeetingSigAside.css → OMeetingSigAside.vue_vue_type_style_index_0_lang.css} +0 -0
  1117. /package/dist/treeshaking/components/org/{OOrgDesc.css → OOrgDesc.vue_vue_type_style_index_0_scoped_5a9df0b4_lang.css} +0 -0
  1118. /package/dist/treeshaking/components/org/{OOrgMembers.css → OOrgMembers.vue_vue_type_style_index_0_scoped_dc325798_lang.css} +0 -0
  1119. /package/dist/treeshaking/components/recursion-menu/{ORecursionMenuItem.css → ORecursionMenuItem.vue_vue_type_style_index_0_scoped_14237743_lang.css} +0 -0
  1120. /package/dist/treeshaking/components/search/{OSearchInput.css → OSearchInput.vue_vue_type_style_index_0_scoped_ee331b07_lang.css} +0 -0
  1121. /package/dist/treeshaking/components/search/internal/{HighlightText.css → HighlightText.vue_vue_type_style_index_0_scoped_2a99e23c_lang.css} +0 -0
  1122. /package/dist/treeshaking/components/search/internal/{SearchImageInput.css → SearchImageInput.vue_vue_type_style_index_0_scoped_4a3e5145_lang.css} +0 -0
  1123. /package/dist/treeshaking/components/search/internal/{SearchImageInput2.css → SearchImageInput.vue_vue_type_style_index_1_lang.css} +0 -0
  1124. /package/dist/treeshaking/components/search/internal/{SearchPanel.css → SearchPanel.vue_vue_type_style_index_0_scoped_a5767f01_lang.css} +0 -0
  1125. /package/dist/treeshaking/components/search-result/{OSearchResultHeader.css → OSearchResultHeader.vue_vue_type_style_index_0_scoped_70bc0c95_lang.css} +0 -0
  1126. /package/dist/treeshaking/components/search-result/{OSearchResultItem.css → OSearchResultItem.vue_vue_type_style_index_0_scoped_0914fdb7_lang.css} +0 -0
  1127. /package/dist/treeshaking/components/search-result/components/{OSearchResultEmpty.css → OSearchResultEmpty.vue_vue_type_style_index_0_scoped_da22a823_lang.css} +0 -0
  1128. /package/dist/treeshaking/components/search-result/components/{OSearchResultFeedback.css → OSearchResultFeedback.vue_vue_type_style_index_0_scoped_72958e79_lang.css} +0 -0
  1129. /package/dist/treeshaking/components/search-result/components/{OSearchResultFeedbackBanner.css → OSearchResultFeedbackBanner.vue_vue_type_style_index_0_scoped_4cd638c6_lang.css} +0 -0
  1130. /package/dist/treeshaking/components/search-result/components/{OSearchResultRelative.css → OSearchResultRelative.vue_vue_type_style_index_0_scoped_6872ff03_lang.css} +0 -0
  1131. /package/dist/treeshaking/components/section/{OSection.css → OSection.vue_vue_type_style_index_0_scoped_dae37748_lang.css} +0 -0
  1132. /package/dist/treeshaking/components/sig/{OSigDetail.css → OSigDetail.vue_vue_type_style_index_0_lang.css} +0 -0
  1133. /package/dist/treeshaking/components/sig/components/{OSigDetailInfoCard.css → OSigDetailInfoCard.vue_vue_type_style_index_0_lang.css} +0 -0
  1134. /package/dist/treeshaking/components/sig/components/{OSigItem.css → OSigItem.vue_vue_type_style_index_0_lang.css} +0 -0
  1135. /package/dist/treeshaking/components/sig/components/{OSigMember.css → OSigMember.vue_vue_type_style_index_0_lang.css} +0 -0
  1136. /package/dist/treeshaking/components/sig/components/{OSigRepo.css → OSigRepo.vue_vue_type_style_index_0_lang.css} +0 -0
  1137. /package/dist/treeshaking/components/sig/components/{OSigUserContribute.css → OSigUserContribute.vue_vue_type_style_index_0_lang.css} +0 -0
  1138. /package/dist/treeshaking/components/summit/{OSummit.css → OSummit.vue_vue_type_style_index_0_scoped_6e15ff06_lang.css} +0 -0
  1139. /package/dist/treeshaking/components/summit/{OSummitIntro.css → OSummitIntro.vue_vue_type_style_index_0_scoped_4878dd94_lang.css} +0 -0
  1140. /package/dist/treeshaking/components/summit/{OSummitLive.css → OSummitLive.vue_vue_type_style_index_0_scoped_634db517_lang.css} +0 -0
  1141. /package/dist/treeshaking/components/summit/{OSummitSchedule.css → OSummitSchedule.vue_vue_type_style_index_0_scoped_934d2319_lang.css} +0 -0
  1142. /package/dist/treeshaking/components/summit/{OSummitSchedule2.css → OSummitSchedule.vue_vue_type_style_index_1_lang.css} +0 -0
  1143. /package/dist/treeshaking/components/summit/components/{OSummitTabs.css → OSummitTabs.vue_vue_type_style_index_0_scoped_7337571d_lang.css} +0 -0
  1144. /package/dist/treeshaking/components/user-center/{OAppHeader.css → OAppHeader.vue_vue_type_style_index_0_scoped_c5aea772_lang.css} +0 -0
  1145. /package/dist/treeshaking/components/user-center/{OAsideBar.css → OAsideBar.vue_vue_type_style_index_0_scoped_52e6041d_lang.css} +0 -0
  1146. /package/dist/treeshaking/components/user-center/{OLayout.css → OLayout.vue_vue_type_style_index_0_scoped_57f2a891_lang.css} +0 -0
  1147. /package/dist/treeshaking/components/user-center/{OTheAccountManage.css → OTheAccountManage.vue_vue_type_style_index_0_scoped_77534a05_lang.css} +0 -0
  1148. /package/dist/treeshaking/components/user-center/{OTheCreateMeeting.css → OTheCreateMeeting.vue_vue_type_style_index_0_scoped_fd23cd00_lang.css} +0 -0
  1149. /package/dist/treeshaking/components/user-center/{OTheMeeting.css → OTheMeeting.vue_vue_type_style_index_0_scoped_0dd1b8dd_lang.css} +0 -0
  1150. /package/dist/treeshaking/components/user-center/{OThirdPartyBindings.css → OThirdPartyBindings.vue_vue_type_style_index_0_scoped_aae76194_lang.css} +0 -0
  1151. /package/dist/treeshaking/components/user-center/{OUserInfo.css → OUserInfo.vue_vue_type_style_index_0_scoped_c12d3f54_lang.css} +0 -0
  1152. /package/dist/treeshaking/components/user-center/{OUserInfo2.css → OUserInfo.vue_vue_type_style_index_1_lang.css} +0 -0
  1153. /package/dist/treeshaking/components/user-center/{OUserInfo3.css → OUserInfo.vue_vue_type_style_index_2_scoped_c12d3f54_lang.css} +0 -0
  1154. /package/dist/treeshaking/components/user-center/internal/{OAppDialog.css → OAppDialog.vue_vue_type_style_index_0_scoped_67324b3c_lang.css} +0 -0
  1155. /package/dist/treeshaking/components/user-center/internal/{OAppEmpty.css → OAppEmpty.vue_vue_type_style_index_0_scoped_7a03249c_lang.css} +0 -0
  1156. /package/dist/treeshaking/components/user-center/internal/{OCommonHeader.css → OCommonHeader.vue_vue_type_style_index_0_scoped_89fdfe34_lang.css} +0 -0
  1157. /package/dist/treeshaking/components/user-center/internal/{ODeleteAccountModal.css → ODeleteAccountModal.vue_vue_type_style_index_0_scoped_e8f10683_lang.css} +0 -0
  1158. /package/dist/treeshaking/components/user-center/internal/{ODeleteAccountModal2.css → ODeleteAccountModal.vue_vue_type_style_index_1_lang.css} +0 -0
  1159. /package/dist/treeshaking/components/user-center/internal/{OEditNicknameDialog.css → OEditNicknameDialog.vue_vue_type_style_index_0_scoped_31e15aff_lang.css} +0 -0
  1160. /package/dist/treeshaking/components/user-center/internal/{OEditNicknameDialog2.css → OEditNicknameDialog.vue_vue_type_style_index_1_lang.css} +0 -0
  1161. /package/dist/treeshaking/components/user-center/internal/{OEditOrgDialog.css → OEditOrgDialog.vue_vue_type_style_index_0_scoped_80d49054_lang.css} +0 -0
  1162. /package/dist/treeshaking/components/user-center/internal/{OEditOrgDialog2.css → OEditOrgDialog.vue_vue_type_style_index_1_lang.css} +0 -0
  1163. /package/dist/treeshaking/components/user-center/internal/{OMaskEye.css → OMaskEye.vue_vue_type_style_index_0_scoped_a1344e1a_lang.css} +0 -0
  1164. /package/dist/treeshaking/components/user-center/internal/{OModifyPwd.css → OModifyPwd.vue_vue_type_style_index_0_scoped_5e0452e7_lang.css} +0 -0
  1165. /package/dist/treeshaking/components/user-center/internal/{OPasswordPopInput.css → OPasswordPopInput.vue_vue_type_style_index_0_scoped_1bf14f73_lang.css} +0 -0
  1166. /package/dist/treeshaking/components/user-center/internal/{OToBindingTipModal.css → OToBindingTipModal.vue_vue_type_style_index_0_scoped_8d479930_lang.css} +0 -0
  1167. /package/dist/treeshaking/components/user-center/internal/{OUnbindingThirdpartyAccountModal.css → OUnbindingThirdpartyAccountModal.vue_vue_type_style_index_0_scoped_d6042985_lang.css} +0 -0
  1168. /package/dist/treeshaking/components/user-center/verify/{Verify.css → Verify.vue_vue_type_style_index_0_lang.css} +0 -0
  1169. /package/dist/treeshaking/components/video/{OVideoDetail.css → OVideoDetail.vue_vue_type_style_index_0_lang.css} +0 -0
@@ -1,1390 +1,1155 @@
1
- import Stream from "../../@videojs/vhs-utils/es/stream.js.mjs";
2
1
  import _extends from "../../@babel/runtime/helpers/esm/extends.js.mjs";
2
+ import Stream from "../../@videojs/vhs-utils/es/stream.js.mjs";
3
3
  import decodeB64ToUint8Array from "../../@videojs/vhs-utils/es/decode-b64-to-uint8-array.js.mjs";
4
+ // ../../node_modules/.pnpm/m3u8-parser@7.2.0/node_modules/m3u8-parser/dist/m3u8-parser.es.js
4
5
  /*! @name m3u8-parser @version 7.2.0 @license Apache-2.0 */
5
- class LineStream extends Stream {
6
- constructor() {
7
- super();
8
- this.buffer = "";
9
- }
10
- /**
11
- * Add new data to be parsed.
12
- *
13
- * @param {string} data the text to process
14
- */
15
- push(data) {
16
- let nextNewline;
17
- this.buffer += data;
18
- nextNewline = this.buffer.indexOf("\n");
19
- for (; nextNewline > -1; nextNewline = this.buffer.indexOf("\n")) {
20
- this.trigger("data", this.buffer.substring(0, nextNewline));
21
- this.buffer = this.buffer.substring(nextNewline + 1);
22
- }
23
- }
24
- }
25
- const TAB = String.fromCharCode(9);
26
- const parseByterange = function(byterangeString) {
27
- const match = /([0-9.]*)?@?([0-9.]*)?/.exec(byterangeString || "");
28
- const result = {};
29
- if (match[1]) {
30
- result.length = parseInt(match[1], 10);
31
- }
32
- if (match[2]) {
33
- result.offset = parseInt(match[2], 10);
34
- }
35
- return result;
6
+ /**
7
+ * @file m3u8/line-stream.js
8
+ */
9
+ /**
10
+ * A stream that buffers string input and generates a `data` event for each
11
+ * line.
12
+ *
13
+ * @class LineStream
14
+ * @extends Stream
15
+ */
16
+ var LineStream = class extends Stream {
17
+ constructor() {
18
+ super();
19
+ this.buffer = "";
20
+ }
21
+ /**
22
+ * Add new data to be parsed.
23
+ *
24
+ * @param {string} data the text to process
25
+ */
26
+ push(data) {
27
+ let nextNewline;
28
+ this.buffer += data;
29
+ nextNewline = this.buffer.indexOf("\n");
30
+ for (; nextNewline > -1; nextNewline = this.buffer.indexOf("\n")) {
31
+ this.trigger("data", this.buffer.substring(0, nextNewline));
32
+ this.buffer = this.buffer.substring(nextNewline + 1);
33
+ }
34
+ }
35
+ };
36
+ var TAB = String.fromCharCode(9);
37
+ var parseByterange = function(byterangeString) {
38
+ const match = /([0-9.]*)?@?([0-9.]*)?/.exec(byterangeString || "");
39
+ const result = {};
40
+ if (match[1]) result.length = parseInt(match[1], 10);
41
+ if (match[2]) result.offset = parseInt(match[2], 10);
42
+ return result;
43
+ };
44
+ /**
45
+ * "forgiving" attribute list psuedo-grammar:
46
+ * attributes -> keyvalue (',' keyvalue)*
47
+ * keyvalue -> key '=' value
48
+ * key -> [^=]*
49
+ * value -> '"' [^"]* '"' | [^,]*
50
+ */
51
+ var attributeSeparator = function() {
52
+ return /* @__PURE__ */ new RegExp("(?:^|,)((?:[^=]*)=(?:\"[^\"]*\"|[^,]*))");
36
53
  };
37
- const attributeSeparator = function() {
38
- const key = "[^=]*";
39
- const value = '"[^"]*"|[^,]*';
40
- const keyvalue = "(?:" + key + ")=(?:" + value + ")";
41
- return new RegExp("(?:^|,)(" + keyvalue + ")");
54
+ /**
55
+ * Parse attributes from a line given the separator
56
+ *
57
+ * @param {string} attributes the attribute line to parse
58
+ */
59
+ var parseAttributes = function(attributes) {
60
+ const result = {};
61
+ if (!attributes) return result;
62
+ const attrs = attributes.split(attributeSeparator());
63
+ let i = attrs.length;
64
+ let attr;
65
+ while (i--) {
66
+ if (attrs[i] === "") continue;
67
+ attr = /([^=]*)=(.*)/.exec(attrs[i]).slice(1);
68
+ attr[0] = attr[0].replace(/^\s+|\s+$/g, "");
69
+ attr[1] = attr[1].replace(/^\s+|\s+$/g, "");
70
+ attr[1] = attr[1].replace(/^['"](.*)['"]$/g, "$1");
71
+ result[attr[0]] = attr[1];
72
+ }
73
+ return result;
42
74
  };
43
- const parseAttributes = function(attributes) {
44
- const result = {};
45
- if (!attributes) {
46
- return result;
47
- }
48
- const attrs = attributes.split(attributeSeparator());
49
- let i = attrs.length;
50
- let attr;
51
- while (i--) {
52
- if (attrs[i] === "") {
53
- continue;
54
- }
55
- attr = /([^=]*)=(.*)/.exec(attrs[i]).slice(1);
56
- attr[0] = attr[0].replace(/^\s+|\s+$/g, "");
57
- attr[1] = attr[1].replace(/^\s+|\s+$/g, "");
58
- attr[1] = attr[1].replace(/^['"](.*)['"]$/g, "$1");
59
- result[attr[0]] = attr[1];
60
- }
61
- return result;
75
+ /**
76
+ * Converts a string into a resolution object
77
+ *
78
+ * @param {string} resolution a string such as 3840x2160
79
+ *
80
+ * @return {Object} An object representing the resolution
81
+ *
82
+ */
83
+ var parseResolution = (resolution) => {
84
+ const split = resolution.split("x");
85
+ const result = {};
86
+ if (split[0]) result.width = parseInt(split[0], 10);
87
+ if (split[1]) result.height = parseInt(split[1], 10);
88
+ return result;
62
89
  };
63
- const parseResolution = (resolution) => {
64
- const split = resolution.split("x");
65
- const result = {};
66
- if (split[0]) {
67
- result.width = parseInt(split[0], 10);
68
- }
69
- if (split[1]) {
70
- result.height = parseInt(split[1], 10);
71
- }
72
- return result;
90
+ /**
91
+ * A line-level M3U8 parser event stream. It expects to receive input one
92
+ * line at a time and performs a context-free parse of its contents. A stream
93
+ * interpretation of a manifest can be useful if the manifest is expected to
94
+ * be too large to fit comfortably into memory or the entirety of the input
95
+ * is not immediately available. Otherwise, it's probably much easier to work
96
+ * with a regular `Parser` object.
97
+ *
98
+ * Produces `data` events with an object that captures the parser's
99
+ * interpretation of the input. That object has a property `tag` that is one
100
+ * of `uri`, `comment`, or `tag`. URIs only have a single additional
101
+ * property, `line`, which captures the entirety of the input without
102
+ * interpretation. Comments similarly have a single additional property
103
+ * `text` which is the input without the leading `#`.
104
+ *
105
+ * Tags always have a property `tagType` which is the lower-cased version of
106
+ * the M3U8 directive without the `#EXT` or `#EXT-X-` prefix. For instance,
107
+ * `#EXT-X-MEDIA-SEQUENCE` becomes `media-sequence` when parsed. Unrecognized
108
+ * tags are given the tag type `unknown` and a single additional property
109
+ * `data` with the remainder of the input.
110
+ *
111
+ * @class ParseStream
112
+ * @extends Stream
113
+ */
114
+ var ParseStream = class extends Stream {
115
+ constructor() {
116
+ super();
117
+ this.customParsers = [];
118
+ this.tagMappers = [];
119
+ }
120
+ /**
121
+ * Parses an additional line of input.
122
+ *
123
+ * @param {string} line a single line of an M3U8 file to parse
124
+ */
125
+ push(line) {
126
+ let match;
127
+ let event;
128
+ line = line.trim();
129
+ if (line.length === 0) return;
130
+ if (line[0] !== "#") {
131
+ this.trigger("data", {
132
+ type: "uri",
133
+ uri: line
134
+ });
135
+ return;
136
+ }
137
+ this.tagMappers.reduce((acc, mapper) => {
138
+ const mappedLine = mapper(line);
139
+ if (mappedLine === line) return acc;
140
+ return acc.concat([mappedLine]);
141
+ }, [line]).forEach((newLine) => {
142
+ for (let i = 0; i < this.customParsers.length; i++) if (this.customParsers[i].call(this, newLine)) return;
143
+ if (newLine.indexOf("#EXT") !== 0) {
144
+ this.trigger("data", {
145
+ type: "comment",
146
+ text: newLine.slice(1)
147
+ });
148
+ return;
149
+ }
150
+ newLine = newLine.replace("\r", "");
151
+ match = /^#EXTM3U/.exec(newLine);
152
+ if (match) {
153
+ this.trigger("data", {
154
+ type: "tag",
155
+ tagType: "m3u"
156
+ });
157
+ return;
158
+ }
159
+ match = /^#EXTINF:([0-9\.]*)?,?(.*)?$/.exec(newLine);
160
+ if (match) {
161
+ event = {
162
+ type: "tag",
163
+ tagType: "inf"
164
+ };
165
+ if (match[1]) event.duration = parseFloat(match[1]);
166
+ if (match[2]) event.title = match[2];
167
+ this.trigger("data", event);
168
+ return;
169
+ }
170
+ match = /^#EXT-X-TARGETDURATION:([0-9.]*)?/.exec(newLine);
171
+ if (match) {
172
+ event = {
173
+ type: "tag",
174
+ tagType: "targetduration"
175
+ };
176
+ if (match[1]) event.duration = parseInt(match[1], 10);
177
+ this.trigger("data", event);
178
+ return;
179
+ }
180
+ match = /^#EXT-X-VERSION:([0-9.]*)?/.exec(newLine);
181
+ if (match) {
182
+ event = {
183
+ type: "tag",
184
+ tagType: "version"
185
+ };
186
+ if (match[1]) event.version = parseInt(match[1], 10);
187
+ this.trigger("data", event);
188
+ return;
189
+ }
190
+ match = /^#EXT-X-MEDIA-SEQUENCE:(\-?[0-9.]*)?/.exec(newLine);
191
+ if (match) {
192
+ event = {
193
+ type: "tag",
194
+ tagType: "media-sequence"
195
+ };
196
+ if (match[1]) event.number = parseInt(match[1], 10);
197
+ this.trigger("data", event);
198
+ return;
199
+ }
200
+ match = /^#EXT-X-DISCONTINUITY-SEQUENCE:(\-?[0-9.]*)?/.exec(newLine);
201
+ if (match) {
202
+ event = {
203
+ type: "tag",
204
+ tagType: "discontinuity-sequence"
205
+ };
206
+ if (match[1]) event.number = parseInt(match[1], 10);
207
+ this.trigger("data", event);
208
+ return;
209
+ }
210
+ match = /^#EXT-X-PLAYLIST-TYPE:(.*)?$/.exec(newLine);
211
+ if (match) {
212
+ event = {
213
+ type: "tag",
214
+ tagType: "playlist-type"
215
+ };
216
+ if (match[1]) event.playlistType = match[1];
217
+ this.trigger("data", event);
218
+ return;
219
+ }
220
+ match = /^#EXT-X-BYTERANGE:(.*)?$/.exec(newLine);
221
+ if (match) {
222
+ event = _extends(parseByterange(match[1]), {
223
+ type: "tag",
224
+ tagType: "byterange"
225
+ });
226
+ this.trigger("data", event);
227
+ return;
228
+ }
229
+ match = /^#EXT-X-ALLOW-CACHE:(YES|NO)?/.exec(newLine);
230
+ if (match) {
231
+ event = {
232
+ type: "tag",
233
+ tagType: "allow-cache"
234
+ };
235
+ if (match[1]) event.allowed = !/NO/.test(match[1]);
236
+ this.trigger("data", event);
237
+ return;
238
+ }
239
+ match = /^#EXT-X-MAP:(.*)$/.exec(newLine);
240
+ if (match) {
241
+ event = {
242
+ type: "tag",
243
+ tagType: "map"
244
+ };
245
+ if (match[1]) {
246
+ const attributes = parseAttributes(match[1]);
247
+ if (attributes.URI) event.uri = attributes.URI;
248
+ if (attributes.BYTERANGE) event.byterange = parseByterange(attributes.BYTERANGE);
249
+ }
250
+ this.trigger("data", event);
251
+ return;
252
+ }
253
+ match = /^#EXT-X-STREAM-INF:(.*)$/.exec(newLine);
254
+ if (match) {
255
+ event = {
256
+ type: "tag",
257
+ tagType: "stream-inf"
258
+ };
259
+ if (match[1]) {
260
+ event.attributes = parseAttributes(match[1]);
261
+ if (event.attributes.RESOLUTION) event.attributes.RESOLUTION = parseResolution(event.attributes.RESOLUTION);
262
+ if (event.attributes.BANDWIDTH) event.attributes.BANDWIDTH = parseInt(event.attributes.BANDWIDTH, 10);
263
+ if (event.attributes["FRAME-RATE"]) event.attributes["FRAME-RATE"] = parseFloat(event.attributes["FRAME-RATE"]);
264
+ if (event.attributes["PROGRAM-ID"]) event.attributes["PROGRAM-ID"] = parseInt(event.attributes["PROGRAM-ID"], 10);
265
+ }
266
+ this.trigger("data", event);
267
+ return;
268
+ }
269
+ match = /^#EXT-X-MEDIA:(.*)$/.exec(newLine);
270
+ if (match) {
271
+ event = {
272
+ type: "tag",
273
+ tagType: "media"
274
+ };
275
+ if (match[1]) event.attributes = parseAttributes(match[1]);
276
+ this.trigger("data", event);
277
+ return;
278
+ }
279
+ match = /^#EXT-X-ENDLIST/.exec(newLine);
280
+ if (match) {
281
+ this.trigger("data", {
282
+ type: "tag",
283
+ tagType: "endlist"
284
+ });
285
+ return;
286
+ }
287
+ match = /^#EXT-X-DISCONTINUITY/.exec(newLine);
288
+ if (match) {
289
+ this.trigger("data", {
290
+ type: "tag",
291
+ tagType: "discontinuity"
292
+ });
293
+ return;
294
+ }
295
+ match = /^#EXT-X-PROGRAM-DATE-TIME:(.*)$/.exec(newLine);
296
+ if (match) {
297
+ event = {
298
+ type: "tag",
299
+ tagType: "program-date-time"
300
+ };
301
+ if (match[1]) {
302
+ event.dateTimeString = match[1];
303
+ event.dateTimeObject = new Date(match[1]);
304
+ }
305
+ this.trigger("data", event);
306
+ return;
307
+ }
308
+ match = /^#EXT-X-KEY:(.*)$/.exec(newLine);
309
+ if (match) {
310
+ event = {
311
+ type: "tag",
312
+ tagType: "key"
313
+ };
314
+ if (match[1]) {
315
+ event.attributes = parseAttributes(match[1]);
316
+ if (event.attributes.IV) {
317
+ if (event.attributes.IV.substring(0, 2).toLowerCase() === "0x") event.attributes.IV = event.attributes.IV.substring(2);
318
+ event.attributes.IV = event.attributes.IV.match(/.{8}/g);
319
+ event.attributes.IV[0] = parseInt(event.attributes.IV[0], 16);
320
+ event.attributes.IV[1] = parseInt(event.attributes.IV[1], 16);
321
+ event.attributes.IV[2] = parseInt(event.attributes.IV[2], 16);
322
+ event.attributes.IV[3] = parseInt(event.attributes.IV[3], 16);
323
+ event.attributes.IV = new Uint32Array(event.attributes.IV);
324
+ }
325
+ }
326
+ this.trigger("data", event);
327
+ return;
328
+ }
329
+ match = /^#EXT-X-START:(.*)$/.exec(newLine);
330
+ if (match) {
331
+ event = {
332
+ type: "tag",
333
+ tagType: "start"
334
+ };
335
+ if (match[1]) {
336
+ event.attributes = parseAttributes(match[1]);
337
+ event.attributes["TIME-OFFSET"] = parseFloat(event.attributes["TIME-OFFSET"]);
338
+ event.attributes.PRECISE = /YES/.test(event.attributes.PRECISE);
339
+ }
340
+ this.trigger("data", event);
341
+ return;
342
+ }
343
+ match = /^#EXT-X-CUE-OUT-CONT:(.*)?$/.exec(newLine);
344
+ if (match) {
345
+ event = {
346
+ type: "tag",
347
+ tagType: "cue-out-cont"
348
+ };
349
+ if (match[1]) event.data = match[1];
350
+ else event.data = "";
351
+ this.trigger("data", event);
352
+ return;
353
+ }
354
+ match = /^#EXT-X-CUE-OUT:(.*)?$/.exec(newLine);
355
+ if (match) {
356
+ event = {
357
+ type: "tag",
358
+ tagType: "cue-out"
359
+ };
360
+ if (match[1]) event.data = match[1];
361
+ else event.data = "";
362
+ this.trigger("data", event);
363
+ return;
364
+ }
365
+ match = /^#EXT-X-CUE-IN:?(.*)?$/.exec(newLine);
366
+ if (match) {
367
+ event = {
368
+ type: "tag",
369
+ tagType: "cue-in"
370
+ };
371
+ if (match[1]) event.data = match[1];
372
+ else event.data = "";
373
+ this.trigger("data", event);
374
+ return;
375
+ }
376
+ match = /^#EXT-X-SKIP:(.*)$/.exec(newLine);
377
+ if (match && match[1]) {
378
+ event = {
379
+ type: "tag",
380
+ tagType: "skip"
381
+ };
382
+ event.attributes = parseAttributes(match[1]);
383
+ if (event.attributes.hasOwnProperty("SKIPPED-SEGMENTS")) event.attributes["SKIPPED-SEGMENTS"] = parseInt(event.attributes["SKIPPED-SEGMENTS"], 10);
384
+ if (event.attributes.hasOwnProperty("RECENTLY-REMOVED-DATERANGES")) event.attributes["RECENTLY-REMOVED-DATERANGES"] = event.attributes["RECENTLY-REMOVED-DATERANGES"].split(TAB);
385
+ this.trigger("data", event);
386
+ return;
387
+ }
388
+ match = /^#EXT-X-PART:(.*)$/.exec(newLine);
389
+ if (match && match[1]) {
390
+ event = {
391
+ type: "tag",
392
+ tagType: "part"
393
+ };
394
+ event.attributes = parseAttributes(match[1]);
395
+ ["DURATION"].forEach(function(key) {
396
+ if (event.attributes.hasOwnProperty(key)) event.attributes[key] = parseFloat(event.attributes[key]);
397
+ });
398
+ ["INDEPENDENT", "GAP"].forEach(function(key) {
399
+ if (event.attributes.hasOwnProperty(key)) event.attributes[key] = /YES/.test(event.attributes[key]);
400
+ });
401
+ if (event.attributes.hasOwnProperty("BYTERANGE")) event.attributes.byterange = parseByterange(event.attributes.BYTERANGE);
402
+ this.trigger("data", event);
403
+ return;
404
+ }
405
+ match = /^#EXT-X-SERVER-CONTROL:(.*)$/.exec(newLine);
406
+ if (match && match[1]) {
407
+ event = {
408
+ type: "tag",
409
+ tagType: "server-control"
410
+ };
411
+ event.attributes = parseAttributes(match[1]);
412
+ [
413
+ "CAN-SKIP-UNTIL",
414
+ "PART-HOLD-BACK",
415
+ "HOLD-BACK"
416
+ ].forEach(function(key) {
417
+ if (event.attributes.hasOwnProperty(key)) event.attributes[key] = parseFloat(event.attributes[key]);
418
+ });
419
+ ["CAN-SKIP-DATERANGES", "CAN-BLOCK-RELOAD"].forEach(function(key) {
420
+ if (event.attributes.hasOwnProperty(key)) event.attributes[key] = /YES/.test(event.attributes[key]);
421
+ });
422
+ this.trigger("data", event);
423
+ return;
424
+ }
425
+ match = /^#EXT-X-PART-INF:(.*)$/.exec(newLine);
426
+ if (match && match[1]) {
427
+ event = {
428
+ type: "tag",
429
+ tagType: "part-inf"
430
+ };
431
+ event.attributes = parseAttributes(match[1]);
432
+ ["PART-TARGET"].forEach(function(key) {
433
+ if (event.attributes.hasOwnProperty(key)) event.attributes[key] = parseFloat(event.attributes[key]);
434
+ });
435
+ this.trigger("data", event);
436
+ return;
437
+ }
438
+ match = /^#EXT-X-PRELOAD-HINT:(.*)$/.exec(newLine);
439
+ if (match && match[1]) {
440
+ event = {
441
+ type: "tag",
442
+ tagType: "preload-hint"
443
+ };
444
+ event.attributes = parseAttributes(match[1]);
445
+ ["BYTERANGE-START", "BYTERANGE-LENGTH"].forEach(function(key) {
446
+ if (event.attributes.hasOwnProperty(key)) {
447
+ event.attributes[key] = parseInt(event.attributes[key], 10);
448
+ const subkey = key === "BYTERANGE-LENGTH" ? "length" : "offset";
449
+ event.attributes.byterange = event.attributes.byterange || {};
450
+ event.attributes.byterange[subkey] = event.attributes[key];
451
+ delete event.attributes[key];
452
+ }
453
+ });
454
+ this.trigger("data", event);
455
+ return;
456
+ }
457
+ match = /^#EXT-X-RENDITION-REPORT:(.*)$/.exec(newLine);
458
+ if (match && match[1]) {
459
+ event = {
460
+ type: "tag",
461
+ tagType: "rendition-report"
462
+ };
463
+ event.attributes = parseAttributes(match[1]);
464
+ ["LAST-MSN", "LAST-PART"].forEach(function(key) {
465
+ if (event.attributes.hasOwnProperty(key)) event.attributes[key] = parseInt(event.attributes[key], 10);
466
+ });
467
+ this.trigger("data", event);
468
+ return;
469
+ }
470
+ match = /^#EXT-X-DATERANGE:(.*)$/.exec(newLine);
471
+ if (match && match[1]) {
472
+ event = {
473
+ type: "tag",
474
+ tagType: "daterange"
475
+ };
476
+ event.attributes = parseAttributes(match[1]);
477
+ ["ID", "CLASS"].forEach(function(key) {
478
+ if (event.attributes.hasOwnProperty(key)) event.attributes[key] = String(event.attributes[key]);
479
+ });
480
+ ["START-DATE", "END-DATE"].forEach(function(key) {
481
+ if (event.attributes.hasOwnProperty(key)) event.attributes[key] = new Date(event.attributes[key]);
482
+ });
483
+ ["DURATION", "PLANNED-DURATION"].forEach(function(key) {
484
+ if (event.attributes.hasOwnProperty(key)) event.attributes[key] = parseFloat(event.attributes[key]);
485
+ });
486
+ ["END-ON-NEXT"].forEach(function(key) {
487
+ if (event.attributes.hasOwnProperty(key)) event.attributes[key] = /YES/i.test(event.attributes[key]);
488
+ });
489
+ [
490
+ "SCTE35-CMD",
491
+ " SCTE35-OUT",
492
+ "SCTE35-IN"
493
+ ].forEach(function(key) {
494
+ if (event.attributes.hasOwnProperty(key)) event.attributes[key] = event.attributes[key].toString(16);
495
+ });
496
+ const clientAttributePattern = /^X-([A-Z]+-)+[A-Z]+$/;
497
+ for (const key in event.attributes) {
498
+ if (!clientAttributePattern.test(key)) continue;
499
+ const isHexaDecimal = /[0-9A-Fa-f]{6}/g.test(event.attributes[key]);
500
+ const isDecimalFloating = /^\d+(\.\d+)?$/.test(event.attributes[key]);
501
+ event.attributes[key] = isHexaDecimal ? event.attributes[key].toString(16) : isDecimalFloating ? parseFloat(event.attributes[key]) : String(event.attributes[key]);
502
+ }
503
+ this.trigger("data", event);
504
+ return;
505
+ }
506
+ match = /^#EXT-X-INDEPENDENT-SEGMENTS/.exec(newLine);
507
+ if (match) {
508
+ this.trigger("data", {
509
+ type: "tag",
510
+ tagType: "independent-segments"
511
+ });
512
+ return;
513
+ }
514
+ match = /^#EXT-X-I-FRAMES-ONLY/.exec(newLine);
515
+ if (match) {
516
+ this.trigger("data", {
517
+ type: "tag",
518
+ tagType: "i-frames-only"
519
+ });
520
+ return;
521
+ }
522
+ match = /^#EXT-X-CONTENT-STEERING:(.*)$/.exec(newLine);
523
+ if (match) {
524
+ event = {
525
+ type: "tag",
526
+ tagType: "content-steering"
527
+ };
528
+ event.attributes = parseAttributes(match[1]);
529
+ this.trigger("data", event);
530
+ return;
531
+ }
532
+ match = /^#EXT-X-I-FRAME-STREAM-INF:(.*)$/.exec(newLine);
533
+ if (match) {
534
+ event = {
535
+ type: "tag",
536
+ tagType: "i-frame-playlist"
537
+ };
538
+ event.attributes = parseAttributes(match[1]);
539
+ if (event.attributes.URI) event.uri = event.attributes.URI;
540
+ if (event.attributes.BANDWIDTH) event.attributes.BANDWIDTH = parseInt(event.attributes.BANDWIDTH, 10);
541
+ if (event.attributes.RESOLUTION) event.attributes.RESOLUTION = parseResolution(event.attributes.RESOLUTION);
542
+ if (event.attributes["AVERAGE-BANDWIDTH"]) event.attributes["AVERAGE-BANDWIDTH"] = parseInt(event.attributes["AVERAGE-BANDWIDTH"], 10);
543
+ if (event.attributes["FRAME-RATE"]) event.attributes["FRAME-RATE"] = parseFloat(event.attributes["FRAME-RATE"]);
544
+ this.trigger("data", event);
545
+ return;
546
+ }
547
+ match = /^#EXT-X-DEFINE:(.*)$/.exec(newLine);
548
+ if (match) {
549
+ event = {
550
+ type: "tag",
551
+ tagType: "define"
552
+ };
553
+ event.attributes = parseAttributes(match[1]);
554
+ this.trigger("data", event);
555
+ return;
556
+ }
557
+ this.trigger("data", {
558
+ type: "tag",
559
+ data: newLine.slice(4)
560
+ });
561
+ });
562
+ }
563
+ /**
564
+ * Add a parser for custom headers
565
+ *
566
+ * @param {Object} options a map of options for the added parser
567
+ * @param {RegExp} options.expression a regular expression to match the custom header
568
+ * @param {string} options.customType the custom type to register to the output
569
+ * @param {Function} [options.dataParser] function to parse the line into an object
570
+ * @param {boolean} [options.segment] should tag data be attached to the segment object
571
+ */
572
+ addParser({ expression, customType, dataParser, segment }) {
573
+ if (typeof dataParser !== "function") dataParser = (line) => line;
574
+ this.customParsers.push((line) => {
575
+ if (expression.exec(line)) {
576
+ this.trigger("data", {
577
+ type: "custom",
578
+ data: dataParser(line),
579
+ customType,
580
+ segment
581
+ });
582
+ return true;
583
+ }
584
+ });
585
+ }
586
+ /**
587
+ * Add a custom header mapper
588
+ *
589
+ * @param {Object} options
590
+ * @param {RegExp} options.expression a regular expression to match the custom header
591
+ * @param {Function} options.map function to translate tag into a different tag
592
+ */
593
+ addTagMapper({ expression, map }) {
594
+ const mapFn = (line) => {
595
+ if (expression.test(line)) return map(line);
596
+ return line;
597
+ };
598
+ this.tagMappers.push(mapFn);
599
+ }
73
600
  };
74
- class ParseStream extends Stream {
75
- constructor() {
76
- super();
77
- this.customParsers = [];
78
- this.tagMappers = [];
79
- }
80
- /**
81
- * Parses an additional line of input.
82
- *
83
- * @param {string} line a single line of an M3U8 file to parse
84
- */
85
- push(line) {
86
- let match;
87
- let event;
88
- line = line.trim();
89
- if (line.length === 0) {
90
- return;
91
- }
92
- if (line[0] !== "#") {
93
- this.trigger("data", {
94
- type: "uri",
95
- uri: line
96
- });
97
- return;
98
- }
99
- const newLines = this.tagMappers.reduce((acc, mapper) => {
100
- const mappedLine = mapper(line);
101
- if (mappedLine === line) {
102
- return acc;
103
- }
104
- return acc.concat([mappedLine]);
105
- }, [line]);
106
- newLines.forEach((newLine) => {
107
- for (let i = 0; i < this.customParsers.length; i++) {
108
- if (this.customParsers[i].call(this, newLine)) {
109
- return;
110
- }
111
- }
112
- if (newLine.indexOf("#EXT") !== 0) {
113
- this.trigger("data", {
114
- type: "comment",
115
- text: newLine.slice(1)
116
- });
117
- return;
118
- }
119
- newLine = newLine.replace("\r", "");
120
- match = /^#EXTM3U/.exec(newLine);
121
- if (match) {
122
- this.trigger("data", {
123
- type: "tag",
124
- tagType: "m3u"
125
- });
126
- return;
127
- }
128
- match = /^#EXTINF:([0-9\.]*)?,?(.*)?$/.exec(newLine);
129
- if (match) {
130
- event = {
131
- type: "tag",
132
- tagType: "inf"
133
- };
134
- if (match[1]) {
135
- event.duration = parseFloat(match[1]);
136
- }
137
- if (match[2]) {
138
- event.title = match[2];
139
- }
140
- this.trigger("data", event);
141
- return;
142
- }
143
- match = /^#EXT-X-TARGETDURATION:([0-9.]*)?/.exec(newLine);
144
- if (match) {
145
- event = {
146
- type: "tag",
147
- tagType: "targetduration"
148
- };
149
- if (match[1]) {
150
- event.duration = parseInt(match[1], 10);
151
- }
152
- this.trigger("data", event);
153
- return;
154
- }
155
- match = /^#EXT-X-VERSION:([0-9.]*)?/.exec(newLine);
156
- if (match) {
157
- event = {
158
- type: "tag",
159
- tagType: "version"
160
- };
161
- if (match[1]) {
162
- event.version = parseInt(match[1], 10);
163
- }
164
- this.trigger("data", event);
165
- return;
166
- }
167
- match = /^#EXT-X-MEDIA-SEQUENCE:(\-?[0-9.]*)?/.exec(newLine);
168
- if (match) {
169
- event = {
170
- type: "tag",
171
- tagType: "media-sequence"
172
- };
173
- if (match[1]) {
174
- event.number = parseInt(match[1], 10);
175
- }
176
- this.trigger("data", event);
177
- return;
178
- }
179
- match = /^#EXT-X-DISCONTINUITY-SEQUENCE:(\-?[0-9.]*)?/.exec(newLine);
180
- if (match) {
181
- event = {
182
- type: "tag",
183
- tagType: "discontinuity-sequence"
184
- };
185
- if (match[1]) {
186
- event.number = parseInt(match[1], 10);
187
- }
188
- this.trigger("data", event);
189
- return;
190
- }
191
- match = /^#EXT-X-PLAYLIST-TYPE:(.*)?$/.exec(newLine);
192
- if (match) {
193
- event = {
194
- type: "tag",
195
- tagType: "playlist-type"
196
- };
197
- if (match[1]) {
198
- event.playlistType = match[1];
199
- }
200
- this.trigger("data", event);
201
- return;
202
- }
203
- match = /^#EXT-X-BYTERANGE:(.*)?$/.exec(newLine);
204
- if (match) {
205
- event = _extends(parseByterange(match[1]), {
206
- type: "tag",
207
- tagType: "byterange"
208
- });
209
- this.trigger("data", event);
210
- return;
211
- }
212
- match = /^#EXT-X-ALLOW-CACHE:(YES|NO)?/.exec(newLine);
213
- if (match) {
214
- event = {
215
- type: "tag",
216
- tagType: "allow-cache"
217
- };
218
- if (match[1]) {
219
- event.allowed = !/NO/.test(match[1]);
220
- }
221
- this.trigger("data", event);
222
- return;
223
- }
224
- match = /^#EXT-X-MAP:(.*)$/.exec(newLine);
225
- if (match) {
226
- event = {
227
- type: "tag",
228
- tagType: "map"
229
- };
230
- if (match[1]) {
231
- const attributes = parseAttributes(match[1]);
232
- if (attributes.URI) {
233
- event.uri = attributes.URI;
234
- }
235
- if (attributes.BYTERANGE) {
236
- event.byterange = parseByterange(attributes.BYTERANGE);
237
- }
238
- }
239
- this.trigger("data", event);
240
- return;
241
- }
242
- match = /^#EXT-X-STREAM-INF:(.*)$/.exec(newLine);
243
- if (match) {
244
- event = {
245
- type: "tag",
246
- tagType: "stream-inf"
247
- };
248
- if (match[1]) {
249
- event.attributes = parseAttributes(match[1]);
250
- if (event.attributes.RESOLUTION) {
251
- event.attributes.RESOLUTION = parseResolution(event.attributes.RESOLUTION);
252
- }
253
- if (event.attributes.BANDWIDTH) {
254
- event.attributes.BANDWIDTH = parseInt(event.attributes.BANDWIDTH, 10);
255
- }
256
- if (event.attributes["FRAME-RATE"]) {
257
- event.attributes["FRAME-RATE"] = parseFloat(event.attributes["FRAME-RATE"]);
258
- }
259
- if (event.attributes["PROGRAM-ID"]) {
260
- event.attributes["PROGRAM-ID"] = parseInt(event.attributes["PROGRAM-ID"], 10);
261
- }
262
- }
263
- this.trigger("data", event);
264
- return;
265
- }
266
- match = /^#EXT-X-MEDIA:(.*)$/.exec(newLine);
267
- if (match) {
268
- event = {
269
- type: "tag",
270
- tagType: "media"
271
- };
272
- if (match[1]) {
273
- event.attributes = parseAttributes(match[1]);
274
- }
275
- this.trigger("data", event);
276
- return;
277
- }
278
- match = /^#EXT-X-ENDLIST/.exec(newLine);
279
- if (match) {
280
- this.trigger("data", {
281
- type: "tag",
282
- tagType: "endlist"
283
- });
284
- return;
285
- }
286
- match = /^#EXT-X-DISCONTINUITY/.exec(newLine);
287
- if (match) {
288
- this.trigger("data", {
289
- type: "tag",
290
- tagType: "discontinuity"
291
- });
292
- return;
293
- }
294
- match = /^#EXT-X-PROGRAM-DATE-TIME:(.*)$/.exec(newLine);
295
- if (match) {
296
- event = {
297
- type: "tag",
298
- tagType: "program-date-time"
299
- };
300
- if (match[1]) {
301
- event.dateTimeString = match[1];
302
- event.dateTimeObject = new Date(match[1]);
303
- }
304
- this.trigger("data", event);
305
- return;
306
- }
307
- match = /^#EXT-X-KEY:(.*)$/.exec(newLine);
308
- if (match) {
309
- event = {
310
- type: "tag",
311
- tagType: "key"
312
- };
313
- if (match[1]) {
314
- event.attributes = parseAttributes(match[1]);
315
- if (event.attributes.IV) {
316
- if (event.attributes.IV.substring(0, 2).toLowerCase() === "0x") {
317
- event.attributes.IV = event.attributes.IV.substring(2);
318
- }
319
- event.attributes.IV = event.attributes.IV.match(/.{8}/g);
320
- event.attributes.IV[0] = parseInt(event.attributes.IV[0], 16);
321
- event.attributes.IV[1] = parseInt(event.attributes.IV[1], 16);
322
- event.attributes.IV[2] = parseInt(event.attributes.IV[2], 16);
323
- event.attributes.IV[3] = parseInt(event.attributes.IV[3], 16);
324
- event.attributes.IV = new Uint32Array(event.attributes.IV);
325
- }
326
- }
327
- this.trigger("data", event);
328
- return;
329
- }
330
- match = /^#EXT-X-START:(.*)$/.exec(newLine);
331
- if (match) {
332
- event = {
333
- type: "tag",
334
- tagType: "start"
335
- };
336
- if (match[1]) {
337
- event.attributes = parseAttributes(match[1]);
338
- event.attributes["TIME-OFFSET"] = parseFloat(event.attributes["TIME-OFFSET"]);
339
- event.attributes.PRECISE = /YES/.test(event.attributes.PRECISE);
340
- }
341
- this.trigger("data", event);
342
- return;
343
- }
344
- match = /^#EXT-X-CUE-OUT-CONT:(.*)?$/.exec(newLine);
345
- if (match) {
346
- event = {
347
- type: "tag",
348
- tagType: "cue-out-cont"
349
- };
350
- if (match[1]) {
351
- event.data = match[1];
352
- } else {
353
- event.data = "";
354
- }
355
- this.trigger("data", event);
356
- return;
357
- }
358
- match = /^#EXT-X-CUE-OUT:(.*)?$/.exec(newLine);
359
- if (match) {
360
- event = {
361
- type: "tag",
362
- tagType: "cue-out"
363
- };
364
- if (match[1]) {
365
- event.data = match[1];
366
- } else {
367
- event.data = "";
368
- }
369
- this.trigger("data", event);
370
- return;
371
- }
372
- match = /^#EXT-X-CUE-IN:?(.*)?$/.exec(newLine);
373
- if (match) {
374
- event = {
375
- type: "tag",
376
- tagType: "cue-in"
377
- };
378
- if (match[1]) {
379
- event.data = match[1];
380
- } else {
381
- event.data = "";
382
- }
383
- this.trigger("data", event);
384
- return;
385
- }
386
- match = /^#EXT-X-SKIP:(.*)$/.exec(newLine);
387
- if (match && match[1]) {
388
- event = {
389
- type: "tag",
390
- tagType: "skip"
391
- };
392
- event.attributes = parseAttributes(match[1]);
393
- if (event.attributes.hasOwnProperty("SKIPPED-SEGMENTS")) {
394
- event.attributes["SKIPPED-SEGMENTS"] = parseInt(event.attributes["SKIPPED-SEGMENTS"], 10);
395
- }
396
- if (event.attributes.hasOwnProperty("RECENTLY-REMOVED-DATERANGES")) {
397
- event.attributes["RECENTLY-REMOVED-DATERANGES"] = event.attributes["RECENTLY-REMOVED-DATERANGES"].split(TAB);
398
- }
399
- this.trigger("data", event);
400
- return;
401
- }
402
- match = /^#EXT-X-PART:(.*)$/.exec(newLine);
403
- if (match && match[1]) {
404
- event = {
405
- type: "tag",
406
- tagType: "part"
407
- };
408
- event.attributes = parseAttributes(match[1]);
409
- ["DURATION"].forEach(function(key) {
410
- if (event.attributes.hasOwnProperty(key)) {
411
- event.attributes[key] = parseFloat(event.attributes[key]);
412
- }
413
- });
414
- ["INDEPENDENT", "GAP"].forEach(function(key) {
415
- if (event.attributes.hasOwnProperty(key)) {
416
- event.attributes[key] = /YES/.test(event.attributes[key]);
417
- }
418
- });
419
- if (event.attributes.hasOwnProperty("BYTERANGE")) {
420
- event.attributes.byterange = parseByterange(event.attributes.BYTERANGE);
421
- }
422
- this.trigger("data", event);
423
- return;
424
- }
425
- match = /^#EXT-X-SERVER-CONTROL:(.*)$/.exec(newLine);
426
- if (match && match[1]) {
427
- event = {
428
- type: "tag",
429
- tagType: "server-control"
430
- };
431
- event.attributes = parseAttributes(match[1]);
432
- ["CAN-SKIP-UNTIL", "PART-HOLD-BACK", "HOLD-BACK"].forEach(function(key) {
433
- if (event.attributes.hasOwnProperty(key)) {
434
- event.attributes[key] = parseFloat(event.attributes[key]);
435
- }
436
- });
437
- ["CAN-SKIP-DATERANGES", "CAN-BLOCK-RELOAD"].forEach(function(key) {
438
- if (event.attributes.hasOwnProperty(key)) {
439
- event.attributes[key] = /YES/.test(event.attributes[key]);
440
- }
441
- });
442
- this.trigger("data", event);
443
- return;
444
- }
445
- match = /^#EXT-X-PART-INF:(.*)$/.exec(newLine);
446
- if (match && match[1]) {
447
- event = {
448
- type: "tag",
449
- tagType: "part-inf"
450
- };
451
- event.attributes = parseAttributes(match[1]);
452
- ["PART-TARGET"].forEach(function(key) {
453
- if (event.attributes.hasOwnProperty(key)) {
454
- event.attributes[key] = parseFloat(event.attributes[key]);
455
- }
456
- });
457
- this.trigger("data", event);
458
- return;
459
- }
460
- match = /^#EXT-X-PRELOAD-HINT:(.*)$/.exec(newLine);
461
- if (match && match[1]) {
462
- event = {
463
- type: "tag",
464
- tagType: "preload-hint"
465
- };
466
- event.attributes = parseAttributes(match[1]);
467
- ["BYTERANGE-START", "BYTERANGE-LENGTH"].forEach(function(key) {
468
- if (event.attributes.hasOwnProperty(key)) {
469
- event.attributes[key] = parseInt(event.attributes[key], 10);
470
- const subkey = key === "BYTERANGE-LENGTH" ? "length" : "offset";
471
- event.attributes.byterange = event.attributes.byterange || {};
472
- event.attributes.byterange[subkey] = event.attributes[key];
473
- delete event.attributes[key];
474
- }
475
- });
476
- this.trigger("data", event);
477
- return;
478
- }
479
- match = /^#EXT-X-RENDITION-REPORT:(.*)$/.exec(newLine);
480
- if (match && match[1]) {
481
- event = {
482
- type: "tag",
483
- tagType: "rendition-report"
484
- };
485
- event.attributes = parseAttributes(match[1]);
486
- ["LAST-MSN", "LAST-PART"].forEach(function(key) {
487
- if (event.attributes.hasOwnProperty(key)) {
488
- event.attributes[key] = parseInt(event.attributes[key], 10);
489
- }
490
- });
491
- this.trigger("data", event);
492
- return;
493
- }
494
- match = /^#EXT-X-DATERANGE:(.*)$/.exec(newLine);
495
- if (match && match[1]) {
496
- event = {
497
- type: "tag",
498
- tagType: "daterange"
499
- };
500
- event.attributes = parseAttributes(match[1]);
501
- ["ID", "CLASS"].forEach(function(key) {
502
- if (event.attributes.hasOwnProperty(key)) {
503
- event.attributes[key] = String(event.attributes[key]);
504
- }
505
- });
506
- ["START-DATE", "END-DATE"].forEach(function(key) {
507
- if (event.attributes.hasOwnProperty(key)) {
508
- event.attributes[key] = new Date(event.attributes[key]);
509
- }
510
- });
511
- ["DURATION", "PLANNED-DURATION"].forEach(function(key) {
512
- if (event.attributes.hasOwnProperty(key)) {
513
- event.attributes[key] = parseFloat(event.attributes[key]);
514
- }
515
- });
516
- ["END-ON-NEXT"].forEach(function(key) {
517
- if (event.attributes.hasOwnProperty(key)) {
518
- event.attributes[key] = /YES/i.test(event.attributes[key]);
519
- }
520
- });
521
- ["SCTE35-CMD", " SCTE35-OUT", "SCTE35-IN"].forEach(function(key) {
522
- if (event.attributes.hasOwnProperty(key)) {
523
- event.attributes[key] = event.attributes[key].toString(16);
524
- }
525
- });
526
- const clientAttributePattern = /^X-([A-Z]+-)+[A-Z]+$/;
527
- for (const key in event.attributes) {
528
- if (!clientAttributePattern.test(key)) {
529
- continue;
530
- }
531
- const isHexaDecimal = /[0-9A-Fa-f]{6}/g.test(event.attributes[key]);
532
- const isDecimalFloating = /^\d+(\.\d+)?$/.test(event.attributes[key]);
533
- event.attributes[key] = isHexaDecimal ? event.attributes[key].toString(16) : isDecimalFloating ? parseFloat(event.attributes[key]) : String(event.attributes[key]);
534
- }
535
- this.trigger("data", event);
536
- return;
537
- }
538
- match = /^#EXT-X-INDEPENDENT-SEGMENTS/.exec(newLine);
539
- if (match) {
540
- this.trigger("data", {
541
- type: "tag",
542
- tagType: "independent-segments"
543
- });
544
- return;
545
- }
546
- match = /^#EXT-X-I-FRAMES-ONLY/.exec(newLine);
547
- if (match) {
548
- this.trigger("data", {
549
- type: "tag",
550
- tagType: "i-frames-only"
551
- });
552
- return;
553
- }
554
- match = /^#EXT-X-CONTENT-STEERING:(.*)$/.exec(newLine);
555
- if (match) {
556
- event = {
557
- type: "tag",
558
- tagType: "content-steering"
559
- };
560
- event.attributes = parseAttributes(match[1]);
561
- this.trigger("data", event);
562
- return;
563
- }
564
- match = /^#EXT-X-I-FRAME-STREAM-INF:(.*)$/.exec(newLine);
565
- if (match) {
566
- event = {
567
- type: "tag",
568
- tagType: "i-frame-playlist"
569
- };
570
- event.attributes = parseAttributes(match[1]);
571
- if (event.attributes.URI) {
572
- event.uri = event.attributes.URI;
573
- }
574
- if (event.attributes.BANDWIDTH) {
575
- event.attributes.BANDWIDTH = parseInt(event.attributes.BANDWIDTH, 10);
576
- }
577
- if (event.attributes.RESOLUTION) {
578
- event.attributes.RESOLUTION = parseResolution(event.attributes.RESOLUTION);
579
- }
580
- if (event.attributes["AVERAGE-BANDWIDTH"]) {
581
- event.attributes["AVERAGE-BANDWIDTH"] = parseInt(event.attributes["AVERAGE-BANDWIDTH"], 10);
582
- }
583
- if (event.attributes["FRAME-RATE"]) {
584
- event.attributes["FRAME-RATE"] = parseFloat(event.attributes["FRAME-RATE"]);
585
- }
586
- this.trigger("data", event);
587
- return;
588
- }
589
- match = /^#EXT-X-DEFINE:(.*)$/.exec(newLine);
590
- if (match) {
591
- event = {
592
- type: "tag",
593
- tagType: "define"
594
- };
595
- event.attributes = parseAttributes(match[1]);
596
- this.trigger("data", event);
597
- return;
598
- }
599
- this.trigger("data", {
600
- type: "tag",
601
- data: newLine.slice(4)
602
- });
603
- });
604
- }
605
- /**
606
- * Add a parser for custom headers
607
- *
608
- * @param {Object} options a map of options for the added parser
609
- * @param {RegExp} options.expression a regular expression to match the custom header
610
- * @param {string} options.customType the custom type to register to the output
611
- * @param {Function} [options.dataParser] function to parse the line into an object
612
- * @param {boolean} [options.segment] should tag data be attached to the segment object
613
- */
614
- addParser({
615
- expression,
616
- customType,
617
- dataParser,
618
- segment
619
- }) {
620
- if (typeof dataParser !== "function") {
621
- dataParser = (line) => line;
622
- }
623
- this.customParsers.push((line) => {
624
- const match = expression.exec(line);
625
- if (match) {
626
- this.trigger("data", {
627
- type: "custom",
628
- data: dataParser(line),
629
- customType,
630
- segment
631
- });
632
- return true;
633
- }
634
- });
635
- }
636
- /**
637
- * Add a custom header mapper
638
- *
639
- * @param {Object} options
640
- * @param {RegExp} options.expression a regular expression to match the custom header
641
- * @param {Function} options.map function to translate tag into a different tag
642
- */
643
- addTagMapper({
644
- expression,
645
- map
646
- }) {
647
- const mapFn = (line) => {
648
- if (expression.test(line)) {
649
- return map(line);
650
- }
651
- return line;
652
- };
653
- this.tagMappers.push(mapFn);
654
- }
655
- }
656
- const camelCase = (str) => str.toLowerCase().replace(/-(\w)/g, (a) => a[1].toUpperCase());
657
- const camelCaseKeys = function(attributes) {
658
- const result = {};
659
- Object.keys(attributes).forEach(function(key) {
660
- result[camelCase(key)] = attributes[key];
661
- });
662
- return result;
601
+ var camelCase = (str) => str.toLowerCase().replace(/-(\w)/g, (a) => a[1].toUpperCase());
602
+ var camelCaseKeys = function(attributes) {
603
+ const result = {};
604
+ Object.keys(attributes).forEach(function(key) {
605
+ result[camelCase(key)] = attributes[key];
606
+ });
607
+ return result;
663
608
  };
664
- const setHoldBack = function(manifest) {
665
- const {
666
- serverControl,
667
- targetDuration,
668
- partTargetDuration
669
- } = manifest;
670
- if (!serverControl) {
671
- return;
672
- }
673
- const tag = "#EXT-X-SERVER-CONTROL";
674
- const hb = "holdBack";
675
- const phb = "partHoldBack";
676
- const minTargetDuration = targetDuration && targetDuration * 3;
677
- const minPartDuration = partTargetDuration && partTargetDuration * 2;
678
- if (targetDuration && !serverControl.hasOwnProperty(hb)) {
679
- serverControl[hb] = minTargetDuration;
680
- this.trigger("info", {
681
- message: `${tag} defaulting HOLD-BACK to targetDuration * 3 (${minTargetDuration}).`
682
- });
683
- }
684
- if (minTargetDuration && serverControl[hb] < minTargetDuration) {
685
- this.trigger("warn", {
686
- message: `${tag} clamping HOLD-BACK (${serverControl[hb]}) to targetDuration * 3 (${minTargetDuration})`
687
- });
688
- serverControl[hb] = minTargetDuration;
689
- }
690
- if (partTargetDuration && !serverControl.hasOwnProperty(phb)) {
691
- serverControl[phb] = partTargetDuration * 3;
692
- this.trigger("info", {
693
- message: `${tag} defaulting PART-HOLD-BACK to partTargetDuration * 3 (${serverControl[phb]}).`
694
- });
695
- }
696
- if (partTargetDuration && serverControl[phb] < minPartDuration) {
697
- this.trigger("warn", {
698
- message: `${tag} clamping PART-HOLD-BACK (${serverControl[phb]}) to partTargetDuration * 2 (${minPartDuration}).`
699
- });
700
- serverControl[phb] = minPartDuration;
701
- }
609
+ var setHoldBack = function(manifest) {
610
+ const { serverControl, targetDuration, partTargetDuration } = manifest;
611
+ if (!serverControl) return;
612
+ const tag = "#EXT-X-SERVER-CONTROL";
613
+ const hb = "holdBack";
614
+ const phb = "partHoldBack";
615
+ const minTargetDuration = targetDuration && targetDuration * 3;
616
+ const minPartDuration = partTargetDuration && partTargetDuration * 2;
617
+ if (targetDuration && !serverControl.hasOwnProperty(hb)) {
618
+ serverControl[hb] = minTargetDuration;
619
+ this.trigger("info", { message: `${tag} defaulting HOLD-BACK to targetDuration * 3 (${minTargetDuration}).` });
620
+ }
621
+ if (minTargetDuration && serverControl[hb] < minTargetDuration) {
622
+ this.trigger("warn", { message: `${tag} clamping HOLD-BACK (${serverControl[hb]}) to targetDuration * 3 (${minTargetDuration})` });
623
+ serverControl[hb] = minTargetDuration;
624
+ }
625
+ if (partTargetDuration && !serverControl.hasOwnProperty(phb)) {
626
+ serverControl[phb] = partTargetDuration * 3;
627
+ this.trigger("info", { message: `${tag} defaulting PART-HOLD-BACK to partTargetDuration * 3 (${serverControl[phb]}).` });
628
+ }
629
+ if (partTargetDuration && serverControl[phb] < minPartDuration) {
630
+ this.trigger("warn", { message: `${tag} clamping PART-HOLD-BACK (${serverControl[phb]}) to partTargetDuration * 2 (${minPartDuration}).` });
631
+ serverControl[phb] = minPartDuration;
632
+ }
702
633
  };
703
- class Parser extends Stream {
704
- constructor(opts = {}) {
705
- super();
706
- this.lineStream = new LineStream();
707
- this.parseStream = new ParseStream();
708
- this.lineStream.pipe(this.parseStream);
709
- this.mainDefinitions = opts.mainDefinitions || {};
710
- this.params = new URL(opts.uri, "https://a.com").searchParams;
711
- this.lastProgramDateTime = null;
712
- const self = this;
713
- const uris = [];
714
- let currentUri = {};
715
- let currentMap;
716
- let key;
717
- let hasParts = false;
718
- const noop = function() {
719
- };
720
- const defaultMediaGroups = {
721
- "AUDIO": {},
722
- "VIDEO": {},
723
- "CLOSED-CAPTIONS": {},
724
- "SUBTITLES": {}
725
- };
726
- const widevineUuid = "urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed";
727
- let currentTimeline = 0;
728
- this.manifest = {
729
- allowCache: true,
730
- discontinuityStarts: [],
731
- dateRanges: [],
732
- iFramePlaylists: [],
733
- segments: []
734
- };
735
- let lastByterangeEnd = 0;
736
- let lastPartByterangeEnd = 0;
737
- const dateRangeTags = {};
738
- this.on("end", () => {
739
- if (currentUri.uri || !currentUri.parts && !currentUri.preloadHints) {
740
- return;
741
- }
742
- if (!currentUri.map && currentMap) {
743
- currentUri.map = currentMap;
744
- }
745
- if (!currentUri.key && key) {
746
- currentUri.key = key;
747
- }
748
- if (!currentUri.timeline && typeof currentTimeline === "number") {
749
- currentUri.timeline = currentTimeline;
750
- }
751
- this.manifest.preloadSegment = currentUri;
752
- });
753
- this.parseStream.on("data", function(entry) {
754
- let mediaGroup;
755
- let rendition;
756
- if (self.manifest.definitions) {
757
- for (const def in self.manifest.definitions) {
758
- if (entry.uri) {
759
- entry.uri = entry.uri.replace(`{$${def}}`, self.manifest.definitions[def]);
760
- }
761
- if (entry.attributes) {
762
- for (const attr in entry.attributes) {
763
- if (typeof entry.attributes[attr] === "string") {
764
- entry.attributes[attr] = entry.attributes[attr].replace(`{$${def}}`, self.manifest.definitions[def]);
765
- }
766
- }
767
- }
768
- }
769
- }
770
- ({
771
- tag() {
772
- ({
773
- version() {
774
- if (entry.version) {
775
- this.manifest.version = entry.version;
776
- }
777
- },
778
- "allow-cache"() {
779
- this.manifest.allowCache = entry.allowed;
780
- if (!("allowed" in entry)) {
781
- this.trigger("info", {
782
- message: "defaulting allowCache to YES"
783
- });
784
- this.manifest.allowCache = true;
785
- }
786
- },
787
- byterange() {
788
- const byterange = {};
789
- if ("length" in entry) {
790
- currentUri.byterange = byterange;
791
- byterange.length = entry.length;
792
- if (!("offset" in entry)) {
793
- entry.offset = lastByterangeEnd;
794
- }
795
- }
796
- if ("offset" in entry) {
797
- currentUri.byterange = byterange;
798
- byterange.offset = entry.offset;
799
- }
800
- lastByterangeEnd = byterange.offset + byterange.length;
801
- },
802
- endlist() {
803
- this.manifest.endList = true;
804
- },
805
- inf() {
806
- if (!("mediaSequence" in this.manifest)) {
807
- this.manifest.mediaSequence = 0;
808
- this.trigger("info", {
809
- message: "defaulting media sequence to zero"
810
- });
811
- }
812
- if (!("discontinuitySequence" in this.manifest)) {
813
- this.manifest.discontinuitySequence = 0;
814
- this.trigger("info", {
815
- message: "defaulting discontinuity sequence to zero"
816
- });
817
- }
818
- if (entry.title) {
819
- currentUri.title = entry.title;
820
- }
821
- if (entry.duration > 0) {
822
- currentUri.duration = entry.duration;
823
- }
824
- if (entry.duration === 0) {
825
- currentUri.duration = 0.01;
826
- this.trigger("info", {
827
- message: "updating zero segment duration to a small value"
828
- });
829
- }
830
- this.manifest.segments = uris;
831
- },
832
- key() {
833
- if (!entry.attributes) {
834
- this.trigger("warn", {
835
- message: "ignoring key declaration without attribute list"
836
- });
837
- return;
838
- }
839
- if (entry.attributes.METHOD === "NONE") {
840
- key = null;
841
- return;
842
- }
843
- if (!entry.attributes.URI) {
844
- this.trigger("warn", {
845
- message: "ignoring key declaration without URI"
846
- });
847
- return;
848
- }
849
- if (entry.attributes.KEYFORMAT === "com.apple.streamingkeydelivery") {
850
- this.manifest.contentProtection = this.manifest.contentProtection || {};
851
- this.manifest.contentProtection["com.apple.fps.1_0"] = {
852
- attributes: entry.attributes
853
- };
854
- return;
855
- }
856
- if (entry.attributes.KEYFORMAT === "com.microsoft.playready") {
857
- this.manifest.contentProtection = this.manifest.contentProtection || {};
858
- this.manifest.contentProtection["com.microsoft.playready"] = {
859
- uri: entry.attributes.URI
860
- };
861
- return;
862
- }
863
- if (entry.attributes.KEYFORMAT === widevineUuid) {
864
- const VALID_METHODS = ["SAMPLE-AES", "SAMPLE-AES-CTR", "SAMPLE-AES-CENC"];
865
- if (VALID_METHODS.indexOf(entry.attributes.METHOD) === -1) {
866
- this.trigger("warn", {
867
- message: "invalid key method provided for Widevine"
868
- });
869
- return;
870
- }
871
- if (entry.attributes.METHOD === "SAMPLE-AES-CENC") {
872
- this.trigger("warn", {
873
- message: "SAMPLE-AES-CENC is deprecated, please use SAMPLE-AES-CTR instead"
874
- });
875
- }
876
- if (entry.attributes.URI.substring(0, 23) !== "data:text/plain;base64,") {
877
- this.trigger("warn", {
878
- message: "invalid key URI provided for Widevine"
879
- });
880
- return;
881
- }
882
- if (!(entry.attributes.KEYID && entry.attributes.KEYID.substring(0, 2) === "0x")) {
883
- this.trigger("warn", {
884
- message: "invalid key ID provided for Widevine"
885
- });
886
- return;
887
- }
888
- this.manifest.contentProtection = this.manifest.contentProtection || {};
889
- this.manifest.contentProtection["com.widevine.alpha"] = {
890
- attributes: {
891
- schemeIdUri: entry.attributes.KEYFORMAT,
892
- // remove '0x' from the key id string
893
- keyId: entry.attributes.KEYID.substring(2)
894
- },
895
- // decode the base64-encoded PSSH box
896
- pssh: decodeB64ToUint8Array(entry.attributes.URI.split(",")[1])
897
- };
898
- return;
899
- }
900
- if (!entry.attributes.METHOD) {
901
- this.trigger("warn", {
902
- message: "defaulting key method to AES-128"
903
- });
904
- }
905
- key = {
906
- method: entry.attributes.METHOD || "AES-128",
907
- uri: entry.attributes.URI
908
- };
909
- if (typeof entry.attributes.IV !== "undefined") {
910
- key.iv = entry.attributes.IV;
911
- }
912
- },
913
- "media-sequence"() {
914
- if (!isFinite(entry.number)) {
915
- this.trigger("warn", {
916
- message: "ignoring invalid media sequence: " + entry.number
917
- });
918
- return;
919
- }
920
- this.manifest.mediaSequence = entry.number;
921
- },
922
- "discontinuity-sequence"() {
923
- if (!isFinite(entry.number)) {
924
- this.trigger("warn", {
925
- message: "ignoring invalid discontinuity sequence: " + entry.number
926
- });
927
- return;
928
- }
929
- this.manifest.discontinuitySequence = entry.number;
930
- currentTimeline = entry.number;
931
- },
932
- "playlist-type"() {
933
- if (!/VOD|EVENT/.test(entry.playlistType)) {
934
- this.trigger("warn", {
935
- message: "ignoring unknown playlist type: " + entry.playlist
936
- });
937
- return;
938
- }
939
- this.manifest.playlistType = entry.playlistType;
940
- },
941
- map() {
942
- currentMap = {};
943
- if (entry.uri) {
944
- currentMap.uri = entry.uri;
945
- }
946
- if (entry.byterange) {
947
- currentMap.byterange = entry.byterange;
948
- }
949
- if (key) {
950
- currentMap.key = key;
951
- }
952
- },
953
- "stream-inf"() {
954
- this.manifest.playlists = uris;
955
- this.manifest.mediaGroups = this.manifest.mediaGroups || defaultMediaGroups;
956
- if (!entry.attributes) {
957
- this.trigger("warn", {
958
- message: "ignoring empty stream-inf attributes"
959
- });
960
- return;
961
- }
962
- if (!currentUri.attributes) {
963
- currentUri.attributes = {};
964
- }
965
- _extends(currentUri.attributes, entry.attributes);
966
- },
967
- media() {
968
- this.manifest.mediaGroups = this.manifest.mediaGroups || defaultMediaGroups;
969
- if (!(entry.attributes && entry.attributes.TYPE && entry.attributes["GROUP-ID"] && entry.attributes.NAME)) {
970
- this.trigger("warn", {
971
- message: "ignoring incomplete or missing media group"
972
- });
973
- return;
974
- }
975
- const mediaGroupType = this.manifest.mediaGroups[entry.attributes.TYPE];
976
- mediaGroupType[entry.attributes["GROUP-ID"]] = mediaGroupType[entry.attributes["GROUP-ID"]] || {};
977
- mediaGroup = mediaGroupType[entry.attributes["GROUP-ID"]];
978
- rendition = {
979
- default: /yes/i.test(entry.attributes.DEFAULT)
980
- };
981
- if (rendition.default) {
982
- rendition.autoselect = true;
983
- } else {
984
- rendition.autoselect = /yes/i.test(entry.attributes.AUTOSELECT);
985
- }
986
- if (entry.attributes.LANGUAGE) {
987
- rendition.language = entry.attributes.LANGUAGE;
988
- }
989
- if (entry.attributes.URI) {
990
- rendition.uri = entry.attributes.URI;
991
- }
992
- if (entry.attributes["INSTREAM-ID"]) {
993
- rendition.instreamId = entry.attributes["INSTREAM-ID"];
994
- }
995
- if (entry.attributes.CHARACTERISTICS) {
996
- rendition.characteristics = entry.attributes.CHARACTERISTICS;
997
- }
998
- if (entry.attributes.FORCED) {
999
- rendition.forced = /yes/i.test(entry.attributes.FORCED);
1000
- }
1001
- mediaGroup[entry.attributes.NAME] = rendition;
1002
- },
1003
- discontinuity() {
1004
- currentTimeline += 1;
1005
- currentUri.discontinuity = true;
1006
- this.manifest.discontinuityStarts.push(uris.length);
1007
- },
1008
- "program-date-time"() {
1009
- if (typeof this.manifest.dateTimeString === "undefined") {
1010
- this.manifest.dateTimeString = entry.dateTimeString;
1011
- this.manifest.dateTimeObject = entry.dateTimeObject;
1012
- }
1013
- currentUri.dateTimeString = entry.dateTimeString;
1014
- currentUri.dateTimeObject = entry.dateTimeObject;
1015
- const {
1016
- lastProgramDateTime
1017
- } = this;
1018
- this.lastProgramDateTime = new Date(entry.dateTimeString).getTime();
1019
- if (lastProgramDateTime === null) {
1020
- this.manifest.segments.reduceRight((programDateTime, segment) => {
1021
- segment.programDateTime = programDateTime - segment.duration * 1e3;
1022
- return segment.programDateTime;
1023
- }, this.lastProgramDateTime);
1024
- }
1025
- },
1026
- targetduration() {
1027
- if (!isFinite(entry.duration) || entry.duration < 0) {
1028
- this.trigger("warn", {
1029
- message: "ignoring invalid target duration: " + entry.duration
1030
- });
1031
- return;
1032
- }
1033
- this.manifest.targetDuration = entry.duration;
1034
- setHoldBack.call(this, this.manifest);
1035
- },
1036
- start() {
1037
- if (!entry.attributes || isNaN(entry.attributes["TIME-OFFSET"])) {
1038
- this.trigger("warn", {
1039
- message: "ignoring start declaration without appropriate attribute list"
1040
- });
1041
- return;
1042
- }
1043
- this.manifest.start = {
1044
- timeOffset: entry.attributes["TIME-OFFSET"],
1045
- precise: entry.attributes.PRECISE
1046
- };
1047
- },
1048
- "cue-out"() {
1049
- currentUri.cueOut = entry.data;
1050
- },
1051
- "cue-out-cont"() {
1052
- currentUri.cueOutCont = entry.data;
1053
- },
1054
- "cue-in"() {
1055
- currentUri.cueIn = entry.data;
1056
- },
1057
- "skip"() {
1058
- this.manifest.skip = camelCaseKeys(entry.attributes);
1059
- this.warnOnMissingAttributes_("#EXT-X-SKIP", entry.attributes, ["SKIPPED-SEGMENTS"]);
1060
- },
1061
- "part"() {
1062
- hasParts = true;
1063
- const segmentIndex = this.manifest.segments.length;
1064
- const part = camelCaseKeys(entry.attributes);
1065
- currentUri.parts = currentUri.parts || [];
1066
- currentUri.parts.push(part);
1067
- if (part.byterange) {
1068
- if (!part.byterange.hasOwnProperty("offset")) {
1069
- part.byterange.offset = lastPartByterangeEnd;
1070
- }
1071
- lastPartByterangeEnd = part.byterange.offset + part.byterange.length;
1072
- }
1073
- const partIndex = currentUri.parts.length - 1;
1074
- this.warnOnMissingAttributes_(`#EXT-X-PART #${partIndex} for segment #${segmentIndex}`, entry.attributes, ["URI", "DURATION"]);
1075
- if (this.manifest.renditionReports) {
1076
- this.manifest.renditionReports.forEach((r, i) => {
1077
- if (!r.hasOwnProperty("lastPart")) {
1078
- this.trigger("warn", {
1079
- message: `#EXT-X-RENDITION-REPORT #${i} lacks required attribute(s): LAST-PART`
1080
- });
1081
- }
1082
- });
1083
- }
1084
- },
1085
- "server-control"() {
1086
- const attrs = this.manifest.serverControl = camelCaseKeys(entry.attributes);
1087
- if (!attrs.hasOwnProperty("canBlockReload")) {
1088
- attrs.canBlockReload = false;
1089
- this.trigger("info", {
1090
- message: "#EXT-X-SERVER-CONTROL defaulting CAN-BLOCK-RELOAD to false"
1091
- });
1092
- }
1093
- setHoldBack.call(this, this.manifest);
1094
- if (attrs.canSkipDateranges && !attrs.hasOwnProperty("canSkipUntil")) {
1095
- this.trigger("warn", {
1096
- message: "#EXT-X-SERVER-CONTROL lacks required attribute CAN-SKIP-UNTIL which is required when CAN-SKIP-DATERANGES is set"
1097
- });
1098
- }
1099
- },
1100
- "preload-hint"() {
1101
- const segmentIndex = this.manifest.segments.length;
1102
- const hint = camelCaseKeys(entry.attributes);
1103
- const isPart = hint.type && hint.type === "PART";
1104
- currentUri.preloadHints = currentUri.preloadHints || [];
1105
- currentUri.preloadHints.push(hint);
1106
- if (hint.byterange) {
1107
- if (!hint.byterange.hasOwnProperty("offset")) {
1108
- hint.byterange.offset = isPart ? lastPartByterangeEnd : 0;
1109
- if (isPart) {
1110
- lastPartByterangeEnd = hint.byterange.offset + hint.byterange.length;
1111
- }
1112
- }
1113
- }
1114
- const index = currentUri.preloadHints.length - 1;
1115
- this.warnOnMissingAttributes_(`#EXT-X-PRELOAD-HINT #${index} for segment #${segmentIndex}`, entry.attributes, ["TYPE", "URI"]);
1116
- if (!hint.type) {
1117
- return;
1118
- }
1119
- for (let i = 0; i < currentUri.preloadHints.length - 1; i++) {
1120
- const otherHint = currentUri.preloadHints[i];
1121
- if (!otherHint.type) {
1122
- continue;
1123
- }
1124
- if (otherHint.type === hint.type) {
1125
- this.trigger("warn", {
1126
- message: `#EXT-X-PRELOAD-HINT #${index} for segment #${segmentIndex} has the same TYPE ${hint.type} as preload hint #${i}`
1127
- });
1128
- }
1129
- }
1130
- },
1131
- "rendition-report"() {
1132
- const report = camelCaseKeys(entry.attributes);
1133
- this.manifest.renditionReports = this.manifest.renditionReports || [];
1134
- this.manifest.renditionReports.push(report);
1135
- const index = this.manifest.renditionReports.length - 1;
1136
- const required = ["LAST-MSN", "URI"];
1137
- if (hasParts) {
1138
- required.push("LAST-PART");
1139
- }
1140
- this.warnOnMissingAttributes_(`#EXT-X-RENDITION-REPORT #${index}`, entry.attributes, required);
1141
- },
1142
- "part-inf"() {
1143
- this.manifest.partInf = camelCaseKeys(entry.attributes);
1144
- this.warnOnMissingAttributes_("#EXT-X-PART-INF", entry.attributes, ["PART-TARGET"]);
1145
- if (this.manifest.partInf.partTarget) {
1146
- this.manifest.partTargetDuration = this.manifest.partInf.partTarget;
1147
- }
1148
- setHoldBack.call(this, this.manifest);
1149
- },
1150
- "daterange"() {
1151
- this.manifest.dateRanges.push(camelCaseKeys(entry.attributes));
1152
- const index = this.manifest.dateRanges.length - 1;
1153
- this.warnOnMissingAttributes_(`#EXT-X-DATERANGE #${index}`, entry.attributes, ["ID", "START-DATE"]);
1154
- const dateRange = this.manifest.dateRanges[index];
1155
- if (dateRange.endDate && dateRange.startDate && new Date(dateRange.endDate) < new Date(dateRange.startDate)) {
1156
- this.trigger("warn", {
1157
- message: "EXT-X-DATERANGE END-DATE must be equal to or later than the value of the START-DATE"
1158
- });
1159
- }
1160
- if (dateRange.duration && dateRange.duration < 0) {
1161
- this.trigger("warn", {
1162
- message: "EXT-X-DATERANGE DURATION must not be negative"
1163
- });
1164
- }
1165
- if (dateRange.plannedDuration && dateRange.plannedDuration < 0) {
1166
- this.trigger("warn", {
1167
- message: "EXT-X-DATERANGE PLANNED-DURATION must not be negative"
1168
- });
1169
- }
1170
- const endOnNextYes = !!dateRange.endOnNext;
1171
- if (endOnNextYes && !dateRange.class) {
1172
- this.trigger("warn", {
1173
- message: "EXT-X-DATERANGE with an END-ON-NEXT=YES attribute must have a CLASS attribute"
1174
- });
1175
- }
1176
- if (endOnNextYes && (dateRange.duration || dateRange.endDate)) {
1177
- this.trigger("warn", {
1178
- message: "EXT-X-DATERANGE with an END-ON-NEXT=YES attribute must not contain DURATION or END-DATE attributes"
1179
- });
1180
- }
1181
- if (dateRange.duration && dateRange.endDate) {
1182
- const startDate = dateRange.startDate;
1183
- const newDateInSeconds = startDate.getTime() + dateRange.duration * 1e3;
1184
- this.manifest.dateRanges[index].endDate = new Date(newDateInSeconds);
1185
- }
1186
- if (!dateRangeTags[dateRange.id]) {
1187
- dateRangeTags[dateRange.id] = dateRange;
1188
- } else {
1189
- for (const attribute in dateRangeTags[dateRange.id]) {
1190
- if (!!dateRange[attribute] && JSON.stringify(dateRangeTags[dateRange.id][attribute]) !== JSON.stringify(dateRange[attribute])) {
1191
- this.trigger("warn", {
1192
- message: "EXT-X-DATERANGE tags with the same ID in a playlist must have the same attributes values"
1193
- });
1194
- break;
1195
- }
1196
- }
1197
- const dateRangeWithSameId = this.manifest.dateRanges.findIndex((dateRangeToFind) => dateRangeToFind.id === dateRange.id);
1198
- this.manifest.dateRanges[dateRangeWithSameId] = _extends(this.manifest.dateRanges[dateRangeWithSameId], dateRange);
1199
- dateRangeTags[dateRange.id] = _extends(dateRangeTags[dateRange.id], dateRange);
1200
- this.manifest.dateRanges.pop();
1201
- }
1202
- },
1203
- "independent-segments"() {
1204
- this.manifest.independentSegments = true;
1205
- },
1206
- "i-frames-only"() {
1207
- this.manifest.iFramesOnly = true;
1208
- this.requiredCompatibilityversion(this.manifest.version, 4);
1209
- },
1210
- "content-steering"() {
1211
- this.manifest.contentSteering = camelCaseKeys(entry.attributes);
1212
- this.warnOnMissingAttributes_("#EXT-X-CONTENT-STEERING", entry.attributes, ["SERVER-URI"]);
1213
- },
1214
- /** @this {Parser} */
1215
- define() {
1216
- this.manifest.definitions = this.manifest.definitions || {};
1217
- const addDef = (n, v) => {
1218
- if (n in this.manifest.definitions) {
1219
- this.trigger("error", {
1220
- message: `EXT-X-DEFINE: Duplicate name ${n}`
1221
- });
1222
- return;
1223
- }
1224
- this.manifest.definitions[n] = v;
1225
- };
1226
- if ("QUERYPARAM" in entry.attributes) {
1227
- if ("NAME" in entry.attributes || "IMPORT" in entry.attributes) {
1228
- this.trigger("error", {
1229
- message: "EXT-X-DEFINE: Invalid attributes"
1230
- });
1231
- return;
1232
- }
1233
- const val = this.params.get(entry.attributes.QUERYPARAM);
1234
- if (!val) {
1235
- this.trigger("error", {
1236
- message: `EXT-X-DEFINE: No query param ${entry.attributes.QUERYPARAM}`
1237
- });
1238
- return;
1239
- }
1240
- addDef(entry.attributes.QUERYPARAM, decodeURIComponent(val));
1241
- return;
1242
- }
1243
- if ("NAME" in entry.attributes) {
1244
- if ("IMPORT" in entry.attributes) {
1245
- this.trigger("error", {
1246
- message: "EXT-X-DEFINE: Invalid attributes"
1247
- });
1248
- return;
1249
- }
1250
- if (!("VALUE" in entry.attributes) || typeof entry.attributes.VALUE !== "string") {
1251
- this.trigger("error", {
1252
- message: `EXT-X-DEFINE: No value for ${entry.attributes.NAME}`
1253
- });
1254
- return;
1255
- }
1256
- addDef(entry.attributes.NAME, entry.attributes.VALUE);
1257
- return;
1258
- }
1259
- if ("IMPORT" in entry.attributes) {
1260
- if (!this.mainDefinitions[entry.attributes.IMPORT]) {
1261
- this.trigger("error", {
1262
- message: `EXT-X-DEFINE: No value ${entry.attributes.IMPORT} to import, or IMPORT used on main playlist`
1263
- });
1264
- return;
1265
- }
1266
- addDef(entry.attributes.IMPORT, this.mainDefinitions[entry.attributes.IMPORT]);
1267
- return;
1268
- }
1269
- this.trigger("error", {
1270
- message: "EXT-X-DEFINE: No attribute"
1271
- });
1272
- },
1273
- "i-frame-playlist"() {
1274
- this.manifest.iFramePlaylists.push({
1275
- attributes: entry.attributes,
1276
- uri: entry.uri,
1277
- timeline: currentTimeline
1278
- });
1279
- this.warnOnMissingAttributes_("#EXT-X-I-FRAME-STREAM-INF", entry.attributes, ["BANDWIDTH", "URI"]);
1280
- }
1281
- }[entry.tagType] || noop).call(self);
1282
- },
1283
- uri() {
1284
- currentUri.uri = entry.uri;
1285
- uris.push(currentUri);
1286
- if (this.manifest.targetDuration && !("duration" in currentUri)) {
1287
- this.trigger("warn", {
1288
- message: "defaulting segment duration to the target duration"
1289
- });
1290
- currentUri.duration = this.manifest.targetDuration;
1291
- }
1292
- if (key) {
1293
- currentUri.key = key;
1294
- }
1295
- currentUri.timeline = currentTimeline;
1296
- if (currentMap) {
1297
- currentUri.map = currentMap;
1298
- }
1299
- lastPartByterangeEnd = 0;
1300
- if (this.lastProgramDateTime !== null) {
1301
- currentUri.programDateTime = this.lastProgramDateTime;
1302
- this.lastProgramDateTime += currentUri.duration * 1e3;
1303
- }
1304
- currentUri = {};
1305
- },
1306
- comment() {
1307
- },
1308
- custom() {
1309
- if (entry.segment) {
1310
- currentUri.custom = currentUri.custom || {};
1311
- currentUri.custom[entry.customType] = entry.data;
1312
- } else {
1313
- this.manifest.custom = this.manifest.custom || {};
1314
- this.manifest.custom[entry.customType] = entry.data;
1315
- }
1316
- }
1317
- })[entry.type].call(self);
1318
- });
1319
- }
1320
- requiredCompatibilityversion(currentVersion, targetVersion) {
1321
- if (currentVersion < targetVersion || !currentVersion) {
1322
- this.trigger("warn", {
1323
- message: `manifest must be at least version ${targetVersion}`
1324
- });
1325
- }
1326
- }
1327
- warnOnMissingAttributes_(identifier, attributes, required) {
1328
- const missing = [];
1329
- required.forEach(function(key) {
1330
- if (!attributes.hasOwnProperty(key)) {
1331
- missing.push(key);
1332
- }
1333
- });
1334
- if (missing.length) {
1335
- this.trigger("warn", {
1336
- message: `${identifier} lacks required attribute(s): ${missing.join(", ")}`
1337
- });
1338
- }
1339
- }
1340
- /**
1341
- * Parse the input string and update the manifest object.
1342
- *
1343
- * @param {string} chunk a potentially incomplete portion of the manifest
1344
- */
1345
- push(chunk) {
1346
- this.lineStream.push(chunk);
1347
- }
1348
- /**
1349
- * Flush any remaining input. This can be handy if the last line of an M3U8
1350
- * manifest did not contain a trailing newline but the file has been
1351
- * completely received.
1352
- */
1353
- end() {
1354
- this.lineStream.push("\n");
1355
- if (this.manifest.dateRanges.length && this.lastProgramDateTime === null) {
1356
- this.trigger("warn", {
1357
- message: "A playlist with EXT-X-DATERANGE tag must contain atleast one EXT-X-PROGRAM-DATE-TIME tag"
1358
- });
1359
- }
1360
- this.lastProgramDateTime = null;
1361
- this.trigger("end");
1362
- }
1363
- /**
1364
- * Add an additional parser for non-standard tags
1365
- *
1366
- * @param {Object} options a map of options for the added parser
1367
- * @param {RegExp} options.expression a regular expression to match the custom header
1368
- * @param {string} options.customType the custom type to register to the output
1369
- * @param {Function} [options.dataParser] function to parse the line into an object
1370
- * @param {boolean} [options.segment] should tag data be attached to the segment object
1371
- */
1372
- addParser(options) {
1373
- this.parseStream.addParser(options);
1374
- }
1375
- /**
1376
- * Add a custom header mapper
1377
- *
1378
- * @param {Object} options
1379
- * @param {RegExp} options.expression a regular expression to match the custom header
1380
- * @param {Function} options.map function to translate tag into a different tag
1381
- */
1382
- addTagMapper(options) {
1383
- this.parseStream.addTagMapper(options);
1384
- }
1385
- }
1386
- export {
1387
- LineStream,
1388
- ParseStream,
1389
- Parser
634
+ /**
635
+ * A parser for M3U8 files. The current interpretation of the input is
636
+ * exposed as a property `manifest` on parser objects. It's just two lines to
637
+ * create and parse a manifest once you have the contents available as a string:
638
+ *
639
+ * ```js
640
+ * var parser = new m3u8.Parser();
641
+ * parser.push(xhr.responseText);
642
+ * ```
643
+ *
644
+ * New input can later be applied to update the manifest object by calling
645
+ * `push` again.
646
+ *
647
+ * The parser attempts to create a usable manifest object even if the
648
+ * underlying input is somewhat nonsensical. It emits `info` and `warning`
649
+ * events during the parse if it encounters input that seems invalid or
650
+ * requires some property of the manifest object to be defaulted.
651
+ *
652
+ * @class Parser
653
+ * @param {Object} [opts] Options for the constructor, needed for substitutions
654
+ * @param {string} [opts.uri] URL to check for query params
655
+ * @param {Object} [opts.mainDefinitions] Definitions on main playlist that can be imported
656
+ * @extends Stream
657
+ */
658
+ var Parser = class extends Stream {
659
+ constructor(opts = {}) {
660
+ super();
661
+ this.lineStream = new LineStream();
662
+ this.parseStream = new ParseStream();
663
+ this.lineStream.pipe(this.parseStream);
664
+ this.mainDefinitions = opts.mainDefinitions || {};
665
+ this.params = new URL(opts.uri, "https://a.com").searchParams;
666
+ this.lastProgramDateTime = null;
667
+ const self = this;
668
+ const uris = [];
669
+ let currentUri = {};
670
+ let currentMap;
671
+ let key;
672
+ let hasParts = false;
673
+ const noop = function() {};
674
+ const defaultMediaGroups = {
675
+ "AUDIO": {},
676
+ "VIDEO": {},
677
+ "CLOSED-CAPTIONS": {},
678
+ "SUBTITLES": {}
679
+ };
680
+ const widevineUuid = "urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed";
681
+ let currentTimeline = 0;
682
+ this.manifest = {
683
+ allowCache: true,
684
+ discontinuityStarts: [],
685
+ dateRanges: [],
686
+ iFramePlaylists: [],
687
+ segments: []
688
+ };
689
+ let lastByterangeEnd = 0;
690
+ let lastPartByterangeEnd = 0;
691
+ const dateRangeTags = {};
692
+ this.on("end", () => {
693
+ if (currentUri.uri || !currentUri.parts && !currentUri.preloadHints) return;
694
+ if (!currentUri.map && currentMap) currentUri.map = currentMap;
695
+ if (!currentUri.key && key) currentUri.key = key;
696
+ if (!currentUri.timeline && typeof currentTimeline === "number") currentUri.timeline = currentTimeline;
697
+ this.manifest.preloadSegment = currentUri;
698
+ });
699
+ this.parseStream.on("data", function(entry) {
700
+ let mediaGroup;
701
+ let rendition;
702
+ if (self.manifest.definitions) for (const def in self.manifest.definitions) {
703
+ if (entry.uri) entry.uri = entry.uri.replace(`{$${def}}`, self.manifest.definitions[def]);
704
+ if (entry.attributes) {
705
+ for (const attr in entry.attributes) if (typeof entry.attributes[attr] === "string") entry.attributes[attr] = entry.attributes[attr].replace(`{$${def}}`, self.manifest.definitions[def]);
706
+ }
707
+ }
708
+ ({
709
+ tag() {
710
+ ({
711
+ version() {
712
+ if (entry.version) this.manifest.version = entry.version;
713
+ },
714
+ "allow-cache"() {
715
+ this.manifest.allowCache = entry.allowed;
716
+ if (!("allowed" in entry)) {
717
+ this.trigger("info", { message: "defaulting allowCache to YES" });
718
+ this.manifest.allowCache = true;
719
+ }
720
+ },
721
+ byterange() {
722
+ const byterange = {};
723
+ if ("length" in entry) {
724
+ currentUri.byterange = byterange;
725
+ byterange.length = entry.length;
726
+ if (!("offset" in entry)) entry.offset = lastByterangeEnd;
727
+ }
728
+ if ("offset" in entry) {
729
+ currentUri.byterange = byterange;
730
+ byterange.offset = entry.offset;
731
+ }
732
+ lastByterangeEnd = byterange.offset + byterange.length;
733
+ },
734
+ endlist() {
735
+ this.manifest.endList = true;
736
+ },
737
+ inf() {
738
+ if (!("mediaSequence" in this.manifest)) {
739
+ this.manifest.mediaSequence = 0;
740
+ this.trigger("info", { message: "defaulting media sequence to zero" });
741
+ }
742
+ if (!("discontinuitySequence" in this.manifest)) {
743
+ this.manifest.discontinuitySequence = 0;
744
+ this.trigger("info", { message: "defaulting discontinuity sequence to zero" });
745
+ }
746
+ if (entry.title) currentUri.title = entry.title;
747
+ if (entry.duration > 0) currentUri.duration = entry.duration;
748
+ if (entry.duration === 0) {
749
+ currentUri.duration = .01;
750
+ this.trigger("info", { message: "updating zero segment duration to a small value" });
751
+ }
752
+ this.manifest.segments = uris;
753
+ },
754
+ key() {
755
+ if (!entry.attributes) {
756
+ this.trigger("warn", { message: "ignoring key declaration without attribute list" });
757
+ return;
758
+ }
759
+ if (entry.attributes.METHOD === "NONE") {
760
+ key = null;
761
+ return;
762
+ }
763
+ if (!entry.attributes.URI) {
764
+ this.trigger("warn", { message: "ignoring key declaration without URI" });
765
+ return;
766
+ }
767
+ if (entry.attributes.KEYFORMAT === "com.apple.streamingkeydelivery") {
768
+ this.manifest.contentProtection = this.manifest.contentProtection || {};
769
+ this.manifest.contentProtection["com.apple.fps.1_0"] = { attributes: entry.attributes };
770
+ return;
771
+ }
772
+ if (entry.attributes.KEYFORMAT === "com.microsoft.playready") {
773
+ this.manifest.contentProtection = this.manifest.contentProtection || {};
774
+ this.manifest.contentProtection["com.microsoft.playready"] = { uri: entry.attributes.URI };
775
+ return;
776
+ }
777
+ if (entry.attributes.KEYFORMAT === widevineUuid) {
778
+ if ([
779
+ "SAMPLE-AES",
780
+ "SAMPLE-AES-CTR",
781
+ "SAMPLE-AES-CENC"
782
+ ].indexOf(entry.attributes.METHOD) === -1) {
783
+ this.trigger("warn", { message: "invalid key method provided for Widevine" });
784
+ return;
785
+ }
786
+ if (entry.attributes.METHOD === "SAMPLE-AES-CENC") this.trigger("warn", { message: "SAMPLE-AES-CENC is deprecated, please use SAMPLE-AES-CTR instead" });
787
+ if (entry.attributes.URI.substring(0, 23) !== "data:text/plain;base64,") {
788
+ this.trigger("warn", { message: "invalid key URI provided for Widevine" });
789
+ return;
790
+ }
791
+ if (!(entry.attributes.KEYID && entry.attributes.KEYID.substring(0, 2) === "0x")) {
792
+ this.trigger("warn", { message: "invalid key ID provided for Widevine" });
793
+ return;
794
+ }
795
+ this.manifest.contentProtection = this.manifest.contentProtection || {};
796
+ this.manifest.contentProtection["com.widevine.alpha"] = {
797
+ attributes: {
798
+ schemeIdUri: entry.attributes.KEYFORMAT,
799
+ keyId: entry.attributes.KEYID.substring(2)
800
+ },
801
+ pssh: decodeB64ToUint8Array(entry.attributes.URI.split(",")[1])
802
+ };
803
+ return;
804
+ }
805
+ if (!entry.attributes.METHOD) this.trigger("warn", { message: "defaulting key method to AES-128" });
806
+ key = {
807
+ method: entry.attributes.METHOD || "AES-128",
808
+ uri: entry.attributes.URI
809
+ };
810
+ if (typeof entry.attributes.IV !== "undefined") key.iv = entry.attributes.IV;
811
+ },
812
+ "media-sequence"() {
813
+ if (!isFinite(entry.number)) {
814
+ this.trigger("warn", { message: "ignoring invalid media sequence: " + entry.number });
815
+ return;
816
+ }
817
+ this.manifest.mediaSequence = entry.number;
818
+ },
819
+ "discontinuity-sequence"() {
820
+ if (!isFinite(entry.number)) {
821
+ this.trigger("warn", { message: "ignoring invalid discontinuity sequence: " + entry.number });
822
+ return;
823
+ }
824
+ this.manifest.discontinuitySequence = entry.number;
825
+ currentTimeline = entry.number;
826
+ },
827
+ "playlist-type"() {
828
+ if (!/VOD|EVENT/.test(entry.playlistType)) {
829
+ this.trigger("warn", { message: "ignoring unknown playlist type: " + entry.playlist });
830
+ return;
831
+ }
832
+ this.manifest.playlistType = entry.playlistType;
833
+ },
834
+ map() {
835
+ currentMap = {};
836
+ if (entry.uri) currentMap.uri = entry.uri;
837
+ if (entry.byterange) currentMap.byterange = entry.byterange;
838
+ if (key) currentMap.key = key;
839
+ },
840
+ "stream-inf"() {
841
+ this.manifest.playlists = uris;
842
+ this.manifest.mediaGroups = this.manifest.mediaGroups || defaultMediaGroups;
843
+ if (!entry.attributes) {
844
+ this.trigger("warn", { message: "ignoring empty stream-inf attributes" });
845
+ return;
846
+ }
847
+ if (!currentUri.attributes) currentUri.attributes = {};
848
+ _extends(currentUri.attributes, entry.attributes);
849
+ },
850
+ media() {
851
+ this.manifest.mediaGroups = this.manifest.mediaGroups || defaultMediaGroups;
852
+ if (!(entry.attributes && entry.attributes.TYPE && entry.attributes["GROUP-ID"] && entry.attributes.NAME)) {
853
+ this.trigger("warn", { message: "ignoring incomplete or missing media group" });
854
+ return;
855
+ }
856
+ const mediaGroupType = this.manifest.mediaGroups[entry.attributes.TYPE];
857
+ mediaGroupType[entry.attributes["GROUP-ID"]] = mediaGroupType[entry.attributes["GROUP-ID"]] || {};
858
+ mediaGroup = mediaGroupType[entry.attributes["GROUP-ID"]];
859
+ rendition = { default: /yes/i.test(entry.attributes.DEFAULT) };
860
+ if (rendition.default) rendition.autoselect = true;
861
+ else rendition.autoselect = /yes/i.test(entry.attributes.AUTOSELECT);
862
+ if (entry.attributes.LANGUAGE) rendition.language = entry.attributes.LANGUAGE;
863
+ if (entry.attributes.URI) rendition.uri = entry.attributes.URI;
864
+ if (entry.attributes["INSTREAM-ID"]) rendition.instreamId = entry.attributes["INSTREAM-ID"];
865
+ if (entry.attributes.CHARACTERISTICS) rendition.characteristics = entry.attributes.CHARACTERISTICS;
866
+ if (entry.attributes.FORCED) rendition.forced = /yes/i.test(entry.attributes.FORCED);
867
+ mediaGroup[entry.attributes.NAME] = rendition;
868
+ },
869
+ discontinuity() {
870
+ currentTimeline += 1;
871
+ currentUri.discontinuity = true;
872
+ this.manifest.discontinuityStarts.push(uris.length);
873
+ },
874
+ "program-date-time"() {
875
+ if (typeof this.manifest.dateTimeString === "undefined") {
876
+ this.manifest.dateTimeString = entry.dateTimeString;
877
+ this.manifest.dateTimeObject = entry.dateTimeObject;
878
+ }
879
+ currentUri.dateTimeString = entry.dateTimeString;
880
+ currentUri.dateTimeObject = entry.dateTimeObject;
881
+ const { lastProgramDateTime } = this;
882
+ this.lastProgramDateTime = new Date(entry.dateTimeString).getTime();
883
+ if (lastProgramDateTime === null) this.manifest.segments.reduceRight((programDateTime, segment) => {
884
+ segment.programDateTime = programDateTime - segment.duration * 1e3;
885
+ return segment.programDateTime;
886
+ }, this.lastProgramDateTime);
887
+ },
888
+ targetduration() {
889
+ if (!isFinite(entry.duration) || entry.duration < 0) {
890
+ this.trigger("warn", { message: "ignoring invalid target duration: " + entry.duration });
891
+ return;
892
+ }
893
+ this.manifest.targetDuration = entry.duration;
894
+ setHoldBack.call(this, this.manifest);
895
+ },
896
+ start() {
897
+ if (!entry.attributes || isNaN(entry.attributes["TIME-OFFSET"])) {
898
+ this.trigger("warn", { message: "ignoring start declaration without appropriate attribute list" });
899
+ return;
900
+ }
901
+ this.manifest.start = {
902
+ timeOffset: entry.attributes["TIME-OFFSET"],
903
+ precise: entry.attributes.PRECISE
904
+ };
905
+ },
906
+ "cue-out"() {
907
+ currentUri.cueOut = entry.data;
908
+ },
909
+ "cue-out-cont"() {
910
+ currentUri.cueOutCont = entry.data;
911
+ },
912
+ "cue-in"() {
913
+ currentUri.cueIn = entry.data;
914
+ },
915
+ "skip"() {
916
+ this.manifest.skip = camelCaseKeys(entry.attributes);
917
+ this.warnOnMissingAttributes_("#EXT-X-SKIP", entry.attributes, ["SKIPPED-SEGMENTS"]);
918
+ },
919
+ "part"() {
920
+ hasParts = true;
921
+ const segmentIndex = this.manifest.segments.length;
922
+ const part = camelCaseKeys(entry.attributes);
923
+ currentUri.parts = currentUri.parts || [];
924
+ currentUri.parts.push(part);
925
+ if (part.byterange) {
926
+ if (!part.byterange.hasOwnProperty("offset")) part.byterange.offset = lastPartByterangeEnd;
927
+ lastPartByterangeEnd = part.byterange.offset + part.byterange.length;
928
+ }
929
+ const partIndex = currentUri.parts.length - 1;
930
+ this.warnOnMissingAttributes_(`#EXT-X-PART #${partIndex} for segment #${segmentIndex}`, entry.attributes, ["URI", "DURATION"]);
931
+ if (this.manifest.renditionReports) this.manifest.renditionReports.forEach((r, i) => {
932
+ if (!r.hasOwnProperty("lastPart")) this.trigger("warn", { message: `#EXT-X-RENDITION-REPORT #${i} lacks required attribute(s): LAST-PART` });
933
+ });
934
+ },
935
+ "server-control"() {
936
+ const attrs = this.manifest.serverControl = camelCaseKeys(entry.attributes);
937
+ if (!attrs.hasOwnProperty("canBlockReload")) {
938
+ attrs.canBlockReload = false;
939
+ this.trigger("info", { message: "#EXT-X-SERVER-CONTROL defaulting CAN-BLOCK-RELOAD to false" });
940
+ }
941
+ setHoldBack.call(this, this.manifest);
942
+ if (attrs.canSkipDateranges && !attrs.hasOwnProperty("canSkipUntil")) this.trigger("warn", { message: "#EXT-X-SERVER-CONTROL lacks required attribute CAN-SKIP-UNTIL which is required when CAN-SKIP-DATERANGES is set" });
943
+ },
944
+ "preload-hint"() {
945
+ const segmentIndex = this.manifest.segments.length;
946
+ const hint = camelCaseKeys(entry.attributes);
947
+ const isPart = hint.type && hint.type === "PART";
948
+ currentUri.preloadHints = currentUri.preloadHints || [];
949
+ currentUri.preloadHints.push(hint);
950
+ if (hint.byterange) {
951
+ if (!hint.byterange.hasOwnProperty("offset")) {
952
+ hint.byterange.offset = isPart ? lastPartByterangeEnd : 0;
953
+ if (isPart) lastPartByterangeEnd = hint.byterange.offset + hint.byterange.length;
954
+ }
955
+ }
956
+ const index = currentUri.preloadHints.length - 1;
957
+ this.warnOnMissingAttributes_(`#EXT-X-PRELOAD-HINT #${index} for segment #${segmentIndex}`, entry.attributes, ["TYPE", "URI"]);
958
+ if (!hint.type) return;
959
+ for (let i = 0; i < currentUri.preloadHints.length - 1; i++) {
960
+ const otherHint = currentUri.preloadHints[i];
961
+ if (!otherHint.type) continue;
962
+ if (otherHint.type === hint.type) this.trigger("warn", { message: `#EXT-X-PRELOAD-HINT #${index} for segment #${segmentIndex} has the same TYPE ${hint.type} as preload hint #${i}` });
963
+ }
964
+ },
965
+ "rendition-report"() {
966
+ const report = camelCaseKeys(entry.attributes);
967
+ this.manifest.renditionReports = this.manifest.renditionReports || [];
968
+ this.manifest.renditionReports.push(report);
969
+ const index = this.manifest.renditionReports.length - 1;
970
+ const required = ["LAST-MSN", "URI"];
971
+ if (hasParts) required.push("LAST-PART");
972
+ this.warnOnMissingAttributes_(`#EXT-X-RENDITION-REPORT #${index}`, entry.attributes, required);
973
+ },
974
+ "part-inf"() {
975
+ this.manifest.partInf = camelCaseKeys(entry.attributes);
976
+ this.warnOnMissingAttributes_("#EXT-X-PART-INF", entry.attributes, ["PART-TARGET"]);
977
+ if (this.manifest.partInf.partTarget) this.manifest.partTargetDuration = this.manifest.partInf.partTarget;
978
+ setHoldBack.call(this, this.manifest);
979
+ },
980
+ "daterange"() {
981
+ this.manifest.dateRanges.push(camelCaseKeys(entry.attributes));
982
+ const index = this.manifest.dateRanges.length - 1;
983
+ this.warnOnMissingAttributes_(`#EXT-X-DATERANGE #${index}`, entry.attributes, ["ID", "START-DATE"]);
984
+ const dateRange = this.manifest.dateRanges[index];
985
+ if (dateRange.endDate && dateRange.startDate && new Date(dateRange.endDate) < new Date(dateRange.startDate)) this.trigger("warn", { message: "EXT-X-DATERANGE END-DATE must be equal to or later than the value of the START-DATE" });
986
+ if (dateRange.duration && dateRange.duration < 0) this.trigger("warn", { message: "EXT-X-DATERANGE DURATION must not be negative" });
987
+ if (dateRange.plannedDuration && dateRange.plannedDuration < 0) this.trigger("warn", { message: "EXT-X-DATERANGE PLANNED-DURATION must not be negative" });
988
+ const endOnNextYes = !!dateRange.endOnNext;
989
+ if (endOnNextYes && !dateRange.class) this.trigger("warn", { message: "EXT-X-DATERANGE with an END-ON-NEXT=YES attribute must have a CLASS attribute" });
990
+ if (endOnNextYes && (dateRange.duration || dateRange.endDate)) this.trigger("warn", { message: "EXT-X-DATERANGE with an END-ON-NEXT=YES attribute must not contain DURATION or END-DATE attributes" });
991
+ if (dateRange.duration && dateRange.endDate) {
992
+ const newDateInSeconds = dateRange.startDate.getTime() + dateRange.duration * 1e3;
993
+ this.manifest.dateRanges[index].endDate = new Date(newDateInSeconds);
994
+ }
995
+ if (!dateRangeTags[dateRange.id]) dateRangeTags[dateRange.id] = dateRange;
996
+ else {
997
+ for (const attribute in dateRangeTags[dateRange.id]) if (!!dateRange[attribute] && JSON.stringify(dateRangeTags[dateRange.id][attribute]) !== JSON.stringify(dateRange[attribute])) {
998
+ this.trigger("warn", { message: "EXT-X-DATERANGE tags with the same ID in a playlist must have the same attributes values" });
999
+ break;
1000
+ }
1001
+ const dateRangeWithSameId = this.manifest.dateRanges.findIndex((dateRangeToFind) => dateRangeToFind.id === dateRange.id);
1002
+ this.manifest.dateRanges[dateRangeWithSameId] = _extends(this.manifest.dateRanges[dateRangeWithSameId], dateRange);
1003
+ dateRangeTags[dateRange.id] = _extends(dateRangeTags[dateRange.id], dateRange);
1004
+ this.manifest.dateRanges.pop();
1005
+ }
1006
+ },
1007
+ "independent-segments"() {
1008
+ this.manifest.independentSegments = true;
1009
+ },
1010
+ "i-frames-only"() {
1011
+ this.manifest.iFramesOnly = true;
1012
+ this.requiredCompatibilityversion(this.manifest.version, 4);
1013
+ },
1014
+ "content-steering"() {
1015
+ this.manifest.contentSteering = camelCaseKeys(entry.attributes);
1016
+ this.warnOnMissingAttributes_("#EXT-X-CONTENT-STEERING", entry.attributes, ["SERVER-URI"]);
1017
+ },
1018
+ /** @this {Parser} */
1019
+ define() {
1020
+ this.manifest.definitions = this.manifest.definitions || {};
1021
+ const addDef = (n, v) => {
1022
+ if (n in this.manifest.definitions) {
1023
+ this.trigger("error", { message: `EXT-X-DEFINE: Duplicate name ${n}` });
1024
+ return;
1025
+ }
1026
+ this.manifest.definitions[n] = v;
1027
+ };
1028
+ if ("QUERYPARAM" in entry.attributes) {
1029
+ if ("NAME" in entry.attributes || "IMPORT" in entry.attributes) {
1030
+ this.trigger("error", { message: "EXT-X-DEFINE: Invalid attributes" });
1031
+ return;
1032
+ }
1033
+ const val = this.params.get(entry.attributes.QUERYPARAM);
1034
+ if (!val) {
1035
+ this.trigger("error", { message: `EXT-X-DEFINE: No query param ${entry.attributes.QUERYPARAM}` });
1036
+ return;
1037
+ }
1038
+ addDef(entry.attributes.QUERYPARAM, decodeURIComponent(val));
1039
+ return;
1040
+ }
1041
+ if ("NAME" in entry.attributes) {
1042
+ if ("IMPORT" in entry.attributes) {
1043
+ this.trigger("error", { message: "EXT-X-DEFINE: Invalid attributes" });
1044
+ return;
1045
+ }
1046
+ if (!("VALUE" in entry.attributes) || typeof entry.attributes.VALUE !== "string") {
1047
+ this.trigger("error", { message: `EXT-X-DEFINE: No value for ${entry.attributes.NAME}` });
1048
+ return;
1049
+ }
1050
+ addDef(entry.attributes.NAME, entry.attributes.VALUE);
1051
+ return;
1052
+ }
1053
+ if ("IMPORT" in entry.attributes) {
1054
+ if (!this.mainDefinitions[entry.attributes.IMPORT]) {
1055
+ this.trigger("error", { message: `EXT-X-DEFINE: No value ${entry.attributes.IMPORT} to import, or IMPORT used on main playlist` });
1056
+ return;
1057
+ }
1058
+ addDef(entry.attributes.IMPORT, this.mainDefinitions[entry.attributes.IMPORT]);
1059
+ return;
1060
+ }
1061
+ this.trigger("error", { message: "EXT-X-DEFINE: No attribute" });
1062
+ },
1063
+ "i-frame-playlist"() {
1064
+ this.manifest.iFramePlaylists.push({
1065
+ attributes: entry.attributes,
1066
+ uri: entry.uri,
1067
+ timeline: currentTimeline
1068
+ });
1069
+ this.warnOnMissingAttributes_("#EXT-X-I-FRAME-STREAM-INF", entry.attributes, ["BANDWIDTH", "URI"]);
1070
+ }
1071
+ }[entry.tagType] || noop).call(self);
1072
+ },
1073
+ uri() {
1074
+ currentUri.uri = entry.uri;
1075
+ uris.push(currentUri);
1076
+ if (this.manifest.targetDuration && !("duration" in currentUri)) {
1077
+ this.trigger("warn", { message: "defaulting segment duration to the target duration" });
1078
+ currentUri.duration = this.manifest.targetDuration;
1079
+ }
1080
+ if (key) currentUri.key = key;
1081
+ currentUri.timeline = currentTimeline;
1082
+ if (currentMap) currentUri.map = currentMap;
1083
+ lastPartByterangeEnd = 0;
1084
+ if (this.lastProgramDateTime !== null) {
1085
+ currentUri.programDateTime = this.lastProgramDateTime;
1086
+ this.lastProgramDateTime += currentUri.duration * 1e3;
1087
+ }
1088
+ currentUri = {};
1089
+ },
1090
+ comment() {},
1091
+ custom() {
1092
+ if (entry.segment) {
1093
+ currentUri.custom = currentUri.custom || {};
1094
+ currentUri.custom[entry.customType] = entry.data;
1095
+ } else {
1096
+ this.manifest.custom = this.manifest.custom || {};
1097
+ this.manifest.custom[entry.customType] = entry.data;
1098
+ }
1099
+ }
1100
+ })[entry.type].call(self);
1101
+ });
1102
+ }
1103
+ requiredCompatibilityversion(currentVersion, targetVersion) {
1104
+ if (currentVersion < targetVersion || !currentVersion) this.trigger("warn", { message: `manifest must be at least version ${targetVersion}` });
1105
+ }
1106
+ warnOnMissingAttributes_(identifier, attributes, required) {
1107
+ const missing = [];
1108
+ required.forEach(function(key) {
1109
+ if (!attributes.hasOwnProperty(key)) missing.push(key);
1110
+ });
1111
+ if (missing.length) this.trigger("warn", { message: `${identifier} lacks required attribute(s): ${missing.join(", ")}` });
1112
+ }
1113
+ /**
1114
+ * Parse the input string and update the manifest object.
1115
+ *
1116
+ * @param {string} chunk a potentially incomplete portion of the manifest
1117
+ */
1118
+ push(chunk) {
1119
+ this.lineStream.push(chunk);
1120
+ }
1121
+ /**
1122
+ * Flush any remaining input. This can be handy if the last line of an M3U8
1123
+ * manifest did not contain a trailing newline but the file has been
1124
+ * completely received.
1125
+ */
1126
+ end() {
1127
+ this.lineStream.push("\n");
1128
+ if (this.manifest.dateRanges.length && this.lastProgramDateTime === null) this.trigger("warn", { message: "A playlist with EXT-X-DATERANGE tag must contain atleast one EXT-X-PROGRAM-DATE-TIME tag" });
1129
+ this.lastProgramDateTime = null;
1130
+ this.trigger("end");
1131
+ }
1132
+ /**
1133
+ * Add an additional parser for non-standard tags
1134
+ *
1135
+ * @param {Object} options a map of options for the added parser
1136
+ * @param {RegExp} options.expression a regular expression to match the custom header
1137
+ * @param {string} options.customType the custom type to register to the output
1138
+ * @param {Function} [options.dataParser] function to parse the line into an object
1139
+ * @param {boolean} [options.segment] should tag data be attached to the segment object
1140
+ */
1141
+ addParser(options) {
1142
+ this.parseStream.addParser(options);
1143
+ }
1144
+ /**
1145
+ * Add a custom header mapper
1146
+ *
1147
+ * @param {Object} options
1148
+ * @param {RegExp} options.expression a regular expression to match the custom header
1149
+ * @param {Function} options.map function to translate tag into a different tag
1150
+ */
1151
+ addTagMapper(options) {
1152
+ this.parseStream.addTagMapper(options);
1153
+ }
1390
1154
  };
1155
+ export { LineStream, ParseStream, Parser };