@ybgnb/bili-api 0.0.2 → 0.0.3

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 +5832 -71
  3. package/dist/index.js +1 -71
  4. package/package.json +20 -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 Qa=Object.create;var He=Object.defineProperty;var Ha=Object.getOwnPropertyDescriptor;var pt=(n,i)=>(i=Symbol[n])?i:Symbol.for("Symbol."+n),fe=n=>{throw TypeError(n)};var Ka=(n,i,e)=>i in n?He(n,i,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[i]=e;var ot=(n,i)=>He(n,"name",{value:i,configurable:!0});var m=n=>[,,,Qa(n?.[pt("metadata")]??null)],ut=["class","method","getter","setter","accessor","field","value","get","set"],ge=n=>n!==void 0&&typeof n!="function"?fe("Function expected"):n,Ga=(n,i,e,t,s)=>({kind:ut[n],name:i,metadata:t,addInitializer:r=>e._?fe("Already initialized"):s.push(ge(r||null))}),l=(n,i)=>Ka(i,pt("metadata"),n[3]),c=(n,i,e,t)=>{for(var s=0,r=n[i>>1],p=r&&r.length;s<p;s++)i&1?r[s].call(e):t=r[s].call(e,t);return t},a=(n,i,e,t,s,r)=>{var p,d,q,b,P,g=i&7,be=!!(i&8),U=!!(i&16),Ve=g>3?n.length+1:g?be?1:2:0,it=ut[g+5],at=g>3&&(n[Ve-1]=[]),$a=n[Ve]||(n[Ve]=[]),S=g&&(!U&&!be&&(s=s.prototype),g<5&&(g>3||!U)&&Ha(g<4?s:{get[e](){return rt(this,r)},set[e](v){return nt(this,r,v)}},e));g?U&&g<4&&ot(r,(g>2?"set ":g>1?"get ":"")+e):ot(s,e);for(var $e=t.length-1;$e>=0;$e--)b=Ga(g,e,q={},n[3],$a),g&&(b.static=be,b.private=U,P=b.access={has:U?v=>Ja(s,v):v=>e in v},g^3&&(P.get=U?v=>(g^1?rt:Xa)(v,s,g^4?r:S.get):v=>v[e]),g>2&&(P.set=U?(v,Qe)=>nt(v,s,Qe,g^4?r:S.set):(v,Qe)=>v[e]=Qe)),d=(0,t[$e])(g?g<4?U?r:S[it]:g>4?void 0:{get:S.get,set:S.set}:s,b),q._=1,g^4||d===void 0?ge(d)&&(g>4?at.unshift(d):g?U?r=d:S[it]=d:s=d):typeof d!="object"||d===null?fe("Object expected"):(ge(p=d.get)&&(S.get=p),ge(p=d.set)&&(S.set=p),ge(p=d.init)&&at.unshift(p));return g||l(n,s),S&&He(s,e,S),U?g^4?r:S:s};var Ke=(n,i,e)=>i.has(n)||fe("Cannot "+e),Ja=(n,i)=>Object(i)!==i?fe('Cannot use the "in" operator on this value'):n.has(i),rt=(n,i,e)=>(Ke(n,i,"read from private field"),e?e.call(n):i.get(n));var nt=(n,i,e,t)=>(Ke(n,i,"write to private field"),t?t.call(n,e):i.set(n,e),e),Xa=(n,i,e)=>(Ke(n,i,"access private method"),e);import mo from"md5";function o(){return function(n,i){let e=String(i.name);return function(...t){let s=this.constructor.name;try{return n.call(this,...t)}catch(r){if(typeof this.handleError=="function")this.handleError(r,s,e);else throw console.error(`${s}.${e} \u672A\u77E5\u5F02\u5E38`,r),r}}}}var w=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:r,context:p}=i;this.clientConfig={timeout:s,userAgent:r,context:p?.userCookie?{userCookie:p?.userCookie}:void 0}}},Pe=class extends w{constructor(i,e,t,s){super(i,t,s),this.name="BiliApiError";let{url:r,method:p,query:d,data:q,skipWbiSign:b,autoCsrf:P}=e;this.requestOptions={url:r,method:p,query:d,data:q,skipWbiSign:b,autoCsrf:P}}},te=class extends Pe{constructor(e,t,s,r,p){super(e,t,r||s.statusText||`HTTP ${s.status}`,p);this.status=0;this.name="BiliApiHttpError",this.status=s.status}},xe=class extends Pe{constructor(i,e,t,s,r){super(i,e,s||t.message,r),this.name="BiliApiBusinessError",this.responseCode=t.code??-1,this.responseData=t.data}};import{createAbortError as lt,isCanceledError as Za}from"@ybgnb/utils";async function mt(n,i,e){let t={updateRequestContext:!0,autoRefresh:!0,pollIntervalMs:1233,...e},s=AbortSignal.timeout(180*1e3),r=t.signal?AbortSignal.any([t.signal,s]):s,p=b=>new Promise(P=>setTimeout(P,b)),d=b=>{try{i.onStatusChange(b)}catch(P){n.logger.error("[QRCodeLogin] onStatusChange callback error:",P)}},q=async b=>{try{await i.onQRCodeReceived(b)}catch(P){n.logger.error("[QRCodeLogin] onQRCodeReceived callback error:",P)}};try{for(;!r.aborted;){d("\u6B63\u5728\u83B7\u53D6\u767B\u5F55\u4E8C\u7EF4\u7801...");let b=await n.getLoginQRCode(e);if(!b?.url||!b?.qrcode_key)throw new Error("\u672A\u80FD\u83B7\u53D6\u6709\u6548\u7684\u4E8C\u7EF4\u7801\u6570\u636E");await q(b.url),d("\u8BF7\u4F7F\u7528\u624B\u673A App \u626B\u7801\u767B\u5F55..."),await p(2e3);let P=!1;for(;!r.aborted&&!P;){let g=await n.getQRCodeLoginResult(b.qrcode_key,e);switch(d(g.message),g.code){case 0:return d("\u626B\u7801\u6210\u529F\uFF0C\u6B63\u5728\u540C\u6B65\u7528\u6237\u4FE1\u606F..."),i.cookieProvider&&(await p(1e3),g.setCookie=await i.cookieProvider()),await n.initLoginSession(g.setCookie,t.updateRequestContext,e);case 86038:if(t.autoRefresh)d("\u4E8C\u7EF4\u7801\u5DF2\u5931\u6548\uFF0C\u6B63\u5728\u81EA\u52A8\u5237\u65B0..."),P=!0;else throw new w(n.clientConfig,"\u4E8C\u7EF4\u7801\u5DF2\u5931\u6548");break;default:await p(t.pollIntervalMs);break}}}}catch(b){if(t.signal?.aborted)throw d("\u53D6\u6D88\u767B\u5F55"),lt("\u53D6\u6D88\u767B\u5F55");if(r.aborted||Za(b)){let P="\u767B\u5F55\u8D85\u65F6";throw d(P),new Error(P)}throw b}throw r.aborted?lt():new Error("\u767B\u5F55\u6D41\u7A0B\u5F02\u5E38\u7EC8\u6B62")}function ct(n){if(!n)throw new Error("setCookie \u4E3A\u7A7A");let i=[],e,t;for(let s of n)if(s){let r=s.slice(0,s.indexOf(";")+1);i.push(r),r.startsWith("bili_jct=")&&(e=r.slice(9,-1)),r.startsWith("DedeUserID=")&&(t=r.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 ne=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 w(this.clientConfig,"\u7528\u6237\u672A\u767B\u5F55");return i}};import{getErrorMessage as dt}from"@ybgnb/utils";var u=class extends ne{constructor(i){super(i),this.createPager=i.createPager}throwError(i,e){throw new w(this.clientConfig,dt(i),e)}handleError(i,e,t){if(i instanceof w)this.logger.error(`${e}.${t} \u51FA\u73B0\u9519\u8BEF`,i);else{let s=new w(this.clientConfig,dt(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 gt,ft,yt,Rt,ht,bt,Pt,xt,_t,wt,j,B=class extends(wt=u,_t=[o()],xt=[o()],Pt=[o()],bt=[o()],ht=[o()],Rt=[o()],yt=[o()],ft=[o()],gt=[o()],wt){constructor(){super(...arguments);c(j,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 mt(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 r=ct(e),{b_3:p,b_4:d}=await this.getBuvids(s);r.cookie=`${r.cookie} buvid3=${encodeURIComponent(p)}; buvid4=${encodeURIComponent(d)}; `;let q={userCookie:r};return t&&(this.clientConfig.context=q),this.logger.info(`\u5DF2\u5B8C\u6210\u7528\u6237\u767B\u5F55\uFF1A${r.uid}`),q}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(r=>s.find(p=>p.mid===r)??null)}async getUpStat(e,t){return await this.get("https://api.bilibili.com/x/space/upstat",{query:{mid:e},...t})}};j=m(wt),a(j,1,"getLoginQRCode",_t,B),a(j,1,"getQRCodeLoginResult",xt,B),a(j,1,"loginWithQRCode",Pt,B),a(j,1,"getBuvids",bt,B),a(j,1,"getMyInfo",ht,B),a(j,1,"initLoginSession",Rt,B),a(j,1,"getUserCard",yt,B),a(j,1,"getUserCards",ft,B),a(j,1,"getUpStat",gt,B),l(j,B);var Fo={None:0,Followed:2,Mutual:6,Blocked:128},ye={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},K={FOLLOW:{code:1,name:"\u5173\u6CE8",reSrc:ye.PersonalSpace},UNFOLLOW:{code:2,name:"\u53D6\u5173",reSrc:ye.H5FollowList},BLOCK:{code:5,name:"\u62C9\u9ED1",reSrc:ye.Comment},UNBLOCK:{code:6,name:"\u53D6\u6D88\u62C9\u9ED1",reSrc:ye.BlockList},REMOVE_FAN:{code:7,name:"\u8E22\u51FA\u7C89\u4E1D",reSrc:ye.H5FansList}};var y=class{constructor(i){this.options=i;i.pageParams&&(i.pageNum=this.parsePageNum(i.pageParams))}};import{isEmptyArr as eo}from"@ybgnb/utils";var pe=class extends y{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||eo(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 to}from"@ybgnb/utils";var G=class n extends pe{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||to(t.data.list)))}getList(i){return n.isPageDataWithTotalResponse(i)?i.data.list:[]}};import{sleep as _e}from"@ybgnb/utils";var Dt,At,Ot,qt,Bt,Ct,vt,kt,Nt,Mt,zt,Tt,St,jt,It,Ft,Et,Lt,Ut,Yt,Wt,Vt,$t,Qt,Ht,Kt,Gt,Jt,R,f=class extends(Jt=u,Gt=[o()],Kt=[o()],Ht=[o()],Qt=[o()],$t=[o()],Vt=[o()],Wt=[o()],Yt=[o()],Ut=[o()],Lt=[o()],Et=[o()],Ft=[o()],It=[o()],jt=[o()],St=[o()],Tt=[o()],zt=[o()],Mt=[o()],Nt=[o()],kt=[o()],vt=[o()],Ct=[o()],Bt=[o()],qt=[o()],Ot=[o()],At=[o()],Dt=[o()],Jt){constructor(){super(...arguments);c(R,5,this)}get userService(){return this.api.client.user}buildRelationPager(e,t,s){return this.createPager("https://api.bilibili.com/x/relation/tag",new pe({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,r){return await this.buildRelationPager(e,t,r).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,r){return this.fetchRelationAll(e,t,s,r)}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 r=await this.getFollowTags(s);for(let p of r)p.list=await this.getFollowingsByTag(p,e,t,s);return r}buildFollowingsPager(e,t,s){if(!e&&!this.currUserUid)throw new w(this.clientConfig,"uid \u4E3A\u7A7A");return this.createPager("https://api.bilibili.com/x/relation/followings",new G({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,r){return await this.buildFollowingsPager(e,t,r).fetchAllPage(s)}async followUser(e,t){await this.modify(e,K.FOLLOW,!0,t)}async unFollowUser(e,t){await this.modify(e,K.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 w(this.clientConfig,"uid \u4E3A\u7A7A");return this.createPager("https://api.bilibili.com/x/relation/fans",new G({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,r){return await this.buildFansPager(e,t,r).fetchAllPage(s)}async removeFan(e,t){await this.modify(e,K.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 _e(666,t?.signal),await this.getRelation(e),await _e(50,t?.signal),await this.getStat(e,t),await _e(50,t?.signal),await this.userService.getUpStat(e,t),await _e(666,t?.signal)}async modify(e,t,s=!0,r){s&&await this.avoidRiskControl(e,r),await this.save("https://api.bilibili.com/x/relation/modify",{query:{statistics:'{"appId":100,"platform":5}',...t.code!==K.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!==K.BLOCK.code?{is_from_frontend_component:"true"}:{}},ignoreBusinessError:!1,...r})}async blockUser(e,t){await this.modify(e,K.BLOCK,!1,t)}async unBlockUser(e,t){await this.modify(e,K.UNBLOCK,!0,t)}buildBlocksPager(e,t){return this.createPager("https://api.bilibili.com/x/relation/blacks",new G({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)}};R=m(Jt),a(R,1,"fetchRelationPage",Gt,f),a(R,1,"fetchRelationPageWithNextParams",Kt,f),a(R,1,"fetchRelationAll",Ht,f),a(R,1,"getRelation",Qt,f),a(R,1,"getFollowTags",$t,f),a(R,1,"getFollowingsByTag",Vt,f),a(R,1,"createFollowTag",Wt,f),a(R,1,"updateFollowTag",Yt,f),a(R,1,"deleteFollowTag",Ut,f),a(R,1,"getFollowsGroupedByTag",Lt,f),a(R,1,"fetchFollowingsPage",Et,f),a(R,1,"fetchPageWithNextParams",Ft,f),a(R,1,"fetchFollowingsAll",It,f),a(R,1,"followUser",jt,f),a(R,1,"unFollowUser",St,f),a(R,1,"copyUsersToTag",Tt,f),a(R,1,"fetchFansPage",zt,f),a(R,1,"fetchFansPageWithNextParams",Mt,f),a(R,1,"fetchFansAll",Nt,f),a(R,1,"getStat",kt,f),a(R,1,"avoidRiskControl",vt,f),a(R,1,"modify",Ct,f),a(R,1,"blockUser",Bt,f),a(R,1,"unBlockUser",qt,f),a(R,1,"fetchBlocksPage",Ot,f),a(R,1,"fetchBlocksPageWithNextParams",At,f),a(R,1,"fetchBlocksAll",Dt,f),l(R,f);var we=class extends y{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 r=s.data.cursor;e.ps=r.ps,e.max=r.max,e.view_at=r.view_at,e.business=r.business}}getList(i){return i.data.list}};var Xt,Zt,es,ts,ss,is,as,os,rs,Y,k=class extends(rs=u,os=[o()],as=[o()],is=[o()],ss=[o()],ts=[o()],es=[o()],Zt=[o()],Xt=[o()],rs){constructor(){super(...arguments);c(Y,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,r){return await this.buildPager(e,t,r).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})}};Y=m(rs),a(Y,1,"fetchPage",os,k),a(Y,1,"fetchPageWithNextParams",as,k),a(Y,1,"fetchAll",is,k),a(Y,1,"deleteHistory",ss,k),a(Y,1,"clearHistory",ts,k),a(Y,1,"setHistoryShadow",es,k),a(Y,1,"getHistoryShadow",Zt,k),a(Y,1,"report",Xt,k),l(Y,k);var ns,ps,us,ls,ms,cs,ds,gs,fs,ys,Rs,N,A=class extends(Rs=u,ys=[o()],fs=[o()],gs=[o()],ds=[o()],cs=[o()],ms=[o()],ls=[o()],us=[o()],ps=[o()],ns=[o()],Rs){constructor(){super(...arguments);c(N,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})}};N=m(Rs),a(N,1,"getSettings",ys,A),a(N,1,"updateSettings",fs,A),a(N,1,"getBlockWords",gs,A),a(N,1,"addBlockWord",ds,A),a(N,1,"delBlockWord",cs,A),a(N,1,"getAutoReplyRules",ms,A),a(N,1,"setAutoReplyRule",ls,A),a(N,1,"delAutoReplyRule",us,A),a(N,1,"getSystemSettings",ps,A),a(N,1,"canShowCreateGroupIcon",ns,A),l(N,A);var De=class extends y{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 r=s.data.cursor;e.id=r.id,e.reply_time=r.time}}getList(i){return i.data.items}};var Ae=class extends y{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 r=s.data.cursor;e.id=r.id,e.at_time=r.time}}getList(i){return i.data.items}};var Oe=class extends y{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 r=s.data.total.cursor;e.id=r.id,e.like_time=r.time}}getList(i){return i.data.total.items}};import{isEmptyArr as so}from"@ybgnb/utils";var qe=class extends y{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||so(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 hs,bs,Ps,xs,_s,ws,Ds,As,Os,qs,Bs,Cs,vs,ks,Ns,Ms,zs,Ts,Ss,js,x,h=class extends(js=u,Ss=[o()],Ts=[o()],zs=[o()],Ms=[o()],Ns=[o()],ks=[o()],vs=[o()],Cs=[o()],Bs=[o()],qs=[o()],Os=[o()],As=[o()],Ds=[o()],ws=[o()],_s=[o()],xs=[o()],Ps=[o()],bs=[o()],hs=[o()],js){constructor(){super(...arguments);c(x,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 De(e),t)}buildAtPager(e,t){return this.buildBasePager("at",new Ae(e),t)}buildLikePager(e,t){return this.buildBasePager("like",new Oe(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 qe(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})}};x=m(js),a(x,1,"getUnreadCount",Ss,h),a(x,1,"delMessage",Ts,h),a(x,1,"fetchReplyPage",zs,h),a(x,1,"fetchReplyPageWithNextParams",Ms,h),a(x,1,"fetchReplyAll",Ns,h),a(x,1,"delReplyMessage",ks,h),a(x,1,"fetchAtPage",vs,h),a(x,1,"fetchAtPageWithNextParams",Cs,h),a(x,1,"fetchAtAll",Bs,h),a(x,1,"delAtMessage",qs,h),a(x,1,"fetchLikePage",Os,h),a(x,1,"fetchLikePageWithNextParams",As,h),a(x,1,"fetchLikeAll",Ds,h),a(x,1,"setLikeMsgState",ws,h),a(x,1,"delLikeMessage",_s,h),a(x,1,"fetchSystemPage",xs,h),a(x,1,"fetchSystemPageWithNextParams",Ps,h),a(x,1,"fetchSystemAll",bs,h),a(x,1,"delSysMessages",hs,h),l(x,h);var Be=class extends y{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 r=s.data.session_list;r!=null&&(e.end_ts=r[r.length-1].session_ts)}}getList(i){return i.data.session_list}};var Is,Fs,Es,Ls,Us,Ys,Ws,Vs,V,M=class extends(Vs=u,Ws=[o()],Ys=[o()],Us=[o()],Ls=[o()],Es=[o()],Fs=[o()],Is=[o()],Vs){constructor(){super(...arguments);c(V,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 r=e?.session_type??1;return this.createPager("https://api.vc.bilibili.com/session_svr/v1/session_svr/get_sessions",new Be(t),{query:{...e,session_type:r,group_fold:r===1?"2":"1",size:r!==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,r){return await this.buildPager(e,t,r).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})}};V=m(Vs),a(V,1,"getUnreadCount",Ws,M),a(V,1,"getMyGroupUnreadCount",Ys,M),a(V,1,"fetchPage",Us,M),a(V,1,"fetchPageWithNextParams",Ls,M),a(V,1,"fetchAll",Es,M),a(V,1,"setSessionRead",Fs,M),a(V,1,"delSession",Is,M),l(V,M);var Ce=class extends y{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 $s,Qs,Hs,Ks,Gs,Js,Xs,Zs,ei,ti,I,C=class extends(ti=u,ei=[o()],Zs=[o()],Xs=[o()],Js=[o()],Gs=[o()],Ks=[o()],Hs=[o()],Qs=[o()],$s=[o()],ti){constructor(){super(...arguments);c(I,5,this)}buildPager(e,t){return this.createPager("https://api.bilibili.com/x/v2/history/toview/web",new Ce(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}}};I=m(ti),a(I,1,"fetchPage",ei,C),a(I,1,"fetchPageWithNextParams",Zs,C),a(I,1,"fetchAll",Xs,C),a(I,1,"addToView",Js,C),a(I,1,"addAllToView",Gs,C),a(I,1,"delToView",Ks,C),a(I,1,"clearToView",Hs,C),a(I,1,"moveFavFolder",Qs,C),a(I,1,"getTotal",$s,C),l(I,C);var J=class extends y{constructor(e,t="list",s="has_more",r){super(e);this.listKey=t;this.hasMoreKey=s;this.countKey=r}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,r){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 si,ii,ai,oi,ri,ni,pi,ui,li,mi,ci,di,gi,fi,yi,D,_=class extends(yi=u,fi=[o()],gi=[o()],di=[o()],ci=[o()],mi=[o()],li=[o()],ui=[o()],pi=[o()],ni=[o()],ri=[o()],oi=[o()],ai=[o()],ii=[o()],si=[o()],yi){constructor(){super(...arguments);c(D,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 J({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,r){let p=this.buildPager(e,t,r),d=await p.fetchAllPage(s);if(!p.lastApiResponse?.data.info)throw new w(this.clientConfig,`\u6536\u85CF\u5939[${e.media_id}]\u4E0D\u5B58\u5728`);return{info:p.lastApiResponse?.data.info,medias:d,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,...r}=e;return await this.save("https://api.bilibili.com/x/v3/fav/folder/edit",{data:{...r,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,r,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:r,platform:"web"},...p})}async moveFavItems(e,t,s,r,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:r,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,r){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"},...r})}};D=m(yi),a(D,1,"getFavFolders",fi,_),a(D,1,"getFavFolderMeta",gi,_),a(D,1,"fetchPage",di,_),a(D,1,"fetchPageWithNextParams",ci,_),a(D,1,"fetchAll",mi,_),a(D,1,"getFavIds",li,_),a(D,1,"addFavFolder",ui,_),a(D,1,"updateFavFolder",pi,_),a(D,1,"delFavFolder",ni,_),a(D,1,"copyFavItems",ri,_),a(D,1,"moveFavItems",oi,_),a(D,1,"batchDelFavItems",ai,_),a(D,1,"cleanFavItems",ii,_),a(D,1,"favVideo",si,_),l(D,_);var Ri,hi,bi,Pi,xi,_i,se,W=class extends(_i=u,xi=[o()],Pi=[o()],bi=[o()],hi=[o()],Ri=[o()],_i){constructor(){super(...arguments);c(se,5,this)}buildPager(e,t,s){return this.createPager("https://api.bilibili.com/x/v3/fav/folder/collected/list",new J({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,r){return await this.buildPager(e,t,r).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})}};se=m(_i),a(se,1,"fetchPage",xi,W),a(se,1,"fetchPageWithNextParams",Pi,W),a(se,1,"fetchAll",bi,W),a(se,1,"add",hi,W),a(se,1,"del",Ri,W),l(se,W);var ve=class extends y{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 io}from"@ybgnb/utils";var wi,Di,Ai,Oi,qi,Bi,Ci,X,F=class extends(Ci=u,Bi=[o()],qi=[o()],Oi=[o()],Ai=[o()],Di=[o()],wi=[o()],Ci){constructor(){super(...arguments);c(X,5,this)}buildPager(e,t){return this.createPager("https://api.bilibili.com/x/polymer/web-dynamic/v1/opus/feed/fav",new ve(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 io(200,300),await this.addByCvId(s.fallback.id)}};X=m(Ci),a(X,1,"fetchPage",Bi,F),a(X,1,"fetchPageWithNextParams",qi,F),a(X,1,"fetchAll",Oi,F),a(X,1,"del",Ai,F),a(X,1,"addByCvId",Di,F),a(X,1,"addByOpusId",wi,F),l(X,F);var dn={anime:{name:"\u6211\u7684\u8FFD\u756A",type:"1"},tv:{name:"\u6211\u7684\u8FFD\u5267",type:"2"}},ue={all:0,to_watch:1,watching:2,watched:3};var vi,ki,Ni,Mi,zi,Ti,Si,Z,E=class extends(Si=u,Ti=[o()],zi=[o()],Mi=[o()],Ni=[o()],ki=[o()],vi=[o()],Si){constructor(){super(...arguments);c(Z,5,this)}buildPager(e,t,s=ue.all,r,p){return this.createPager("https://api.bilibili.com/x/space/bangumi/follow/list",new G({pageSize:24,...r}),{query:{vmid:e??this.currUserUid,type:t,follow_status:s,platform:"web",web_location:"333.1387"},...p})}async fetchPage(e,t,s=ue.all,r,p){return await this.buildPager(e,t,s,r,p).fetchNext()}async fetchPageWithNextParams(e,t,s=ue.all,r,p){return await this.buildPager(e,t,s,r,p).fetchPageWithNextParams()}async fetchAll(e,t,s=ue.all,r,p,d){return await this.buildPager(e,t,s,r,d).fetchAllPage(p)}async fetchMyAll(e,t=ue.all,s,r,p){return this.fetchAll(this.currUserUid,e,t,s,r,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})}};Z=m(Si),a(Z,1,"fetchPage",Ti,E),a(Z,1,"fetchPageWithNextParams",zi,E),a(Z,1,"fetchAll",Mi,E),a(Z,1,"fetchMyAll",Ni,E),a(Z,1,"add",ki,E),a(Z,1,"del",vi,E),l(Z,E);import{isEmptyArr as ao}from"@ybgnb/utils";var ke=class extends y{constructor(i){super({pageSize:40,...i})}hasNextPage(i,e,t){if(t!==null){if(t.data==null)return!1;let s=t.data,r=s.page;if(ao(s.list.vlist)||r.count<=e.length||r.count<=r.pn*r.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 ji,Ii,Fi,Ei,Re,ee=class extends(Ei=u,Fi=[o()],Ii=[o()],ji=[o()],Ei){constructor(){super(...arguments);c(Re,5,this)}buildPager(e,t,s){return this.createPager("https://api.bilibili.com/x/space/wbi/arc/search",new ke(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,r){let p=this.buildPager(e,t,r);return await p.fetchAllPage(s),p.lastApiResponse.data.list.vlist=p.list,p.lastApiResponse.data}};Re=m(Ei),a(Re,1,"fetchPage",Fi,ee),a(Re,1,"fetchPageWithNextParams",Ii,ee),a(Re,1,"fetchAll",ji,ee),l(Re,ee);var Li,Ui,Yi,Wi,Vi,le,L=class extends(Vi=u,Wi=[o()],Yi=[o()],Ui=[o()],Li=[o()],Vi){constructor(){super(...arguments);c(le,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})}};le=m(Vi),a(le,1,"getOnlineCount",Wi,L),a(le,1,"getParts",Yi,L),a(le,1,"getOwnParts",Ui,L),a(le,1,"getInfo",Li,L),l(le,L);var Ne=class extends y{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 r=s.data;e.offset=r.offset}}getList(i){return i.data.items}};var $i,Qi,Hi,Ki,Gi,me,$=class extends(Gi=u,Ki=[o()],Hi=[o()],Qi=[o()],$i=[o()],Gi){constructor(){super(...arguments);c(me,5,this)}buildDynamicPager(e,t,s){return this.createPager("https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/all",new Ne(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,r){return await this.buildDynamicPager(e,t,r).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}};me=m(Gi),a(me,1,"fetchDynamicPage",Ki,$),a(me,1,"fetchDynamicPageWithNextParams",Hi,$),a(me,1,"fetchDynamicAll",Qi,$),a(me,1,"newUpdatesCount",$i,$),l(me,$);var Ji,Xi,Zi,ea,ta,sa,ia,aa,Q,z=class extends(aa=u,ia=[o()],sa=[o()],ta=[o()],ea=[o()],Zi=[o()],Xi=[o()],Ji=[o()],aa){constructor(){super(...arguments);c(Q,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})}};Q=m(aa),a(Q,1,"getRelation",ia,z),a(Q,1,"like",sa,z),a(Q,1,"hasLike",ta,z),a(Q,1,"dislike",ea,z),a(Q,1,"coin",Zi,z),a(Q,1,"triple",Xi,z),a(Q,1,"share",Ji,z),l(Q,z);var oa,ra,Ge,ce=class extends(ra=u,oa=[o()],ra){constructor(){super(...arguments);c(Ge,5,this)}heartbeat(e,t,s){let r={params:{},body:{}},p=(q,b,P)=>{r.body[q]=r.params[P||"w"+q]=t[q]??e[P||"w"+q]??b};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 d="https://www.bilibili.com/?spm_id_from=333.1365.0.0";return this.save("https://api.bilibili.com/x/click-interface/web/heartbeat",{query:{...r.params,web_location:1315873,...e},data:{quality:80,type:3,outer:0,statistics:'{"appId":100,"platform":5,"abtest":"","version":""}',max_play_progress_time:r.body.last_play_progress_time+r.body.played_time,refer_url:d,...r.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:d}},...s})}};Ge=m(ra),a(Ge,1,"heartbeat",oa,ce),l(Ge,ce);var na,pa,ua,Me,ie=class extends(ua=u,pa=[o()],na=[o()],ua){constructor(){super(...arguments);c(Me,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)}};Me=m(ua),a(Me,1,"getDailyTaskStatus",pa,ie),a(Me,1,"getCoinTodayExp",na,ie),l(Me,ie);var ze=class extends J{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 la,ma,ca,da,ga,de,H=class extends(ga=u,da=[o()],ca=[o()],ma=[o()],la=[o()],ga){constructor(){super(...arguments);c(de,5,this)}buildPopularPager(e,t){return this.createPager("https://api.bilibili.com/x/web-interface/popular",new ze({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})}};de=m(ga),a(de,1,"fetchPopularPage",da,H),a(de,1,"fetchPageWithNextParams",ca,H),a(de,1,"getPopularSeriesList",ma,H),a(de,1,"getPopularSeriesInfo",la,H),l(de,H);var fa,ya,Ra,Te,ae=class extends(Ra=u,ya=[o()],fa=[o()],Ra){constructor(){super(...arguments);c(Te,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})}};Te=m(Ra),a(Te,1,"getNavNum",ya,ae),a(Te,1,"getFavNum",fa,ae),l(Te,ae);var ha,ba,Pa,Se,oe=class extends(Pa=u,ba=[o()],ha=[o()],Pa){constructor(){super(...arguments);c(Se,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],r=e[s];return this.save("https://api.bilibili.com/x/space/privacy/modify",{data:{field:s,value:r},...t})}};Se=m(Pa),a(Se,1,"getSpaceSettings",ba,oe),a(Se,1,"updatePrivacy",ha,oe),l(Se,oe);import{createLogger as oo}from"@ybgnb/utils";var xa=(n="info")=>({timeout:5e3,userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",referer:"https://space.bilibili.com/10000",logLevel:n,logger:oo(n,(i,...e)=>{console[i](`[${new Date().toLocaleString()}]`,...e)}),autoMixinKey:!1}),Je={method:"GET",skipWbiSign:!1,autoCsrf:!0,logRequestParams:!0},_a={...Je,returnFormat:"ApiResponseData",ignoreBusinessError:!1};import{sleepRandom as wa}from"@ybgnb/utils";var Da,Aa,Oa,je,re=class extends(Oa=u,Aa=[o()],Da=[o()],Oa){constructor(){super(...arguments);c(je,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 r=s.accept_quality[0];await wa(100,200);let p=await this.userService.getMyInfo(void 0,t);return await wa(100,200),p.vip.type===0&&s.accept_quality[0]>=80&&(r=80),this.getPlayUrl({...e,qn:r},t)}};je=m(Oa),a(je,1,"getPlayUrl",Aa,re),a(je,1,"getBestQualityUrl",Da,re),l(je,re);import{isEmptyArr as ro}from"@ybgnb/utils";var Ie=class extends y{constructor(i){super({pageSize:20,...i})}hasNextPage(i,e,t){if(t!==null){if(t.data==null)return!1;let s=t.data,r=s.page;if(ro(s.replies)||r.count<=e.length||r.count<=r.num*r.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 no}from"@ybgnb/utils";var Fe=class extends y{constructor(i){super({pageSize:20,...i})}hasNextPage(i,e,t){if(t!==null){if(t.data==null)return!1;let s=t.data,r=s.cursor;if(no(s.replies)||r.is_end)return!1}return!0}updateNextPageParams(i,e,t,s){if(s){let r=s.data;e.pagination_str=`{"offset":"${r.cursor.pagination_reply.next_offset}"}`}}getList(i){return i.data.replies}parsePageNum(i){}};var qa,Ba,Ca,va,ka,Na,Ma,za,Ta,Sa,ja,T,O=class extends(ja=u,Sa=[o()],Ta=[o()],za=[o()],Ma=[o()],Na=[o()],ka=[o()],va=[o()],Ca=[o()],Ba=[o()],qa=[o()],ja){constructor(){super(...arguments);c(T,5,this)}buildSubReplyPager(e,t,s){return this.createPager("https://api.bilibili.com/x/v2/reply/reply",new Ie({...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,r){return await this.buildSubReplyPager(e,t,r).fetchAllPage(s)}buildPager(e,t,s){return this.createPager("https://api.bilibili.com/x/v2/reply/wbi/main",new Fe({...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,r){return await this.buildPager(e,t,r).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`})}};T=m(ja),a(T,1,"fetchSubReplyPage",Sa,O),a(T,1,"fetchSubPageWithNextParams",Ta,O),a(T,1,"fetchSubReplyAll",za,O),a(T,1,"fetchPage",Ma,O),a(T,1,"fetchPageWithNextParams",Na,O),a(T,1,"fetchAll",ka,O),a(T,1,"del",va,O),a(T,1,"like",Ca,O),a(T,1,"hate",Ba,O),a(T,1,"add",qa,O),l(T,O);var Ee=class{get logger(){return this.config.logger}constructor(i){this.config={...xa(i?.logLevel),...i??{}},this.api=new Ue(this),this.createPager=this.api.createPager,this.request=this.api.request,this.user=new B(this.api),this.userExp=new ie(this.api),this.relation=new f(this.api),this.history=new k(this.api),this.session=new M(this.api),this.sessionSettings=new A(this.api),this.message=new h(this.api),this.toview=new C(this.api),this.fav=new _(this.api),this.favCollection=new W(this.api),this.favOpus=new F(this.api),this.followBangumi=new E(this.api),this.spaceVideo=new ee(this.api),this.spaceStatus=new ae(this.api),this.spaceSettings=new oe(this.api),this.dynamic=new $(this.api),this.videoInfo=new L(this.api),this.videoAction=new z(this.api),this.videoReport=new ce(this.api),this.videoRanking=new H(this.api),this.videoPlayer=new re(this.api),this.comment=new O(this.api),Le.setAutoRefresh(this.config.autoMixinKey)}updateRequestContext(i){this.config.context=i}};var Xe=null,Ze=()=>(Xe||(Xe=new Ee),Xe);var he,Ye=null,Ea=0,et,Ia=1440*60*1e3,La=!1,Le={get:async()=>he||(Ye||(Ye=lo().catch(()=>{Ye=null})),await Ye,he),setAutoRefresh(n){La=n}};function po(n,i){return Math.floor(n/Ia)!==Math.floor(i/Ia)}var uo=[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],tt=(n,i)=>{let e=n+i;return uo.map(t=>e[t]).join("").slice(0,32)},lo=async()=>{await Fa(),et||clearInterval(et),La&&(et=setInterval(()=>{po(Ea,Date.now())&&Fa()},3e5))},Fa=async()=>{try{let n=Date.now(),i=(await(await fetch("https://api.bilibili.com/x/web-interface/nav")).json()).data,e=r=>new URL(r).pathname.split("/").pop().replace(/\.[^.]+$/,""),t=e(i.wbi_img.img_url),s=e(i.wbi_img.sub_url);he=tt(t,s),Ze().logger.info(`\u521D\u59CB\u5316 imgKey=${t} subKey=${s} mixinKey=${he}`),Ea=n}catch(n){throw Ze().logger.error("\u521D\u59CB\u5316 MixinKey \u5931\u8D25",n),n}};import{encodeURLParams as st}from"@ybgnb/utils";async function Ua(n,i){let e=Math.floor(Date.now()/1e3),t=i??await Le.get();return`${st(n)}&w_rid=${mo(st({...n,wts:e})+t)}&wts=${e}`}async function Ya(n,i,e){try{return i||Object.keys(n).length===0?`${st(n)}`:e?`${await Ua(n,tt(e.imgKey,e.subKey))}`:`${await Ua(n)}`}catch{throw new Error("\u67E5\u8BE2\u53C2\u6570\u65E0\u6548")}}import{mergeQueryParams as co,parseUrl as go,sleep as fo}from"@ybgnb/utils";var We=class extends ne{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:r,searchParams:p}=go(s.url);this.requestParams=Object.assign(co(p,s.query)),this.requestOptions={...s,url:r,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 fo(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 yo,parseUrl as Ro,createAbortError as Wa,isCanceledError as ho,getErrorMessage as bo}from"@ybgnb/utils";var Ue=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 r=s||this.isDebug?JSON.stringify(t):"";e==="ApiResponse"?this.logger.info(`${i} \u8BF7\u6C42\u6210\u529F`,r):this.logger.info(`${i} \u8BF7\u6C42\u6210\u529F`,r)}};this.logApiError=(i,e)=>{ho(e)?this.logger.info(`${i} [${bo(e)}]`):e instanceof te?this.logger.info(`${i} [http error]\uFF1A${e.message}(${e.status})`):e instanceof w?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}=Ro(i.url),r=yo(s,i.query),p=await Ya(r,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 r=e[s];r!=null&&(t[s]=String(r))}}),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:r,referer:p}=this.clientConfig;return{signal:i?.signal?AbortSignal.any([i?.signal,AbortSignal.timeout(r)]):AbortSignal.timeout(r),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 Wa();let t={..._a,url:i,...e},s=this.buildLogPrefix(t);try{let r=await this.executeRequest(t,s);if(!r.ok)throw new te(this.clientConfig,t,r);if(t.returnFormat==="RawResponse")return this.logApiSuccess(s,"RawResponse",r,t.logResponseData),r;let p;try{p=await r.json()}catch(d){throw new te(this.clientConfig,t,r,"\u89E3\u6790\u54CD\u5E94\u6570\u636E\u9519\u8BEF",d)}if(!t.ignoreBusinessError&&p.code!==0)throw new xe(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(r){throw this.logApiError(s,r),r}};this.fetchRaw=async(i,e)=>{if(e?.signal?.aborted)throw Wa();let t={...Je,url:i,...e},s=this.buildLogPrefix(t),r=t.responseType;try{let p=await this.executeRequest(t,s);if(!p.ok)throw new te(this.clientConfig,t,p);return this.logApiSuccess(s,"RawResponse",p,t.logResponseData),r==="json"?await p.json():r==="text"?await p.text():r==="blob"?await p.blob():r==="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 We(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 Ou=".bilibili.com",qu=["SESSDATA","bili_jct","DedeUserID","DedeUserID__ckMd5","sid","buvid3","buvid4"];function Cu(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 vu(n){let i=n.attr&3;return i===0||i===1?5e4-n.media_count:1e3-n.media_count}var Va=class extends u{};var zu={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 Su={phone:[1,3,5,7],web:[2],pad:[4,6],tv:[33],other:[0]};var Iu={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 Eu={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 Wu={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 Hu={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 Gu={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 Xu={NORMAL:0,BLOCKED:1};var el={NONE:0,MONTH:1,YEAR:2},tl={NONE:0,YES:1};export{Ae as AtMsgPageStrategy,Eu as AuthorTypeMap,$u as AutoReplyTypeMap,Ou as BILIBILI_COOKIE_DOMAIN,Ue as BaseApi,y as BasePageStrategy,u as BaseService,xe as BiliApiBusinessError,Pe as BiliApiError,te as BiliApiHttpError,Ee as BiliClient,w as BiliError,zu as BusinessMap,o as CatchError,O as CommentService,Su as DeviceTypeCodeMap,Ne as DynamicPageStrategy,$ as DynamicService,Iu as DynamicTypeMap,W as FavCollectionService,ve as FavOpusPageStrategy,F as FavOpusService,_ as FavService,E as FollowBangumiService,ue as FollowBangumiStatusMap,dn as FollowBangumiTypeMap,J as HasMorePageStrategy,we as HistoryPageStrategy,k as HistoryService,Oe as LikeMsgPageStrategy,pe as ListPageStrategy,Wu as MessageBusinessMap,h as MessageService,Hu as MsgSourceMap,We as PageApi,Gu as PrivacySettingsMap,K as RelationActMap,Fo as RelationAttributeMap,f as RelationService,ye as RelationSourceMap,De as ReplyMsgPageStrategy,Fe as ReplyPageStrategy,G as ResponseWithTotalStrategy,Be as SessionPageStrategy,M as SessionService,A as SessionSettingsService,Xu as SilenceStatusMap,oe as SpaceSettingsService,ae as SpaceStatusService,ke as SpaceVPageStrategy,ee as SpaceVideoService,ze as SpecifyHasMorePageStrategy,Ie as SubReplyPageStrategy,qe as SystemMsgPageStrategy,Ce as ToViewPageStrategy,C as ToViewService,qu as USER_COOKIE_NAMES,ie as UserExpService,B as UserService,z as VideoActionService,L as VideoInfoService,re as VideoPlayerService,H as VideoRankingService,ce as VideoReportService,Va as VideoUploadService,tl as VipStatusMap,el as VipTypeMap,ne as WithApi,_a as defaultApiRequestOptions,Je as defaultBaseRequestOptions,tt as generateMixinKey,Ze as getCommonBiliClient,xa as getDefaultClientConfig,vu as getFavFolderRemaining,Cu as getFavFolderType,Ya as handleUrlParams,mt as loginUserWithQRCode,Le as mixinKeyStore,ct 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.3",
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,7 @@
35
42
  "license": "MIT",
36
43
  "packageManager": "pnpm@10.30.3",
37
44
  "dependencies": {
38
- "@ybgnb/utils": "^0.0.8",
45
+ "@ybgnb/utils": "^0.2.8",
39
46
  "md5": "^2.3.0"
40
47
  },
41
48
  "devDependencies": {
@@ -44,12 +51,10 @@
44
51
  "barrelsby": "^2.8.1",
45
52
  "eslint": "^9.35.0",
46
53
  "eslint-config-prettier": "^10.1.8",
47
- "jiti": "^2.6.1",
48
- "msw": "^2.12.14",
54
+ "import-suffixer": "^0.0.1",
49
55
  "prettier": "^3.8.1",
50
- "tsx": "^4.21.0",
56
+ "tsup": "^8.5.1",
51
57
  "typescript": "^6.0.2",
52
- "typescript-eslint": "^8.43.0",
53
- "vitest": "^4.1.2"
58
+ "typescript-eslint": "^8.43.0"
54
59
  }
55
60
  }
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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"}
@@ -1,35 +0,0 @@
1
- import { BaseApi } from '../base.js';
2
- import { WithApi } from '../with-api.js';
3
- import { BasePageStrategy } from './strategies/base.js';
4
- import type { RequestOptions, RequestParams } from '../../types/core/request.js';
5
- import type { ApiResponse, ApiResponseData } from '../../types/core/response.js';
6
- import type { OnPageFetched, PageRequestOptions } from '../../types/core/page.js';
7
- export declare class PageApi<D extends ApiResponseData = ApiResponseData, RD extends ApiResponseData = D[]> extends WithApi {
8
- protected pageStrategy: BasePageStrategy;
9
- protected requestOptions: Partial<RequestOptions<'ApiResponse'>> & Required<Pick<RequestOptions, 'url' | 'query'>>;
10
- protected requestParams: RequestParams;
11
- nextPageNum: number;
12
- list: D[];
13
- lastApiResponse: ApiResponse<RD> | null;
14
- /**
15
- * 创建分页接口
16
- * @param api BaseApi
17
- * @param pageStrategy 分页策略
18
- * @param requestOptions 请求选项
19
- */
20
- constructor(api: BaseApi, pageStrategy: BasePageStrategy, requestOptions: Partial<RequestOptions<'ApiResponse'>> & Pick<RequestOptions, 'url'>);
21
- protected mergeRequestOptions(requestOptions?: Partial<RequestOptions<'ApiResponse'>>): void;
22
- /**
23
- * 获取下一页的数据
24
- */
25
- fetchNext(requestOptions?: Partial<RequestOptions<'ApiResponse'>>): Promise<D[] | null>;
26
- /**
27
- * 获取翻页间隔时间
28
- */
29
- getRequestDelay(requestOptions?: Partial<PageRequestOptions<'ApiResponse'>>): number;
30
- /**
31
- * 获取所有数据(忽略之前的请求,从页码1重新开始)
32
- */
33
- fetchAllPage(onPageFetched?: OnPageFetched<D>, requestOptions?: Partial<PageRequestOptions<'ApiResponse'>>): Promise<D[]>;
34
- }
35
- //# sourceMappingURL=page.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../src/api/page/page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAGhF,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAEjF,qBAAa,OAAO,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EAAE,EAAE,SAAS,eAAe,GAAG,CAAC,EAAE,CAAE,SAAQ,OAAO;IACjH,SAAS,CAAC,YAAY,EAAE,gBAAgB,CAAA;IACxC,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC,CAAA;IAClH,SAAS,CAAC,aAAa,EAAE,aAAa,CAAA;IAGtC,WAAW,EAAE,MAAM,CAAA;IAEnB,IAAI,EAAE,CAAC,EAAE,CAAK;IAEd,eAAe,EAAE,WAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAO;IAE9C;;;;;OAKG;gBAED,GAAG,EAAE,OAAO,EACZ,YAAY,EAAE,gBAAgB,EAC9B,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC;IAkBtF,SAAS,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IAUrF;;OAEG;IACG,SAAS,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IA6BvE;;OAEG;IACH,eAAe,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAQ3E;;OAEG;IACG,YAAY,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;CAsBjH"}