@ybgnb/bili-api 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (319) hide show
  1. package/LICENSE +1 -1
  2. package/dist/index.d.ts +9059 -71
  3. package/dist/index.js +1 -71
  4. package/package.json +21 -15
  5. package/readme.md +2 -1
  6. package/dist/api/base.d.ts +0 -35
  7. package/dist/api/base.d.ts.map +0 -1
  8. package/dist/api/base.js +0 -184
  9. package/dist/api/base.js.map +0 -1
  10. package/dist/api/page/page.d.ts +0 -35
  11. package/dist/api/page/page.d.ts.map +0 -1
  12. package/dist/api/page/page.js +0 -102
  13. package/dist/api/page/page.js.map +0 -1
  14. package/dist/api/page/strategies/base.d.ts +0 -30
  15. package/dist/api/page/strategies/base.d.ts.map +0 -1
  16. package/dist/api/page/strategies/base.js +0 -9
  17. package/dist/api/page/strategies/base.js.map +0 -1
  18. package/dist/api/page/strategies/has-more.d.ts +0 -15
  19. package/dist/api/page/strategies/has-more.d.ts.map +0 -1
  20. package/dist/api/page/strategies/has-more.js +0 -26
  21. package/dist/api/page/strategies/has-more.js.map +0 -1
  22. package/dist/api/page/strategies/list.d.ts +0 -12
  23. package/dist/api/page/strategies/list.d.ts.map +0 -1
  24. package/dist/api/page/strategies/list.js +0 -31
  25. package/dist/api/page/strategies/list.js.map +0 -1
  26. package/dist/api/page/strategies/total.d.ts +0 -12
  27. package/dist/api/page/strategies/total.d.ts.map +0 -1
  28. package/dist/api/page/strategies/total.js +0 -33
  29. package/dist/api/page/strategies/total.js.map +0 -1
  30. package/dist/api/with-api.d.ts +0 -18
  31. package/dist/api/with-api.d.ts.map +0 -1
  32. package/dist/api/with-api.js +0 -32
  33. package/dist/api/with-api.js.map +0 -1
  34. package/dist/client/client.d.ts +0 -87
  35. package/dist/client/client.d.ts.map +0 -1
  36. package/dist/client/client.js +0 -48
  37. package/dist/client/client.js.map +0 -1
  38. package/dist/client/common.d.ts +0 -6
  39. package/dist/client/common.d.ts.map +0 -1
  40. package/dist/client/common.js +0 -13
  41. package/dist/client/common.js.map +0 -1
  42. package/dist/config/config.d.ts +0 -26
  43. package/dist/config/config.d.ts.map +0 -1
  44. package/dist/config/config.js +0 -37
  45. package/dist/config/config.js.map +0 -1
  46. package/dist/error/error.d.ts +0 -40
  47. package/dist/error/error.d.ts.map +0 -1
  48. package/dist/error/error.js +0 -79
  49. package/dist/error/error.js.map +0 -1
  50. package/dist/error/handle-error.d.ts +0 -6
  51. package/dist/error/handle-error.d.ts.map +0 -1
  52. package/dist/error/handle-error.js +0 -32
  53. package/dist/error/handle-error.js.map +0 -1
  54. package/dist/index.d.ts.map +0 -1
  55. package/dist/index.js.map +0 -1
  56. package/dist/service/archive/archive.d.ts +0 -13
  57. package/dist/service/archive/archive.d.ts.map +0 -1
  58. package/dist/service/archive/archive.js +0 -71
  59. package/dist/service/archive/archive.js.map +0 -1
  60. package/dist/service/bangumi/follow.d.ts +0 -57
  61. package/dist/service/bangumi/follow.d.ts.map +0 -1
  62. package/dist/service/bangumi/follow.js +0 -154
  63. package/dist/service/bangumi/follow.js.map +0 -1
  64. package/dist/service/base.d.ts +0 -15
  65. package/dist/service/base.d.ts.map +0 -1
  66. package/dist/service/base.js +0 -27
  67. package/dist/service/base.js.map +0 -1
  68. package/dist/service/fav/collection.d.ts +0 -45
  69. package/dist/service/fav/collection.d.ts.map +0 -1
  70. package/dist/service/fav/collection.js +0 -134
  71. package/dist/service/fav/collection.js.map +0 -1
  72. package/dist/service/fav/fav.d.ts +0 -118
  73. package/dist/service/fav/fav.d.ts.map +0 -1
  74. package/dist/service/fav/fav.js +0 -319
  75. package/dist/service/fav/fav.js.map +0 -1
  76. package/dist/service/fav/helper.d.ts +0 -10
  77. package/dist/service/fav/helper.d.ts.map +0 -1
  78. package/dist/service/fav/helper.js +0 -29
  79. package/dist/service/fav/helper.js.map +0 -1
  80. package/dist/service/fav/opus.d.ts +0 -48
  81. package/dist/service/fav/opus.d.ts.map +0 -1
  82. package/dist/service/fav/opus.js +0 -160
  83. package/dist/service/fav/opus.js.map +0 -1
  84. package/dist/service/fav/page/opus.d.ts +0 -15
  85. package/dist/service/fav/page/opus.d.ts.map +0 -1
  86. package/dist/service/fav/page/opus.js +0 -24
  87. package/dist/service/fav/page/opus.js.map +0 -1
  88. package/dist/service/history/history.d.ts +0 -48
  89. package/dist/service/history/history.d.ts.map +0 -1
  90. package/dist/service/history/history.js +0 -139
  91. package/dist/service/history/history.js.map +0 -1
  92. package/dist/service/history/page.d.ts +0 -14
  93. package/dist/service/history/page.d.ts.map +0 -1
  94. package/dist/service/history/page.js +0 -40
  95. package/dist/service/history/page.js.map +0 -1
  96. package/dist/service/message/message.d.ts +0 -137
  97. package/dist/service/message/message.d.ts.map +0 -1
  98. package/dist/service/message/message.js +0 -328
  99. package/dist/service/message/message.js.map +0 -1
  100. package/dist/service/message/page/at.d.ts +0 -15
  101. package/dist/service/message/page/at.d.ts.map +0 -1
  102. package/dist/service/message/page/at.js +0 -34
  103. package/dist/service/message/page/at.js.map +0 -1
  104. package/dist/service/message/page/like.d.ts +0 -15
  105. package/dist/service/message/page/like.d.ts.map +0 -1
  106. package/dist/service/message/page/like.js +0 -34
  107. package/dist/service/message/page/like.js.map +0 -1
  108. package/dist/service/message/page/reply.d.ts +0 -15
  109. package/dist/service/message/page/reply.d.ts.map +0 -1
  110. package/dist/service/message/page/reply.js +0 -34
  111. package/dist/service/message/page/reply.js.map +0 -1
  112. package/dist/service/message/page/system.d.ts +0 -15
  113. package/dist/service/message/page/system.d.ts.map +0 -1
  114. package/dist/service/message/page/system.js +0 -33
  115. package/dist/service/message/page/system.js.map +0 -1
  116. package/dist/service/relation/relation.d.ts +0 -190
  117. package/dist/service/relation/relation.d.ts.map +0 -1
  118. package/dist/service/relation/relation.js +0 -481
  119. package/dist/service/relation/relation.js.map +0 -1
  120. package/dist/service/session/page.d.ts +0 -16
  121. package/dist/service/session/page.d.ts.map +0 -1
  122. package/dist/service/session/page.js +0 -35
  123. package/dist/service/session/page.js.map +0 -1
  124. package/dist/service/session/session.d.ts +0 -48
  125. package/dist/service/session/session.d.ts.map +0 -1
  126. package/dist/service/session/session.js +0 -167
  127. package/dist/service/session/session.js.map +0 -1
  128. package/dist/service/session/settings.d.ts +0 -56
  129. package/dist/service/session/settings.d.ts.map +0 -1
  130. package/dist/service/session/settings.js +0 -219
  131. package/dist/service/session/settings.js.map +0 -1
  132. package/dist/service/space/archive.d.ts +0 -34
  133. package/dist/service/space/archive.d.ts.map +0 -1
  134. package/dist/service/space/archive.js +0 -102
  135. package/dist/service/space/archive.js.map +0 -1
  136. package/dist/service/space/page/search.d.ts +0 -16
  137. package/dist/service/space/page/search.d.ts.map +0 -1
  138. package/dist/service/space/page/search.js +0 -33
  139. package/dist/service/space/page/search.js.map +0 -1
  140. package/dist/service/toview/page.d.ts +0 -15
  141. package/dist/service/toview/page.d.ts.map +0 -1
  142. package/dist/service/toview/page.js +0 -31
  143. package/dist/service/toview/page.js.map +0 -1
  144. package/dist/service/toview/toview.d.ts +0 -56
  145. package/dist/service/toview/toview.d.ts.map +0 -1
  146. package/dist/service/toview/toview.js +0 -177
  147. package/dist/service/toview/toview.js.map +0 -1
  148. package/dist/service/user/qrcode-login.d.ts +0 -13
  149. package/dist/service/user/qrcode-login.d.ts.map +0 -1
  150. package/dist/service/user/qrcode-login.js +0 -88
  151. package/dist/service/user/qrcode-login.js.map +0 -1
  152. package/dist/service/user/user.d.ts +0 -34
  153. package/dist/service/user/user.d.ts.map +0 -1
  154. package/dist/service/user/user.js +0 -163
  155. package/dist/service/user/user.js.map +0 -1
  156. package/dist/stores/mixinkey.d.ts +0 -9
  157. package/dist/stores/mixinkey.d.ts.map +0 -1
  158. package/dist/stores/mixinkey.js +0 -86
  159. package/dist/stores/mixinkey.js.map +0 -1
  160. package/dist/types/core/client.d.ts +0 -43
  161. package/dist/types/core/client.d.ts.map +0 -1
  162. package/dist/types/core/client.js +0 -2
  163. package/dist/types/core/client.js.map +0 -1
  164. package/dist/types/core/page.d.ts +0 -43
  165. package/dist/types/core/page.d.ts.map +0 -1
  166. package/dist/types/core/page.js +0 -2
  167. package/dist/types/core/page.js.map +0 -1
  168. package/dist/types/core/request.d.ts +0 -106
  169. package/dist/types/core/request.d.ts.map +0 -1
  170. package/dist/types/core/request.js +0 -3
  171. package/dist/types/core/request.js.map +0 -1
  172. package/dist/types/core/response.d.ts +0 -26
  173. package/dist/types/core/response.d.ts.map +0 -1
  174. package/dist/types/core/response.js +0 -2
  175. package/dist/types/core/response.js.map +0 -1
  176. package/dist/types/core/type-helpers.d.ts +0 -12
  177. package/dist/types/core/type-helpers.d.ts.map +0 -1
  178. package/dist/types/core/type-helpers.js +0 -7
  179. package/dist/types/core/type-helpers.js.map +0 -1
  180. package/dist/types/modules/archive/part.d.ts +0 -31
  181. package/dist/types/modules/archive/part.d.ts.map +0 -1
  182. package/dist/types/modules/archive/part.js +0 -2
  183. package/dist/types/modules/archive/part.js.map +0 -1
  184. package/dist/types/modules/bangumi/bangumi.d.ts +0 -64
  185. package/dist/types/modules/bangumi/bangumi.d.ts.map +0 -1
  186. package/dist/types/modules/bangumi/bangumi.js +0 -29
  187. package/dist/types/modules/bangumi/bangumi.js.map +0 -1
  188. package/dist/types/modules/business/business.d.ts +0 -41
  189. package/dist/types/modules/business/business.d.ts.map +0 -1
  190. package/dist/types/modules/business/business.js +0 -31
  191. package/dist/types/modules/business/business.js.map +0 -1
  192. package/dist/types/modules/device/device.d.ts +0 -15
  193. package/dist/types/modules/device/device.d.ts.map +0 -1
  194. package/dist/types/modules/device/device.js +0 -11
  195. package/dist/types/modules/device/device.js.map +0 -1
  196. package/dist/types/modules/fav/collection.d.ts +0 -24
  197. package/dist/types/modules/fav/collection.d.ts.map +0 -1
  198. package/dist/types/modules/fav/collection.js +0 -2
  199. package/dist/types/modules/fav/collection.js.map +0 -1
  200. package/dist/types/modules/fav/fav.d.ts +0 -104
  201. package/dist/types/modules/fav/fav.d.ts.map +0 -1
  202. package/dist/types/modules/fav/fav.js +0 -2
  203. package/dist/types/modules/fav/fav.js.map +0 -1
  204. package/dist/types/modules/fav/folder.d.ts +0 -61
  205. package/dist/types/modules/fav/folder.d.ts.map +0 -1
  206. package/dist/types/modules/fav/folder.js +0 -2
  207. package/dist/types/modules/fav/folder.js.map +0 -1
  208. package/dist/types/modules/fav/opus.d.ts +0 -31
  209. package/dist/types/modules/fav/opus.d.ts.map +0 -1
  210. package/dist/types/modules/fav/opus.js +0 -2
  211. package/dist/types/modules/fav/opus.js.map +0 -1
  212. package/dist/types/modules/history/history.d.ts +0 -111
  213. package/dist/types/modules/history/history.d.ts.map +0 -1
  214. package/dist/types/modules/history/history.js +0 -2
  215. package/dist/types/modules/history/history.js.map +0 -1
  216. package/dist/types/modules/message/at.d.ts +0 -46
  217. package/dist/types/modules/message/at.d.ts.map +0 -1
  218. package/dist/types/modules/message/at.js +0 -2
  219. package/dist/types/modules/message/at.js.map +0 -1
  220. package/dist/types/modules/message/business.d.ts +0 -56
  221. package/dist/types/modules/message/business.d.ts.map +0 -1
  222. package/dist/types/modules/message/business.js +0 -43
  223. package/dist/types/modules/message/business.js.map +0 -1
  224. package/dist/types/modules/message/like.d.ts +0 -53
  225. package/dist/types/modules/message/like.d.ts.map +0 -1
  226. package/dist/types/modules/message/like.js +0 -2
  227. package/dist/types/modules/message/like.js.map +0 -1
  228. package/dist/types/modules/message/message.d.ts +0 -75
  229. package/dist/types/modules/message/message.d.ts.map +0 -1
  230. package/dist/types/modules/message/message.js +0 -2
  231. package/dist/types/modules/message/message.js.map +0 -1
  232. package/dist/types/modules/message/reply.d.ts +0 -59
  233. package/dist/types/modules/message/reply.d.ts.map +0 -1
  234. package/dist/types/modules/message/reply.js +0 -2
  235. package/dist/types/modules/message/reply.js.map +0 -1
  236. package/dist/types/modules/message/settings.d.ts +0 -172
  237. package/dist/types/modules/message/settings.d.ts.map +0 -1
  238. package/dist/types/modules/message/settings.js +0 -14
  239. package/dist/types/modules/message/settings.js.map +0 -1
  240. package/dist/types/modules/message/system.d.ts +0 -45
  241. package/dist/types/modules/message/system.d.ts.map +0 -1
  242. package/dist/types/modules/message/system.js +0 -2
  243. package/dist/types/modules/message/system.js.map +0 -1
  244. package/dist/types/modules/misc.d.ts +0 -9
  245. package/dist/types/modules/misc.d.ts.map +0 -1
  246. package/dist/types/modules/misc.js +0 -2
  247. package/dist/types/modules/misc.js.map +0 -1
  248. package/dist/types/modules/opus/opus.d.ts +0 -10
  249. package/dist/types/modules/opus/opus.d.ts.map +0 -1
  250. package/dist/types/modules/opus/opus.js +0 -2
  251. package/dist/types/modules/opus/opus.js.map +0 -1
  252. package/dist/types/modules/session/session.d.ts +0 -133
  253. package/dist/types/modules/session/session.d.ts.map +0 -1
  254. package/dist/types/modules/session/session.js +0 -2
  255. package/dist/types/modules/session/session.js.map +0 -1
  256. package/dist/types/modules/session/source.d.ts +0 -107
  257. package/dist/types/modules/session/source.d.ts.map +0 -1
  258. package/dist/types/modules/session/source.js +0 -96
  259. package/dist/types/modules/session/source.js.map +0 -1
  260. package/dist/types/modules/space/archive.d.ts +0 -75
  261. package/dist/types/modules/space/archive.d.ts.map +0 -1
  262. package/dist/types/modules/space/archive.js +0 -2
  263. package/dist/types/modules/space/archive.js.map +0 -1
  264. package/dist/types/modules/space/collection.d.ts +0 -51
  265. package/dist/types/modules/space/collection.d.ts.map +0 -1
  266. package/dist/types/modules/space/collection.js +0 -2
  267. package/dist/types/modules/space/collection.js.map +0 -1
  268. package/dist/types/modules/space/search.d.ts +0 -59
  269. package/dist/types/modules/space/search.d.ts.map +0 -1
  270. package/dist/types/modules/space/search.js +0 -2
  271. package/dist/types/modules/space/search.js.map +0 -1
  272. package/dist/types/modules/space/space.d.ts +0 -2
  273. package/dist/types/modules/space/space.d.ts.map +0 -1
  274. package/dist/types/modules/space/space.js +0 -2
  275. package/dist/types/modules/space/space.js.map +0 -1
  276. package/dist/types/modules/toview/toview.d.ts +0 -57
  277. package/dist/types/modules/toview/toview.d.ts.map +0 -1
  278. package/dist/types/modules/toview/toview.js +0 -2
  279. package/dist/types/modules/toview/toview.js.map +0 -1
  280. package/dist/types/modules/user/auth.d.ts +0 -25
  281. package/dist/types/modules/user/auth.d.ts.map +0 -1
  282. package/dist/types/modules/user/auth.js +0 -2
  283. package/dist/types/modules/user/auth.js.map +0 -1
  284. package/dist/types/modules/user/level.d.ts +0 -22
  285. package/dist/types/modules/user/level.d.ts.map +0 -1
  286. package/dist/types/modules/user/level.js +0 -2
  287. package/dist/types/modules/user/level.js.map +0 -1
  288. package/dist/types/modules/user/login.d.ts +0 -35
  289. package/dist/types/modules/user/login.d.ts.map +0 -1
  290. package/dist/types/modules/user/login.js +0 -2
  291. package/dist/types/modules/user/login.js.map +0 -1
  292. package/dist/types/modules/user/relation.d.ts +0 -136
  293. package/dist/types/modules/user/relation.d.ts.map +0 -1
  294. package/dist/types/modules/user/relation.js +0 -89
  295. package/dist/types/modules/user/relation.js.map +0 -1
  296. package/dist/types/modules/user/user.d.ts +0 -46
  297. package/dist/types/modules/user/user.d.ts.map +0 -1
  298. package/dist/types/modules/user/user.js +0 -10
  299. package/dist/types/modules/user/user.js.map +0 -1
  300. package/dist/types/modules/vip/vip.d.ts +0 -36
  301. package/dist/types/modules/vip/vip.d.ts.map +0 -1
  302. package/dist/types/modules/vip/vip.js +0 -19
  303. package/dist/types/modules/vip/vip.js.map +0 -1
  304. package/dist/utils/arr.d.ts +0 -2
  305. package/dist/utils/arr.d.ts.map +0 -1
  306. package/dist/utils/arr.js +0 -4
  307. package/dist/utils/arr.js.map +0 -1
  308. package/dist/utils/cookies.d.ts +0 -3
  309. package/dist/utils/cookies.d.ts.map +0 -1
  310. package/dist/utils/cookies.js +0 -26
  311. package/dist/utils/cookies.js.map +0 -1
  312. package/dist/utils/time.d.ts +0 -3
  313. package/dist/utils/time.d.ts.map +0 -1
  314. package/dist/utils/time.js +0 -26
  315. package/dist/utils/time.js.map +0 -1
  316. package/dist/utils/url.d.ts +0 -32
  317. package/dist/utils/url.d.ts.map +0 -1
  318. package/dist/utils/url.js +0 -91
  319. package/dist/utils/url.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,71 +1 @@
1
- export * from "./api/base.js";
2
- export * from "./api/with-api.js";
3
- export * from "./api/page/page.js";
4
- export * from "./api/page/strategies/base.js";
5
- export * from "./api/page/strategies/has-more.js";
6
- export * from "./api/page/strategies/list.js";
7
- export * from "./api/page/strategies/total.js";
8
- export * from "./client/client.js";
9
- export * from "./client/common.js";
10
- export * from "./config/config.js";
11
- export * from "./error/error.js";
12
- export * from "./error/handle-error.js";
13
- export * from "./service/base.js";
14
- export * from "./service/bangumi/follow.js";
15
- export * from "./service/fav/collection.js";
16
- export * from "./service/fav/fav.js";
17
- export * from "./service/fav/helper.js";
18
- export * from "./service/fav/opus.js";
19
- export * from "./service/fav/page/opus.js";
20
- export * from "./service/history/history.js";
21
- export * from "./service/history/page.js";
22
- export * from "./service/message/message.js";
23
- export * from "./service/message/page/at.js";
24
- export * from "./service/message/page/like.js";
25
- export * from "./service/message/page/reply.js";
26
- export * from "./service/message/page/system.js";
27
- export * from "./service/relation/relation.js";
28
- export * from "./service/session/page.js";
29
- export * from "./service/session/session.js";
30
- export * from "./service/session/settings.js";
31
- export * from "./service/toview/page.js";
32
- export * from "./service/toview/toview.js";
33
- export * from "./service/user/qrcode-login.js";
34
- export * from "./service/user/user.js";
35
- export * from "./stores/mixinkey.js";
36
- export * from "./types/core/client.js";
37
- export * from "./types/core/page.js";
38
- export * from "./types/core/request.js";
39
- export * from "./types/core/response.js";
40
- export * from "./types/core/type-helpers.js";
41
- export * from "./types/modules/misc.js";
42
- export * from "./types/modules/bangumi/bangumi.js";
43
- export * from "./types/modules/business/business.js";
44
- export * from "./types/modules/device/device.js";
45
- export * from "./types/modules/fav/collection.js";
46
- export * from "./types/modules/fav/fav.js";
47
- export * from "./types/modules/fav/folder.js";
48
- export * from "./types/modules/fav/opus.js";
49
- export * from "./types/modules/history/history.js";
50
- export * from "./types/modules/message/at.js";
51
- export * from "./types/modules/message/business.js";
52
- export * from "./types/modules/message/like.js";
53
- export * from "./types/modules/message/message.js";
54
- export * from "./types/modules/message/reply.js";
55
- export * from "./types/modules/message/settings.js";
56
- export * from "./types/modules/message/system.js";
57
- export * from "./types/modules/opus/opus.js";
58
- export * from "./types/modules/session/session.js";
59
- export * from "./types/modules/session/source.js";
60
- export * from "./types/modules/toview/toview.js";
61
- export * from "./types/modules/user/auth.js";
62
- export * from "./types/modules/user/level.js";
63
- export * from "./types/modules/user/login.js";
64
- export * from "./types/modules/user/relation.js";
65
- export * from "./types/modules/user/user.js";
66
- export * from "./types/modules/vip/vip.js";
67
- export * from "./utils/arr.js";
68
- export * from "./utils/cookies.js";
69
- export * from "./utils/time.js";
70
- export * from "./utils/url.js";
71
- //# sourceMappingURL=index.js.map
1
+ var Ha=Object.create;var He=Object.defineProperty;var $a=Object.getOwnPropertyDescriptor;var ct=(n,i)=>(i=Symbol[n])?i:Symbol.for("Symbol."+n),he=n=>{throw TypeError(n)};var eo=(n,i,e)=>i in n?He(n,i,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[i]=e;var lt=(n,i)=>He(n,"name",{value:i,configurable:!0});var g=n=>[,,,Ha(n?.[ct("metadata")]??null)],gt=["class","method","getter","setter","accessor","field","value","get","set"],Re=n=>n!==void 0&&typeof n!="function"?he("Function expected"):n,to=(n,i,e,t,s)=>({kind:gt[n],name:i,metadata:t,addInitializer:a=>e._?he("Already initialized"):s.push(Re(a||null))}),c=(n,i)=>eo(i,ct("metadata"),n[3]),d=(n,i,e,t)=>{for(var s=0,a=n[i>>1],p=a&&a.length;s<p;s++)i&1?a[s].call(e):t=a[s].call(e,t);return t},o=(n,i,e,t,s,a)=>{var p,b,w,x,D,y=i&7,De=!!(i&8),j=!!(i&16),Ke=y>3?n.length+1:y?De?1:2:0,nt=gt[y+5],pt=y>3&&(n[Ke-1]=[]),Qa=n[Ke]||(n[Ke]=[]),Z=y&&(!j&&!De&&(s=s.prototype),y<5&&(y>3||!j)&&$a(y<4?s:{get[e](){return mt(this,a)},set[e](v){return ut(this,a,v)}},e));y?j&&y<4&&lt(a,(y>2?"set ":y>1?"get ":"")+e):lt(s,e);for(var Te=t.length-1;Te>=0;Te--)x=to(y,e,w={},n[3],Qa),y&&(x.static=De,x.private=j,D=x.access={has:j?v=>so(s,v):v=>e in v},y^3&&(D.get=j?v=>(y^1?mt:io)(v,s,y^4?a:Z.get):v=>v[e]),y>2&&(D.set=j?(v,Qe)=>ut(v,s,Qe,y^4?a:Z.set):(v,Qe)=>v[e]=Qe)),b=(0,t[Te])(y?y<4?j?a:Z[nt]:y>4?void 0:{get:Z.get,set:Z.set}:s,x),w._=1,y^4||b===void 0?Re(b)&&(y>4?pt.unshift(b):y?j?a=b:Z[nt]=b:s=b):typeof b!="object"||b===null?he("Object expected"):(Re(p=b.get)&&(Z.get=p),Re(p=b.set)&&(Z.set=p),Re(p=b.init)&&pt.unshift(p));return y||c(n,s),Z&&He(s,e,Z),j?y^4?a:Z:s};var $e=(n,i,e)=>i.has(n)||he("Cannot "+e),so=(n,i)=>Object(i)!==i?he('Cannot use the "in" operator on this value'):n.has(i),mt=(n,i,e)=>($e(n,i,"read from private field"),e?e.call(n):i.get(n));var ut=(n,i,e,t)=>($e(n,i,"write to private field"),t?t.call(n,e):i.set(n,e),e),io=(n,i,e)=>($e(n,i,"access private method"),e);import Vo from"md5";function r(){return function(n,i){let e=String(i.name);return function(...t){let s=this.constructor.name;try{return n.call(this,...t)}catch(a){if(typeof this.handleError=="function")this.handleError(a,s,e);else throw console.error(`${s}.${e} \u672A\u77E5\u5F02\u5E38`,a),a}}}}var S=class extends Error{constructor(i,e,t){super(e||"\u64CD\u4F5C\u5931\u8D25"),this.name="BiliError",this.rawError=t instanceof Error?t:new Error(String(t));let{timeout:s,userAgent:a,context:p}=i;this.clientConfig={timeout:s,userAgent:a,context:p?.userCookie?{userCookie:p?.userCookie}:void 0}}},Pe=class extends S{constructor(i,e,t,s){super(i,t,s),this.name="BiliApiError";let{url:a,method:p,query:b,data:w,skipWbiSign:x,autoCsrf:D}=e;this.requestOptions={url:a,method:p,query:b,data:w,skipWbiSign:x,autoCsrf:D}}},ae=class extends Pe{constructor(e,t,s,a,p){super(e,t,a||s.statusText||`HTTP ${s.status}`,p);this.status=0;this.name="BiliApiHttpError",this.status=s.status}},Be=class extends Pe{constructor(i,e,t,s,a){super(i,e,s||t.message,a),this.name="BiliApiBusinessError",this.responseCode=t.code??-1,this.responseData=t.data}};import{createAbortError as dt,isCanceledError as ao}from"@ybgnb/utils";async function bt(n,i,e){let t={updateRequestContext:!0,autoRefresh:!0,pollIntervalMs:1233,...e},s=AbortSignal.timeout(180*1e3),a=t.signal?AbortSignal.any([t.signal,s]):s,p=x=>new Promise(D=>setTimeout(D,x)),b=x=>{try{i.onStatusChange(x)}catch(D){n.logger.error("[QRCodeLogin] onStatusChange callback error:",D)}},w=async x=>{try{await i.onQRCodeReceived(x)}catch(D){n.logger.error("[QRCodeLogin] onQRCodeReceived callback error:",D)}};try{for(;!a.aborted;){b("\u6B63\u5728\u83B7\u53D6\u767B\u5F55\u4E8C\u7EF4\u7801...");let x=await n.getLoginQRCode(e);if(!x?.url||!x?.qrcode_key)throw new Error("\u672A\u80FD\u83B7\u53D6\u6709\u6548\u7684\u4E8C\u7EF4\u7801\u6570\u636E");await w(x.url),b("\u8BF7\u4F7F\u7528\u624B\u673A App \u626B\u7801\u767B\u5F55..."),await p(2e3);let D=!1;for(;!a.aborted&&!D;){let y=await n.getQRCodeLoginResult(x.qrcode_key,e);switch(b(y.message),y.code){case 0:return b("\u626B\u7801\u6210\u529F\uFF0C\u6B63\u5728\u540C\u6B65\u7528\u6237\u4FE1\u606F..."),i.cookieProvider&&(await p(1e3),y.setCookie=await i.cookieProvider()),await n.initLoginSession(y.setCookie,t.updateRequestContext,e);case 86038:if(t.autoRefresh)b("\u4E8C\u7EF4\u7801\u5DF2\u5931\u6548\uFF0C\u6B63\u5728\u81EA\u52A8\u5237\u65B0..."),D=!0;else throw new S(n.clientConfig,"\u4E8C\u7EF4\u7801\u5DF2\u5931\u6548");break;default:await p(t.pollIntervalMs);break}}}}catch(x){if(t.signal?.aborted)throw b("\u53D6\u6D88\u767B\u5F55"),dt("\u53D6\u6D88\u767B\u5F55");if(a.aborted||ao(x)){let D="\u767B\u5F55\u8D85\u65F6";throw b(D),new Error(D)}throw x}throw a.aborted?dt():new Error("\u767B\u5F55\u6D41\u7A0B\u5F02\u5E38\u7EC8\u6B62")}function yt(n){if(!n)throw new Error("setCookie \u4E3A\u7A7A");let i=[],e,t;for(let s of n)if(s){let a=s.slice(0,s.indexOf(";")+1);i.push(a),a.startsWith("bili_jct=")&&(e=a.slice(9,-1)),a.startsWith("DedeUserID=")&&(t=a.slice(11,-1))}if(!e||!t)throw new Error("setCookie \u89E3\u6790\u9519\u8BEF\uFF0C\u4E0D\u5B58\u5728 bili_jct/uid");return{uid:Number(t),cookie:i.join(" "),bili_jct:e}}var me=class{constructor(i){this.api=i}get clientConfig(){return this.api.clientConfig}get logger(){return this.api.logger}get request(){return this.api.request}get get(){return this.api.get}get post(){return this.api.post}get save(){return this.api.save}get currUserUid(){let i=this.api.clientConfig.context?.userCookie.uid;if(i===void 0)throw new S(this.clientConfig,"\u7528\u6237\u672A\u767B\u5F55");return i}};import{getErrorMessage as Rt}from"@ybgnb/utils";var u=class extends me{constructor(i){super(i),this.createPager=i.createPager}throwError(i,e){throw new S(this.clientConfig,Rt(i),e)}handleError(i,e,t){if(i instanceof S)this.logger.error(`${e}.${t} \u51FA\u73B0\u9519\u8BEF`,i);else{let s=new S(this.clientConfig,Rt(i),i);this.logger.error(`${e}.${t} \u51FA\u73B0\u9519\u8BEF`,s)}throw i}resolveVideoId(i){return i.aid!==void 0?{aid:i.aid}:{bvid:i.bvid}}};var ht,ft,At,xt,Dt,Pt,Bt,St,wt,Ct,F,G=class extends(Ct=u,wt=[r()],St=[r()],Bt=[r()],Pt=[r()],Dt=[r()],xt=[r()],At=[r()],ft=[r()],ht=[r()],Ct){constructor(){super(...arguments);d(F,5,this)}getLoginQRCode(e){return this.get("https://passport.bilibili.com/x/passport-login/web/qrcode/generate",e)}async getQRCodeLoginResult(e,t){let s=await this.get("https://passport.bilibili.com/x/passport-login/web/qrcode/poll",{query:{qrcode_key:e},skipWbiSign:!0,returnFormat:"RawResponse",...t});return{...(await s.json()).data,setCookie:s.headers.getSetCookie()}}async loginWithQRCode(e,t){return bt(this,e,t)}getBuvids(e){return this.get("https://api.bilibili.com/x/frontend/finger/spi",e)}getMyInfo(e,t){return this.get("https://api.bilibili.com/x/space/myinfo",{cookie:e,...t})}async initLoginSession(e,t=!0,s){this.logger.info("\u521D\u59CB\u5316\u7528\u6237\u6570\u636E...");let a=yt(e),{b_3:p,b_4:b}=await this.getBuvids(s);a.cookie=`${a.cookie} buvid3=${encodeURIComponent(p)}; buvid4=${encodeURIComponent(b)}; `;let w={userCookie:a};return t&&(this.clientConfig.context=w),this.logger.info(`\u5DF2\u5B8C\u6210\u7528\u6237\u767B\u5F55\uFF1A${a.uid}`),w}async getUserCard(e,t){return await this.get("https://api.bilibili.com/x/web-interface/card",{query:e,...t})}async getUserCards(e,t){let s=await this.get("https://api.vc.bilibili.com/account/v1/user/cards",{query:{uids:e.join(",")},...t});return e.map(a=>s.find(p=>p.mid===a)??null)}async getUpStat(e,t){return await this.get("https://api.bilibili.com/x/space/upstat",{query:{mid:e},...t})}};F=g(Ct),o(F,1,"getLoginQRCode",wt,G),o(F,1,"getQRCodeLoginResult",St,G),o(F,1,"loginWithQRCode",Bt,G),o(F,1,"getBuvids",Pt,G),o(F,1,"getMyInfo",Dt,G),o(F,1,"initLoginSession",xt,G),o(F,1,"getUserCard",At,G),o(F,1,"getUserCards",ft,G),o(F,1,"getUpStat",ht,G),c(F,G);var nr={None:0,Followed:2,Mutual:6,Blocked:128},fe={PackageCharge:1,PersonalSpace:11,Video:14,Comment:15,VideoEnd:17,H5Recommend:58,H5FollowList:106,H5FansList:107,Article:115,PrivateMessage:118,Search:120,VideoFollowBtn:164,H5CommonFollow:167,CreatorIncentive:192,ActivityPage:222,JointVideo:229,LikeDetail:235,FollowBarrage:245,BlockList:116},H={FOLLOW:{code:1,name:"\u5173\u6CE8",reSrc:fe.PersonalSpace},UNFOLLOW:{code:2,name:"\u53D6\u5173",reSrc:fe.H5FollowList},BLOCK:{code:5,name:"\u62C9\u9ED1",reSrc:fe.Comment},UNBLOCK:{code:6,name:"\u53D6\u6D88\u62C9\u9ED1",reSrc:fe.BlockList},REMOVE_FAN:{code:7,name:"\u8E22\u51FA\u7C89\u4E1D",reSrc:fe.H5FansList}};var h=class{constructor(i){this.options=i;i.pageParams&&(i.pageNum=this.parsePageNum(i.pageParams))}};import{isEmptyArr as oo}from"@ybgnb/utils";var ue=class extends h{hasNextPage(i,e,t){return!(this.options.total!==void 0&&(e.length>=this.options.total||(i-1)*this.options.pageSize>=this.options.total)||t!==null&&(t.data===null||oo(t.data)||this.getList(t).length<this.options.pageSize))}parsePageNum(i){if(i)return i.pn}updateNextPageParams(i,e,t,s){e.ps=this.options.pageSize,e.pn=i}getList(i){return i.data}};import{isEmptyArr as ro}from"@ybgnb/utils";var $=class n extends ue{static isPageDataWithTotalResponse(i){return i!==null&&typeof i.data=="object"&&i.data!==null&&"total"in i.data&&"list"in i.data}hasNextPage(i,e,t){return!(!super.hasNextPage(i,e,t)||t!==null&&(!n.isPageDataWithTotalResponse(t)||t.data.total<=e.length||ro(t.data.list)))}getList(i){return n.isPageDataWithTotalResponse(i)?i.data.list:[]}};import{sleep as Se}from"@ybgnb/utils";var kt,Yt,Gt,Wt,vt,Et,Vt,_t,Nt,Mt,It,Zt,Ft,Ot,qt,Xt,Lt,jt,zt,Ut,Jt,Kt,Tt,Qt,Ht,$t,es,ts,f,R=class extends(ts=u,es=[r()],$t=[r()],Ht=[r()],Qt=[r()],Tt=[r()],Kt=[r()],Jt=[r()],Ut=[r()],zt=[r()],jt=[r()],Lt=[r()],Xt=[r()],qt=[r()],Ot=[r()],Ft=[r()],Zt=[r()],It=[r()],Mt=[r()],Nt=[r()],_t=[r()],Vt=[r()],Et=[r()],vt=[r()],Wt=[r()],Gt=[r()],Yt=[r()],kt=[r()],ts){constructor(){super(...arguments);d(f,5,this)}get userService(){return this.api.client.user}buildRelationPager(e,t,s){return this.createPager("https://api.bilibili.com/x/relation/tag",new ue({pageSize:200,total:typeof e=="object"?e.count:void 0,...t}),{query:{tagid:typeof e=="object"?e.tagid:e},...s})}async fetchRelationPage(e,t,s){return await this.buildRelationPager(e,t,s).fetchNext()}async fetchRelationPageWithNextParams(e,t,s){return await this.buildRelationPager(e,t,s).fetchPageWithNextParams()}async fetchRelationAll(e,t,s,a){return await this.buildRelationPager(e,t,a).fetchAllPage(s)}async getRelation(e,t){return this.get("https://api.bilibili.com/x/space/wbi/acc/relation",{query:{mid:e,web_location:"333.1387"},...t})}getFollowTags(e){return this.get("https://api.bilibili.com/x/relation/tags",e)}getFollowingsByTag(e,t,s,a){return this.fetchRelationAll(e,t,s,a)}createFollowTag(e,t){return this.save("https://api.bilibili.com/x/relation/tag/create",{data:{tag:e},...t})}updateFollowTag(e,t){return this.save("https://api.bilibili.com/x/relation/tag/update",{data:e,...t})}deleteFollowTag(e,t){return this.save("https://api.bilibili.com/x/relation/tag/del",{data:{tagid:`${e}`},...t})}async getFollowsGroupedByTag(e,t,s){let a=await this.getFollowTags(s);for(let p of a)p.list=await this.getFollowingsByTag(p,e,t,s);return a}buildFollowingsPager(e,t,s){if(!e&&!this.currUserUid)throw new S(this.clientConfig,"uid \u4E3A\u7A7A");return this.createPager("https://api.bilibili.com/x/relation/followings",new $({pageSize:24,...t}),{query:{vmid:e??this.currUserUid,order:"desc"},...s})}async fetchFollowingsPage(e,t,s){return await this.buildFollowingsPager(e,t,s).fetchNext()}async fetchPageWithNextParams(e,t,s){return await this.buildFollowingsPager(e,t,s).fetchPageWithNextParams()}async fetchFollowingsAll(e,t,s,a){return await this.buildFollowingsPager(e,t,a).fetchAllPage(s)}async followUser(e,t){await this.modify(e,H.FOLLOW,!0,t)}async unFollowUser(e,t){await this.modify(e,H.UNFOLLOW,!0,t)}copyUsersToTag(e,t,s){return this.save("https://api.bilibili.com/x/relation/tags/copyUsers",{data:{fids:e.join(","),tagids:t.join(",")},...s})}buildFansPager(e,t,s){if(!e&&!this.currUserUid)throw new S(this.clientConfig,"uid \u4E3A\u7A7A");return this.createPager("https://api.bilibili.com/x/relation/fans",new $({pageSize:24,...t}),{query:{vmid:e??this.currUserUid,order:"desc"},...s})}async fetchFansPage(e,t,s){return await this.buildFansPager(e,t,s).fetchNext()}async fetchFansPageWithNextParams(e,t,s){return await this.buildFansPager(e,t,s).fetchPageWithNextParams()}async fetchFansAll(e,t,s,a){return await this.buildFansPager(e,t,a).fetchAllPage(s)}async removeFan(e,t){await this.modify(e,H.REMOVE_FAN,!0,t)}async getStat(e,t){return await this.get("https://api.bilibili.com/x/relation/stat",{query:{vmid:e},...t})}async avoidRiskControl(e,t){await this.get("https://api.bilibili.com/x/web-interface/wbi/search/all/v2",{query:{__refresh__:"true",_extra:"",context:"",page:"1",page_size:"42",order:"",pubtime_begin_s:"0",pubtime_end_s:"0",duration:"",from_source:"",from_spmid:"333.337",platform:"pc",highlight:"1",single_column:"0",keyword:`UID: ${e}`,ad_resource:"5646",source_tag:"3"},...t,logRequestParams:!1}),await Se(666,t?.signal),await this.getRelation(e),await Se(50,t?.signal),await this.getStat(e,t),await Se(50,t?.signal),await this.userService.getUpStat(e,t),await Se(666,t?.signal)}async modify(e,t,s=!0,a){s&&await this.avoidRiskControl(e,a),await this.save("https://api.bilibili.com/x/relation/modify",{query:{statistics:'{"appId":100,"platform":5}',...t.code!==H.BLOCK.code?{"x-bili-device-req-json":'{"platform":"web","device":"pc","spmid":"333.1387"}'}:{}},data:{fid:String(e),act:String(t.code),re_src:t.reSrc.toString(),spmid:"333.1387",extend_content:`{"entity":"query","entity_id":"${e}"}`,gaia_source:"web_main",...t.code!==H.BLOCK.code?{is_from_frontend_component:"true"}:{}},ignoreBusinessError:!1,...a})}async blockUser(e,t){await this.modify(e,H.BLOCK,!1,t)}async unBlockUser(e,t){await this.modify(e,H.UNBLOCK,!0,t)}buildBlocksPager(e,t){return this.createPager("https://api.bilibili.com/x/relation/blacks",new $({pageSize:50,...e}),{...t})}async fetchBlocksPage(e,t){return await this.buildBlocksPager(e,t).fetchNext()}async fetchBlocksPageWithNextParams(e,t){return await this.buildBlocksPager(e,t).fetchPageWithNextParams()}async fetchBlocksAll(e,t,s){return await this.buildBlocksPager(e,s).fetchAllPage(t)}};f=g(ts),o(f,1,"fetchRelationPage",es,R),o(f,1,"fetchRelationPageWithNextParams",$t,R),o(f,1,"fetchRelationAll",Ht,R),o(f,1,"getRelation",Qt,R),o(f,1,"getFollowTags",Tt,R),o(f,1,"getFollowingsByTag",Kt,R),o(f,1,"createFollowTag",Jt,R),o(f,1,"updateFollowTag",Ut,R),o(f,1,"deleteFollowTag",zt,R),o(f,1,"getFollowsGroupedByTag",jt,R),o(f,1,"fetchFollowingsPage",Lt,R),o(f,1,"fetchPageWithNextParams",Xt,R),o(f,1,"fetchFollowingsAll",qt,R),o(f,1,"followUser",Ot,R),o(f,1,"unFollowUser",Ft,R),o(f,1,"copyUsersToTag",Zt,R),o(f,1,"fetchFansPage",It,R),o(f,1,"fetchFansPageWithNextParams",Mt,R),o(f,1,"fetchFansAll",Nt,R),o(f,1,"getStat",_t,R),o(f,1,"avoidRiskControl",Vt,R),o(f,1,"modify",Et,R),o(f,1,"blockUser",vt,R),o(f,1,"unBlockUser",Wt,R),o(f,1,"fetchBlocksPage",Gt,R),o(f,1,"fetchBlocksPageWithNextParams",Yt,R),o(f,1,"fetchBlocksAll",kt,R),c(f,R);var we=class extends h{hasNextPage(i,e,t){if(t!==null){if(t.data==null)return!1;let s=t.data;if(s.cursor.ps===0||s.cursor.max===0)return!1}return!0}parsePageNum(i){}updateNextPageParams(i,e,t,s){if(s===null)e.ps=this.options.pageSize,e.max=0,e.view_at=0,e.business=e.business??"";else{let a=s.data.cursor;e.ps=a.ps,e.max=a.max,e.view_at=a.view_at,e.business=a.business}}getList(i){return i.data.list}};var ss,is,as,os,rs,ns,ps,ls,ms,z,E=class extends(ms=u,ls=[r()],ps=[r()],ns=[r()],rs=[r()],os=[r()],as=[r()],is=[r()],ss=[r()],ms){constructor(){super(...arguments);d(z,5,this)}buildPager(e,t,s){return this.createPager("https://api.bilibili.com/x/web-interface/history/cursor",new we({pageSize:20,...t}),{query:{business:e??""},...s})}async fetchPage(e,t,s){return await this.buildPager(e,t,s).fetchNext()}async fetchPageWithNextParams(e,t,s){return await this.buildPager(e,t,s).fetchPageWithNextParams()}async fetchAll(e,t,s,a){return await this.buildPager(e,t,a).fetchAllPage(s)}deleteHistory(e,t){return this.save("https://api.bilibili.com/x/v2/history/delete",{data:{kid:e},...t})}clearHistory(e){return this.save("https://api.bilibili.com/x/v2/history/clear",{...e})}setHistoryShadow(e,t){return this.save("https://api.bilibili.com/x/v2/history/shadow/set",{data:{switch:e},...t})}getHistoryShadow(e){return this.get("https://api.bilibili.com/x/v2/history/shadow",{...e})}report(e,t){return this.save("https://api.bilibili.com/x/v2/history/report",{data:{...e,platform:"web"},...t})}};z=g(ms),o(z,1,"fetchPage",ls,E),o(z,1,"fetchPageWithNextParams",ps,E),o(z,1,"fetchAll",ns,E),o(z,1,"deleteHistory",rs,E),o(z,1,"clearHistory",os,E),o(z,1,"setHistoryShadow",as,E),o(z,1,"getHistoryShadow",is,E),o(z,1,"report",ss,E),c(z,E);var us,cs,gs,ds,bs,ys,Rs,hs,fs,As,xs,_,k=class extends(xs=u,As=[r()],fs=[r()],hs=[r()],Rs=[r()],ys=[r()],bs=[r()],ds=[r()],gs=[r()],cs=[r()],us=[r()],xs){constructor(){super(...arguments);d(_,5,this)}getSettings(e){return this.get("https://api.vc.bilibili.com/link_setting/v1/link_setting/get",{query:{msg_notify:1,show_unfollowed_msg:1,build:0,mobi_app:"web"},...e})}updateSettings(e,t){return this.save("https://api.vc.bilibili.com/link_setting/v1/link_setting/set",{data:{...e,build:0,mobi_app:"web"},...t})}getBlockWords(e){return this.get("https://api.vc.bilibili.com/x/im/link_setting/get_block_words",{query:{build:0,mobi_app:"web"},...e})}addBlockWord(e,t){return this.save("https://api.vc.bilibili.com/x/im/link_setting/add_block_word",{data:{content:e,build:0,mobi_app:"web"},...t})}delBlockWord(e,t){return this.save("https://api.vc.bilibili.com/x/im/link_setting/del_block_word",{data:{content:e,build:0,mobi_app:"web"},...t})}getAutoReplyRules(e,t){return this.get("https://api.vc.bilibili.com/x/im/auto_reply/get_reply_text",{query:{"type[]":e,build:0,mobi_app:"web"},...t})}setAutoReplyRule(e,t){return this.save("https://api.vc.bilibili.com/x/im/auto_reply/set_reply_text",{data:{build:0,mobi_app:"web",...e},...t})}delAutoReplyRule(e,t){return this.save("https://api.vc.bilibili.com/x/im/auto_reply/del_reply_text",{data:{id:e,build:0,mobi_app:"web"},...t})}getSystemSettings(e){return this.get("https://api.vc.bilibili.com/link_setting/v1/link_setting/get_sys_setting",{query:{build:0,mobi_app:"web"},...e})}canShowCreateGroupIcon(e){return this.get("https://api.vc.bilibili.com/link_group/v1/member/show_create_group_icon",{query:{build:0,mobi_app:"web"},...e})}};_=g(xs),o(_,1,"getSettings",As,k),o(_,1,"updateSettings",fs,k),o(_,1,"getBlockWords",hs,k),o(_,1,"addBlockWord",Rs,k),o(_,1,"delBlockWord",ys,k),o(_,1,"getAutoReplyRules",bs,k),o(_,1,"setAutoReplyRule",ds,k),o(_,1,"delAutoReplyRule",gs,k),o(_,1,"getSystemSettings",cs,k),o(_,1,"canShowCreateGroupIcon",us,k),c(_,k);var Ce=class extends h{constructor(i){super({pageSize:20,...i})}hasNextPage(i,e,t){return!(t!==null&&(t.data==null||t.data.cursor.is_end))}parsePageNum(i){}updateNextPageParams(i,e,t,s){if(s!=null){let a=s.data.cursor;e.id=a.id,e.reply_time=a.time}}getList(i){return i.data.items}};var ke=class extends h{constructor(i){super({pageSize:20,...i})}hasNextPage(i,e,t){return!(t!==null&&(t.data==null||t.data.cursor.is_end))}parsePageNum(i){}updateNextPageParams(i,e,t,s){if(s!=null){let a=s.data.cursor;e.id=a.id,e.at_time=a.time}}getList(i){return i.data.items}};var Ye=class extends h{constructor(i){super({pageSize:20,...i})}hasNextPage(i,e,t){return!(t!==null&&(t.data==null||t.data.total.cursor.is_end))}parsePageNum(i){}updateNextPageParams(i,e,t,s){if(s!=null){let a=s.data.total.cursor;e.id=a.id,e.like_time=a.time}}getList(i){return i.data.total.items}};import{isEmptyArr as no}from"@ybgnb/utils";var Ge=class extends h{constructor(i){super({pageSize:17,...i})}hasNextPage(i,e,t){if(t!==null){if(t.data==null)return!1;let s=t.data;if(s==null||no(s))return!1}return!0}parsePageNum(i){}updateNextPageParams(i,e,t,s){t!=null&&t.length>0&&(e.cursor=t[t.length-1].cursor)}getList(i){return i.data}};var Ds,Ps,Bs,Ss,ws,Cs,ks,Ys,Gs,Ws,vs,Es,Vs,_s,Ns,Ms,Is,Zs,Fs,Os,P,A=class extends(Os=u,Fs=[r()],Zs=[r()],Is=[r()],Ms=[r()],Ns=[r()],_s=[r()],Vs=[r()],Es=[r()],vs=[r()],Ws=[r()],Gs=[r()],Ys=[r()],ks=[r()],Cs=[r()],ws=[r()],Ss=[r()],Bs=[r()],Ps=[r()],Ds=[r()],Os){constructor(){super(...arguments);d(P,5,this)}getUnreadCount(e){return this.get("https://api.vc.bilibili.com/x/im/web/msgfeed/unread",{query:{build:0,mobi_app:"web"},...e})}delMessage(e,t,s){return this.save("https://api.bilibili.com/x/msgfeed/del",{data:{tp:t,id:e,build:0,mobi_app:"web",platform:"web"},...s})}buildBasePager(e,t,s){return this.createPager(`https://api.bilibili.com/x/msgfeed/${e}`,t,{query:{platform:"web",build:0,mobi_app:"web",web_location:"333.40164"},...s})}buildReplyPager(e,t){return this.buildBasePager("reply",new Ce(e),t)}buildAtPager(e,t){return this.buildBasePager("at",new ke(e),t)}buildLikePager(e,t){return this.buildBasePager("like",new Ye(e),t)}async fetchReplyPage(e,t){return await this.buildReplyPager(e,t).fetchNext()}async fetchReplyPageWithNextParams(e,t){return await this.buildReplyPager(e,t).fetchPageWithNextParams()}async fetchReplyAll(e,t,s){return await this.buildReplyPager(e,s).fetchAllPage(t)}delReplyMessage(e,t){return this.delMessage(e,1,t)}async fetchAtPage(e,t){return await this.buildAtPager(e,t).fetchNext()}async fetchAtPageWithNextParams(e,t){return await this.buildAtPager(e,t).fetchPageWithNextParams()}async fetchAtAll(e,t,s){return await this.buildAtPager(e,s).fetchAllPage(t)}delAtMessage(e,t){return this.delMessage(e,2,t)}async fetchLikePage(e,t){return await this.buildLikePager(e,t).fetchNext()}async fetchLikePageWithNextParams(e,t){return await this.buildLikePager(e,t).fetchPageWithNextParams()}async fetchLikeAll(e,t,s){return await this.buildLikePager(e,s).fetchAllPage(t)}setLikeMsgState(e,t,s){return this.save("https://api.bilibili.com/x/msgfeed/notice",{data:{tp:0,id:e,notice_state:t,build:0,mobi_app:"web",platform:"web"},...s})}delLikeMessage(e,t){return this.delMessage(e,0,t)}buildSystemPager(e,t){return this.createPager("https://message.bilibili.com/x/sys-msg/query_notify_list",new Ge(e),{query:{page_size:20,build:0,platform:"web",mobi_app:"web",data_type:"web",has_up:"1",source_platform:"web",web_location:"333.40164"},...t})}async fetchSystemPage(e,t){return await this.buildSystemPager(e,t).fetchNext()}async fetchSystemPageWithNextParams(e,t){return await this.buildSystemPager(e,t).fetchPageWithNextParams()}async fetchSystemAll(e,t,s){return await this.buildSystemPager(e,s).fetchAllPage(t)}delSysMessages(e,t){return this.save("https://message.bilibili.com/x/sys-msg/del_notify_list",{query:{build:0,mobi_app:"web",csrf:this.clientConfig.context?.userCookie.bili_jct??""},data:JSON.stringify({station_ids:e.filter(s=>s.is_station===1).map(s=>s.id),ids:e.filter(s=>s.is_station!==1).map(s=>s.id),type:4,build:0,mobi_app:"web"}),...t})}};P=g(Os),o(P,1,"getUnreadCount",Fs,A),o(P,1,"delMessage",Zs,A),o(P,1,"fetchReplyPage",Is,A),o(P,1,"fetchReplyPageWithNextParams",Ms,A),o(P,1,"fetchReplyAll",Ns,A),o(P,1,"delReplyMessage",_s,A),o(P,1,"fetchAtPage",Vs,A),o(P,1,"fetchAtPageWithNextParams",Es,A),o(P,1,"fetchAtAll",vs,A),o(P,1,"delAtMessage",Ws,A),o(P,1,"fetchLikePage",Gs,A),o(P,1,"fetchLikePageWithNextParams",Ys,A),o(P,1,"fetchLikeAll",ks,A),o(P,1,"setLikeMsgState",Cs,A),o(P,1,"delLikeMessage",ws,A),o(P,1,"fetchSystemPage",Ss,A),o(P,1,"fetchSystemPageWithNextParams",Bs,A),o(P,1,"fetchSystemAll",Ps,A),o(P,1,"delSysMessages",Ds,A),c(P,A);var We=class extends h{constructor(i){super({pageSize:20,...i})}hasNextPage(i,e,t){if(t!==null){if(t.data==null)return!1;let s=t.data;if(s.has_more===0||s.session_list==null||s.session_list.length===0)return!1}return!0}parsePageNum(i){}updateNextPageParams(i,e,t,s){if(s!=null){let a=s.data.session_list;a!=null&&(e.end_ts=a[a.length-1].session_ts)}}getList(i){return i.data.session_list}};var qs,Xs,Ls,js,zs,Us,Js,Ks,J,N=class extends(Ks=u,Js=[r()],Us=[r()],zs=[r()],js=[r()],Ls=[r()],Xs=[r()],qs=[r()],Ks){constructor(){super(...arguments);d(J,5,this)}getUnreadCount(e){return this.get("https://api.vc.bilibili.com/session_svr/v1/session_svr/single_unread",{query:{build:0,mobi_app:"web"},...e})}getMyGroupUnreadCount(e){return this.get("https://api.vc.bilibili.com/session_svr/v1/session_svr/my_group_unread",{query:{build:0,mobi_app:"web"},...e})}buildPager(e,t,s){let a=e?.session_type??1;return this.createPager("https://api.vc.bilibili.com/session_svr/v1/session_svr/get_sessions",new We(t),{query:{...e,session_type:a,group_fold:a===1?"2":"1",size:a!==1?1:void 0,unfollow_fold:"0",sort_rule:"1",platform:"web",build:0,mobi_app:"web",web_location:"333.40164"},...s})}async fetchPage(e,t,s){return await this.buildPager(e,t,s).fetchNext()}async fetchPageWithNextParams(e,t,s){return await this.buildPager(e,t,s).fetchPageWithNextParams()}async fetchAll(e,t,s,a){return await this.buildPager(e,t,a).fetchAllPage(s)}async setSessionRead(e,t){await this.save("https://api.vc.bilibili.com/session_svr/v1/session_svr/update_ack",{data:{talker_id:e.talker_id,session_type:e.session_type,ack_seqno:e.ack_seqno,build:0,mobi_app:"web"},...t})}async delSession(e,t){await this.save("https://api.vc.bilibili.com/session_svr/v1/session_svr/remove_session",{data:{talker_id:e.talker_id,session_type:e.session_type,build:0,mobi_app:"web"},...t})}};J=g(Ks),o(J,1,"getUnreadCount",Js,N),o(J,1,"getMyGroupUnreadCount",Us,N),o(J,1,"fetchPage",zs,N),o(J,1,"fetchPageWithNextParams",js,N),o(J,1,"fetchAll",Ls,N),o(J,1,"setSessionRead",Xs,N),o(J,1,"delSession",qs,N),c(J,N);var ve=class extends h{constructor(i){super({pageSize:20,...i})}hasNextPage(i,e,t){if(t!==null){if(t.data==null)return!1;let s=t.data;if(s.count<=e.length||s.list.length===0)return!1}return!0}parsePageNum(i){if(i)return i.pn}updateNextPageParams(i,e,t,s){e.ps=this.options.pageSize,e.pn=i}getList(i){return i.data.list}};var Ts,Qs,Hs,$s,ei,ti,si,ii,ai,oi,O,W=class extends(oi=u,ai=[r()],ii=[r()],si=[r()],ti=[r()],ei=[r()],$s=[r()],Hs=[r()],Qs=[r()],Ts=[r()],oi){constructor(){super(...arguments);d(O,5,this)}buildPager(e,t){return this.createPager("https://api.bilibili.com/x/v2/history/toview/web",new ve(e),{query:{viewed:0,asc:!1,key:"",need_split:!0,build:0,platform:"web",mobi_app:"web"},...t})}async fetchPage(e,t){return await this.buildPager(e,t).fetchNext()}async fetchPageWithNextParams(e,t){return await this.buildPager(e,t).fetchPageWithNextParams()}async fetchAll(e,t,s){return await this.buildPager(e,s).fetchAllPage(t)}async addToView(e,t){await this.save("https://api.bilibili.com/x/v2/history/toview/add",{data:{aid:e},...t})}async addAllToView(e,t){await this.save("https://space.bilibili.com/ajax/channel/addAllToView",{data:{...typeof e=="string"?{bvid:e}:{aid:e}},...t})}async delToView(e,t){await this.save("https://api.bilibili.com/x/v2/history/toview/v2/dels",{data:{resources:e.join(",")},...t})}async clearToView(e,t){await this.save("https://api.bilibili.com/x/v2/history/toview/clear",{data:{clean_type:e},...t})}async moveFavFolder(e,t){await this.save("https://api.bilibili.com/x/v2/history/toview/move",{data:{resources:e.join(","),tar_media_id:t}})}async getTotal(e){let t=await this.get("https://api.bilibili.com/x/v3/fav/folder/list4navigate?web_location=333.1007",e);try{return t[1].mediaListResponse.count}catch{return}}};O=g(oi),o(O,1,"fetchPage",ai,W),o(O,1,"fetchPageWithNextParams",ii,W),o(O,1,"fetchAll",si,W),o(O,1,"addToView",ti,W),o(O,1,"addAllToView",ei,W),o(O,1,"delToView",$s,W),o(O,1,"clearToView",Hs,W),o(O,1,"moveFavFolder",Qs,W),o(O,1,"getTotal",Ts,W),c(O,W);var ee=class extends h{constructor(e,t="list",s="has_more",a){super(e);this.listKey=t;this.hasMoreKey=s;this.countKey=a}hasNextPage(e,t,s){return s!==null&&s.data?s.data.has_more:!0}parsePageNum(e){if(e)return e.pn}updateNextPageParams(e,t,s,a){t.ps=this.options.pageSize,t.pn=e}getList(e){return e.data[this.listKey]}getTotal(e){if(this.countKey&&e)return e.data[this.countKey]}};var ri,ni,pi,li,mi,ui,ci,gi,di,bi,yi,Ri,hi,fi,Ai,C,B=class extends(Ai=u,fi=[r()],hi=[r()],Ri=[r()],yi=[r()],bi=[r()],di=[r()],gi=[r()],ci=[r()],ui=[r()],mi=[r()],li=[r()],pi=[r()],ni=[r()],ri=[r()],Ai){constructor(){super(...arguments);d(C,5,this)}async getFavFolders(e,t,s){return await this.get("https://api.bilibili.com/x/v3/fav/folder/created/list-all",{query:{up_mid:e??this.currUserUid,...t?{rid:t}:{},web_location:"333.1387"},...s})??{list:[],count:0}}async getFavFolderMeta(e,t){return await this.get("https://api.bilibili.com/x/v3/fav/folder/info",{query:{media_id:e},...t})}buildPager(e,t,s){return this.createPager("https://api.bilibili.com/x/v3/fav/resource/list",new ee({pageSize:40,...t},"medias"),{query:{...e,platform:"web",web_location:"333.1387"},...s})}async fetchPage(e,t,s){return await this.buildPager(e,t,s).fetchNext()}async fetchPageWithNextParams(e,t,s){return await this.buildPager(e,t,s).fetchPageWithNextParams()}async fetchAll(e,t,s,a){let p=this.buildPager(e,t,a),b=await p.fetchAllPage(s);if(!p.lastApiResponse?.data.info)throw new S(this.clientConfig,`\u6536\u85CF\u5939[${e.media_id}]\u4E0D\u5B58\u5728`);return{info:p.lastApiResponse?.data.info,medias:b,has_more:!1}}async getFavIds(e,t){return await this.get("https://api.bilibili.com/x/v3/fav/resource/ids",{query:{media_id:e},...t})}async addFavFolder(e,t){return await this.save("https://api.bilibili.com/x/v3/fav/folder/add",{data:{...e},...t})}async updateFavFolder(e,t){let{id:s,...a}=e;return await this.save("https://api.bilibili.com/x/v3/fav/folder/edit",{data:{...a,media_id:s},...t})}async delFavFolder(e,t){await this.save("https://api.bilibili.com/x/v3/fav/folder/del",{data:{media_ids:e.join(",")},...t})}async copyFavItems(e,t,s,a,p){await this.save("https://api.bilibili.com/x/v3/fav/resource/copy",{data:{src_media_id:e,tar_media_id:t,mid:s,resources:a,platform:"web"},...p})}async moveFavItems(e,t,s,a,p){await this.save("https://api.bilibili.com/x/v3/fav/resource/move",{data:{src_media_id:e,tar_media_id:t,mid:s,resources:a,platform:"web"},...p})}async batchDelFavItems(e,t,s){await this.save("https://api.bilibili.com/x/v3/fav/resource/batch-del",{data:{media_id:e,resources:t,platform:"web"},...s})}async cleanFavItems(e,t){await this.save("https://api.bilibili.com/x/v3/fav/resource/clean",{data:{media_id:e,platform:"web"},...t})}async favVideo(e,t,s,a){return await this.save("https://api.bilibili.com/x/v3/fav/resource/deal",{data:{rid:e,add_media_ids:t.join(","),del_media_ids:s.join(","),type:"2",platform:"web",eab_x:"1",ramval:"10",ga:"1",gaia_source:"web_normal"},...a})}};C=g(Ai),o(C,1,"getFavFolders",fi,B),o(C,1,"getFavFolderMeta",hi,B),o(C,1,"fetchPage",Ri,B),o(C,1,"fetchPageWithNextParams",yi,B),o(C,1,"fetchAll",bi,B),o(C,1,"getFavIds",di,B),o(C,1,"addFavFolder",gi,B),o(C,1,"updateFavFolder",ci,B),o(C,1,"delFavFolder",ui,B),o(C,1,"copyFavItems",mi,B),o(C,1,"moveFavItems",li,B),o(C,1,"batchDelFavItems",pi,B),o(C,1,"cleanFavItems",ni,B),o(C,1,"favVideo",ri,B),c(C,B);var xi,Di,Pi,Bi,Si,wi,oe,U=class extends(wi=u,Si=[r()],Bi=[r()],Pi=[r()],Di=[r()],xi=[r()],wi){constructor(){super(...arguments);d(oe,5,this)}buildPager(e,t,s){return this.createPager("https://api.bilibili.com/x/v3/fav/folder/collected/list",new ee({pageSize:50,...t},void 0,void 0,"count"),{query:{up_mid:e??this.currUserUid,platform:"web",web_location:"333.1387"},...s})}async fetchPage(e,t,s){return await this.buildPager(e,t,s).fetchNext()}async fetchPageWithNextParams(e,t,s){return await this.buildPager(e,t,s).fetchPageWithNextParams()}async fetchAll(e,t,s,a){return await this.buildPager(e,t,a).fetchAllPage(s)}async add(e,t){await this.save("https://api.bilibili.com/x/v3/fav/season/fav",{data:{season_id:e,platform:"web"},...t})}async del(e,t){await this.save("https://api.bilibili.com/x/v3/fav/season/unfav",{data:{season_id:e,platform:"web"},...t})}};oe=g(wi),o(oe,1,"fetchPage",Si,U),o(oe,1,"fetchPageWithNextParams",Bi,U),o(oe,1,"fetchAll",Pi,U),o(oe,1,"add",Di,U),o(oe,1,"del",xi,U),c(oe,U);var Ee=class extends h{constructor(i){super({pageSize:20,...i})}hasNextPage(i,e,t){return t!==null&&t.data?t.data.has_more:!0}parsePageNum(i){if(i)return i.page}updateNextPageParams(i,e,t,s){e.page=i,e.page_size=this.options.pageSize}getList(i){return i.data.items}};import{sleepRandom as po}from"@ybgnb/utils";var Ci,ki,Yi,Gi,Wi,vi,Ei,te,q=class extends(Ei=u,vi=[r()],Wi=[r()],Gi=[r()],Yi=[r()],ki=[r()],Ci=[r()],Ei){constructor(){super(...arguments);d(te,5,this)}buildPager(e,t){return this.createPager("https://api.bilibili.com/x/polymer/web-dynamic/v1/opus/feed/fav",new Ee(e),{query:{platform:"web",web_location:"333.1387"},...t})}async fetchPage(e,t){return await this.buildPager(e,t).fetchNext()}async fetchPageWithNextParams(e,t){return await this.buildPager(e,t).fetchPageWithNextParams()}async fetchAll(e,t,s){return await this.buildPager(e,s).fetchAllPage(t)}async del(e,t){await this.post("https://api.bilibili.com/x/community/cosmo/interface/simple_action",{query:{csrf:this.clientConfig.context?.userCookie.bili_jct,gaia_source:"main_web"},data:JSON.stringify({"":{spmid:"444.42.0.0",from:"unknown",from_spmid:"333.1387.0.0"},action:4,entity:{object_id_str:e,type:{biz:2}}}),...t})}async addByCvId(e,t){await this.save("https://api.bilibili.com/x/article/favorites/add",{data:{id:e},...t})}async addByOpusId(e,t){let s=await this.get("https://api.bilibili.com/x/polymer/web-dynamic/v1/opus/detail",{query:{id:e},...t});await po(200,300),await this.addByCvId(s.fallback.id)}};te=g(Ei),o(te,1,"fetchPage",vi,q),o(te,1,"fetchPageWithNextParams",Wi,q),o(te,1,"fetchAll",Gi,q),o(te,1,"del",Yi,q),o(te,1,"addByCvId",ki,q),o(te,1,"addByOpusId",Ci,q),c(te,q);var _n={anime:{name:"\u6211\u7684\u8FFD\u756A",type:"1"},tv:{name:"\u6211\u7684\u8FFD\u5267",type:"2"}},ce={all:0,to_watch:1,watching:2,watched:3};var Vi,_i,Ni,Mi,Ii,Zi,Fi,se,X=class extends(Fi=u,Zi=[r()],Ii=[r()],Mi=[r()],Ni=[r()],_i=[r()],Vi=[r()],Fi){constructor(){super(...arguments);d(se,5,this)}buildPager(e,t,s=ce.all,a,p){return this.createPager("https://api.bilibili.com/x/space/bangumi/follow/list",new $({pageSize:24,...a}),{query:{vmid:e??this.currUserUid,type:t,follow_status:s,platform:"web",web_location:"333.1387"},...p})}async fetchPage(e,t,s=ce.all,a,p){return await this.buildPager(e,t,s,a,p).fetchNext()}async fetchPageWithNextParams(e,t,s=ce.all,a,p){return await this.buildPager(e,t,s,a,p).fetchPageWithNextParams()}async fetchAll(e,t,s=ce.all,a,p,b){return await this.buildPager(e,t,s,a,b).fetchAllPage(p)}async fetchMyAll(e,t=ce.all,s,a,p){return this.fetchAll(this.currUserUid,e,t,s,a,p)}async add(e,t){await this.save("https://api.bilibili.com/pgc/web/follow/add",{data:{season_id:e,platform:"web"},...t})}async del(e,t){await this.save("https://api.bilibili.com/pgc/web/follow/del",{data:{season_id:e,platform:"web"},...t})}};se=g(Fi),o(se,1,"fetchPage",Zi,X),o(se,1,"fetchPageWithNextParams",Ii,X),o(se,1,"fetchAll",Mi,X),o(se,1,"fetchMyAll",Ni,X),o(se,1,"add",_i,X),o(se,1,"del",Vi,X),c(se,X);import{isEmptyArr as lo}from"@ybgnb/utils";var Ve=class extends h{constructor(i){super({pageSize:40,...i})}hasNextPage(i,e,t){if(t!==null){if(t.data==null)return!1;let s=t.data,a=s.page;if(lo(s.list.vlist)||a.count<=e.length||a.count<=a.pn*a.ps)return!1}return!0}parsePageNum(i){if(i)return i.pn}updateNextPageParams(i,e,t,s){e.ps=this.options.pageSize,e.pn=i}getList(i){return i.data.list.vlist}};var Oi,qi,Xi,Li,Ae,ie=class extends(Li=u,Xi=[r()],qi=[r()],Oi=[r()],Li){constructor(){super(...arguments);d(Ae,5,this)}buildPager(e,t,s){return this.createPager("https://api.bilibili.com/x/space/wbi/arc/search",new Ve(t),{query:{...e,platform:"web"},...s})}async fetchPage(e,t,s){return await this.buildPager(e,t,s).fetchNext()}async fetchPageWithNextParams(e,t,s){return await this.buildPager(e,t,s).fetchPageWithNextParams()}async fetchAll(e,t,s,a){let p=this.buildPager(e,t,a);return await p.fetchAllPage(s),p.lastApiResponse.data.list.vlist=p.list,p.lastApiResponse.data}};Ae=g(Li),o(Ae,1,"fetchPage",Xi,ie),o(Ae,1,"fetchPageWithNextParams",qi,ie),o(Ae,1,"fetchAll",Oi,ie),c(Ae,ie);var ji,zi,Ui,Ji,Ki,ge,L=class extends(Ki=u,Ji=[r()],Ui=[r()],zi=[r()],ji=[r()],Ki){constructor(){super(...arguments);d(ge,5,this)}getOnlineCount(e,t){return this.get("https://api.bilibili.com/x/player/online/total",{query:{...this.resolveVideoId(e),cid:e.cid},...t})}getParts(e,t){return this.get("https://api.bilibili.com/x/player/pagelist",{query:{...this.resolveVideoId(e)},...t})}async getOwnParts(e,t){let s=await this.get("https://member.bilibili.com/x/vupre/web/archive/view",{query:{topic_grey:"1",bvid:e},...t});return s?.videos&&Array.isArray(s.videos)?s.videos:[]}getInfo(e,t){return this.get("https://api.bilibili.com/x/web-interface/wbi/view",{query:{...this.resolveVideoId(e)},...t})}};ge=g(Ki),o(ge,1,"getOnlineCount",Ji,L),o(ge,1,"getParts",Ui,L),o(ge,1,"getOwnParts",zi,L),o(ge,1,"getInfo",ji,L),c(ge,L);var _e=class extends h{constructor(i){super({pageSize:20,...i})}hasNextPage(i,e,t){if(t!==null){if(t.data==null)return!1;let s=t.data;if(s.has_more!==void 0)return s.has_more}return!0}parsePageNum(i){}updateNextPageParams(i,e,t,s){if(s!=null){let a=s.data;e.offset=a.offset}}getList(i){return i.data.items}};var Ti,Qi,Hi,$i,ea,de,K=class extends(ea=u,$i=[r()],Hi=[r()],Qi=[r()],Ti=[r()],ea){constructor(){super(...arguments);d(de,5,this)}buildDynamicPager(e,t,s){return this.createPager("https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/all",new _e(t),{query:{...e,platform:"web",build:0,mobi_app:"web",web_location:"333.1365"},...s})}async fetchDynamicPage(e,t,s){return await this.buildDynamicPager(e,t,s).fetchNext()}async fetchDynamicPageWithNextParams(e,t,s){return await this.buildDynamicPager(e,t,s).fetchPageWithNextParams()}async fetchDynamicAll(e,t,s,a){return await this.buildDynamicPager(e,t,a).fetchAllPage(s)}async newUpdatesCount(e,t){return(await this.get("https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/all/update",{query:{...e,web_location:"333.1365"},...t})).update_num}};de=g(ea),o(de,1,"fetchDynamicPage",$i,K),o(de,1,"fetchDynamicPageWithNextParams",Hi,K),o(de,1,"fetchDynamicAll",Qi,K),o(de,1,"newUpdatesCount",Ti,K),c(de,K);var ta,sa,ia,aa,oa,ra,na,pa,T,M=class extends(pa=u,na=[r()],ra=[r()],oa=[r()],aa=[r()],ia=[r()],sa=[r()],ta=[r()],pa){constructor(){super(...arguments);d(T,5,this);this._videoInfoService=null}get videoInfoService(){return this._videoInfoService||(this._videoInfoService=new L(this.api)),this._videoInfoService}getRelation(e,t){return this.get("https://api.bilibili.com/x/web-interface/archive/relation",{query:{...this.resolveVideoId(e)},returnFormat:"ApiResponse",ignoreBusinessError:!0,...t})}like(e,t){return this.save("https://api.bilibili.com/x/web-interface/archive/like",{data:{...this.resolveVideoId(e),like:e.like?"1":"2"},...t})}async hasLike(e,t){return await this.get("https://api.bilibili.com/x/web-interface/archive/has/like",{query:{...this.resolveVideoId(e)},...t})===1}dislike(e,t){return this.save("https://app.biliapi.net/x/v2/view/dislike",{data:{aid:e.avid,dislike:e.dislike?"0":"1"},...t})}async coin(e,t){let s=e.bvid;return s||(s=(await this.videoInfoService.getInfo(e)).bvid),this.save("https://api.bilibili.com/x/web-interface/coin/add",{data:{bvid:s,multiply:e.multiply,select_like:e.select_like??0,cross_domain:!0,from_spmid:"333.337.search-card.all.click",spmid:"333.788.0.0",statistics:'{"appId":100,"platform":5}',eab_x:2,ramval:0,source:"web_normal",ga:1},returnFormat:"ApiResponse",ignoreBusinessError:!0,...t,referer:`https://www.bilibili.com/video/${s}/?spm_id_from=333.1391.0.0`})}triple(e,t){return this.save("https://api.bilibili.com/x/web-interface/archive/like/triple",{data:{...this.resolveVideoId(e)},...t})}share(e,t){return this.save("https://api.bilibili.com/x/web-interface/share/add",{data:{...this.resolveVideoId(e),eab_x:1,ramval:316,source:"web_normal",ga:1},...t})}};T=g(pa),o(T,1,"getRelation",na,M),o(T,1,"like",ra,M),o(T,1,"hasLike",oa,M),o(T,1,"dislike",aa,M),o(T,1,"coin",ia,M),o(T,1,"triple",sa,M),o(T,1,"share",ta,M),c(T,M);var la,ma,et,be=class extends(ma=u,la=[r()],ma){constructor(){super(...arguments);d(et,5,this)}heartbeat(e,t,s){let a={params:{},body:{}},p=(w,x,D)=>{a.body[w]=a.params[D||"w"+w]=t[w]??e[D||"w"+w]??x};p("start_ts",Math.floor(Date.now()/1e3)),p("mid",this.currUserUid),p("aid",0),p("dt",2),p("realtime",0),p("played_time",0,"w_playedtime"),p("real_played_time",0),p("video_duration",180),p("last_play_progress_time",0);let b="https://www.bilibili.com/?spm_id_from=333.1365.0.0";return this.save("https://api.bilibili.com/x/click-interface/web/heartbeat",{query:{...a.params,web_location:1315873,...e},data:{quality:80,type:3,outer:0,statistics:'{"appId":100,"platform":5,"abtest":"","version":""}',max_play_progress_time:a.body.last_play_progress_time+a.body.played_time,refer_url:b,...a.body,mobi_app:"web",device:"web",platform:"web",cur_language_vt:"{}",perfer_type:"{}",play_mode:"1",spmid:"333.788.0.0",from_spmid:"333.1007.tianma.1-2-2.click",session:crypto.randomUUID().replace(/-/g,""),extra:'{"player_version":"4.8.36","play_method":3,"play_volume":1,"auto_play":0}',...t},init:{headers:{referer:b}},...s})}};et=g(ma),o(et,1,"heartbeat",la,be),c(et,be);var ua,ca,ga,Ne,re=class extends(ga=u,ca=[r()],ua=[r()],ga){constructor(){super(...arguments);d(Ne,5,this)}getDailyTaskStatus(e){return this.get("https://api.bilibili.com/x/member/web/exp/reward",e)}getCoinTodayExp(e){return this.get("https://api.bilibili.com/x/web-interface/coin/today/exp",e)}};Ne=g(ga),o(Ne,1,"getDailyTaskStatus",ca,re),o(Ne,1,"getCoinTodayExp",ua,re),c(Ne,re);var Me=class extends ee{constructor(e,t="list",s){super(e,t);this.hasMoreKey=s}hasNextPage(e,t,s){return s!==null&&s.data?s.data[this.hasMoreKey]:!0}};var da,ba,ya,Ra,ha,ye,Q=class extends(ha=u,Ra=[r()],ya=[r()],ba=[r()],da=[r()],ha){constructor(){super(...arguments);d(ye,5,this)}buildPopularPager(e,t){return this.createPager("https://api.bilibili.com/x/web-interface/popular",new Me({pageSize:20,...e},"list","no_more"),{query:{},...t})}async fetchPopularPage(e,t){return await this.buildPopularPager(e,t).fetchNext()}async fetchPageWithNextParams(e,t){return await this.buildPopularPager(e,t).fetchPageWithNextParams()}getPopularSeriesList(e){return this.get("https://api.bilibili.com/x/web-interface/popular/series/list",{...e})}getPopularSeriesInfo(e,t){return this.get("https://api.bilibili.com/x/web-interface/popular/series/one",{query:{number:e},...t})}};ye=g(ha),o(ye,1,"fetchPopularPage",Ra,Q),o(ye,1,"fetchPageWithNextParams",ya,Q),o(ye,1,"getPopularSeriesList",ba,Q),o(ye,1,"getPopularSeriesInfo",da,Q),c(ye,Q);var fa,Aa,xa,Ie,ne=class extends(xa=u,Aa=[r()],fa=[r()],xa){constructor(){super(...arguments);d(Ie,5,this)}getNavNum(e,t){return this.get("https://api.bilibili.com/x/space/navnum",{query:{mid:e},...t})}getFavNum(e,t){return this.get("https://api.bilibili.com/x/space/fav/nav",{query:{mid:e},...t})}};Ie=g(xa),o(Ie,1,"getNavNum",Aa,ne),o(Ie,1,"getFavNum",fa,ne),c(Ie,ne);var Da,Pa,Ba,Ze,pe=class extends(Ba=u,Pa=[r()],Da=[r()],Ba){constructor(){super(...arguments);d(Ze,5,this)}getSpaceSettings(e){return this.get("https://api.bilibili.com/x/space/setting",{query:{web_location:"333.1387",mid:this.currUserUid},...e})}updatePrivacy(e,t){let s=Object.keys(e)[0],a=e[s];return this.save("https://api.bilibili.com/x/space/privacy/modify",{data:{field:s,value:a},...t})}};Ze=g(Ba),o(Ze,1,"getSpaceSettings",Pa,pe),o(Ze,1,"updatePrivacy",Da,pe),c(Ze,pe);import{createLogger as mo}from"@ybgnb/utils";var Sa=(n="info")=>({timeout:5e3,userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",referer:"https://space.bilibili.com/10000",logLevel:n,logger:mo(n,(i,...e)=>{console[i](`[${new Date().toLocaleString()}]`,...e)}),autoMixinKey:!1}),tt={method:"GET",skipWbiSign:!1,autoCsrf:!0,logRequestParams:!0},wa={...tt,returnFormat:"ApiResponseData",ignoreBusinessError:!1};import{sleepRandom as Ca}from"@ybgnb/utils";var ka,Ya,Ga,Fe,le=class extends(Ga=u,Ya=[r()],ka=[r()],Ga){constructor(){super(...arguments);d(Fe,5,this)}get userService(){return this.api.client.user}getPlayUrl(e,t){return this.get("https://api.bilibili.com/x/player/wbi/playurl",{query:{fnval:1,fourk:1,high_quality:1,gaia_source:"view-card ",...e},init:{headers:{referer:`https://www.bilibili.com/video/${e.bvid}/?spm_id_from=333.1391.0.0`}},...t})}async getBestQualityUrl(e,t){let s=await this.getPlayUrl({...e,fnval:4048,qn:129},t);if(s.quality===s.accept_quality[0])return s;let a=s.accept_quality[0];await Ca(100,200);let p=await this.userService.getMyInfo(void 0,t);return await Ca(100,200),p.vip.type===0&&s.accept_quality[0]>=80&&(a=80),this.getPlayUrl({...e,qn:a},t)}};Fe=g(Ga),o(Fe,1,"getPlayUrl",Ya,le),o(Fe,1,"getBestQualityUrl",ka,le),c(Fe,le);import{isEmptyArr as uo}from"@ybgnb/utils";var Oe=class extends h{constructor(i){super({pageSize:20,...i})}hasNextPage(i,e,t){if(t!==null){if(t.data==null)return!1;let s=t.data,a=s.page;if(uo(s.replies)||a.count<=e.length||a.count<=a.num*a.size)return!1}return!0}updateNextPageParams(i,e,t,s){e.ps=this.options.pageSize,e.pn=i}getList(i){return i.data.replies}parsePageNum(i){if(i?.pn)return i?.pn}};import{isEmptyArr as co}from"@ybgnb/utils";var qe=class extends h{constructor(i){super({pageSize:20,...i})}hasNextPage(i,e,t){if(t!==null){if(t.data==null)return!1;let s=t.data,a=s.cursor;if(co(s.replies)||a.is_end)return!1}return!0}updateNextPageParams(i,e,t,s){if(s){let a=s.data;e.pagination_str=`{"offset":"${a.cursor.pagination_reply.next_offset}"}`}}getList(i){return i.data.replies}parsePageNum(i){}};var Wa,va,Ea,Va,_a,Na,Ma,Ia,Za,Fa,Oa,I,Y=class extends(Oa=u,Fa=[r()],Za=[r()],Ia=[r()],Ma=[r()],Na=[r()],_a=[r()],Va=[r()],Ea=[r()],va=[r()],Wa=[r()],Oa){constructor(){super(...arguments);d(I,5,this)}buildSubReplyPager(e,t,s){return this.createPager("https://api.bilibili.com/x/v2/reply/reply",new Oe({...t}),{query:{...e,platform:"web",web_location:"333.1369"},...s,referer:`https://t.bilibili.com/${e.oid}?spm_id_from=333.1387.0.0`})}async fetchSubReplyPage(e,t,s){return await this.buildSubReplyPager(e,t,s).fetchNext()}async fetchSubPageWithNextParams(e,t,s){return await this.buildSubReplyPager(e,t,s).fetchPageWithNextParams()}async fetchSubReplyAll(e,t,s,a){return await this.buildSubReplyPager(e,t,a).fetchAllPage(s)}buildPager(e,t,s){return this.createPager("https://api.bilibili.com/x/v2/reply/wbi/main",new qe({...t}),{query:{...e,plat:1,seek_rpid:"",web_location:"1315875"},...s,referer:`https://t.bilibili.com/${e.oid}?spm_id_from=333.1387.0.0`})}async fetchPage(e,t,s){return await this.buildPager(e,t,s).fetchNext()}async fetchPageWithNextParams(e,t,s){return await this.buildPager(e,t,s).fetchPageWithNextParams()}async fetchAll(e,t,s,a){return await this.buildPager(e,t,a).fetchAllPage(s)}async del(e,t){await this.save("https://api.bilibili.com/x/v2/reply/del",{data:{...e},...t,referer:`https://t.bilibili.com/${e.oid}?spm_id_from=333.1387.0.0`})}async like(e,t){await this.save("https://api.bilibili.com/x/v2/reply/action",{data:{action:"1",...e,statistics:'{"appId":100,"platform":5}'},...t,referer:`https://t.bilibili.com/${e.oid}?spm_id_from=333.1387.0.0`})}async hate(e,t){await this.save("https://api.bilibili.com/x/v2/reply/hate",{data:{action:"1",...e,statistics:'{"appId":100,"platform":5}'},...t,referer:`https://t.bilibili.com/${e.oid}?spm_id_from=333.1387.0.0`})}async add(e,t){return await this.save("https://api.bilibili.com/x/v2/reply/add",{data:{...e,plat:"1",at_name_to_mid:"{}",gaia_source:"main_web",statistics:'{"appId":100,"platform":5}'},...t,referer:`https://t.bilibili.com/${e.oid}?spm_id_from=333.1387.0.0`})}};I=g(Oa),o(I,1,"fetchSubReplyPage",Fa,Y),o(I,1,"fetchSubPageWithNextParams",Za,Y),o(I,1,"fetchSubReplyAll",Ia,Y),o(I,1,"fetchPage",Ma,Y),o(I,1,"fetchPageWithNextParams",Na,Y),o(I,1,"fetchAll",_a,Y),o(I,1,"del",Va,Y),o(I,1,"like",Ea,Y),o(I,1,"hate",va,Y),o(I,1,"add",Wa,Y),c(I,Y);import{fromBinary as Yo}from"@bufbuild/protobuf";import{enumDesc as V,fileDesc as go,messageDesc as m,serviceDesc as bo}from"@bufbuild/protobuf/codegenv2";var l=go("CghkbS5wcm90bxIgYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEiZAoGQXZhdGFyEgoKAmlkGAEgASgJEgsKA3VybBgCIAEoCRJBCgthdmF0YXJfdHlwZRgDIAEoDjIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkF2YXRhclR5cGUiIwoGQnViYmxlEgwKBHRleHQYASABKAkSCwoDdXJsGAIgASgJIsYBCghCdWJibGVWMhIMCgR0ZXh0GAEgASgJEgsKA3VybBgCIAEoCRJBCgtidWJibGVfdHlwZRgDIAEoDjIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkJ1YmJsZVR5cGUSFQoNZXhwb3N1cmVfb25jZRgEIAEoCBJFCg1leHBvc3VyZV90eXBlGAUgASgOMi4uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwb3N1cmVUeXBlIiYKBkJ1dHRvbhIMCgR0ZXh0GAEgASgJEg4KBmFjdGlvbhgCIAEoBSJYCg5CdXp6d29yZENvbmZpZxJGCghrZXl3b3JkcxgBIAMoCzI0LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkJ1enp3b3JkU2hvd0NvbmZpZyJ4ChJCdXp6d29yZFNob3dDb25maWcSDAoEbmFtZRgBIAEoCRIOCgZzY2hlbWEYAiABKAkSDgoGc291cmNlGAMgASgFEgoKAmlkGAQgASgDEhMKC2J1enp3b3JkX2lkGAUgASgDEhMKC3NjaGVtYV90eXBlGAYgASgFInsKCENoZWNrQm94EgwKBHRleHQYASABKAkSPAoEdHlwZRgCIAEoDjIuLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNoZWNrYm94VHlwZRIVCg1kZWZhdWx0X3ZhbHVlGAMgASgIEgwKBHNob3cYBCABKAgiPwoKQ2hlY2tCb3hWMhIMCgR0ZXh0GAEgASgJEgwKBHR5cGUYAiABKAUSFQoNZGVmYXVsdF92YWx1ZRgDIAEoCCKCAgoLQ2xpY2tCdXR0b24SFQoNcG9ydHJhaXRfdGV4dBgBIAMoCRIWCg5sYW5kc2NhcGVfdGV4dBgCIAMoCRIbChNwb3J0cmFpdF90ZXh0X2ZvY3VzGAMgAygJEhwKFGxhbmRzY2FwZV90ZXh0X2ZvY3VzGAQgAygJEkEKC3JlbmRlcl90eXBlGAUgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUmVuZGVyVHlwZRIMCgRzaG93GAYgASgIEjgKBmJ1YmJsZRgHIAEoCzIoLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkJ1YmJsZSLVAQoNQ2xpY2tCdXR0b25WMhIVCg1wb3J0cmFpdF90ZXh0GAEgAygJEhYKDmxhbmRzY2FwZV90ZXh0GAIgAygJEhsKE3BvcnRyYWl0X3RleHRfZm9jdXMYAyADKAkSHAoUbGFuZHNjYXBlX3RleHRfZm9jdXMYBCADKAkSEwoLcmVuZGVyX3R5cGUYBSABKAUSFwoPdGV4dF9pbnB1dF9wb3N0GAYgASgIEhUKDWV4cG9zdXJlX29uY2UYByABKAgSFQoNZXhwb3N1cmVfdHlwZRgIIAEoBSKhAQoJQ29tbWFuZERtEgoKAmlkGAEgASgDEgsKA29pZBgCIAEoAxILCgNtaWQYAyABKAkSDwoHY29tbWFuZBgEIAEoCRIPCgdjb250ZW50GAUgASgJEhAKCHByb2dyZXNzGAYgASgFEg0KBWN0aW1lGAcgASgJEg0KBW10aW1lGAggASgJEg0KBWV4dHJhGAkgASgJEg0KBWlkU3RyGAogASgJIlAKDURhbm1ha3VBSUZsYWcSPwoIZG1fZmxhZ3MYASADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1RmxhZyKtAgoLRGFubWFrdUVsZW0SCgoCaWQYASABKAMSEAoIcHJvZ3Jlc3MYAiABKAUSDAoEbW9kZRgDIAEoBRIQCghmb250c2l6ZRgEIAEoBRINCgVjb2xvchgFIAEoDRIPCgdtaWRIYXNoGAYgASgJEg8KB2NvbnRlbnQYByABKAkSDQoFY3RpbWUYCCABKAMSDgoGd2VpZ2h0GAkgASgFEg4KBmFjdGlvbhgKIAEoCRIMCgRwb29sGAsgASgFEg0KBWlkU3RyGAwgASgJEgwKBGF0dHIYDSABKAUSEQoJYW5pbWF0aW9uGBYgASgJEkIKCGNvbG9yZnVsGBggASgOMjAuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1Db2xvcmZ1bFR5cGUiKQoLRGFubWFrdUZsYWcSDAoEZG1pZBgBIAEoAxIMCgRmbGFnGAIgASgNIksKEURhbm1ha3VGbGFnQ29uZmlnEhAKCHJlY19mbGFnGAEgASgFEhAKCHJlY190ZXh0GAIgASgJEhIKCnJlY19zd2l0Y2gYAyABKAUi5AYKGERhbm11RGVmYXVsdFBsYXllckNvbmZpZxIpCiFwbGF5ZXJfZGFubWFrdV91c2VfZGVmYXVsdF9jb25maWcYASABKAgSLAokcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfc3dpdGNoGAQgASgIEisKI3BsYXllcl9kYW5tYWt1X2FpX3JlY29tbWVuZGVkX2xldmVsGAUgASgFEh8KF3BsYXllcl9kYW5tYWt1X2Jsb2NrdG9wGAYgASgIEiIKGnBsYXllcl9kYW5tYWt1X2Jsb2Nrc2Nyb2xsGAcgASgIEiIKGnBsYXllcl9kYW5tYWt1X2Jsb2NrYm90dG9tGAggASgIEiQKHHBsYXllcl9kYW5tYWt1X2Jsb2NrY29sb3JmdWwYCSABKAgSIgoacGxheWVyX2Rhbm1ha3VfYmxvY2tyZXBlYXQYCiABKAgSIwobcGxheWVyX2Rhbm1ha3VfYmxvY2tzcGVjaWFsGAsgASgIEh4KFnBsYXllcl9kYW5tYWt1X29wYWNpdHkYDCABKAISJAoccGxheWVyX2Rhbm1ha3Vfc2NhbGluZ2ZhY3RvchgNIAEoAhIdChVwbGF5ZXJfZGFubWFrdV9kb21haW4YDiABKAISHAoUcGxheWVyX2Rhbm1ha3Vfc3BlZWQYDyABKAUSJAocaW5saW5lX3BsYXllcl9kYW5tYWt1X3N3aXRjaBgQIAEoCBIpCiFwbGF5ZXJfZGFubWFrdV9zZW5pb3JfbW9kZV9zd2l0Y2gYESABKAUSLgomcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfbGV2ZWxfdjIYEiABKAUSmAEKKnBsYXllcl9kYW5tYWt1X2FpX3JlY29tbWVuZGVkX2xldmVsX3YyX21hcBgTIAMoCzJkLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm11RGVmYXVsdFBsYXllckNvbmZpZy5QbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsVjJNYXBFbnRyeRpLCilQbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsVjJNYXBFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAU6AjgBIo8IChFEYW5tdVBsYXllckNvbmZpZxIdChVwbGF5ZXJfZGFubWFrdV9zd2l0Y2gYASABKAgSIgoacGxheWVyX2Rhbm1ha3Vfc3dpdGNoX3NhdmUYAiABKAgSKQohcGxheWVyX2Rhbm1ha3VfdXNlX2RlZmF1bHRfY29uZmlnGAMgASgIEiwKJHBsYXllcl9kYW5tYWt1X2FpX3JlY29tbWVuZGVkX3N3aXRjaBgEIAEoCBIrCiNwbGF5ZXJfZGFubWFrdV9haV9yZWNvbW1lbmRlZF9sZXZlbBgFIAEoBRIfChdwbGF5ZXJfZGFubWFrdV9ibG9ja3RvcBgGIAEoCBIiChpwbGF5ZXJfZGFubWFrdV9ibG9ja3Njcm9sbBgHIAEoCBIiChpwbGF5ZXJfZGFubWFrdV9ibG9ja2JvdHRvbRgIIAEoCBIkChxwbGF5ZXJfZGFubWFrdV9ibG9ja2NvbG9yZnVsGAkgASgIEiIKGnBsYXllcl9kYW5tYWt1X2Jsb2NrcmVwZWF0GAogASgIEiMKG3BsYXllcl9kYW5tYWt1X2Jsb2Nrc3BlY2lhbBgLIAEoCBIeChZwbGF5ZXJfZGFubWFrdV9vcGFjaXR5GAwgASgCEiQKHHBsYXllcl9kYW5tYWt1X3NjYWxpbmdmYWN0b3IYDSABKAISHQoVcGxheWVyX2Rhbm1ha3VfZG9tYWluGA4gASgCEhwKFHBsYXllcl9kYW5tYWt1X3NwZWVkGA8gASgFEiYKHnBsYXllcl9kYW5tYWt1X2VuYWJsZWJsb2NrbGlzdBgQIAEoCBIkChxpbmxpbmVfcGxheWVyX2Rhbm1ha3Vfc3dpdGNoGBEgASgIEiQKHGlubGluZV9wbGF5ZXJfZGFubWFrdV9jb25maWcYEiABKAUSJgoecGxheWVyX2Rhbm1ha3VfaW9zX3N3aXRjaF9zYXZlGBMgASgFEikKIXBsYXllcl9kYW5tYWt1X3Nlbmlvcl9tb2RlX3N3aXRjaBgUIAEoBRIuCiZwbGF5ZXJfZGFubWFrdV9haV9yZWNvbW1lbmRlZF9sZXZlbF92MhgVIAEoBRKRAQoqcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfbGV2ZWxfdjJfbWFwGBYgAygLMl0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVQbGF5ZXJDb25maWcuUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRMZXZlbFYyTWFwRW50cnkaSwopUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRMZXZlbFYyTWFwRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgFOgI4ASIwChZEYW5tdVBsYXllckNvbmZpZ1BhbmVsEhYKDnNlbGVjdGlvbl90ZXh0GAEgASgJIksKGERhbm11UGxheWVyRHluYW1pY0NvbmZpZxIQCghwcm9ncmVzcxgBIAEoBRIdChVwbGF5ZXJfZGFubWFrdV9kb21haW4YDiABKAIikAMKFURhbm11UGxheWVyVmlld0NvbmZpZxJhCh1kYW5tdWt1X2RlZmF1bHRfcGxheWVyX2NvbmZpZxgBIAEoCzI6LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm11RGVmYXVsdFBsYXllckNvbmZpZxJSChVkYW5tdWt1X3BsYXllcl9jb25maWcYAiABKAsyMy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tdVBsYXllckNvbmZpZxJhCh1kYW5tdWt1X3BsYXllcl9keW5hbWljX2NvbmZpZxgDIAMoCzI6LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm11UGxheWVyRHluYW1pY0NvbmZpZxJdChtkYW5tdWt1X3BsYXllcl9jb25maWdfcGFuZWwYBCABKAsyOC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tdVBsYXllckNvbmZpZ1BhbmVsItgEChREYW5tdVdlYlBsYXllckNvbmZpZxIRCglkbV9zd2l0Y2gYASABKAgSEQoJYWlfc3dpdGNoGAIgASgIEhAKCGFpX2xldmVsGAMgASgFEhAKCGJsb2NrdG9wGAQgASgIEhMKC2Jsb2Nrc2Nyb2xsGAUgASgIEhMKC2Jsb2NrYm90dG9tGAYgASgIEhIKCmJsb2NrY29sb3IYByABKAgSFAoMYmxvY2tzcGVjaWFsGAggASgIEhQKDHByZXZlbnRzaGFkZRgJIAEoCBINCgVkbWFzaxgKIAEoCBIPCgdvcGFjaXR5GAsgASgCEg4KBmRtYXJlYRgMIAEoBRIRCglzcGVlZHBsdXMYDSABKAISEAoIZm9udHNpemUYDiABKAISEgoKc2NyZWVuc3luYxgPIAEoCBIRCglzcGVlZHN5bmMYECABKAgSEgoKZm9udGZhbWlseRgRIAEoCRIMCgRib2xkGBIgASgIEhIKCmZvbnRib3JkZXIYEyABKAUSEQoJZHJhd190eXBlGBQgASgJEhoKEnNlbmlvcl9tb2RlX3N3aXRjaBgVIAEoBRITCgthaV9sZXZlbF92MhgWIAEoBRJhCg9haV9sZXZlbF92Ml9tYXAYFyADKAsySC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tdVdlYlBsYXllckNvbmZpZy5BaUxldmVsVjJNYXBFbnRyeRozChFBaUxldmVsVjJNYXBFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAU6AjgBIlkKCkRtQ29sb3JmdWwSPgoEdHlwZRgBIAEoDjIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtQ29sb3JmdWxUeXBlEgsKA3NyYxgCIAEoCSJBCg9EbUV4cG9SZXBvcnRSZXESEgoKc2Vzc2lvbl9pZBgBIAEoCRILCgNvaWQYAiABKAMSDQoFc3BtaWQYBCABKAkiEQoPRG1FeHBvUmVwb3J0UmVzIuMMChFEbVBsYXllckNvbmZpZ1JlcRIKCgJ0cxgBIAEoAxJFCgZzd2l0Y2gYAiABKAsyNS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1U3dpdGNoEk4KC3N3aXRjaF9zYXZlGAMgASgLMjkuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdVN3aXRjaFNhdmUSWwoSdXNlX2RlZmF1bHRfY29uZmlnGAQgASgLMj8uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdVVzZURlZmF1bHRDb25maWcSYQoVYWlfcmVjb21tZW5kZWRfc3dpdGNoGAUgASgLMkIuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRTd2l0Y2gSXwoUYWlfcmVjb21tZW5kZWRfbGV2ZWwYBiABKAsyQS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsEkkKCGJsb2NrdG9wGAcgASgLMjcuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2NrdG9wEk8KC2Jsb2Nrc2Nyb2xsGAggASgLMjouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2Nrc2Nyb2xsEk8KC2Jsb2NrYm90dG9tGAkgASgLMjouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2NrYm90dG9tElMKDWJsb2NrY29sb3JmdWwYCiABKAsyPC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QmxvY2tjb2xvcmZ1bBJPCgtibG9ja3JlcGVhdBgLIAEoCzI6LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VCbG9ja3JlcGVhdBJRCgxibG9ja3NwZWNpYWwYDCABKAsyOy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QmxvY2tzcGVjaWFsEkcKB29wYWNpdHkYDSABKAsyNi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1T3BhY2l0eRJTCg1zY2FsaW5nZmFjdG9yGA4gASgLMjwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdVNjYWxpbmdmYWN0b3ISRQoGZG9tYWluGA8gASgLMjUuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdURvbWFpbhJDCgVzcGVlZBgQIAEoCzI0LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VTcGVlZBJXCg9lbmFibGVibG9ja2xpc3QYESABKAsyPi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1RW5hYmxlYmxvY2tsaXN0El4KGWlubGluZVBsYXllckRhbm1ha3VTd2l0Y2gYEiABKAsyOy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5JbmxpbmVQbGF5ZXJEYW5tYWt1U3dpdGNoElsKEnNlbmlvcl9tb2RlX3N3aXRjaBgTIAEoCzI/LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VTZW5pb3JNb2RlU3dpdGNoEmQKF2FpX3JlY29tbWVuZGVkX2xldmVsX3YyGBQgASgLMkMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRMZXZlbFYyIi8KC0RtU2VnQ29uZmlnEhEKCXBhZ2Vfc2l6ZRgBIAEoAxINCgV0b3RhbBgCIAEoAyLkAQoQRG1TZWdNb2JpbGVSZXBseRI8CgVlbGVtcxgBIAMoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm1ha3VFbGVtEg0KBXN0YXRlGAIgASgFEkAKB2FpX2ZsYWcYAyABKAsyLy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1QUlGbGFnEkEKC2NvbG9yZnVsU3JjGAUgAygLMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1Db2xvcmZ1bCKmAQoORG1TZWdNb2JpbGVSZXESCwoDcGlkGAEgASgDEgsKA29pZBgCIAEoAxIMCgR0eXBlGAMgASgFEhUKDXNlZ21lbnRfaW5kZXgYBCABKAMSFgoOdGVlbmFnZXJzX21vZGUYBSABKAUSCgoCcHMYBiABKAMSCgoCcGUYByABKAMSEQoJcHVsbF9tb2RlGAggASgFEhIKCmZyb21fc2NlbmUYCSABKAUiXQoNRG1TZWdPdHRSZXBseRIOCgZjbG9zZWQYASABKAgSPAoFZWxlbXMYAiADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1RWxlbSJMCgtEbVNlZ090dFJlcRILCgNwaWQYASABKAMSCwoDb2lkGAIgASgDEgwKBHR5cGUYAyABKAUSFQoNc2VnbWVudF9pbmRleBgEIAEoAyJdCg1EbVNlZ1NES1JlcGx5Eg4KBmNsb3NlZBgBIAEoCBI8CgVlbGVtcxgCIAMoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm1ha3VFbGVtIkwKC0RtU2VnU0RLUmVxEgsKA3BpZBgBIAEoAxILCgNvaWQYAiABKAMSDAoEdHlwZRgDIAEoBRIVCg1zZWdtZW50X2luZGV4GAQgASgDIt4GCgtEbVZpZXdSZXBseRIOCgZjbG9zZWQYASABKAgSOQoEbWFzaxgCIAEoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlZpZGVvTWFzaxJBCghzdWJ0aXRsZRgDIAEoCzIvLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlZpZGVvU3VidGl0bGUSEwoLc3BlY2lhbF9kbXMYBCADKAkSRAoHYWlfZmxhZxgFIAEoCzIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm1ha3VGbGFnQ29uZmlnEk4KDXBsYXllcl9jb25maWcYBiABKAsyNy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tdVBsYXllclZpZXdDb25maWcSFgoOc2VuZF9ib3hfc3R5bGUYByABKAUSDQoFYWxsb3cYCCABKAgSEQoJY2hlY2tfYm94GAkgASgJEhoKEmNoZWNrX2JveF9zaG93X21zZxgKIAEoCRIYChB0ZXh0X3BsYWNlaG9sZGVyGAsgASgJEhkKEWlucHV0X3BsYWNlaG9sZGVyGAwgASgJEh0KFXJlcG9ydF9maWx0ZXJfY29udGVudBgNIAMoCRJBCgtleHBvX3JlcG9ydBgOIAEoCzIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkV4cG9SZXBvcnQSSQoPYnV6endvcmRfY29uZmlnGA8gASgLMjAuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQnV6endvcmRDb25maWcSQgoLZXhwcmVzc2lvbnMYECADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5FeHByZXNzaW9ucxI/Cgpwb3N0X3BhbmVsGBEgAygLMisuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFBhbmVsEhUKDWFjdGl2aXR5X21ldGEYEiADKAkSQgoLcG9zdF9wYW5lbDIYEyADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Qb3N0UGFuZWxWMiJYCglEbVZpZXdSZXESCwoDcGlkGAEgASgDEgsKA29pZBgCIAEoAxIMCgR0eXBlGAMgASgFEg0KBXNwbWlkGAQgASgJEhQKDGlzX2hhcmRfYm9vdBgFIAEoBSLEBAoORG1XZWJWaWV3UmVwbHkSDQoFc3RhdGUYASABKAUSDAoEdGV4dBgCIAEoCRIRCgl0ZXh0X3NpZGUYAyABKAkSPQoGZG1fc2dlGAQgASgLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TZWdDb25maWcSQQoEZmxhZxgFIAEoCzIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm1ha3VGbGFnQ29uZmlnEhMKC3NwZWNpYWxfZG1zGAYgAygJEhEKCWNoZWNrX2JveBgHIAEoCBINCgVjb3VudBgIIAEoAxI/Cgpjb21tYW5kRG1zGAkgAygLMisuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ29tbWFuZERtEk0KDXBsYXllcl9jb25maWcYCiABKAsyNi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tdVdlYlBsYXllckNvbmZpZxIdChVyZXBvcnRfZmlsdGVyX2NvbnRlbnQYCyADKAkSQgoLZXhwcmVzc2lvbnMYDCADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5FeHByZXNzaW9ucxI/Cgpwb3N0X3BhbmVsGA0gAygLMisuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFBhbmVsEhUKDWFjdGl2aXR5X21ldGEYDiADKAkiKgoKRXhwb1JlcG9ydBIcChRzaG91bGRfcmVwb3J0X2F0X2VuZBgBIAEoCCJkCgpFeHByZXNzaW9uEg8KB2tleXdvcmQYASADKAkSCwoDdXJsGAIgASgJEjgKBnBlcmlvZBgDIAMoCzIoLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBlcmlvZCJJCgtFeHByZXNzaW9ucxI6CgRkYXRhGAEgAygLMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwcmVzc2lvbiIqChlJbmxpbmVQbGF5ZXJEYW5tYWt1U3dpdGNoEg0KBXZhbHVlGAEgASgIIicKBUxhYmVsEg0KBXRpdGxlGAEgASgJEg8KB2NvbnRlbnQYAiADKAkiVwoHTGFiZWxWMhINCgV0aXRsZRgBIAEoCRIPCgdjb250ZW50GAIgAygJEhUKDWV4cG9zdXJlX29uY2UYAyABKAgSFQoNZXhwb3N1cmVfdHlwZRgEIAEoBSIkCgZQZXJpb2QSDQoFc3RhcnQYASABKAMSCwoDZW5kGAIgASgDIjAKH1BsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWwSDQoFdmFsdWUYASABKAgiMgohUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRMZXZlbFYyEg0KBXZhbHVlGAEgASgFIjEKIFBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkU3dpdGNoEg0KBXZhbHVlGAEgASgIIikKGFBsYXllckRhbm1ha3VCbG9ja2JvdHRvbRINCgV2YWx1ZRgBIAEoCCIrChpQbGF5ZXJEYW5tYWt1QmxvY2tjb2xvcmZ1bBINCgV2YWx1ZRgBIAEoCCIpChhQbGF5ZXJEYW5tYWt1QmxvY2tyZXBlYXQSDQoFdmFsdWUYASABKAgiKQoYUGxheWVyRGFubWFrdUJsb2Nrc2Nyb2xsEg0KBXZhbHVlGAEgASgIIioKGVBsYXllckRhbm1ha3VCbG9ja3NwZWNpYWwSDQoFdmFsdWUYASABKAgiJgoVUGxheWVyRGFubWFrdUJsb2NrdG9wEg0KBXZhbHVlGAEgASgIIiQKE1BsYXllckRhbm1ha3VEb21haW4SDQoFdmFsdWUYASABKAIiLQocUGxheWVyRGFubWFrdUVuYWJsZWJsb2NrbGlzdBINCgV2YWx1ZRgBIAEoCCIlChRQbGF5ZXJEYW5tYWt1T3BhY2l0eRINCgV2YWx1ZRgBIAEoAiIrChpQbGF5ZXJEYW5tYWt1U2NhbGluZ2ZhY3RvchINCgV2YWx1ZRgBIAEoAiIuCh1QbGF5ZXJEYW5tYWt1U2VuaW9yTW9kZVN3aXRjaBINCgV2YWx1ZRgBIAEoBSIjChJQbGF5ZXJEYW5tYWt1U3BlZWQSDQoFdmFsdWUYASABKAUiOAoTUGxheWVyRGFubWFrdVN3aXRjaBINCgV2YWx1ZRgBIAEoCBISCgpjYW5faWdub3JlGAIgASgIIigKF1BsYXllckRhbm1ha3VTd2l0Y2hTYXZlEg0KBXZhbHVlGAEgASgIIi4KHVBsYXllckRhbm1ha3VVc2VEZWZhdWx0Q29uZmlnEg0KBXZhbHVlGAEgASgIIowDCglQb3N0UGFuZWwSDQoFc3RhcnQYASABKAMSCwoDZW5kGAIgASgDEhAKCHByaW9yaXR5GAMgASgDEg4KBmJpel9pZBgEIAEoAxJECghiaXpfdHlwZRgFIAEoDjIyLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RQYW5lbEJpelR5cGUSQwoMY2xpY2tfYnV0dG9uGAYgASgLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ2xpY2tCdXR0b24SPwoKdGV4dF9pbnB1dBgHIAEoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRleHRJbnB1dBI9CgljaGVja19ib3gYCCABKAsyKi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5DaGVja0JveBI2CgV0b2FzdBgJIAEoCzInLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRvYXN0IssDCgtQb3N0UGFuZWxWMhINCgVzdGFydBgBIAEoAxILCgNlbmQYAiABKAMSEAoIYml6X3R5cGUYAyABKAUSRQoMY2xpY2tfYnV0dG9uGAQgASgLMi8uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ2xpY2tCdXR0b25WMhJBCgp0ZXh0X2lucHV0GAUgASgLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVGV4dElucHV0VjISPwoJY2hlY2tfYm94GAYgASgLMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ2hlY2tCb3hWMhI4CgV0b2FzdBgHIAEoCzIpLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRvYXN0VjISOgoGYnViYmxlGAggASgLMiouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQnViYmxlVjISOAoFbGFiZWwYCSABKAsyKS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5MYWJlbFYyEhMKC3Bvc3Rfc3RhdHVzGAogASgFIikKCFJlc3BvbnNlEgwKBGNvZGUYASABKAUSDwoHbWVzc2FnZRgCIAEoCSL5AgoMU3VidGl0bGVJdGVtEgoKAmlkGAEgASgDEg4KBmlkX3N0chgCIAEoCRILCgNsYW4YAyABKAkSDwoHbGFuX2RvYxgEIAEoCRIUCgxzdWJ0aXRsZV91cmwYBSABKAkSOgoGYXV0aG9yGAYgASgLMiouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVXNlckluZm8SPAoEdHlwZRgHIAEoDjIuLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlN1YnRpdGxlVHlwZRIVCg1sYW5fZG9jX2JyaWVmGAggASgJEkEKB2FpX3R5cGUYCSABKA4yMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5TdWJ0aXRsZUFpVHlwZRJFCglhaV9zdGF0dXMYCiABKA4yMi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5TdWJ0aXRsZUFpU3RhdHVzIugCCglUZXh0SW5wdXQSHAoUcG9ydHJhaXRfcGxhY2Vob2xkZXIYASADKAkSHQoVbGFuZHNjYXBlX3BsYWNlaG9sZGVyGAIgAygJEkEKC3JlbmRlcl90eXBlGAMgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUmVuZGVyVHlwZRIYChBwbGFjZWhvbGRlcl9wb3N0GAQgASgIEgwKBHNob3cYBSABKAgSOAoGYXZhdGFyGAYgAygLMiguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQXZhdGFyEkEKC3Bvc3Rfc3RhdHVzGAcgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFN0YXR1cxI2CgVsYWJlbBgIIAEoCzInLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkxhYmVsIvsBCgtUZXh0SW5wdXRWMhIcChRwb3J0cmFpdF9wbGFjZWhvbGRlchgBIAMoCRIdChVsYW5kc2NhcGVfcGxhY2Vob2xkZXIYAiADKAkSQQoLcmVuZGVyX3R5cGUYAyABKA4yLC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5SZW5kZXJUeXBlEhgKEHBsYWNlaG9sZGVyX3Bvc3QYBCABKAgSOAoGYXZhdGFyGAUgAygLMiguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQXZhdGFyEhgKEHRleHRfaW5wdXRfbGltaXQYBiABKAUibwoFVG9hc3QSDAoEdGV4dBgBIAEoCRIQCghkdXJhdGlvbhgCIAEoBRIMCgRzaG93GAMgASgIEjgKBmJ1dHRvbhgEIAEoCzIoLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkJ1dHRvbiItCg1Ub2FzdEJ1dHRvblYyEgwKBHRleHQYASABKAkSDgoGYWN0aW9uGAIgASgFInMKB1RvYXN0VjISDAoEdGV4dBgBIAEoCRIQCghkdXJhdGlvbhgCIAEoBRJICg90b2FzdF9idXR0b25fdjIYAyABKAsyLy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Ub2FzdEJ1dHRvblYyIlwKCFVzZXJJbmZvEgsKA21pZBgBIAEoAxIMCgRuYW1lGAIgASgJEgsKA3NleBgDIAEoCRIMCgRmYWNlGAQgASgJEgwKBHNpZ24YBSABKAkSDAoEcmFuaxgGIAEoBSJTCglWaWRlb01hc2sSCwoDY2lkGAEgASgDEgwKBHBsYXQYAiABKAUSCwoDZnBzGAMgASgFEgwKBHRpbWUYBCABKAMSEAoIbWFza191cmwYBSABKAkibwoNVmlkZW9TdWJ0aXRsZRILCgNsYW4YASABKAkSDgoGbGFuRG9jGAIgASgJEkEKCXN1YnRpdGxlcxgDIAMoCzIuLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlN1YnRpdGxlSXRlbSozCgpBdmF0YXJUeXBlEhIKDkF2YXRhclR5cGVOb25lEAASEQoNQXZhdGFyVHlwZU5GVBABKlkKCkJ1YmJsZVR5cGUSEgoOQnViYmxlVHlwZU5vbmUQABIZChVCdWJibGVUeXBlQ2xpY2tCdXR0b24QARIcChhCdWJibGVUeXBlRG1TZXR0aW5nUGFuZWwQAipYCgxDaGVja2JveFR5cGUSFAoQQ2hlY2tib3hUeXBlTm9uZRAAEhkKFUNoZWNrYm94VHlwZUVuY291cmFnZRABEhcKE0NoZWNrYm94VHlwZUNvbG9yRE0QAipMCglETUF0dHJCaXQSFAoQRE1BdHRyQml0UHJvdGVjdBAAEhUKEURNQXR0ckJpdEZyb21MaXZlEAESEgoORE1BdHRySGlnaExpa2UQAio1Cg5EbUNvbG9yZnVsVHlwZRIMCghOb25lVHlwZRAAEhUKD1ZpcEdyYWR1YWxDb2xvchDh1AMqPAoMRXhwb3N1cmVUeXBlEhQKEEV4cG9zdXJlVHlwZU5vbmUQABIWChJFeHBvc3VyZVR5cGVETVNlbmQQASrBAQoQUG9zdFBhbmVsQml6VHlwZRIYChRQb3N0UGFuZWxCaXpUeXBlTm9uZRAAEh0KGVBvc3RQYW5lbEJpelR5cGVFbmNvdXJhZ2UQARIbChdQb3N0UGFuZWxCaXpUeXBlQ29sb3JETRACEhkKFVBvc3RQYW5lbEJpelR5cGVORlRETRADEh0KGVBvc3RQYW5lbEJpelR5cGVGcmFnQ2xvc2UQBBIdChlQb3N0UGFuZWxCaXpUeXBlUmVjb21tZW5kEAUqOAoKUG9zdFN0YXR1cxIUChBQb3N0U3RhdHVzTm9ybWFsEAASFAoQUG9zdFN0YXR1c0Nsb3NlZBABKk4KClJlbmRlclR5cGUSEgoOUmVuZGVyVHlwZU5vbmUQABIUChBSZW5kZXJUeXBlU2luZ2xlEAESFgoSUmVuZGVyVHlwZVJvdGF0aW9uEAIqNgoQU3VidGl0bGVBaVN0YXR1cxIICgROb25lEAASDAoIRXhwb3N1cmUQARIKCgZBc3Npc3QQAiorCg5TdWJ0aXRsZUFpVHlwZRIKCgZOb3JtYWwQABINCglUcmFuc2xhdGUQASoeCgxTdWJ0aXRsZVR5cGUSBgoCQ0MQABIGCgJBSRABKk4KEVRvYXN0RnVuY3Rpb25UeXBlEhkKFVRvYXN0RnVuY3Rpb25UeXBlTm9uZRAAEh4KGlRvYXN0RnVuY3Rpb25UeXBlUG9zdFBhbmVsEAEyoAUKAkRNEnMKC0RtU2VnTW9iaWxlEjAuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TZWdNb2JpbGVSZXEaMi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVNlZ01vYmlsZVJlcGx5EmQKBkRtVmlldxIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtVmlld1JlcRotLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtVmlld1JlcGx5EnEKDkRtUGxheWVyQ29uZmlnEjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1QbGF5ZXJDb25maWdSZXEaKi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5SZXNwb25zZRJqCghEbVNlZ090dBItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU2VnT3R0UmVxGi8uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TZWdPdHRSZXBseRJqCghEbVNlZ1NESxItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU2VnU0RLUmVxGi8uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TZWdTREtSZXBseRJ0CgxEbUV4cG9SZXBvcnQSMS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbUV4cG9SZXBvcnRSZXEaMS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbUV4cG9SZXBvcnRSZXNiBnByb3RvMw"),sl=m(l,0),il=m(l,1),al=m(l,2),ol=m(l,3),rl=m(l,4),nl=m(l,5),pl=m(l,6),ll=m(l,7),ml=m(l,8),ul=m(l,9),cl=m(l,10),gl=m(l,11),dl=m(l,12),bl=m(l,13),yl=m(l,14),Rl=m(l,15),hl=m(l,16),fl=m(l,17),Al=m(l,18),xl=m(l,19),Dl=m(l,20),Pl=m(l,21),Bl=m(l,22),Sl=m(l,23),wl=m(l,24),Cl=m(l,25),kl=m(l,26),Yl=m(l,27),Gl=m(l,28),Wl=m(l,29),vl=m(l,30),El=m(l,31),Vl=m(l,32),_l=m(l,33),Nl=m(l,34),Ml=m(l,35),Il=m(l,36),Zl=m(l,37),Fl=m(l,38),Ol=m(l,39),ql=m(l,40),Xl=m(l,41),Ll=m(l,42),jl=m(l,43),zl=m(l,44),Ul=m(l,45),Jl=m(l,46),Kl=m(l,47),Tl=m(l,48),Ql=m(l,49),Hl=m(l,50),$l=m(l,51),em=m(l,52),tm=m(l,53),sm=m(l,54),im=m(l,55),am=m(l,56),om=m(l,57),rm=m(l,58),nm=m(l,59),pm=m(l,60),lm=m(l,61),mm=m(l,62),um=m(l,63),cm=m(l,64),gm=m(l,65),dm=m(l,66),bm=m(l,67),ym=m(l,68),Rm=m(l,69),hm=m(l,70),fm=m(l,71),yo=(e=>(e[e.AvatarTypeNone=0]="AvatarTypeNone",e[e.AvatarTypeNFT=1]="AvatarTypeNFT",e))(yo||{}),Am=V(l,0),Ro=(t=>(t[t.BubbleTypeNone=0]="BubbleTypeNone",t[t.BubbleTypeClickButton=1]="BubbleTypeClickButton",t[t.BubbleTypeDmSettingPanel=2]="BubbleTypeDmSettingPanel",t))(Ro||{}),xm=V(l,1),ho=(t=>(t[t.CheckboxTypeNone=0]="CheckboxTypeNone",t[t.CheckboxTypeEncourage=1]="CheckboxTypeEncourage",t[t.CheckboxTypeColorDM=2]="CheckboxTypeColorDM",t))(ho||{}),Dm=V(l,2),fo=(t=>(t[t.DMAttrBitProtect=0]="DMAttrBitProtect",t[t.DMAttrBitFromLive=1]="DMAttrBitFromLive",t[t.DMAttrHighLike=2]="DMAttrHighLike",t))(fo||{}),Pm=V(l,3),Ao=(e=>(e[e.NoneType=0]="NoneType",e[e.VipGradualColor=60001]="VipGradualColor",e))(Ao||{}),Bm=V(l,4),xo=(e=>(e[e.ExposureTypeNone=0]="ExposureTypeNone",e[e.ExposureTypeDMSend=1]="ExposureTypeDMSend",e))(xo||{}),Sm=V(l,5),Do=(p=>(p[p.PostPanelBizTypeNone=0]="PostPanelBizTypeNone",p[p.PostPanelBizTypeEncourage=1]="PostPanelBizTypeEncourage",p[p.PostPanelBizTypeColorDM=2]="PostPanelBizTypeColorDM",p[p.PostPanelBizTypeNFTDM=3]="PostPanelBizTypeNFTDM",p[p.PostPanelBizTypeFragClose=4]="PostPanelBizTypeFragClose",p[p.PostPanelBizTypeRecommend=5]="PostPanelBizTypeRecommend",p))(Do||{}),wm=V(l,6),Po=(e=>(e[e.PostStatusNormal=0]="PostStatusNormal",e[e.PostStatusClosed=1]="PostStatusClosed",e))(Po||{}),Cm=V(l,7),Bo=(t=>(t[t.RenderTypeNone=0]="RenderTypeNone",t[t.RenderTypeSingle=1]="RenderTypeSingle",t[t.RenderTypeRotation=2]="RenderTypeRotation",t))(Bo||{}),km=V(l,8),So=(t=>(t[t.None=0]="None",t[t.Exposure=1]="Exposure",t[t.Assist=2]="Assist",t))(So||{}),Ym=V(l,9),wo=(e=>(e[e.Normal=0]="Normal",e[e.Translate=1]="Translate",e))(wo||{}),Gm=V(l,10),Co=(e=>(e[e.CC=0]="CC",e[e.AI=1]="AI",e))(Co||{}),Wm=V(l,11),ko=(e=>(e[e.ToastFunctionTypeNone=0]="ToastFunctionTypeNone",e[e.ToastFunctionTypePostPanel=1]="ToastFunctionTypePostPanel",e))(ko||{}),vm=V(l,12),qa=bo(l,0);import{sleepRandom as Go}from"@ybgnb/utils";var Xe=class extends u{async fetchAll(i,e){let t=(i.duration-1)/360+1,s=[];for(let a=1;a<=t;a++){let p=await this.api.fetchArrayBuffer("https://api.bilibili.com/x/v2/dm/web/seg.so",{query:{type:"1",oid:i.cid,segment_index:a},...e}),b=new Uint8Array(p),w=Yo(qa.method.dmSegMobile.output,b);s.push(...w.elems??[]),a<t&&await Go(500,1111,e?.signal)}return s}};var Le=class{get logger(){return this.config.logger}constructor(i){this.config={...Sa(i?.logLevel),...i??{}},this.api=new ze(this),this.createPager=this.api.createPager,this.request=this.api.request,this.user=new G(this.api),this.userExp=new re(this.api),this.relation=new R(this.api),this.history=new E(this.api),this.session=new N(this.api),this.sessionSettings=new k(this.api),this.message=new A(this.api),this.toview=new W(this.api),this.fav=new B(this.api),this.favCollection=new U(this.api),this.favOpus=new q(this.api),this.followBangumi=new X(this.api),this.spaceVideo=new ie(this.api),this.spaceStatus=new ne(this.api),this.spaceSettings=new pe(this.api),this.dynamic=new K(this.api),this.videoInfo=new L(this.api),this.videoAction=new M(this.api),this.videoReport=new be(this.api),this.videoRanking=new Q(this.api),this.videoPlayer=new le(this.api),this.comment=new Y(this.api),this.dm=new Xe(this.api),je.setAutoRefresh(this.config.autoMixinKey)}updateRequestContext(i){this.config.context=i}};var st=null,it=()=>(st||(st=new Le),st);var xe,Ue=null,ja=0,at,Xa=1440*60*1e3,za=!1,je={get:async()=>xe||(Ue||(Ue=Eo().catch(()=>{Ue=null})),await Ue,xe),setAutoRefresh(n){za=n}};function Wo(n,i){return Math.floor(n/Xa)!==Math.floor(i/Xa)}var vo=[46,47,18,2,53,8,23,32,15,50,10,31,58,3,45,35,27,43,5,49,33,9,42,19,29,28,14,39,12,38,41,13,37,48,7,16,24,55,40,61,26,17,0,1,60,51,30,4,22,25,54,21,56,59,6,63,57,62,11,36,20,34,44,52],ot=(n,i)=>{let e=n+i;return vo.map(t=>e[t]).join("").slice(0,32)},Eo=async()=>{await La(),at||clearInterval(at),za&&(at=setInterval(()=>{Wo(ja,Date.now())&&La()},3e5))},La=async()=>{try{let n=Date.now(),i=(await(await fetch("https://api.bilibili.com/x/web-interface/nav")).json()).data,e=a=>new URL(a).pathname.split("/").pop().replace(/\.[^.]+$/,""),t=e(i.wbi_img.img_url),s=e(i.wbi_img.sub_url);xe=ot(t,s),it().logger.info(`\u521D\u59CB\u5316 imgKey=${t} subKey=${s} mixinKey=${xe}`),ja=n}catch(n){throw it().logger.error("\u521D\u59CB\u5316 MixinKey \u5931\u8D25",n),n}};import{encodeURLParams as rt}from"@ybgnb/utils";async function Ua(n,i){let e=Math.floor(Date.now()/1e3),t=i??await je.get();return`${rt(n)}&w_rid=${Vo(rt({...n,wts:e})+t)}&wts=${e}`}async function Ja(n,i,e){try{return i||Object.keys(n).length===0?`${rt(n)}`:e?`${await Ua(n,ot(e.imgKey,e.subKey))}`:`${await Ua(n)}`}catch{throw new Error("\u67E5\u8BE2\u53C2\u6570\u65E0\u6548")}}import{mergeQueryParams as _o,parseUrl as No,sleep as Mo}from"@ybgnb/utils";var Je=class extends me{constructor(e,t,s){super(e);this.list=[];this.lastApiResponse=null;this.pageStrategy=t,t.options.pageNum!==void 0?this.nextPageNum=t.options.pageNum:this.nextPageNum=1;let{baseUrl:a,searchParams:p}=No(s.url);this.requestParams=Object.assign(_o(p,s.query)),this.requestOptions={...s,url:a,query:this.requestParams,returnFormat:"ApiResponse"}}mergeRequestOptions(e){this.requestParams={...this.requestParams,...e?.query},this.requestOptions={...this.requestOptions,...e,query:this.requestParams,returnFormat:"ApiResponse"}}async fetchNext(e){if(this.mergeRequestOptions(e),!this.pageStrategy.hasNextPage(this.nextPageNum,this.list,this.lastApiResponse))return null;this.pageStrategy.updateNextPageParams(this.nextPageNum,this.requestParams,this.list,this.lastApiResponse),this.lastApiResponse===null&&(this.nextPageNum===1||this.nextPageNum===this.pageStrategy.options.pageNum)&&Object.assign(this.requestParams,this.pageStrategy.options.pageParams);let t=await this.get(this.requestOptions.url,this.requestOptions);if(this.lastApiResponse=t,t.data==null)return null;this.nextPageNum++;let s=this.pageStrategy.getList(t)??[];return s.length<=0?null:(this.list.push(...s),s)}async fetchPageWithNextParams(e){return{items:await this.fetchNext(e),nextParams:this.getNextPageParams(),hasNext:this.pageStrategy.hasNextPage(this.nextPageNum,this.list,this.lastApiResponse),pageSize:this.pageStrategy.options.pageSize,total:this.pageStrategy.getTotal?.(this.lastApiResponse)??void 0}}getRequestDelay(e){return typeof e?.delay=="function"?e.delay(this.nextPageNum):typeof e?.delay=="number"?e.delay:1122}async fetchAllPage(e,t){for(this.mergeRequestOptions(t),this.nextPageNum=1,this.list=[],this.lastApiResponse=null;!this.requestOptions.signal?.aborted;){let s=await this.fetchNext(t);if(s===null||e&&await e(s,this.list)===!1)break;await Mo(this.getRequestDelay(t),this.requestOptions.signal)}return this.list}getNextPageParams(){let e={};return this.pageStrategy.updateNextPageParams(this.nextPageNum,e,this.list,this.lastApiResponse),e}getPageSize(){return this.pageStrategy.options.pageSize}};import{mergeQueryParams as Io,parseUrl as Zo,createAbortError as Ka,isCanceledError as Fo,getErrorMessage as Oo}from"@ybgnb/utils";var ze=class{constructor(i){this.client=i;this.logApiSuccess=(i,e,t,s)=>{if(e==="RawResponse")this.logger.info(`${i} \u8BF7\u6C42\u6210\u529F`);else{let a=s||this.isDebug?JSON.stringify(t):"";e==="ApiResponse"?this.logger.info(`${i} \u8BF7\u6C42\u6210\u529F`,a):this.logger.info(`${i} \u8BF7\u6C42\u6210\u529F`,a)}};this.logApiError=(i,e)=>{Fo(e)?this.logger.info(`${i} [${Oo(e)}]`):e instanceof ae?this.logger.info(`${i} [http error]\uFF1A${e.message}(${e.status})`):e instanceof S?this.logger.info(`${i} ${e.message}`):this.logger.info(`${i} \u51FA\u73B0\u672A\u77E5\u9519\u8BEF`,e)};this.buildFinalUrl=async(i,e)=>{let{baseUrl:t,searchParams:s}=Zo(i.url),a=Io(s,i.query),p=await Ja(a,i.skipWbiSign,i.wbiSignKeys);return i.logRequestParams?this.logger.info(`${e} \u8BF7\u6C42\u4E2D ${p}`):this.logger.info(`${e} \u8BF7\u6C42\u4E2D...`),p&&p.length>0?`${t}?${p}`:t};this.buildRequestBody=async i=>{let e=i.data;if(e)if(typeof e=="object"){if(!(e instanceof Blob)){if(!(e instanceof URLSearchParams)){if(!(e instanceof FormData)){let t={};Object.keys(e).forEach(function(s){if(e!=null){let a=e[s];a!=null&&(t[s]=String(a))}}),e=new URLSearchParams(t)}}}}else typeof e=="string"&&(i.init={...i.init},i.init.headers={...i.init.headers,"Content-Type":"application/json"});return i.method==="POST"&&e&&i.autoCsrf&&e instanceof URLSearchParams&&e.set("csrf",this.clientConfig.context?.userCookie.bili_jct??""),e};this.buildRequestInit=async(i,e)=>{let{context:t,userAgent:s,timeout:a,referer:p}=this.clientConfig;return{signal:i?.signal?AbortSignal.any([i?.signal,AbortSignal.timeout(a)]):AbortSignal.timeout(a),method:i.method,body:e,...i?.init??{},credentials:"include",headers:{"User-Agent":s,origin:"https://t.bilibili.com",cookie:i.cookie?.cookie||t?.userCookie.cookie||"",Referer:i.referer??(typeof p=="function"?p(i.url):p),...i?.init?.headers??{}}}};this.executeRequest=async(i,e)=>{i.url=await this.buildFinalUrl(i,e);let t=await this.buildRequestBody(i);t&&this.logger.debug(`${e} \u8BF7\u6C42\u4F53`,JSON.stringify(t));let s=await this.buildRequestInit(i,t);return await(this.clientConfig.fetcher??fetch)(i.url,s)};this.request=async(i,e)=>{if(e?.signal?.aborted)throw Ka();let t={...wa,url:i,...e},s=this.buildLogPrefix(t);try{let a=await this.executeRequest(t,s);if(!a.ok)throw new ae(this.clientConfig,t,a);if(t.returnFormat==="RawResponse")return this.logApiSuccess(s,"RawResponse",a,t.logResponseData),a;let p;try{p=await a.json()}catch(b){throw new ae(this.clientConfig,t,a,"\u89E3\u6790\u54CD\u5E94\u6570\u636E\u9519\u8BEF",b)}if(!t.ignoreBusinessError&&p.code!==0)throw new Be(this.clientConfig,t,p);return t.returnFormat==="ApiResponse"?(this.logApiSuccess(s,"ApiResponse",p,t.logResponseData),p):(this.logApiSuccess(s,"ApiResponseData",p.data,t.logResponseData),p.data)}catch(a){throw this.logApiError(s,a),a}};this.fetchRaw=async(i,e)=>{if(e?.signal?.aborted)throw Ka();let t={...tt,url:i,...e},s=this.buildLogPrefix(t),a=t.responseType;try{let p=await this.executeRequest(t,s);if(!p.ok)throw new ae(this.clientConfig,t,p);return this.logApiSuccess(s,"RawResponse",p,t.logResponseData),a==="json"?await p.json():a==="text"?await p.text():a==="blob"?await p.blob():a==="arrayBuffer"?await p.arrayBuffer():await p.formData()}catch(p){throw this.logApiError(s,p),p}};this.fetchText=async(i,e)=>this.fetchRaw(i,{...e,responseType:"text"});this.fetchBlob=async(i,e)=>this.fetchRaw(i,{...e,responseType:"blob"});this.fetchArrayBuffer=async(i,e)=>this.fetchRaw(i,{...e,responseType:"arrayBuffer"});this.fetchFormData=async(i,e)=>this.fetchRaw(i,{...e,responseType:"formData"});this.get=async(i,e)=>this.request(i,{...e,method:"GET"});this.post=async(i,e)=>this.request(i,{...e,method:"POST"});this.save=async(i,e)=>this.request(i,{...e,method:"POST",skipWbiSign:!1,autoCsrf:!0});this.createPager=(i,e,t)=>new Je(this,e,{url:i,...t})}get clientConfig(){return this.client.config}get logger(){return this.clientConfig.logger}get isDebug(){return this.clientConfig.logLevel==="debug"}buildLogPrefix(i){let e=this.clientConfig.context?.userCookie.uid;return`[bili API]${e?` [${e}]`:""} ${i.method} ${new URL(i.url).pathname}`}};var Eu=".bilibili.com",Vu=["SESSDATA","bili_jct","DedeUserID","DedeUserID__ckMd5","sid","buvid3","buvid4"];function Nu(n){switch(n.attr&3){case 0:return"default_public";case 1:return"default_private";case 2:return"other_public";case 3:return"other_private";default:return"default_public"}}function Mu(n){let i=n.attr&3;return i===0||i===1?5e4-n.media_count:1e3-n.media_count}var Ta=class extends u{};var Ou={archive:{type:"archive",name:"\u7A3F\u4EF6"},pgc:{type:"pgc",name:"\u5267\u96C6"},live:{type:"live",name:"\u76F4\u64AD"},articleList:{type:"article-list",name:"\u6587\u96C6"},article:{type:"article",name:"\u4E13\u680F"}};var Xu={phone:[1,3,5,7],web:[2],pad:[4,6],tv:[33],other:[0]};var ju={DYNAMIC_TYPE_NONE:{type:"DYNAMIC_TYPE_NONE",description:"\u65E0\u6548\u52A8\u6001"},DYNAMIC_TYPE_FORWARD:{type:"DYNAMIC_TYPE_FORWARD",description:"\u52A8\u6001\u8F6C\u53D1"},DYNAMIC_TYPE_AV:{type:"DYNAMIC_TYPE_AV",description:"\u6295\u7A3F\u89C6\u9891"},DYNAMIC_TYPE_PGC:{type:"DYNAMIC_TYPE_PGC",description:"\u5267\u96C6\uFF08\u756A\u5267\u3001\u7535\u5F71\u3001\u7EAA\u5F55\u7247\uFF09"},DYNAMIC_TYPE_COURSES:{type:"DYNAMIC_TYPE_COURSES",description:""},DYNAMIC_TYPE_WORD:{type:"DYNAMIC_TYPE_WORD",description:"\u7EAF\u6587\u5B57\u52A8\u6001"},DYNAMIC_TYPE_DRAW:{type:"DYNAMIC_TYPE_DRAW",description:"\u5E26\u56FE\u52A8\u6001"},DYNAMIC_TYPE_ARTICLE:{type:"DYNAMIC_TYPE_ARTICLE",description:"\u6295\u7A3F\u4E13\u680F"},DYNAMIC_TYPE_MUSIC:{type:"DYNAMIC_TYPE_MUSIC",description:"\u97F3\u4E50"},DYNAMIC_TYPE_COMMON_SQUARE:{type:"DYNAMIC_TYPE_COMMON_SQUARE",description:"\u88C5\u626E / \u5267\u96C6\u70B9\u8BC4 / \u666E\u901A\u5206\u4EAB"},DYNAMIC_TYPE_COMMON_VERTICAL:{type:"DYNAMIC_TYPE_COMMON_VERTICAL",description:""},DYNAMIC_TYPE_LIVE:{type:"DYNAMIC_TYPE_LIVE",description:"\u76F4\u64AD\u95F4\u5206\u4EAB"},DYNAMIC_TYPE_MEDIALIST:{type:"DYNAMIC_TYPE_MEDIALIST",description:"\u6536\u85CF\u5939"},DYNAMIC_TYPE_COURSES_SEASON:{type:"DYNAMIC_TYPE_COURSES_SEASON",description:"\u8BFE\u7A0B"},DYNAMIC_TYPE_COURSES_BATCH:{type:"DYNAMIC_TYPE_COURSES_BATCH",description:""},DYNAMIC_TYPE_AD:{type:"DYNAMIC_TYPE_AD",description:""},DYNAMIC_TYPE_APPLET:{type:"DYNAMIC_TYPE_APPLET",description:""},DYNAMIC_TYPE_SUBSCRIPTION:{type:"DYNAMIC_TYPE_SUBSCRIPTION",description:""},DYNAMIC_TYPE_LIVE_RCMD:{type:"DYNAMIC_TYPE_LIVE_RCMD",description:"\u76F4\u64AD\u5F00\u64AD"},DYNAMIC_TYPE_BANNER:{type:"DYNAMIC_TYPE_BANNER",description:""},DYNAMIC_TYPE_UGC_SEASON:{type:"DYNAMIC_TYPE_UGC_SEASON",description:"\u5408\u96C6\u66F4\u65B0"},DYNAMIC_TYPE_SUBSCRIPTION_NEW:{type:"DYNAMIC_TYPE_SUBSCRIPTION_NEW",description:""}};var Uu={AUTHOR_TYPE_NONE:"",AUTHOR_TYPE_NORMAL:"\u666E\u901A\u66F4\u65B0",AUTHOR_TYPE_PGC:"\u5267\u96C6\u66F4\u65B0",AUTHOR_TYPE_UGC_SEASON:"\u5408\u96C6\u66F4\u65B0"};var Qu={reply_video:{name:"\u8BC4\u8BBA",type:"reply",id:1},reply_dynamic:{name:"\u52A8\u6001",type:"dynamic",id:11},reply_comment:{name:"\u8BC4\u8BBA",type:"reply",id:17},reply_article:{name:"\u8BC4\u8BBA",type:"reply",id:12},like_reply:{name:"\u8BC4\u8BBA",type:"reply",id:0},like_dynamic:{name:"\u52A8\u6001",type:"dynamic",id:0}};var $u={followed:1,keys:2,recv:3,voyage:5};var tc={unknown:{code:0,name:"\u672A\u77E5\u6765\u6E90"},ios:{code:1,name:"iOS"},android:{code:2,name:"Android"},h5:{code:3,name:"H5"},pc_client:{code:4,name:"PC\u5BA2\u6237\u7AEF"},official_push_msg:{code:5,name:"\u5B98\u65B9\u63A8\u9001\u6D88\u606F"},push_notify_msg:{code:6,name:"\u63A8\u9001/\u901A\u77E5\u6D88\u606F"},web:{code:7,name:"Web"},auto_reply_followed:{code:8,name:"\u81EA\u52A8\u56DE\u590D - \u88AB\u5173\u6CE8\u56DE\u590D"},auto_reply_recv:{code:9,name:"\u81EA\u52A8\u56DE\u590D - \u6536\u5230\u6D88\u606F\u56DE\u590D"},auto_reply_keyword:{code:10,name:"\u81EA\u52A8\u56DE\u590D - \u5173\u952E\u8BCD\u56DE\u590D"},auto_reply_voyage:{code:11,name:"\u81EA\u52A8\u56DE\u590D - \u5927\u822A\u6D77\u4E0A\u8239\u56DE\u590D"},up_gift_msg:{code:12,name:"\u81EA\u52A8\u63A8\u9001 - UP\u4E3B\u8D60\u8A00"},fans_group_system:{code:13,name:"\u7C89\u4E1D\u56E2\u7CFB\u7EDF\u63D0\u793A"},system:{code:16,name:"\u7CFB\u7EDF"},mutual_follow:{code:17,name:"\u4E92\u76F8\u5173\u6CE8"},system_hint:{code:18,name:"\u7CFB\u7EDF\u63D0\u793A"},ai:{code:19,name:"AI"}};var ic={fav_video:"\u516C\u5F00\u6211\u7684\u6536\u85CF",user_info:"\u516C\u5F00\u6211\u7684\u751F\u65E5\u3001\u4E2A\u4EBA\u6807\u7B7E",comic:"\u516C\u5F00\u6211\u7684\u8FFD\u6F2B(\u4EC5APP)",bangumi:"\u516C\u5F00\u8FFD\u756A\u8FFD\u5267",disable_show_school:"\u516C\u5F00\u5B66\u6821\u4FE1\u606F",dress_up:"\u516C\u5F00\u62E5\u6709\u7684\u7C89\u4E1D\u88C5\u626E\uFF08\u4EC5APP\uFF09",coins_video:"\u516C\u5F00\u6700\u8FD1\u6295\u5E01\u7684\u89C6\u9891",played_game:"\u516C\u5F00\u6700\u8FD1\u73A9\u8FC7\u7684\u6E38\u620F",channel:"\u6295\u7A3F\u89C6\u9891\u5217\u8868\u4E2D\u5C55\u73B0\u76F4\u64AD\u56DE\u653E",likes_video:"\u516C\u5F00\u6700\u8FD1\u70B9\u8D5E\u7684\u89C6\u9891",close_space_medal:"\u516C\u5F00\u4F69\u6234\u7684\u7C89\u4E1D\u52CB\u7AE0",lesson_video:"\u6295\u7A3F\u89C6\u9891\u5217\u8868\u4E2D\u5C55\u73B0\u8BFE\u5802\u89C6\u9891",disable_following:"\u7981\u6B62\u516C\u5F00\u6211\u7684\u5173\u6CE8\u5217\u8868",only_show_wearing:"\u52CB\u7AE0\u5899\u516C\u5F00\u663E\u793A\u6240\u6709\u7C89\u4E1D\u52CB\u7AE0",charge_video:"\u6295\u7A3F\u89C6\u9891\u5217\u8868\u4E2D\u5C55\u73B0\u5305\u6708\u5145\u7535\u4E13\u5C5E\u89C6\u9891",disable_show_fans:"\u7981\u6B62\u516C\u5F00\u6211\u7684\u7C89\u4E1D\u5217\u8868",bbq:"\u516C\u5F00\u8F7B\u89C6\u9891\uFF1F",groups:"\u5708\u5B50\uFF1F",live_playback:"\u516C\u5F00\u6211\u7684\u76F4\u64AD\u56DE\u653E\uFF1F",tags:"\u516C\u5F00\u8BA2\u9605\u6807\u7B7E\uFF1F"};var oc={NORMAL:0,BLOCKED:1};var nc={NONE:0,MONTH:1,YEAR:2},pc={NONE:0,YES:1};export{ke as AtMsgPageStrategy,Uu as AuthorTypeMap,$u as AutoReplyTypeMap,sl as AvatarSchema,yo as AvatarType,Am as AvatarTypeSchema,Eu as BILIBILI_COOKIE_DOMAIN,ze as BaseApi,h as BasePageStrategy,u as BaseService,Be as BiliApiBusinessError,Pe as BiliApiError,ae as BiliApiHttpError,Le as BiliClient,S as BiliError,il as BubbleSchema,Ro as BubbleType,xm as BubbleTypeSchema,al as BubbleV2Schema,Ou as BusinessMap,ol as ButtonSchema,rl as BuzzwordConfigSchema,nl as BuzzwordShowConfigSchema,r as CatchError,pl as CheckBoxSchema,ll as CheckBoxV2Schema,ho as CheckboxType,Dm as CheckboxTypeSchema,ml as ClickButtonSchema,ul as ClickButtonV2Schema,cl as CommandDmSchema,Y as CommentService,qa as DM,fo as DMAttrBit,Pm as DMAttrBitSchema,Xe as DMService,gl as DanmakuAIFlagSchema,dl as DanmakuElemSchema,yl as DanmakuFlagConfigSchema,bl as DanmakuFlagSchema,Rl as DanmuDefaultPlayerConfigSchema,fl as DanmuPlayerConfigPanelSchema,hl as DanmuPlayerConfigSchema,Al as DanmuPlayerDynamicConfigSchema,xl as DanmuPlayerViewConfigSchema,Dl as DanmuWebPlayerConfigSchema,Xu as DeviceTypeCodeMap,Pl as DmColorfulSchema,Ao as DmColorfulType,Bm as DmColorfulTypeSchema,Bl as DmExpoReportReqSchema,Sl as DmExpoReportResSchema,wl as DmPlayerConfigReqSchema,Cl as DmSegConfigSchema,kl as DmSegMobileReplySchema,Yl as DmSegMobileReqSchema,Gl as DmSegOttReplySchema,Wl as DmSegOttReqSchema,vl as DmSegSDKReplySchema,El as DmSegSDKReqSchema,Vl as DmViewReplySchema,_l as DmViewReqSchema,Nl as DmWebViewReplySchema,_e as DynamicPageStrategy,K as DynamicService,ju as DynamicTypeMap,Ml as ExpoReportSchema,xo as ExposureType,Sm as ExposureTypeSchema,Il as ExpressionSchema,Zl as ExpressionsSchema,U as FavCollectionService,Ee as FavOpusPageStrategy,q as FavOpusService,B as FavService,X as FollowBangumiService,ce as FollowBangumiStatusMap,_n as FollowBangumiTypeMap,ee as HasMorePageStrategy,we as HistoryPageStrategy,E as HistoryService,Fl as InlinePlayerDanmakuSwitchSchema,Ol as LabelSchema,ql as LabelV2Schema,Ye as LikeMsgPageStrategy,ue as ListPageStrategy,Qu as MessageBusinessMap,A as MessageService,tc as MsgSourceMap,Je as PageApi,Xl as PeriodSchema,Ll as PlayerDanmakuAiRecommendedLevelSchema,jl as PlayerDanmakuAiRecommendedLevelV2Schema,zl as PlayerDanmakuAiRecommendedSwitchSchema,Ul as PlayerDanmakuBlockbottomSchema,Jl as PlayerDanmakuBlockcolorfulSchema,Kl as PlayerDanmakuBlockrepeatSchema,Tl as PlayerDanmakuBlockscrollSchema,Ql as PlayerDanmakuBlockspecialSchema,Hl as PlayerDanmakuBlocktopSchema,$l as PlayerDanmakuDomainSchema,em as PlayerDanmakuEnableblocklistSchema,tm as PlayerDanmakuOpacitySchema,sm as PlayerDanmakuScalingfactorSchema,im as PlayerDanmakuSeniorModeSwitchSchema,am as PlayerDanmakuSpeedSchema,rm as PlayerDanmakuSwitchSaveSchema,om as PlayerDanmakuSwitchSchema,nm as PlayerDanmakuUseDefaultConfigSchema,Do as PostPanelBizType,wm as PostPanelBizTypeSchema,pm as PostPanelSchema,lm as PostPanelV2Schema,Po as PostStatus,Cm as PostStatusSchema,ic as PrivacySettingsMap,H as RelationActMap,nr as RelationAttributeMap,R as RelationService,fe as RelationSourceMap,Bo as RenderType,km as RenderTypeSchema,Ce as ReplyMsgPageStrategy,qe as ReplyPageStrategy,mm as ResponseSchema,$ as ResponseWithTotalStrategy,We as SessionPageStrategy,N as SessionService,k as SessionSettingsService,oc as SilenceStatusMap,pe as SpaceSettingsService,ne as SpaceStatusService,Ve as SpaceVPageStrategy,ie as SpaceVideoService,Me as SpecifyHasMorePageStrategy,Oe as SubReplyPageStrategy,So as SubtitleAiStatus,Ym as SubtitleAiStatusSchema,wo as SubtitleAiType,Gm as SubtitleAiTypeSchema,um as SubtitleItemSchema,Co as SubtitleType,Wm as SubtitleTypeSchema,Ge as SystemMsgPageStrategy,cm as TextInputSchema,gm as TextInputV2Schema,ve as ToViewPageStrategy,W as ToViewService,bm as ToastButtonV2Schema,ko as ToastFunctionType,vm as ToastFunctionTypeSchema,dm as ToastSchema,ym as ToastV2Schema,Vu as USER_COOKIE_NAMES,re as UserExpService,Rm as UserInfoSchema,G as UserService,M as VideoActionService,L as VideoInfoService,hm as VideoMaskSchema,le as VideoPlayerService,Q as VideoRankingService,be as VideoReportService,fm as VideoSubtitleSchema,Ta as VideoUploadService,pc as VipStatusMap,nc as VipTypeMap,me as WithApi,wa as defaultApiRequestOptions,tt as defaultBaseRequestOptions,l as file_dm,ot as generateMixinKey,it as getCommonBiliClient,Sa as getDefaultClientConfig,Mu as getFavFolderRemaining,Nu as getFavFolderType,Ja as handleUrlParams,bt as loginUserWithQRCode,je as mixinKeyStore,yt as parseUserCookie,Ua as wbiSign};
package/package.json CHANGED
@@ -1,21 +1,28 @@
1
1
  {
2
2
  "name": "@ybgnb/bili-api",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "description": "bilibili 的 Node.js 接口封装库",
5
5
  "type": "module",
6
- "main": "./dist/index.js",
7
6
  "types": "./dist/index.d.ts",
7
+ "module": "./dist/index.js",
8
+ "main": "./dist/index.js",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js"
13
+ }
14
+ },
8
15
  "files": [
9
16
  "dist"
10
17
  ],
11
18
  "scripts": {
12
- "类型检查": "tsc --noEmit -p tsconfig.app.json",
13
- "代码检查": "eslint .",
14
- "类型代码检查": "tsc --noEmit -p tsconfig.app.json && eslint .",
15
- "barrelsby": "barrelsby -c barrelsby.json --noHeader --location top && tsx ./scripts/revise-index.ts",
16
- "build": "tsc -p tsconfig.app.json",
17
- "npm 登录": " npm login",
18
- "npm 发布": " npm publish --access public"
19
+ "check": "tsc -p tsconfig.dev.json --noEmit && eslint .",
20
+ "lint": "eslint . --fix",
21
+ "format": "prettier --write src/",
22
+ "barrelsby": "barrelsby -c barrelsby.json && import-suffixer \"src/**/*.ts\"",
23
+ "build": "tsup",
24
+ "npm login": "npm login",
25
+ "npm publish": "npm publish --access public"
19
26
  },
20
27
  "repository": {
21
28
  "type": "git",
@@ -35,7 +42,8 @@
35
42
  "license": "MIT",
36
43
  "packageManager": "pnpm@10.30.3",
37
44
  "dependencies": {
38
- "@ybgnb/utils": "^0.0.8",
45
+ "@bufbuild/protobuf": "^2.12.1",
46
+ "@ybgnb/utils": "^0.2.8",
39
47
  "md5": "^2.3.0"
40
48
  },
41
49
  "devDependencies": {
@@ -44,12 +52,10 @@
44
52
  "barrelsby": "^2.8.1",
45
53
  "eslint": "^9.35.0",
46
54
  "eslint-config-prettier": "^10.1.8",
47
- "jiti": "^2.6.1",
48
- "msw": "^2.12.14",
55
+ "import-suffixer": "^0.0.1",
49
56
  "prettier": "^3.8.1",
50
- "tsx": "^4.21.0",
57
+ "tsup": "^8.5.1",
51
58
  "typescript": "^6.0.2",
52
- "typescript-eslint": "^8.43.0",
53
- "vitest": "^4.1.2"
59
+ "typescript-eslint": "^8.43.0"
54
60
  }
55
61
  }
package/readme.md CHANGED
@@ -1,3 +1,4 @@
1
1
  # bili-api
2
2
 
3
- bilibili Node.js 接口封装库。
3
+ bilibili 的接口封装库,基于 fetch,支持 Node.js 与浏览器环境(如 Electron 渲染进程)。
4
+
@@ -1,35 +0,0 @@
1
- import type { BiliClient } from '../client/client.js';
2
- import type { ApiResponse, ApiResponseData, RawResponse, ReturnFormat, ReturnFormatMap } from '../types/core/response.js';
3
- import type { RequestOptions } from '../types/core/request.js';
4
- import type { BasePageStrategy } from './page/strategies/base.js';
5
- import { PageApi } from './page/page.js';
6
- /**
7
- * 基础接口封装
8
- */
9
- export declare class BaseApi {
10
- client: BiliClient;
11
- constructor(client: BiliClient);
12
- get clientConfig(): import("../index.js").BiliClientConfig;
13
- get logging(): import("../index.js").ClientLogging;
14
- get isDebug(): boolean;
15
- /**
16
- * 记录接口成功的日志
17
- */
18
- logApiSuccess: (prefix: string, returnFormat: ReturnFormat, response: RawResponse | ApiResponse | ApiResponseData, logResponseData?: boolean) => void;
19
- /**
20
- * 记录接口错误的日志
21
- */
22
- logApiError: (prefix: string, error: unknown) => void;
23
- request: <RData extends ApiResponseData = ApiResponseData, RRFormat extends ReturnFormat | undefined = undefined>(url: string, options?: Partial<RequestOptions<RRFormat>>) => Promise<ReturnFormatMap<RData, RRFormat>>;
24
- get: <RData extends ApiResponseData = ApiResponseData, RRFormat extends ReturnFormat | undefined = undefined>(url: string, options?: Partial<RequestOptions<RRFormat>>) => Promise<ReturnFormatMap<RData, RRFormat>>;
25
- post: <RData extends ApiResponseData = ApiResponseData, RRFormat extends ReturnFormat | undefined = undefined>(url: string, options?: Partial<RequestOptions<RRFormat>>) => Promise<ReturnFormatMap<RData, RRFormat>>;
26
- save: <RData extends ApiResponseData = ApiResponseData, RRFormat extends ReturnFormat | undefined = undefined>(url: string, options?: Partial<RequestOptions<RRFormat>>) => Promise<ReturnFormatMap<RData, RRFormat>>;
27
- /**
28
- * 创建翻页器
29
- * @param pageStrategy 分页策略
30
- * @param url 请求url
31
- * @param options 请求选项
32
- */
33
- createPager: <D extends ApiResponseData = ApiResponseData, RD extends ApiResponseData = D[]>(url: string, pageStrategy: BasePageStrategy, options?: Partial<RequestOptions<"ApiResponse">>) => PageApi<D, RD>;
34
- }
35
- //# sourceMappingURL=base.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/api/base.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,WAAW,EACX,YAAY,EACZ,eAAe,EAChB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAG3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAExC;;GAEG;AACH,qBAAa,OAAO;IACC,MAAM,EAAE,UAAU;gBAAlB,MAAM,EAAE,UAAU;IAErC,IAAW,YAAY,2CAEtB;IAED,IAAI,OAAO,wCAEV;IAED,IAAI,OAAO,YAEV;IAED;;OAEG;IACH,aAAa,GACX,QAAQ,MAAM,EACd,cAAc,YAAY,EAC1B,UAAU,WAAW,GAAG,WAAW,GAAG,eAAe,EACrD,kBAAkB,OAAO,UAc1B;IAED;;OAEG;IACH,WAAW,GAAI,QAAQ,MAAM,EAAE,OAAO,OAAO,UAW5C;IAED,OAAO,GACL,KAAK,SAAS,eAAe,GAAG,eAAe,EAC/C,QAAQ,SAAS,YAAY,GAAG,SAAS,GAAG,SAAS,EAErD,KAAK,MAAM,EACX,UAAU,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,KAC1C,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAkH3C;IAED,GAAG,GAAU,KAAK,SAAS,eAAe,GAAG,eAAe,EAAE,QAAQ,SAAS,YAAY,GAAG,SAAS,GAAG,SAAS,EACjH,KAAK,MAAM,EACX,UAAU,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,KAC1C,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAE3C;IAED,IAAI,GAAU,KAAK,SAAS,eAAe,GAAG,eAAe,EAAE,QAAQ,SAAS,YAAY,GAAG,SAAS,GAAG,SAAS,EAClH,KAAK,MAAM,EACX,UAAU,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,KAC1C,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAE3C;IAED,IAAI,GAAU,KAAK,SAAS,eAAe,GAAG,eAAe,EAAE,QAAQ,SAAS,YAAY,GAAG,SAAS,GAAG,SAAS,EAClH,KAAK,MAAM,EACX,UAAU,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,KAC1C,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAE3C;IAED;;;;;OAKG;IACI,WAAW,GAAI,CAAC,SAAS,eAAe,GAAG,eAAe,EAAE,EAAE,SAAS,eAAe,GAAG,CAAC,EAAE,EACjG,KAAK,MAAM,EACX,cAAc,gBAAgB,EAC9B,UAAU,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,oBAGjD;CACF"}
package/dist/api/base.js DELETED
@@ -1,184 +0,0 @@
1
- import { handleUrlParams, mergeParams, parseURL } from '../utils/url.js';
2
- import { BiliAbortError, BiliApiBusinessError, BiliApiHttpError, BiliError } from '../error/error.js';
3
- import { defaultRequestOptions } from '../config/config.js';
4
- import { PageApi } from './page/page.js';
5
- /**
6
- * 基础接口封装
7
- */
8
- export class BaseApi {
9
- constructor(client) {
10
- this.client = client;
11
- /**
12
- * 记录接口成功的日志
13
- */
14
- this.logApiSuccess = (prefix, returnFormat, response, logResponseData) => {
15
- if (returnFormat === 'RawResponse') {
16
- // this.logging.info(`${prefix} 请求成功 [RawResponse]`)
17
- this.logging.info(`${prefix} 请求成功`);
18
- }
19
- else {
20
- const rep = logResponseData || this.isDebug ? JSON.stringify(response) : '';
21
- if (returnFormat === 'ApiResponse') {
22
- // this.logging.info(`${prefix} 请求成功 [ApiResponse]`, rep)
23
- this.logging.info(`${prefix} 请求成功`, rep);
24
- }
25
- else {
26
- this.logging.info(`${prefix} 请求成功`, rep);
27
- }
28
- }
29
- };
30
- /**
31
- * 记录接口错误的日志
32
- */
33
- this.logApiError = (prefix, error) => {
34
- // 规范化日志输出
35
- if (error instanceof BiliAbortError) {
36
- this.logging.info(`${prefix} [${error.message}]`);
37
- }
38
- else if (error instanceof BiliApiHttpError) {
39
- this.logging.info(`${prefix} [http error]:${error.message}(${error.status})`);
40
- }
41
- else if (error instanceof BiliError) {
42
- this.logging.info(`${prefix} ${error.message}`);
43
- }
44
- else {
45
- this.logging.info(`${prefix} 出现未知错误`, error);
46
- }
47
- };
48
- this.request = async (url, options) => {
49
- const { context, userAgent, timeout: timeoutMS, referer } = this.clientConfig;
50
- // 合并默认选项
51
- const finalOptions = { ...defaultRequestOptions, url: url, ...options };
52
- // 构建日志前缀
53
- const userInfo = context?.userInfo.mid ? ` [${context?.userInfo.mid}]` : '';
54
- const prefix = `[bili API]${userInfo} ${finalOptions.method} ${new URL(url).pathname}`;
55
- try {
56
- // 解析 url
57
- const { baseUrl, searchParams } = parseURL(url);
58
- // 构建查询字符串
59
- const mergedParams = mergeParams(searchParams, finalOptions.query);
60
- const searchStr = await handleUrlParams(mergedParams, finalOptions.skipWbiSign, finalOptions.wbiSignKeys);
61
- // 最终的 url
62
- const finalUrl = `${baseUrl}?${searchStr}`;
63
- finalOptions.url = finalUrl;
64
- if (finalOptions.logRequestParams) {
65
- this.logging.info(`${prefix} 请求中 ${searchStr}`);
66
- }
67
- else {
68
- this.logging.info(`${prefix} 请求中...`);
69
- }
70
- let requestBody = finalOptions.data;
71
- if (requestBody) {
72
- if (typeof requestBody === 'object') {
73
- if (requestBody instanceof Blob) {
74
- }
75
- else if (requestBody instanceof URLSearchParams) {
76
- }
77
- else if (requestBody instanceof FormData) {
78
- }
79
- else {
80
- // RequestParams
81
- // 过滤掉 null/undefined,其余转字符串
82
- const cleaned = Object.fromEntries(Object.entries(requestBody)
83
- .filter(([, v]) => v != null)
84
- .map(([k, v]) => [k, String(v)]));
85
- requestBody = new URLSearchParams(cleaned);
86
- }
87
- }
88
- else if (typeof requestBody === 'string') {
89
- finalOptions.init = {
90
- ...finalOptions.init,
91
- };
92
- finalOptions.init.headers = {
93
- ...finalOptions.init.headers,
94
- 'Content-Type': 'application/json',
95
- };
96
- }
97
- }
98
- if (finalOptions.method === 'POST') {
99
- // Content-Type 为 x-www-form-urlencoded 的请求时,判断是否需要自动添加 csrf 参数
100
- if (requestBody && finalOptions.autoCsrf && requestBody instanceof URLSearchParams) {
101
- requestBody.set('csrf', context?.userCookie.bili_jct ?? '');
102
- }
103
- }
104
- // 初始化 fetch 的配置
105
- const fetchInit = {
106
- signal: options?.signal
107
- ? AbortSignal.any([options?.signal, AbortSignal.timeout(timeoutMS)])
108
- : AbortSignal.timeout(timeoutMS),
109
- method: finalOptions.method,
110
- body: requestBody,
111
- ...(options?.init ?? {}),
112
- headers: {
113
- 'User-Agent': userAgent,
114
- cookie: finalOptions.cookie?.cookie || context?.userCookie.cookie || '',
115
- Referer: typeof referer === 'function' ? referer(finalUrl) : referer,
116
- ...(finalOptions?.init?.headers ?? {}),
117
- },
118
- };
119
- const httpResponse = await fetch(finalUrl, fetchInit);
120
- if (!httpResponse.ok) {
121
- // http 请求错误
122
- throw new BiliApiHttpError(this.clientConfig, finalOptions, httpResponse);
123
- }
124
- if (finalOptions.returnFormat === 'RawResponse') {
125
- // 直接返回原始响应
126
- this.logApiSuccess(prefix, 'RawResponse', httpResponse, finalOptions.logResponseData);
127
- return httpResponse;
128
- }
129
- let biliResponse;
130
- try {
131
- // 解析 bili 响应数据
132
- biliResponse = await httpResponse.json();
133
- }
134
- catch (e) {
135
- throw new BiliApiHttpError(this.clientConfig, finalOptions, httpResponse, '解析响应数据错误', e);
136
- }
137
- // 业务操作失败
138
- if (!finalOptions.ignoreBusinessError && biliResponse.code !== 0) {
139
- throw new BiliApiBusinessError(this.clientConfig, finalOptions, biliResponse);
140
- }
141
- if (finalOptions.returnFormat === 'ApiResponse') {
142
- // 只需要返回响应数据
143
- this.logApiSuccess(prefix, 'ApiResponse', biliResponse, finalOptions.logResponseData);
144
- return biliResponse;
145
- }
146
- // 返回业务数据
147
- this.logApiSuccess(prefix, 'ApiResponseData', biliResponse.data, finalOptions.logResponseData);
148
- return biliResponse.data;
149
- }
150
- catch (error) {
151
- this.logApiError(prefix, error);
152
- throw error;
153
- }
154
- };
155
- this.get = async (url, options) => {
156
- return this.request(url, { ...options, method: 'GET' });
157
- };
158
- this.post = async (url, options) => {
159
- return this.request(url, { ...options, method: 'POST' });
160
- };
161
- this.save = async (url, options) => {
162
- return this.request(url, { ...options, method: 'POST', skipWbiSign: false, autoCsrf: true });
163
- };
164
- /**
165
- * 创建翻页器
166
- * @param pageStrategy 分页策略
167
- * @param url 请求url
168
- * @param options 请求选项
169
- */
170
- this.createPager = (url, pageStrategy, options) => {
171
- return new PageApi(this, pageStrategy, { url, ...options });
172
- };
173
- }
174
- get clientConfig() {
175
- return this.client.config;
176
- }
177
- get logging() {
178
- return this.clientConfig.logging;
179
- }
180
- get isDebug() {
181
- return this.clientConfig.logLevel === 'debug';
182
- }
183
- }
184
- //# sourceMappingURL=base.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/api/base.ts"],"names":[],"mappings":"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"}