@moontaiworks/fanbox-dl 1.0.0 → 1.1.0

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 (598) hide show
  1. package/README.md +1 -1
  2. package/dist/bundle/index.cjs +1 -1
  3. package/dist/bundle/index.cjs.map +1 -1
  4. package/dist/bundle/index.d.cts +112 -100
  5. package/dist/bundle/index.d.ts +112 -100
  6. package/dist/bundle/index.js +1 -1
  7. package/dist/bundle/index.js.map +1 -1
  8. package/dist/cjs/cli.d.ts +3 -0
  9. package/dist/cjs/cli.d.ts.map +1 -0
  10. package/dist/cjs/cli.js +97 -0
  11. package/dist/cjs/cli.js.map +1 -0
  12. package/dist/cjs/client/client.d.ts +36 -0
  13. package/dist/cjs/client/client.d.ts.map +1 -0
  14. package/dist/cjs/client/client.js +73 -0
  15. package/dist/cjs/client/client.js.map +1 -0
  16. package/dist/cjs/client/endpoints/creator-get.d.ts +8 -0
  17. package/dist/cjs/client/endpoints/creator-get.d.ts.map +1 -0
  18. package/dist/cjs/client/endpoints/creator-get.js +7 -0
  19. package/dist/cjs/client/endpoints/creator-get.js.map +1 -0
  20. package/dist/cjs/client/endpoints/creator-list-pages.d.ts +9 -0
  21. package/dist/cjs/client/endpoints/creator-list-pages.d.ts.map +1 -0
  22. package/dist/cjs/client/endpoints/creator-list-pages.js +7 -0
  23. package/dist/cjs/client/endpoints/creator-list-pages.js.map +1 -0
  24. package/dist/cjs/client/endpoints/creator-list-plans.d.ts +8 -0
  25. package/dist/cjs/client/endpoints/creator-list-plans.d.ts.map +1 -0
  26. package/dist/cjs/client/endpoints/creator-list-plans.js +7 -0
  27. package/dist/cjs/client/endpoints/creator-list-plans.js.map +1 -0
  28. package/dist/cjs/client/endpoints/creator-list-posts.d.ts +11 -0
  29. package/dist/cjs/client/endpoints/creator-list-posts.d.ts.map +1 -0
  30. package/dist/cjs/client/endpoints/creator-list-posts.js +7 -0
  31. package/dist/cjs/client/endpoints/creator-list-posts.js.map +1 -0
  32. package/dist/cjs/client/endpoints/post-info.d.ts +8 -0
  33. package/dist/cjs/client/endpoints/post-info.d.ts.map +1 -0
  34. package/dist/cjs/client/endpoints/post-info.js +7 -0
  35. package/dist/cjs/client/endpoints/post-info.js.map +1 -0
  36. package/dist/cjs/client/endpoints/post-list-home.d.ts +6 -0
  37. package/dist/cjs/client/endpoints/post-list-home.d.ts.map +1 -0
  38. package/dist/cjs/client/endpoints/post-list-home.js +7 -0
  39. package/dist/cjs/client/endpoints/post-list-home.js.map +1 -0
  40. package/dist/cjs/client/endpoints/post-list-supporting.d.ts +6 -0
  41. package/dist/cjs/client/endpoints/post-list-supporting.d.ts.map +1 -0
  42. package/dist/cjs/client/endpoints/post-list-supporting.js +7 -0
  43. package/dist/cjs/client/endpoints/post-list-supporting.js.map +1 -0
  44. package/dist/cjs/client/endpoints/user-list-following.d.ts +7 -0
  45. package/dist/cjs/client/endpoints/user-list-following.d.ts.map +1 -0
  46. package/dist/cjs/client/endpoints/user-list-following.js +7 -0
  47. package/dist/cjs/client/endpoints/user-list-following.js.map +1 -0
  48. package/dist/cjs/client/endpoints/user-list-supporting.d.ts +5 -0
  49. package/dist/cjs/client/endpoints/user-list-supporting.d.ts.map +1 -0
  50. package/dist/cjs/client/endpoints/user-list-supporting.js +7 -0
  51. package/dist/cjs/client/endpoints/user-list-supporting.js.map +1 -0
  52. package/dist/cjs/client/fanbox-envelope.d.ts.map +1 -0
  53. package/dist/cjs/client/fanbox-envelope.js.map +1 -0
  54. package/dist/cjs/client/fanbox-headers.d.ts.map +1 -0
  55. package/dist/cjs/{fanbox-headers.js → client/fanbox-headers.js} +0 -4
  56. package/dist/cjs/client/fanbox-headers.js.map +1 -0
  57. package/dist/cjs/client/models/creator.d.ts.map +1 -0
  58. package/dist/cjs/client/models/creator.js.map +1 -0
  59. package/dist/cjs/client/models/plan.d.ts.map +1 -0
  60. package/dist/cjs/{endpoints → client}/models/plan.js.map +1 -1
  61. package/dist/cjs/client/models/post/article.d.ts +41 -0
  62. package/dist/cjs/client/models/post/article.d.ts.map +1 -0
  63. package/dist/cjs/client/models/post/article.js +3 -0
  64. package/dist/cjs/client/models/post/article.js.map +1 -0
  65. package/dist/cjs/client/models/post/asset.d.ts +16 -0
  66. package/dist/cjs/client/models/post/asset.d.ts.map +1 -0
  67. package/dist/cjs/client/models/post/asset.js +3 -0
  68. package/dist/cjs/client/models/post/asset.js.map +1 -0
  69. package/dist/cjs/client/models/post/embed.d.ts +12 -0
  70. package/dist/cjs/client/models/post/embed.d.ts.map +1 -0
  71. package/dist/cjs/client/models/post/embed.js +3 -0
  72. package/dist/cjs/client/models/post/embed.js.map +1 -0
  73. package/dist/cjs/client/models/post/url-embed.d.ts +13 -0
  74. package/dist/cjs/client/models/post/url-embed.d.ts.map +1 -0
  75. package/dist/cjs/client/models/post/url-embed.js +3 -0
  76. package/dist/cjs/client/models/post/url-embed.js.map +1 -0
  77. package/dist/cjs/{endpoints → client}/models/post.d.ts +5 -48
  78. package/dist/cjs/client/models/post.d.ts.map +1 -0
  79. package/dist/cjs/{endpoints → client}/models/post.js.map +1 -1
  80. package/dist/cjs/client/models/user.d.ts.map +1 -0
  81. package/dist/cjs/{endpoints → client}/models/user.js.map +1 -1
  82. package/dist/cjs/client/types.d.ts +14 -0
  83. package/dist/cjs/client/types.d.ts.map +1 -0
  84. package/dist/cjs/{types.js.map → client/types.js.map} +1 -1
  85. package/dist/cjs/downloader/asset/download.d.ts +21 -0
  86. package/dist/cjs/downloader/asset/download.d.ts.map +1 -0
  87. package/dist/cjs/downloader/asset/download.js +95 -0
  88. package/dist/cjs/downloader/asset/download.js.map +1 -0
  89. package/dist/cjs/downloader/cli/cookie.d.ts +2 -0
  90. package/dist/cjs/downloader/cli/cookie.d.ts.map +1 -0
  91. package/dist/cjs/downloader/cli/cookie.js +37 -0
  92. package/dist/cjs/downloader/cli/cookie.js.map +1 -0
  93. package/dist/cjs/downloader/cli/index.d.ts +4 -0
  94. package/dist/cjs/downloader/cli/index.d.ts.map +1 -0
  95. package/dist/cjs/downloader/cli/index.js +15 -0
  96. package/dist/cjs/downloader/cli/index.js.map +1 -0
  97. package/dist/cjs/downloader/cli/options.d.ts +22 -0
  98. package/dist/cjs/downloader/cli/options.d.ts.map +1 -0
  99. package/dist/cjs/downloader/cli/options.js +124 -0
  100. package/dist/cjs/downloader/cli/options.js.map +1 -0
  101. package/dist/cjs/downloader/cli/resolver.d.ts +24 -0
  102. package/dist/cjs/downloader/cli/resolver.d.ts.map +1 -0
  103. package/dist/cjs/downloader/cli/resolver.js +28 -0
  104. package/dist/cjs/downloader/cli/resolver.js.map +1 -0
  105. package/dist/cjs/downloader/creator/discover-posts.d.ts +15 -0
  106. package/dist/cjs/downloader/creator/discover-posts.d.ts.map +1 -0
  107. package/dist/cjs/downloader/creator/discover-posts.js +20 -0
  108. package/dist/cjs/downloader/creator/discover-posts.js.map +1 -0
  109. package/dist/cjs/downloader/creator/sync.d.ts +16 -0
  110. package/dist/cjs/downloader/creator/sync.d.ts.map +1 -0
  111. package/dist/cjs/downloader/creator/sync.js +34 -0
  112. package/dist/cjs/downloader/creator/sync.js.map +1 -0
  113. package/dist/cjs/downloader/fs/filesystem.d.ts +2 -0
  114. package/dist/cjs/downloader/fs/filesystem.d.ts.map +1 -0
  115. package/dist/cjs/downloader/fs/filesystem.js +10 -0
  116. package/dist/cjs/downloader/fs/filesystem.js.map +1 -0
  117. package/dist/cjs/downloader/fs/path-manager.d.ts +17 -0
  118. package/dist/cjs/downloader/fs/path-manager.d.ts.map +1 -0
  119. package/dist/cjs/downloader/fs/path-manager.js +49 -0
  120. package/dist/cjs/downloader/fs/path-manager.js.map +1 -0
  121. package/dist/cjs/downloader/index.d.ts +8 -2
  122. package/dist/cjs/downloader/index.d.ts.map +1 -1
  123. package/dist/cjs/downloader/index.js +55 -5
  124. package/dist/cjs/downloader/index.js.map +1 -1
  125. package/dist/cjs/downloader/manifest/creator-manager.d.ts +15 -0
  126. package/dist/cjs/downloader/manifest/creator-manager.d.ts.map +1 -0
  127. package/dist/cjs/downloader/manifest/creator-manager.js +42 -0
  128. package/dist/cjs/downloader/manifest/creator-manager.js.map +1 -0
  129. package/dist/cjs/downloader/manifest/creator.d.ts +42 -0
  130. package/dist/cjs/downloader/manifest/creator.d.ts.map +1 -0
  131. package/dist/cjs/downloader/manifest/creator.js +54 -0
  132. package/dist/cjs/downloader/manifest/creator.js.map +1 -0
  133. package/dist/cjs/downloader/manifest/store.d.ts +9 -0
  134. package/dist/cjs/downloader/manifest/store.d.ts.map +1 -0
  135. package/dist/cjs/downloader/manifest/store.js +29 -0
  136. package/dist/cjs/downloader/manifest/store.js.map +1 -0
  137. package/dist/cjs/downloader/markdown/asset.d.ts +12 -0
  138. package/dist/cjs/downloader/markdown/asset.d.ts.map +1 -0
  139. package/dist/cjs/downloader/markdown/asset.js +31 -0
  140. package/dist/cjs/downloader/markdown/asset.js.map +1 -0
  141. package/dist/cjs/downloader/post/article.d.ts +4 -0
  142. package/dist/cjs/downloader/post/article.d.ts.map +1 -0
  143. package/dist/cjs/downloader/post/article.js +35 -0
  144. package/dist/cjs/downloader/post/article.js.map +1 -0
  145. package/dist/cjs/downloader/post/content.d.ts +52 -0
  146. package/dist/cjs/downloader/post/content.d.ts.map +1 -0
  147. package/dist/cjs/downloader/post/content.js +48 -0
  148. package/dist/cjs/downloader/post/content.js.map +1 -0
  149. package/dist/cjs/downloader/post/contents.d.ts +9 -0
  150. package/dist/cjs/downloader/post/contents.d.ts.map +1 -0
  151. package/dist/cjs/downloader/post/contents.js +36 -0
  152. package/dist/cjs/downloader/post/contents.js.map +1 -0
  153. package/dist/cjs/downloader/post/embed.d.ts +7 -0
  154. package/dist/cjs/downloader/post/embed.d.ts.map +1 -0
  155. package/dist/cjs/downloader/post/embed.js +14 -0
  156. package/dist/cjs/downloader/post/embed.js.map +1 -0
  157. package/dist/cjs/downloader/post/sync.d.ts +17 -0
  158. package/dist/cjs/downloader/post/sync.d.ts.map +1 -0
  159. package/dist/cjs/downloader/post/sync.js +127 -0
  160. package/dist/cjs/downloader/post/sync.js.map +1 -0
  161. package/dist/cjs/downloader/post/url-embed.d.ts +7 -0
  162. package/dist/cjs/downloader/post/url-embed.d.ts.map +1 -0
  163. package/dist/cjs/downloader/post/url-embed.js +14 -0
  164. package/dist/cjs/downloader/post/url-embed.js.map +1 -0
  165. package/dist/cjs/index.d.ts +2 -2
  166. package/dist/cjs/index.d.ts.map +1 -1
  167. package/dist/cjs/index.js +1 -1
  168. package/dist/cjs/index.js.map +1 -1
  169. package/dist/cjs/transport/http2-session.d.ts +7 -0
  170. package/dist/cjs/transport/http2-session.d.ts.map +1 -0
  171. package/dist/cjs/transport/http2-session.js +48 -0
  172. package/dist/cjs/transport/http2-session.js.map +1 -0
  173. package/dist/cjs/transport/http2.d.ts +11 -0
  174. package/dist/cjs/transport/http2.d.ts.map +1 -0
  175. package/dist/cjs/transport/http2.js +85 -0
  176. package/dist/cjs/transport/http2.js.map +1 -0
  177. package/dist/cjs/transport/worker.d.ts +17 -0
  178. package/dist/cjs/transport/worker.d.ts.map +1 -0
  179. package/dist/cjs/transport/worker.js +137 -0
  180. package/dist/cjs/transport/worker.js.map +1 -0
  181. package/dist/cjs/usage.d.ts +4 -0
  182. package/dist/cjs/usage.d.ts.map +1 -0
  183. package/dist/cjs/usage.js +11 -0
  184. package/dist/cjs/usage.js.map +1 -0
  185. package/dist/esm/cli.d.ts +3 -0
  186. package/dist/esm/cli.d.ts.map +1 -0
  187. package/dist/esm/cli.js +62 -0
  188. package/dist/esm/cli.js.map +1 -0
  189. package/dist/esm/client/client.d.ts +36 -0
  190. package/dist/esm/client/client.d.ts.map +1 -0
  191. package/dist/esm/client/client.js +68 -0
  192. package/dist/esm/client/client.js.map +1 -0
  193. package/dist/esm/client/endpoints/creator-get.d.ts +8 -0
  194. package/dist/esm/client/endpoints/creator-get.d.ts.map +1 -0
  195. package/dist/esm/client/endpoints/creator-get.js +4 -0
  196. package/dist/esm/client/endpoints/creator-get.js.map +1 -0
  197. package/dist/esm/client/endpoints/creator-list-pages.d.ts +9 -0
  198. package/dist/esm/client/endpoints/creator-list-pages.d.ts.map +1 -0
  199. package/dist/esm/client/endpoints/creator-list-pages.js +4 -0
  200. package/dist/esm/client/endpoints/creator-list-pages.js.map +1 -0
  201. package/dist/esm/client/endpoints/creator-list-plans.d.ts +8 -0
  202. package/dist/esm/client/endpoints/creator-list-plans.d.ts.map +1 -0
  203. package/dist/esm/client/endpoints/creator-list-plans.js +4 -0
  204. package/dist/esm/client/endpoints/creator-list-plans.js.map +1 -0
  205. package/dist/esm/client/endpoints/creator-list-posts.d.ts +11 -0
  206. package/dist/esm/client/endpoints/creator-list-posts.d.ts.map +1 -0
  207. package/dist/esm/client/endpoints/creator-list-posts.js +4 -0
  208. package/dist/esm/client/endpoints/creator-list-posts.js.map +1 -0
  209. package/dist/esm/client/endpoints/post-info.d.ts +8 -0
  210. package/dist/esm/client/endpoints/post-info.d.ts.map +1 -0
  211. package/dist/esm/client/endpoints/post-info.js +4 -0
  212. package/dist/esm/client/endpoints/post-info.js.map +1 -0
  213. package/dist/esm/client/endpoints/post-list-home.d.ts +6 -0
  214. package/dist/esm/client/endpoints/post-list-home.d.ts.map +1 -0
  215. package/dist/esm/client/endpoints/post-list-home.js +4 -0
  216. package/dist/esm/client/endpoints/post-list-home.js.map +1 -0
  217. package/dist/esm/client/endpoints/post-list-supporting.d.ts +6 -0
  218. package/dist/esm/client/endpoints/post-list-supporting.d.ts.map +1 -0
  219. package/dist/esm/client/endpoints/post-list-supporting.js +4 -0
  220. package/dist/esm/client/endpoints/post-list-supporting.js.map +1 -0
  221. package/dist/esm/client/endpoints/user-list-following.d.ts +7 -0
  222. package/dist/esm/client/endpoints/user-list-following.d.ts.map +1 -0
  223. package/dist/esm/client/endpoints/user-list-following.js +4 -0
  224. package/dist/esm/client/endpoints/user-list-following.js.map +1 -0
  225. package/dist/esm/client/endpoints/user-list-supporting.d.ts +5 -0
  226. package/dist/esm/client/endpoints/user-list-supporting.d.ts.map +1 -0
  227. package/dist/esm/client/endpoints/user-list-supporting.js +4 -0
  228. package/dist/esm/client/endpoints/user-list-supporting.js.map +1 -0
  229. package/dist/esm/client/fanbox-envelope.d.ts.map +1 -0
  230. package/dist/esm/client/fanbox-envelope.js.map +1 -0
  231. package/dist/esm/client/fanbox-headers.d.ts.map +1 -0
  232. package/dist/esm/{fanbox-headers.js → client/fanbox-headers.js} +0 -4
  233. package/dist/esm/client/fanbox-headers.js.map +1 -0
  234. package/dist/esm/client/models/creator.d.ts.map +1 -0
  235. package/dist/esm/client/models/creator.js.map +1 -0
  236. package/dist/esm/client/models/plan.d.ts.map +1 -0
  237. package/dist/esm/{endpoints → client}/models/plan.js.map +1 -1
  238. package/dist/esm/client/models/post/article.d.ts +41 -0
  239. package/dist/esm/client/models/post/article.d.ts.map +1 -0
  240. package/dist/esm/client/models/post/article.js +2 -0
  241. package/dist/esm/client/models/post/article.js.map +1 -0
  242. package/dist/esm/client/models/post/asset.d.ts +16 -0
  243. package/dist/esm/client/models/post/asset.d.ts.map +1 -0
  244. package/dist/esm/client/models/post/asset.js +2 -0
  245. package/dist/esm/client/models/post/asset.js.map +1 -0
  246. package/dist/esm/client/models/post/embed.d.ts +12 -0
  247. package/dist/esm/client/models/post/embed.d.ts.map +1 -0
  248. package/dist/esm/client/models/post/embed.js +2 -0
  249. package/dist/esm/client/models/post/embed.js.map +1 -0
  250. package/dist/esm/client/models/post/url-embed.d.ts +13 -0
  251. package/dist/esm/client/models/post/url-embed.d.ts.map +1 -0
  252. package/dist/esm/client/models/post/url-embed.js +2 -0
  253. package/dist/esm/client/models/post/url-embed.js.map +1 -0
  254. package/dist/esm/{endpoints → client}/models/post.d.ts +5 -48
  255. package/dist/esm/client/models/post.d.ts.map +1 -0
  256. package/dist/esm/{endpoints → client}/models/post.js.map +1 -1
  257. package/dist/esm/client/models/user.d.ts.map +1 -0
  258. package/dist/esm/{endpoints → client}/models/user.js.map +1 -1
  259. package/dist/esm/client/types.d.ts +14 -0
  260. package/dist/esm/client/types.d.ts.map +1 -0
  261. package/dist/esm/{types.js.map → client/types.js.map} +1 -1
  262. package/dist/esm/downloader/asset/download.d.ts +21 -0
  263. package/dist/esm/downloader/asset/download.d.ts.map +1 -0
  264. package/dist/esm/downloader/asset/download.js +56 -0
  265. package/dist/esm/downloader/asset/download.js.map +1 -0
  266. package/dist/esm/downloader/cli/cookie.d.ts +2 -0
  267. package/dist/esm/downloader/cli/cookie.d.ts.map +1 -0
  268. package/dist/esm/downloader/cli/cookie.js +34 -0
  269. package/dist/esm/downloader/cli/cookie.js.map +1 -0
  270. package/dist/esm/downloader/cli/index.d.ts +4 -0
  271. package/dist/esm/downloader/cli/index.d.ts.map +1 -0
  272. package/dist/esm/downloader/cli/index.js +11 -0
  273. package/dist/esm/downloader/cli/index.js.map +1 -0
  274. package/dist/esm/downloader/cli/options.d.ts +22 -0
  275. package/dist/esm/downloader/cli/options.d.ts.map +1 -0
  276. package/dist/esm/downloader/cli/options.js +120 -0
  277. package/dist/esm/downloader/cli/options.js.map +1 -0
  278. package/dist/esm/downloader/cli/resolver.d.ts +24 -0
  279. package/dist/esm/downloader/cli/resolver.d.ts.map +1 -0
  280. package/dist/esm/downloader/cli/resolver.js +25 -0
  281. package/dist/esm/downloader/cli/resolver.js.map +1 -0
  282. package/dist/esm/downloader/creator/discover-posts.d.ts +15 -0
  283. package/dist/esm/downloader/creator/discover-posts.d.ts.map +1 -0
  284. package/dist/esm/downloader/creator/discover-posts.js +17 -0
  285. package/dist/esm/downloader/creator/discover-posts.js.map +1 -0
  286. package/dist/esm/downloader/creator/sync.d.ts +16 -0
  287. package/dist/esm/downloader/creator/sync.d.ts.map +1 -0
  288. package/dist/esm/downloader/creator/sync.js +31 -0
  289. package/dist/esm/downloader/creator/sync.js.map +1 -0
  290. package/dist/esm/downloader/fs/filesystem.d.ts +2 -0
  291. package/dist/esm/downloader/fs/filesystem.d.ts.map +1 -0
  292. package/dist/esm/downloader/fs/filesystem.js +7 -0
  293. package/dist/esm/downloader/fs/filesystem.js.map +1 -0
  294. package/dist/esm/downloader/fs/path-manager.d.ts +17 -0
  295. package/dist/esm/downloader/fs/path-manager.d.ts.map +1 -0
  296. package/dist/esm/downloader/fs/path-manager.js +45 -0
  297. package/dist/esm/downloader/fs/path-manager.js.map +1 -0
  298. package/dist/esm/downloader/index.d.ts +8 -2
  299. package/dist/esm/downloader/index.d.ts.map +1 -1
  300. package/dist/esm/downloader/index.js +54 -5
  301. package/dist/esm/downloader/index.js.map +1 -1
  302. package/dist/esm/downloader/manifest/creator-manager.d.ts +15 -0
  303. package/dist/esm/downloader/manifest/creator-manager.d.ts.map +1 -0
  304. package/dist/esm/downloader/manifest/creator-manager.js +38 -0
  305. package/dist/esm/downloader/manifest/creator-manager.js.map +1 -0
  306. package/dist/esm/downloader/manifest/creator.d.ts +42 -0
  307. package/dist/esm/downloader/manifest/creator.d.ts.map +1 -0
  308. package/dist/esm/downloader/manifest/creator.js +50 -0
  309. package/dist/esm/downloader/manifest/creator.js.map +1 -0
  310. package/dist/esm/downloader/manifest/store.d.ts +9 -0
  311. package/dist/esm/downloader/manifest/store.d.ts.map +1 -0
  312. package/dist/esm/downloader/manifest/store.js +25 -0
  313. package/dist/esm/downloader/manifest/store.js.map +1 -0
  314. package/dist/esm/downloader/markdown/asset.d.ts +12 -0
  315. package/dist/esm/downloader/markdown/asset.d.ts.map +1 -0
  316. package/dist/esm/downloader/markdown/asset.js +22 -0
  317. package/dist/esm/downloader/markdown/asset.js.map +1 -0
  318. package/dist/esm/downloader/post/article.d.ts +4 -0
  319. package/dist/esm/downloader/post/article.d.ts.map +1 -0
  320. package/dist/esm/downloader/post/article.js +32 -0
  321. package/dist/esm/downloader/post/article.js.map +1 -0
  322. package/dist/esm/downloader/post/content.d.ts +52 -0
  323. package/dist/esm/downloader/post/content.d.ts.map +1 -0
  324. package/dist/esm/downloader/post/content.js +39 -0
  325. package/dist/esm/downloader/post/content.js.map +1 -0
  326. package/dist/esm/downloader/post/contents.d.ts +9 -0
  327. package/dist/esm/downloader/post/contents.d.ts.map +1 -0
  328. package/dist/esm/downloader/post/contents.js +33 -0
  329. package/dist/esm/downloader/post/contents.js.map +1 -0
  330. package/dist/esm/downloader/post/embed.d.ts +7 -0
  331. package/dist/esm/downloader/post/embed.d.ts.map +1 -0
  332. package/dist/esm/downloader/post/embed.js +11 -0
  333. package/dist/esm/downloader/post/embed.js.map +1 -0
  334. package/dist/esm/downloader/post/sync.d.ts +17 -0
  335. package/dist/esm/downloader/post/sync.d.ts.map +1 -0
  336. package/dist/esm/downloader/post/sync.js +124 -0
  337. package/dist/esm/downloader/post/sync.js.map +1 -0
  338. package/dist/esm/downloader/post/url-embed.d.ts +7 -0
  339. package/dist/esm/downloader/post/url-embed.d.ts.map +1 -0
  340. package/dist/esm/downloader/post/url-embed.js +11 -0
  341. package/dist/esm/downloader/post/url-embed.js.map +1 -0
  342. package/dist/esm/index.d.ts +2 -2
  343. package/dist/esm/index.d.ts.map +1 -1
  344. package/dist/esm/index.js +1 -1
  345. package/dist/esm/index.js.map +1 -1
  346. package/dist/esm/transport/http2-session.d.ts +7 -0
  347. package/dist/esm/transport/http2-session.d.ts.map +1 -0
  348. package/dist/esm/transport/http2-session.js +44 -0
  349. package/dist/esm/transport/http2-session.js.map +1 -0
  350. package/dist/esm/transport/http2.d.ts +11 -0
  351. package/dist/esm/transport/http2.d.ts.map +1 -0
  352. package/dist/esm/transport/http2.js +80 -0
  353. package/dist/esm/transport/http2.js.map +1 -0
  354. package/dist/esm/transport/worker.d.ts +17 -0
  355. package/dist/esm/transport/worker.d.ts.map +1 -0
  356. package/dist/esm/transport/worker.js +133 -0
  357. package/dist/esm/transport/worker.js.map +1 -0
  358. package/dist/esm/usage.d.ts +4 -0
  359. package/dist/esm/usage.d.ts.map +1 -0
  360. package/dist/esm/usage.js +7 -0
  361. package/dist/esm/usage.js.map +1 -0
  362. package/package.json +5 -2
  363. package/dist/cjs/client-options.d.ts +0 -8
  364. package/dist/cjs/client-options.d.ts.map +0 -1
  365. package/dist/cjs/client-options.js +0 -3
  366. package/dist/cjs/client-options.js.map +0 -1
  367. package/dist/cjs/client.d.ts +0 -31
  368. package/dist/cjs/client.d.ts.map +0 -1
  369. package/dist/cjs/client.js +0 -107
  370. package/dist/cjs/client.js.map +0 -1
  371. package/dist/cjs/downloader/asset.d.ts +0 -30
  372. package/dist/cjs/downloader/asset.d.ts.map +0 -1
  373. package/dist/cjs/downloader/asset.js +0 -99
  374. package/dist/cjs/downloader/asset.js.map +0 -1
  375. package/dist/cjs/downloader/cli.d.ts +0 -8
  376. package/dist/cjs/downloader/cli.d.ts.map +0 -1
  377. package/dist/cjs/downloader/cli.js +0 -168
  378. package/dist/cjs/downloader/cli.js.map +0 -1
  379. package/dist/cjs/downloader/discovery.d.ts +0 -12
  380. package/dist/cjs/downloader/discovery.d.ts.map +0 -1
  381. package/dist/cjs/downloader/discovery.js +0 -87
  382. package/dist/cjs/downloader/discovery.js.map +0 -1
  383. package/dist/cjs/downloader/errors.d.ts +0 -5
  384. package/dist/cjs/downloader/errors.d.ts.map +0 -1
  385. package/dist/cjs/downloader/errors.js +0 -40
  386. package/dist/cjs/downloader/errors.js.map +0 -1
  387. package/dist/cjs/downloader/logger.d.ts +0 -16
  388. package/dist/cjs/downloader/logger.d.ts.map +0 -1
  389. package/dist/cjs/downloader/logger.js +0 -51
  390. package/dist/cjs/downloader/logger.js.map +0 -1
  391. package/dist/cjs/downloader/manifest.d.ts +0 -31
  392. package/dist/cjs/downloader/manifest.d.ts.map +0 -1
  393. package/dist/cjs/downloader/manifest.js +0 -53
  394. package/dist/cjs/downloader/manifest.js.map +0 -1
  395. package/dist/cjs/downloader/markdown.d.ts +0 -4
  396. package/dist/cjs/downloader/markdown.d.ts.map +0 -1
  397. package/dist/cjs/downloader/markdown.js +0 -62
  398. package/dist/cjs/downloader/markdown.js.map +0 -1
  399. package/dist/cjs/downloader/options.d.ts +0 -24
  400. package/dist/cjs/downloader/options.d.ts.map +0 -1
  401. package/dist/cjs/downloader/options.js +0 -135
  402. package/dist/cjs/downloader/options.js.map +0 -1
  403. package/dist/cjs/downloader/path.d.ts +0 -15
  404. package/dist/cjs/downloader/path.d.ts.map +0 -1
  405. package/dist/cjs/downloader/path.js +0 -79
  406. package/dist/cjs/downloader/path.js.map +0 -1
  407. package/dist/cjs/downloader/resolver.d.ts +0 -16
  408. package/dist/cjs/downloader/resolver.d.ts.map +0 -1
  409. package/dist/cjs/downloader/resolver.js +0 -21
  410. package/dist/cjs/downloader/resolver.js.map +0 -1
  411. package/dist/cjs/downloader/scheduler.d.ts +0 -19
  412. package/dist/cjs/downloader/scheduler.d.ts.map +0 -1
  413. package/dist/cjs/downloader/scheduler.js +0 -124
  414. package/dist/cjs/downloader/scheduler.js.map +0 -1
  415. package/dist/cjs/downloader/sync.d.ts +0 -21
  416. package/dist/cjs/downloader/sync.d.ts.map +0 -1
  417. package/dist/cjs/downloader/sync.js +0 -317
  418. package/dist/cjs/downloader/sync.js.map +0 -1
  419. package/dist/cjs/endpoints/creator-get.d.ts +0 -7
  420. package/dist/cjs/endpoints/creator-get.d.ts.map +0 -1
  421. package/dist/cjs/endpoints/creator-get.js +0 -5
  422. package/dist/cjs/endpoints/creator-get.js.map +0 -1
  423. package/dist/cjs/endpoints/creator-list-following.d.ts +0 -4
  424. package/dist/cjs/endpoints/creator-list-following.d.ts.map +0 -1
  425. package/dist/cjs/endpoints/creator-list-following.js +0 -5
  426. package/dist/cjs/endpoints/creator-list-following.js.map +0 -1
  427. package/dist/cjs/endpoints/fanbox-envelope.d.ts.map +0 -1
  428. package/dist/cjs/endpoints/fanbox-envelope.js.map +0 -1
  429. package/dist/cjs/endpoints/models/creator.d.ts.map +0 -1
  430. package/dist/cjs/endpoints/models/creator.js.map +0 -1
  431. package/dist/cjs/endpoints/models/plan.d.ts.map +0 -1
  432. package/dist/cjs/endpoints/models/post.d.ts.map +0 -1
  433. package/dist/cjs/endpoints/models/user.d.ts.map +0 -1
  434. package/dist/cjs/endpoints/plan-list-creator.d.ts +0 -7
  435. package/dist/cjs/endpoints/plan-list-creator.d.ts.map +0 -1
  436. package/dist/cjs/endpoints/plan-list-creator.js +0 -5
  437. package/dist/cjs/endpoints/plan-list-creator.js.map +0 -1
  438. package/dist/cjs/endpoints/plan-list-supporting.d.ts +0 -4
  439. package/dist/cjs/endpoints/plan-list-supporting.d.ts.map +0 -1
  440. package/dist/cjs/endpoints/plan-list-supporting.js +0 -5
  441. package/dist/cjs/endpoints/plan-list-supporting.js.map +0 -1
  442. package/dist/cjs/endpoints/post-info.d.ts +0 -7
  443. package/dist/cjs/endpoints/post-info.d.ts.map +0 -1
  444. package/dist/cjs/endpoints/post-info.js +0 -5
  445. package/dist/cjs/endpoints/post-info.js.map +0 -1
  446. package/dist/cjs/endpoints/post-list-creator.d.ts +0 -10
  447. package/dist/cjs/endpoints/post-list-creator.d.ts.map +0 -1
  448. package/dist/cjs/endpoints/post-list-creator.js +0 -5
  449. package/dist/cjs/endpoints/post-list-creator.js.map +0 -1
  450. package/dist/cjs/endpoints/post-list-home.d.ts +0 -5
  451. package/dist/cjs/endpoints/post-list-home.d.ts.map +0 -1
  452. package/dist/cjs/endpoints/post-list-home.js +0 -5
  453. package/dist/cjs/endpoints/post-list-home.js.map +0 -1
  454. package/dist/cjs/endpoints/post-list-supporting.d.ts +0 -5
  455. package/dist/cjs/endpoints/post-list-supporting.d.ts.map +0 -1
  456. package/dist/cjs/endpoints/post-list-supporting.js +0 -5
  457. package/dist/cjs/endpoints/post-list-supporting.js.map +0 -1
  458. package/dist/cjs/endpoints/post-paginate-creator.d.ts +0 -8
  459. package/dist/cjs/endpoints/post-paginate-creator.d.ts.map +0 -1
  460. package/dist/cjs/endpoints/post-paginate-creator.js +0 -5
  461. package/dist/cjs/endpoints/post-paginate-creator.js.map +0 -1
  462. package/dist/cjs/fanbox-headers.d.ts.map +0 -1
  463. package/dist/cjs/fanbox-headers.js.map +0 -1
  464. package/dist/cjs/http.d.ts +0 -31
  465. package/dist/cjs/http.d.ts.map +0 -1
  466. package/dist/cjs/http.js +0 -200
  467. package/dist/cjs/http.js.map +0 -1
  468. package/dist/cjs/types.d.ts +0 -16
  469. package/dist/cjs/types.d.ts.map +0 -1
  470. package/dist/esm/client-options.d.ts +0 -8
  471. package/dist/esm/client-options.d.ts.map +0 -1
  472. package/dist/esm/client-options.js +0 -2
  473. package/dist/esm/client-options.js.map +0 -1
  474. package/dist/esm/client.d.ts +0 -31
  475. package/dist/esm/client.d.ts.map +0 -1
  476. package/dist/esm/client.js +0 -102
  477. package/dist/esm/client.js.map +0 -1
  478. package/dist/esm/downloader/asset.d.ts +0 -30
  479. package/dist/esm/downloader/asset.d.ts.map +0 -1
  480. package/dist/esm/downloader/asset.js +0 -91
  481. package/dist/esm/downloader/asset.js.map +0 -1
  482. package/dist/esm/downloader/cli.d.ts +0 -8
  483. package/dist/esm/downloader/cli.d.ts.map +0 -1
  484. package/dist/esm/downloader/cli.js +0 -164
  485. package/dist/esm/downloader/cli.js.map +0 -1
  486. package/dist/esm/downloader/discovery.d.ts +0 -12
  487. package/dist/esm/downloader/discovery.d.ts.map +0 -1
  488. package/dist/esm/downloader/discovery.js +0 -84
  489. package/dist/esm/downloader/discovery.js.map +0 -1
  490. package/dist/esm/downloader/errors.d.ts +0 -5
  491. package/dist/esm/downloader/errors.d.ts.map +0 -1
  492. package/dist/esm/downloader/errors.js +0 -36
  493. package/dist/esm/downloader/errors.js.map +0 -1
  494. package/dist/esm/downloader/logger.d.ts +0 -16
  495. package/dist/esm/downloader/logger.d.ts.map +0 -1
  496. package/dist/esm/downloader/logger.js +0 -47
  497. package/dist/esm/downloader/logger.js.map +0 -1
  498. package/dist/esm/downloader/manifest.d.ts +0 -31
  499. package/dist/esm/downloader/manifest.d.ts.map +0 -1
  500. package/dist/esm/downloader/manifest.js +0 -46
  501. package/dist/esm/downloader/manifest.js.map +0 -1
  502. package/dist/esm/downloader/markdown.d.ts +0 -4
  503. package/dist/esm/downloader/markdown.d.ts.map +0 -1
  504. package/dist/esm/downloader/markdown.js +0 -59
  505. package/dist/esm/downloader/markdown.js.map +0 -1
  506. package/dist/esm/downloader/options.d.ts +0 -24
  507. package/dist/esm/downloader/options.d.ts.map +0 -1
  508. package/dist/esm/downloader/options.js +0 -130
  509. package/dist/esm/downloader/options.js.map +0 -1
  510. package/dist/esm/downloader/path.d.ts +0 -15
  511. package/dist/esm/downloader/path.d.ts.map +0 -1
  512. package/dist/esm/downloader/path.js +0 -69
  513. package/dist/esm/downloader/path.js.map +0 -1
  514. package/dist/esm/downloader/resolver.d.ts +0 -16
  515. package/dist/esm/downloader/resolver.d.ts.map +0 -1
  516. package/dist/esm/downloader/resolver.js +0 -18
  517. package/dist/esm/downloader/resolver.js.map +0 -1
  518. package/dist/esm/downloader/scheduler.d.ts +0 -19
  519. package/dist/esm/downloader/scheduler.d.ts.map +0 -1
  520. package/dist/esm/downloader/scheduler.js +0 -120
  521. package/dist/esm/downloader/scheduler.js.map +0 -1
  522. package/dist/esm/downloader/sync.d.ts +0 -21
  523. package/dist/esm/downloader/sync.d.ts.map +0 -1
  524. package/dist/esm/downloader/sync.js +0 -311
  525. package/dist/esm/downloader/sync.js.map +0 -1
  526. package/dist/esm/endpoints/creator-get.d.ts +0 -7
  527. package/dist/esm/endpoints/creator-get.d.ts.map +0 -1
  528. package/dist/esm/endpoints/creator-get.js +0 -2
  529. package/dist/esm/endpoints/creator-get.js.map +0 -1
  530. package/dist/esm/endpoints/creator-list-following.d.ts +0 -4
  531. package/dist/esm/endpoints/creator-list-following.d.ts.map +0 -1
  532. package/dist/esm/endpoints/creator-list-following.js +0 -2
  533. package/dist/esm/endpoints/creator-list-following.js.map +0 -1
  534. package/dist/esm/endpoints/fanbox-envelope.d.ts.map +0 -1
  535. package/dist/esm/endpoints/fanbox-envelope.js.map +0 -1
  536. package/dist/esm/endpoints/models/creator.d.ts.map +0 -1
  537. package/dist/esm/endpoints/models/creator.js.map +0 -1
  538. package/dist/esm/endpoints/models/plan.d.ts.map +0 -1
  539. package/dist/esm/endpoints/models/post.d.ts.map +0 -1
  540. package/dist/esm/endpoints/models/user.d.ts.map +0 -1
  541. package/dist/esm/endpoints/plan-list-creator.d.ts +0 -7
  542. package/dist/esm/endpoints/plan-list-creator.d.ts.map +0 -1
  543. package/dist/esm/endpoints/plan-list-creator.js +0 -2
  544. package/dist/esm/endpoints/plan-list-creator.js.map +0 -1
  545. package/dist/esm/endpoints/plan-list-supporting.d.ts +0 -4
  546. package/dist/esm/endpoints/plan-list-supporting.d.ts.map +0 -1
  547. package/dist/esm/endpoints/plan-list-supporting.js +0 -2
  548. package/dist/esm/endpoints/plan-list-supporting.js.map +0 -1
  549. package/dist/esm/endpoints/post-info.d.ts +0 -7
  550. package/dist/esm/endpoints/post-info.d.ts.map +0 -1
  551. package/dist/esm/endpoints/post-info.js +0 -2
  552. package/dist/esm/endpoints/post-info.js.map +0 -1
  553. package/dist/esm/endpoints/post-list-creator.d.ts +0 -10
  554. package/dist/esm/endpoints/post-list-creator.d.ts.map +0 -1
  555. package/dist/esm/endpoints/post-list-creator.js +0 -2
  556. package/dist/esm/endpoints/post-list-creator.js.map +0 -1
  557. package/dist/esm/endpoints/post-list-home.d.ts +0 -5
  558. package/dist/esm/endpoints/post-list-home.d.ts.map +0 -1
  559. package/dist/esm/endpoints/post-list-home.js +0 -2
  560. package/dist/esm/endpoints/post-list-home.js.map +0 -1
  561. package/dist/esm/endpoints/post-list-supporting.d.ts +0 -5
  562. package/dist/esm/endpoints/post-list-supporting.d.ts.map +0 -1
  563. package/dist/esm/endpoints/post-list-supporting.js +0 -2
  564. package/dist/esm/endpoints/post-list-supporting.js.map +0 -1
  565. package/dist/esm/endpoints/post-paginate-creator.d.ts +0 -8
  566. package/dist/esm/endpoints/post-paginate-creator.d.ts.map +0 -1
  567. package/dist/esm/endpoints/post-paginate-creator.js +0 -2
  568. package/dist/esm/endpoints/post-paginate-creator.js.map +0 -1
  569. package/dist/esm/fanbox-headers.d.ts.map +0 -1
  570. package/dist/esm/fanbox-headers.js.map +0 -1
  571. package/dist/esm/http.d.ts +0 -31
  572. package/dist/esm/http.d.ts.map +0 -1
  573. package/dist/esm/http.js +0 -195
  574. package/dist/esm/http.js.map +0 -1
  575. package/dist/esm/types.d.ts +0 -16
  576. package/dist/esm/types.d.ts.map +0 -1
  577. /package/dist/cjs/{endpoints → client}/fanbox-envelope.d.ts +0 -0
  578. /package/dist/cjs/{endpoints → client}/fanbox-envelope.js +0 -0
  579. /package/dist/cjs/{fanbox-headers.d.ts → client/fanbox-headers.d.ts} +0 -0
  580. /package/dist/cjs/{endpoints → client}/models/creator.d.ts +0 -0
  581. /package/dist/cjs/{endpoints → client}/models/creator.js +0 -0
  582. /package/dist/cjs/{endpoints → client}/models/plan.d.ts +0 -0
  583. /package/dist/cjs/{endpoints → client}/models/plan.js +0 -0
  584. /package/dist/cjs/{endpoints → client}/models/post.js +0 -0
  585. /package/dist/cjs/{endpoints → client}/models/user.d.ts +0 -0
  586. /package/dist/cjs/{endpoints → client}/models/user.js +0 -0
  587. /package/dist/cjs/{types.js → client/types.js} +0 -0
  588. /package/dist/esm/{endpoints → client}/fanbox-envelope.d.ts +0 -0
  589. /package/dist/esm/{endpoints → client}/fanbox-envelope.js +0 -0
  590. /package/dist/esm/{fanbox-headers.d.ts → client/fanbox-headers.d.ts} +0 -0
  591. /package/dist/esm/{endpoints → client}/models/creator.d.ts +0 -0
  592. /package/dist/esm/{endpoints → client}/models/creator.js +0 -0
  593. /package/dist/esm/{endpoints → client}/models/plan.d.ts +0 -0
  594. /package/dist/esm/{endpoints → client}/models/plan.js +0 -0
  595. /package/dist/esm/{endpoints → client}/models/post.js +0 -0
  596. /package/dist/esm/{endpoints → client}/models/user.d.ts +0 -0
  597. /package/dist/esm/{endpoints → client}/models/user.js +0 -0
  598. /package/dist/esm/{types.js → client/types.js} +0 -0
package/README.md CHANGED
@@ -65,7 +65,7 @@ At least one creator selector is required: `--creator`, `--following`, or
65
65
  | `--rate-limit-pause-ms <n>` | Pause duration after HTTP 429 when FANBOX does not send `Retry-After`. | `--rate-limit-pause-ms 60000` | `60000` |
66
66
  | `--max-retries <n>` | Retry attempts for retryable request failures. | `--max-retries 5` | `5` |
67
67
  | `--log-format json\|pretty` | Choose JSON Lines logs or human-readable logs. | `--log-format pretty` | `json` |
68
- | `--log-level <level>` | Show logs at this level or higher. One of `debug`, `info`, `warn`, or `error`. | `--log-level debug` | `info` |
68
+ | `--log-level <level>` | Show logs at this level or higher. One of `trace`, `debug`, `info`, `warn`, `error` or `silent`. | `--log-level trace` | `info` |
69
69
  | `--help` | Show CLI help. | `--help` | None |
70
70
 
71
71
  ### CLI Notes
@@ -1,2 +1,2 @@
1
- "use strict";var x=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var $=Object.prototype.hasOwnProperty;var _=t=>{throw TypeError(t)};var W=(t,e)=>{for(var r in e)x(t,r,{get:e[r],enumerable:!0})},z=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of M(e))!$.call(t,o)&&o!==r&&x(t,o,{get:()=>e[o],enumerable:!(s=q(e,o))||s.enumerable});return t};var J=t=>z(x({},"__esModule",{value:!0}),t);var L=(t,e,r)=>e.has(t)||_("Cannot "+r);var n=(t,e,r)=>(L(t,e,"read from private field"),r?r.call(t):e.get(t)),P=(t,e,r)=>e.has(t)?_("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),g=(t,e,r,s)=>(L(t,e,"write to private field"),s?s.call(t,r):e.set(t,r),r),i=(t,e,r)=>(L(t,e,"access private method"),r);var Pt={};W(Pt,{FanboxApiError:()=>f,FanboxClient:()=>b});module.exports=J(Pt);var C="creator.get";var O="creator.listFollowing";var w="plan.listCreator";var E="plan.listSupporting";var I="post.info";var U="post.listCreator";var F="post.listHome";var G="post.listSupporting";var N="post.paginateCreator";function B(t={}){let e={Accept:"application/json, text/plain, */*",Origin:"https://www.fanbox.cc",Referer:"https://www.fanbox.cc/","Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-site","User-Agent":t.userAgent??X()};return t.cookie!==void 0&&(e.Cookie=t.cookie),e}function X(){return`${Math.random().toString(36).substring(2,15)}/${Math.random().toFixed(5)}`}var k=require("http2");var Y=":authority",K=":method",Q=":path",V=":scheme",Z=":status",p,S,v,T=class{constructor(){P(this,S);P(this,p,new Map)}async close(){let e=[...n(this,p).values()];n(this,p).clear(),await Promise.all(e.map(tt))}request(e){let r=nt(e),s=i(this,S,v).call(this,r.url),o=et(r),m=s.request(o,{endStream:!r.body});return new Promise((h,d)=>{let A=!1;m.once("error",d),m.once("response",l=>{A=!0;let D=it(l[Z]);h(rt({body:m,headers:st(l),status:D}))}),m.once("close",()=>{A||d(new H("HTTP/2 stream closed before response"))}),r.body!==void 0&&pt(m,r.body).catch(l=>{m.destroy(l instanceof Error?l:new Error(String(l)))})})}};p=new WeakMap,S=new WeakSet,v=function(e){let r=e.origin,s=n(this,p).get(r);if(s&&!s.closed&&!s.destroyed)return s;let o=(0,k.connect)(r);return o.once("close",()=>{n(this,p).get(r)===o&&n(this,p).delete(r)}),o.once("error",()=>{n(this,p).get(r)===o&&n(this,p).delete(r)}),n(this,p).set(r,o),o};var H=class extends Error{constructor(e){super(e),this.name="HttpError"}};function tt(t){return t.closed||t.destroyed?Promise.resolve():new Promise(e=>{t.close(e)})}function et(t){let e={[Y]:t.url.host,[K]:t.method.toUpperCase(),[Q]:`${t.url.pathname}${t.url.search}`,[V]:t.url.protocol.slice(0,-1)};return new Headers(t.headers).forEach((r,s)=>{ot(s)||(e[s]=r)}),e}function rt(t){return{body:t.body,headers:t.headers,json:async()=>JSON.parse(await j(t.body)),ok:t.status>=200&&t.status<300,status:t.status,statusText:"",text:async()=>j(t.body)}}function st(t){let e=new Headers;for(let[r,s]of Object.entries(t))if(!(r.startsWith(":")||s===void 0))if(Array.isArray(s))for(let o of s)e.append(r,o);else e.set(r,s);return e}function ot(t){return t.startsWith(":")||t==="connection"||t==="keep-alive"||t==="proxy-connection"||t==="transfer-encoding"||t==="upgrade"}function nt(t){return typeof t=="string"||t instanceof URL?{body:void 0,headers:void 0,method:"GET",url:new URL(t)}:{body:t.body,headers:t.headers,method:t.method??"GET",url:new URL(t.url)}}function it(t){return typeof t=="number"?t:Array.isArray(t)?Number(t[0]??0):Number(t??0)}async function j(t){let e=[];for await(let r of t)e.push(at(r));return Buffer.concat(e).toString("utf8")}function at(t){return Buffer.isBuffer(t)?t:t instanceof Uint8Array||typeof t=="string"?Buffer.from(t):Buffer.from(String(t))}async function pt(t,e){if(typeof e=="string"||e instanceof Uint8Array){t.end(e);return}if(e instanceof Blob){t.end(Buffer.from(new Uint8Array(await e.arrayBuffer())));return}throw new H("Unsupported HTTP request body")}var ut="https://api.fanbox.cc",f=class extends Error{constructor(e,r){super(`FANBOX API request failed: ${e.status} ${e.statusText}`),this.name="FanboxApiError",this.body=r,this.status=e.status,this.statusText=e.statusText}},c,y,R,a,u,b=class{constructor(e={}){P(this,a);P(this,c);P(this,y);P(this,R);g(this,c,e.baseUrl??ut),g(this,y,B({cookie:e.cookie,userAgent:e.userAgent})),g(this,R,e.transport??new T)}getCreator(e){return i(this,a,u).call(this,C,e)}getPost(e){return i(this,a,u).call(this,I,e)}listCreatorPlans(e){return i(this,a,u).call(this,w,e)}listCreatorPosts(e){return i(this,a,u).call(this,U,e)}listFollowingCreators(){return i(this,a,u).call(this,O)}listHomePosts(e={}){return i(this,a,u).call(this,F,e)}listSupportingPlans(){return i(this,a,u).call(this,E)}listSupportingPosts(e={}){return i(this,a,u).call(this,G,e)}paginateCreatorPosts(e){return i(this,a,u).call(this,N,e)}};c=new WeakMap,y=new WeakMap,R=new WeakMap,a=new WeakSet,u=async function(e,r={}){let s=new URL(e,n(this,c).endsWith("/")?n(this,c):`${n(this,c)}/`);for(let[h,d]of Object.entries(r))d!==void 0&&s.searchParams.set(h,String(d));let o=await n(this,R).request({headers:n(this,y),method:"GET",url:s}),m=await mt(o);if(!o.ok)throw new f(o,m);return m.body};async function mt(t){let e=await t.text();try{return JSON.parse(e)}catch{return e}}0&&(module.exports={FanboxApiError,FanboxClient});
1
+ "use strict";var b=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var k=Object.prototype.hasOwnProperty;var L=t=>{throw TypeError(t)};var $=(t,s)=>{for(var e in s)b(t,e,{get:s[e],enumerable:!0})},_=(t,s,e,r)=>{if(s&&typeof s=="object"||typeof s=="function")for(let o of O(s))!k.call(t,o)&&o!==e&&b(t,o,{get:()=>s[o],enumerable:!(r=I(s,o))||r.enumerable});return t};var D=t=>_(b({},"__esModule",{value:!0}),t);var F=(t,s,e)=>s.has(t)||L("Cannot "+e);var n=(t,s,e)=>(F(t,s,"read from private field"),e?e.call(t):s.get(t)),p=(t,s,e)=>s.has(t)?L("Cannot add the same private member more than once"):s instanceof WeakSet?s.add(t):s.set(t,e),y=(t,s,e,r)=>(F(t,s,"write to private field"),r?r.call(t,e):s.set(t,e),e);var J={};$(J,{FanboxApiError:()=>c,FanboxClient:()=>h});module.exports=D(J);var w=require("http2");var a,d=class{constructor(){p(this,a,new Map)}async closeAll(){let s=[...n(this,a).values()];n(this,a).clear(),await Promise.all(s.map(N))}getSession(s){let e=new URL(s).origin,r=n(this,a).get(e);if(r&&!r.closed&&!r.destroyed)return r;let o=(0,w.connect)(e);n(this,a).set(e,o);let i=()=>{n(this,a).get(e)===o&&n(this,a).delete(e)};return o.once("close",i),o.once("error",i),o}};a=new WeakMap;function N(t){return t.closed||t.destroyed?Promise.resolve():new Promise(s=>{t.close(s)})}var B=":status",S=class extends Error{constructor(s){super(s),this.name="Http2Error"}},C,x=class{constructor(){p(this,C,new d)}fetch(s){let e=s instanceof Request?s:new Request(s),r=W(e),i=n(this,C).getSession(e.url).request(r,{endStream:!e.body});return new Promise((f,g)=>{let m=!1;i.once("error",g),i.once("close",()=>{m||g(new S("HTTP/2 stream closed before response"))}),i.once("response",R=>{m=!0,f(new Response(i,{headers:M(R),status:X(R[B])}))}),e.body&&i.end(e.body)})}};C=new WeakMap;function W(t){let s=new URL(t.url),e={...Object.fromEntries(t.headers)};return e[":authority"]=s.host,e[":method"]=t.method.toUpperCase(),e[":path"]=`${s.pathname}${s.search}`,e[":scheme"]=s.protocol.slice(0,-1),e}function M(t){let s=new Headers;for(let[e,r]of Object.entries(t))if(!(e.startsWith(":")||r===void 0))if(Array.isArray(r))for(let o of r)s.append(e,o);else s.set(e,r);return s}function X(t){return typeof t=="number"?t:Array.isArray(t)?Number(t[0]??0):Number(t??0)}async function j(t){return this.get("creator.get",t)}async function H(t){return this.get("post.paginateCreator",t)}async function T(t){return this.get("plan.listCreator",t)}async function A(t){return this.get("post.listCreator",t)}async function U(t){return this.get("post.info",t)}async function E(t={}){return this.get("post.listHome",t)}async function v(t={}){return this.get("post.listSupporting",t)}async function q(){return this.get("creator.listFollowing")}async function G(){return this.get("plan.listSupporting")}var z="https://api.fanbox.cc",c=class extends Error{constructor(s,e){super(`FANBOX API request failed: ${s.status} ${s.statusText}`),this.name="FanboxApiError",this.body=e,this.status=s.status,this.statusText=s.statusText}},l,u,P,h=class{constructor(s={}){this.getCreator=j;this.getPost=U;this.listCreatorPlans=T;this.listCreatorPosts=A;this.listFollowingCreators=q;this.listHomePosts=E;this.listSupportingPlans=G;this.listSupportingPosts=v;this.paginateCreatorPosts=H;p(this,l);p(this,u);p(this,P);y(this,l,s.baseUrl??z),y(this,u,s.headers??{}),y(this,P,s.transport??new x)}async get(s,e={}){let r=new URL(s,n(this,l).endsWith("/")?n(this,l):`${n(this,l)}/`);for(let[g,m]of Object.entries(e))m!==void 0&&r.searchParams.set(g,String(m));let o=new Request(r,{headers:n(this,u)}),i=await n(this,P).fetch(o),f=await i.json();if(!i.ok)throw new c(i,f);return f.body}};l=new WeakMap,u=new WeakMap,P=new WeakMap;0&&(module.exports={FanboxApiError,FanboxClient});
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/endpoints/creator-get.ts","../../src/endpoints/creator-list-following.ts","../../src/endpoints/plan-list-creator.ts","../../src/endpoints/plan-list-supporting.ts","../../src/endpoints/post-info.ts","../../src/endpoints/post-list-creator.ts","../../src/endpoints/post-list-home.ts","../../src/endpoints/post-list-supporting.ts","../../src/endpoints/post-paginate-creator.ts","../../src/fanbox-headers.ts","../../src/http.ts","../../src/client.ts"],"sourcesContent":["export { FanboxApiError, FanboxClient } from \"./client.js\";\nexport type * from \"./types.js\";\n","import type { Creator } from \"./models/creator.js\";\n\nexport const CREATOR_GET_PATH = \"creator.get\";\n\nexport interface GetCreatorParams {\n creatorId: string;\n}\n\nexport type GetCreatorResult = Creator;\n","import type { CreatorSummary } from \"./models/creator.js\";\n\nexport const CREATOR_LIST_FOLLOWING_PATH = \"creator.listFollowing\";\n\nexport type ListFollowingCreatorsResult = CreatorSummary[];\n","import type { Plan } from \"./models/plan.js\";\n\nexport const PLAN_LIST_CREATOR_PATH = \"plan.listCreator\";\n\nexport interface ListCreatorPlansParams {\n creatorId: string;\n}\n\nexport type ListCreatorPlansResult = Plan[];\n","import type { SupportingPlan } from \"./models/plan.js\";\n\nexport const PLAN_LIST_SUPPORTING_PATH = \"plan.listSupporting\";\n\nexport type ListSupportingPlansResult = SupportingPlan[];\n","import type { Post } from \"./models/post.js\";\n\nexport const POST_INFO_PATH = \"post.info\";\n\nexport interface GetPostParams {\n postId: string;\n}\n\nexport type GetPostResult = Post;\n","import type { PostListParams, PostSort, PostSummary } from \"./models/post.js\";\n\nexport const POST_LIST_CREATOR_PATH = \"post.listCreator\";\n\nexport interface ListCreatorPostsParams extends PostListParams {\n creatorId: string;\n firstId?: string;\n firstPublishedDatetime?: string;\n sort?: PostSort;\n}\n\nexport type ListCreatorPostsResult = PostSummary[];\n","import type { PostListParams, PostSummary } from \"./models/post.js\";\n\nexport const POST_LIST_HOME_PATH = \"post.listHome\";\n\nexport type ListHomePostsParams = PostListParams;\n\nexport type ListHomePostsResult = PostSummary[];\n","import type { PostListParams, PostSummary } from \"./models/post.js\";\n\nexport const POST_LIST_SUPPORTING_PATH = \"post.listSupporting\";\n\nexport type ListSupportingPostsParams = PostListParams;\n\nexport type ListSupportingPostsResult = PostSummary[];\n","import type { PostSort } from \"./models/post.js\";\n\nexport const POST_PAGINATE_CREATOR_PATH = \"post.paginateCreator\";\n\nexport interface PaginateCreatorPostsParams {\n creatorId: string;\n sort?: PostSort;\n}\n\nexport type PaginateCreatorPostsResult = string[];\n","export interface FanboxRequestHeadersOptions {\n cookie?: string;\n userAgent?: string;\n}\n\nexport function createFanboxRequestHeaders(\n options: FanboxRequestHeadersOptions = {},\n): Record<string, string> {\n const headers: Record<string, string> = {\n Accept: \"application/json, text/plain, */*\",\n Origin: \"https://www.fanbox.cc\",\n Referer: \"https://www.fanbox.cc/\",\n \"Sec-Fetch-Dest\": \"empty\",\n \"Sec-Fetch-Mode\": \"cors\",\n \"Sec-Fetch-Site\": \"same-site\",\n \"User-Agent\": options.userAgent ?? createRandomUserAgent(),\n };\n if (options.cookie !== undefined) {\n headers.Cookie = options.cookie;\n }\n\n return headers;\n}\n\nexport function createRandomUserAgent(): string {\n return `${Math.random().toString(36).substring(2, 15)}/${Math.random().toFixed(5)}`;\n}\n","import { type ClientHttp2Session, connect } from \"node:http2\";\nimport type { Readable } from \"node:stream\";\n\nconst HTTP2_HEADER_AUTHORITY = \":authority\";\nconst HTTP2_HEADER_METHOD = \":method\";\nconst HTTP2_HEADER_PATH = \":path\";\nconst HTTP2_HEADER_SCHEME = \":scheme\";\nconst HTTP2_HEADER_STATUS = \":status\";\n\nexport interface HttpRequest {\n body?: BodyInit | undefined;\n headers?: Headers | Record<string, string>;\n method?: string;\n url: string | URL;\n}\n\nexport interface HttpResponse {\n body: Readable;\n headers: Headers;\n json(): Promise<unknown>;\n ok: boolean;\n status: number;\n statusText: string;\n text(): Promise<string>;\n}\n\nexport interface HttpTransport {\n close(): Promise<void>;\n request(request: HttpRequest | string | URL): Promise<HttpResponse>;\n}\n\ntype BodyInit = Blob | string | Uint8Array;\n\ninterface NormalizedHttpRequest {\n body: BodyInit | undefined;\n headers: Headers | Record<string, string> | undefined;\n method: string;\n url: URL;\n}\n\nexport class Http2Transport implements HttpTransport {\n readonly #sessions = new Map<string, ClientHttp2Session>();\n\n public async close(): Promise<void> {\n const sessions = [...this.#sessions.values()];\n this.#sessions.clear();\n await Promise.all(sessions.map(closeSession));\n }\n\n public request(request: HttpRequest | string | URL): Promise<HttpResponse> {\n const normalized = normalizeRequest(request);\n const session = this.#getSession(normalized.url);\n const headers = createHttp2Headers(normalized);\n const stream = session.request(headers, { endStream: !normalized.body });\n\n return new Promise((resolve, reject) => {\n let settled = false;\n stream.once(\"error\", reject);\n stream.once(\"response\", (responseHeaders) => {\n settled = true;\n const status = parseStatus(responseHeaders[HTTP2_HEADER_STATUS]);\n resolve(\n createResponse({\n body: stream,\n headers: createResponseHeaders(responseHeaders),\n status,\n }),\n );\n });\n stream.once(\"close\", () => {\n if (!settled) {\n reject(new HttpError(`HTTP/2 stream closed before response`));\n }\n });\n if (normalized.body !== undefined) {\n writeRequestBody(stream, normalized.body).catch((error: unknown) => {\n stream.destroy(\n error instanceof Error ? error : new Error(String(error)),\n );\n });\n }\n });\n }\n\n #getSession(url: URL): ClientHttp2Session {\n const origin = url.origin;\n const existing = this.#sessions.get(origin);\n if (existing && !existing.closed && !existing.destroyed) {\n return existing;\n }\n\n const session = connect(origin);\n session.once(\"close\", () => {\n if (this.#sessions.get(origin) === session) {\n this.#sessions.delete(origin);\n }\n });\n session.once(\"error\", () => {\n if (this.#sessions.get(origin) === session) {\n this.#sessions.delete(origin);\n }\n });\n this.#sessions.set(origin, session);\n\n return session;\n }\n}\n\nexport class HttpError extends Error {\n public constructor(message: string) {\n super(message);\n this.name = \"HttpError\";\n }\n}\n\nfunction closeSession(session: ClientHttp2Session): Promise<void> {\n if (session.closed || session.destroyed) {\n return Promise.resolve();\n }\n\n return new Promise((resolve) => {\n session.close(resolve);\n });\n}\n\nfunction createHttp2Headers(\n request: NormalizedHttpRequest,\n): Record<string, string> {\n const headers: Record<string, string> = {\n [HTTP2_HEADER_AUTHORITY]: request.url.host,\n [HTTP2_HEADER_METHOD]: request.method.toUpperCase(),\n [HTTP2_HEADER_PATH]: `${request.url.pathname}${request.url.search}`,\n [HTTP2_HEADER_SCHEME]: request.url.protocol.slice(0, -1),\n };\n new Headers(request.headers).forEach((value, key) => {\n if (!isForbiddenHttp2Header(key)) {\n headers[key] = value;\n }\n });\n\n return headers;\n}\n\nfunction createResponse(options: {\n body: Readable;\n headers: Headers;\n status: number;\n}): HttpResponse {\n return {\n body: options.body,\n headers: options.headers,\n json: async () => {\n const parsed: unknown = JSON.parse(await readText(options.body));\n return parsed;\n },\n ok: options.status >= 200 && options.status < 300,\n status: options.status,\n statusText: \"\",\n text: async () => readText(options.body),\n };\n}\n\nfunction createResponseHeaders(\n headers: NodeJS.Dict<string | string[]>,\n): Headers {\n const result = new Headers();\n for (const [key, value] of Object.entries(headers)) {\n if (key.startsWith(\":\") || value === undefined) {\n continue;\n }\n if (Array.isArray(value)) {\n for (const item of value) {\n result.append(key, item);\n }\n } else {\n result.set(key, value);\n }\n }\n\n return result;\n}\n\nfunction isForbiddenHttp2Header(header: string): boolean {\n return (\n header.startsWith(\":\") ||\n header === \"connection\" ||\n header === \"keep-alive\" ||\n header === \"proxy-connection\" ||\n header === \"transfer-encoding\" ||\n header === \"upgrade\"\n );\n}\n\nfunction normalizeRequest(\n request: HttpRequest | string | URL,\n): NormalizedHttpRequest {\n if (typeof request === \"string\" || request instanceof URL) {\n return {\n body: undefined,\n headers: undefined,\n method: \"GET\",\n url: new URL(request),\n };\n }\n\n return {\n body: request.body,\n headers: request.headers,\n method: request.method ?? \"GET\",\n url: new URL(request.url),\n };\n}\n\nfunction parseStatus(status: number | string | string[] | undefined): number {\n if (typeof status === \"number\") {\n return status;\n }\n if (Array.isArray(status)) {\n return Number(status[0] ?? 0);\n }\n\n return Number(status ?? 0);\n}\n\nasync function readText(body: Readable): Promise<string> {\n const chunks: Buffer[] = [];\n for await (const chunk of body) {\n chunks.push(toBuffer(chunk));\n }\n\n return Buffer.concat(chunks).toString(\"utf8\");\n}\n\nfunction toBuffer(chunk: unknown): Buffer {\n if (Buffer.isBuffer(chunk)) {\n return chunk;\n }\n if (chunk instanceof Uint8Array) {\n return Buffer.from(chunk);\n }\n if (typeof chunk === \"string\") {\n return Buffer.from(chunk);\n }\n\n return Buffer.from(String(chunk));\n}\n\nasync function writeRequestBody(\n stream: NodeJS.WritableStream,\n body: BodyInit | undefined,\n): Promise<void> {\n if (typeof body === \"string\" || body instanceof Uint8Array) {\n stream.end(body);\n return;\n }\n if (body instanceof Blob) {\n stream.end(Buffer.from(new Uint8Array(await body.arrayBuffer())));\n return;\n }\n\n throw new HttpError(\"Unsupported HTTP request body\");\n}\n","import type { FanboxClientOptions } from \"./client-options.js\";\nimport {\n CREATOR_GET_PATH,\n type GetCreatorParams,\n type GetCreatorResult,\n} from \"./endpoints/creator-get.js\";\nimport {\n CREATOR_LIST_FOLLOWING_PATH,\n type ListFollowingCreatorsResult,\n} from \"./endpoints/creator-list-following.js\";\nimport type { FanboxEnvelope } from \"./endpoints/fanbox-envelope.js\";\nimport {\n type ListCreatorPlansParams,\n type ListCreatorPlansResult,\n PLAN_LIST_CREATOR_PATH,\n} from \"./endpoints/plan-list-creator.js\";\nimport {\n type ListSupportingPlansResult,\n PLAN_LIST_SUPPORTING_PATH,\n} from \"./endpoints/plan-list-supporting.js\";\nimport {\n type GetPostParams,\n type GetPostResult,\n POST_INFO_PATH,\n} from \"./endpoints/post-info.js\";\nimport {\n type ListCreatorPostsParams,\n type ListCreatorPostsResult,\n POST_LIST_CREATOR_PATH,\n} from \"./endpoints/post-list-creator.js\";\nimport {\n type ListHomePostsParams,\n type ListHomePostsResult,\n POST_LIST_HOME_PATH,\n} from \"./endpoints/post-list-home.js\";\nimport {\n type ListSupportingPostsParams,\n type ListSupportingPostsResult,\n POST_LIST_SUPPORTING_PATH,\n} from \"./endpoints/post-list-supporting.js\";\nimport {\n type PaginateCreatorPostsParams,\n type PaginateCreatorPostsResult,\n POST_PAGINATE_CREATOR_PATH,\n} from \"./endpoints/post-paginate-creator.js\";\nimport { createFanboxRequestHeaders } from \"./fanbox-headers.js\";\nimport {\n Http2Transport,\n type HttpResponse,\n type HttpTransport,\n} from \"./http.js\";\n\nconst DEFAULT_BASE_URL = \"https://api.fanbox.cc\";\n\nexport class FanboxApiError extends Error {\n public readonly body: unknown;\n public readonly status: number;\n public readonly statusText: string;\n\n public constructor(response: HttpResponse, body: unknown) {\n super(\n `FANBOX API request failed: ${response.status} ${response.statusText}`,\n );\n this.name = \"FanboxApiError\";\n this.body = body;\n this.status = response.status;\n this.statusText = response.statusText;\n }\n}\n\nexport class FanboxClient {\n readonly #baseUrl: string;\n readonly #headers: Record<string, string>;\n readonly #transport: HttpTransport;\n\n public constructor(options: FanboxClientOptions = {}) {\n this.#baseUrl = options.baseUrl ?? DEFAULT_BASE_URL;\n this.#headers = createFanboxRequestHeaders({\n cookie: options.cookie,\n userAgent: options.userAgent,\n });\n this.#transport = options.transport ?? new Http2Transport();\n }\n\n public getCreator(params: GetCreatorParams): Promise<GetCreatorResult> {\n return this.#get(CREATOR_GET_PATH, params);\n }\n\n public getPost(params: GetPostParams): Promise<GetPostResult> {\n return this.#get(POST_INFO_PATH, params);\n }\n\n public listCreatorPlans(\n params: ListCreatorPlansParams,\n ): Promise<ListCreatorPlansResult> {\n return this.#get(PLAN_LIST_CREATOR_PATH, params);\n }\n\n public listCreatorPosts(\n params: ListCreatorPostsParams,\n ): Promise<ListCreatorPostsResult> {\n return this.#get(POST_LIST_CREATOR_PATH, params);\n }\n\n public listFollowingCreators(): Promise<ListFollowingCreatorsResult> {\n return this.#get(CREATOR_LIST_FOLLOWING_PATH);\n }\n\n public listHomePosts(\n params: ListHomePostsParams = {},\n ): Promise<ListHomePostsResult> {\n return this.#get(POST_LIST_HOME_PATH, params);\n }\n\n public listSupportingPlans(): Promise<ListSupportingPlansResult> {\n return this.#get(PLAN_LIST_SUPPORTING_PATH);\n }\n\n public listSupportingPosts(\n params: ListSupportingPostsParams = {},\n ): Promise<ListSupportingPostsResult> {\n return this.#get(POST_LIST_SUPPORTING_PATH, params);\n }\n\n public paginateCreatorPosts(\n params: PaginateCreatorPostsParams,\n ): Promise<PaginateCreatorPostsResult> {\n return this.#get(POST_PAGINATE_CREATOR_PATH, params);\n }\n\n async #get<T>(path: string, query: object = {}): Promise<T> {\n const url = new URL(\n path,\n this.#baseUrl.endsWith(\"/\") ? this.#baseUrl : `${this.#baseUrl}/`,\n );\n for (const [key, value] of Object.entries(query)) {\n if (value !== undefined) {\n url.searchParams.set(key, String(value));\n }\n }\n\n const response = await this.#transport.request({\n headers: this.#headers,\n method: \"GET\",\n url,\n });\n const body = await readResponseBody(response);\n if (!response.ok) {\n throw new FanboxApiError(response, body);\n }\n\n return (body as FanboxEnvelope<T>).body;\n }\n}\n\nasync function readResponseBody(response: HttpResponse): Promise<unknown> {\n const text = await response.text();\n try {\n return JSON.parse(text) as unknown;\n } catch {\n return text;\n }\n}\n"],"mappings":"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","names":["index_exports","__export","FanboxApiError","FanboxClient","__toCommonJS","CREATOR_GET_PATH","CREATOR_LIST_FOLLOWING_PATH","PLAN_LIST_CREATOR_PATH","PLAN_LIST_SUPPORTING_PATH","POST_INFO_PATH","POST_LIST_CREATOR_PATH","POST_LIST_HOME_PATH","POST_LIST_SUPPORTING_PATH","POST_PAGINATE_CREATOR_PATH","createFanboxRequestHeaders","options","headers","createRandomUserAgent","import_node_http2","HTTP2_HEADER_AUTHORITY","HTTP2_HEADER_METHOD","HTTP2_HEADER_PATH","HTTP2_HEADER_SCHEME","HTTP2_HEADER_STATUS","_sessions","_Http2Transport_instances","getSession_fn","Http2Transport","__privateAdd","sessions","__privateGet","closeSession","request","normalized","normalizeRequest","session","__privateMethod","headers","createHttp2Headers","stream","resolve","reject","settled","responseHeaders","status","parseStatus","createResponse","createResponseHeaders","HttpError","writeRequestBody","error","url","origin","existing","message","value","key","isForbiddenHttp2Header","options","readText","result","item","header","body","chunks","chunk","toBuffer","DEFAULT_BASE_URL","FanboxApiError","response","body","_baseUrl","_headers","_transport","_FanboxClient_instances","get_fn","FanboxClient","options","__privateAdd","__privateSet","createFanboxRequestHeaders","Http2Transport","params","__privateMethod","CREATOR_GET_PATH","POST_INFO_PATH","PLAN_LIST_CREATOR_PATH","POST_LIST_CREATOR_PATH","CREATOR_LIST_FOLLOWING_PATH","POST_LIST_HOME_PATH","PLAN_LIST_SUPPORTING_PATH","POST_LIST_SUPPORTING_PATH","POST_PAGINATE_CREATOR_PATH","path","query","url","__privateGet","key","value","readResponseBody","text"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/transport/http2-session.ts","../../src/transport/http2.ts","../../src/client/endpoints/creator-get.ts","../../src/client/endpoints/creator-list-pages.ts","../../src/client/endpoints/creator-list-plans.ts","../../src/client/endpoints/creator-list-posts.ts","../../src/client/endpoints/post-info.ts","../../src/client/endpoints/post-list-home.ts","../../src/client/endpoints/post-list-supporting.ts","../../src/client/endpoints/user-list-following.ts","../../src/client/endpoints/user-list-supporting.ts","../../src/client/client.ts"],"sourcesContent":["export { FanboxApiError, FanboxClient } from \"./client/client.js\";\nexport type * from \"./client/types.js\";\n","import { type ClientHttp2Session, connect } from \"node:http2\";\n\nexport class Http2SessionManager {\n readonly #sessions = new Map<string, ClientHttp2Session>();\n\n async closeAll(): Promise<void> {\n const sessions = [...this.#sessions.values()];\n this.#sessions.clear();\n await Promise.all(sessions.map(closeHttp2Session));\n }\n\n getSession(url: string): ClientHttp2Session {\n const origin = new URL(url).origin;\n const existing = this.#sessions.get(origin);\n if (existing && !existing.closed && !existing.destroyed) {\n return existing;\n }\n\n // Create a new HTTP/2 session for the origin\n const session = connect(origin);\n this.#sessions.set(origin, session);\n\n const cleanup = () => {\n if (this.#sessions.get(origin) === session) {\n this.#sessions.delete(origin);\n }\n };\n session.once(\"close\", cleanup);\n session.once(\"error\", cleanup);\n\n return session;\n }\n}\n\nfunction closeHttp2Session(session: ClientHttp2Session): Promise<void> {\n if (session.closed || session.destroyed) {\n return Promise.resolve();\n }\n\n return new Promise((resolve) => {\n session.close(resolve);\n });\n}\n","import { Http2SessionManager } from \"./http2-session.js\";\n\nconst HTTP2_HEADER_STATUS = \":status\";\n\nexport interface HttpTransport {\n fetch(input: Request | string | URL): Promise<Response>;\n}\n\nexport class Http2Error extends Error {\n public constructor(message: string) {\n super(message);\n this.name = \"Http2Error\";\n }\n}\n\nexport class Http2Transport {\n readonly #pool = new Http2SessionManager();\n\n fetch(input: Request | string | URL) {\n const request = input instanceof Request ? input : new Request(input);\n const headers = attachHttp2Headers(request);\n\n const session = this.#pool.getSession(request.url);\n const stream = session.request(headers, { endStream: !request.body });\n\n return new Promise<Response>((resolve, reject) => {\n let settled = false;\n stream.once(\"error\", reject);\n stream.once(\"close\", () => {\n if (!settled) {\n reject(new Http2Error(`HTTP/2 stream closed before response`));\n }\n });\n\n stream.once(\"response\", (responseHeaders) => {\n settled = true;\n resolve(\n new Response(stream, {\n headers: createResponseHeaders(responseHeaders),\n status: parseStatus(responseHeaders[HTTP2_HEADER_STATUS]),\n }),\n );\n });\n\n // If the request has a body, write it to the stream. If writing fails, destroy the stream to trigger error handling.\n if (request.body) stream.end(request.body);\n });\n }\n}\n\nfunction attachHttp2Headers(request: Request) {\n const url = new URL(request.url);\n const headers = { ...Object.fromEntries(request.headers) };\n\n headers[\":authority\"] = url.host;\n headers[\":method\"] = request.method.toUpperCase();\n headers[\":path\"] = `${url.pathname}${url.search}`;\n headers[\":scheme\"] = url.protocol.slice(0, -1);\n\n return headers;\n}\n\nfunction createResponseHeaders(\n headers: Record<string, string | string[] | undefined>,\n): Headers {\n const result = new Headers();\n for (const [key, value] of Object.entries(headers)) {\n if (\n // ignore HTTP/2 pseudo-headers in the response\n key.startsWith(\":\") ||\n value === undefined\n )\n continue;\n\n if (Array.isArray(value)) {\n for (const item of value) {\n result.append(key, item);\n }\n } else {\n result.set(key, value);\n }\n }\n\n return result;\n}\n\nfunction parseStatus(status: number | string | string[] | undefined): number {\n if (typeof status === \"number\") {\n return status;\n }\n if (Array.isArray(status)) {\n return Number(status[0] ?? 0);\n }\n\n return Number(status ?? 0);\n}\n","import type { FanboxClient } from \"../client.js\";\nimport type { Creator } from \"../models/creator.js\";\n\nexport interface GetCreatorParams {\n creatorId: string;\n}\n\nexport type GetCreatorResult = Creator;\n\n/**\n * Get detailed information about a specific creator.\n */\nexport async function getCreator(\n this: FanboxClient,\n params: GetCreatorParams,\n): Promise<GetCreatorResult> {\n return this.get(\"creator.get\", params);\n}\n","import type { FanboxClient } from \"../client.js\";\nimport type { PostSort } from \"../models/post.js\";\n\nexport interface PaginateCreatorPostsParams {\n creatorId: string;\n sort?: PostSort;\n}\n\nexport type PaginateCreatorPostsResult = string[];\n\n/**\n * List all urls to the pages, which paginated by the given conditions.\n */\nexport async function paginateCreatorPosts(\n this: FanboxClient,\n params: PaginateCreatorPostsParams,\n): Promise<PaginateCreatorPostsResult> {\n return this.get(\"post.paginateCreator\", params);\n}\n","import type { FanboxClient } from \"../client.js\";\nimport type { Plan } from \"../models/plan.js\";\n\nexport interface ListCreatorPlansParams {\n creatorId: string;\n}\n\nexport type ListCreatorPlansResult = Plan[];\n\n/**\n * List plans for a specific creator.\n */\nexport async function listCreatorPlans(\n this: FanboxClient,\n params: ListCreatorPlansParams,\n): Promise<ListCreatorPlansResult> {\n return this.get(\"plan.listCreator\", params);\n}\n","import type { FanboxClient } from \"../client.js\";\nimport type { PostListParams, PostSort, PostSummary } from \"../models/post.js\";\n\nexport interface ListCreatorPostsParams extends PostListParams {\n creatorId: string;\n firstId?: string;\n firstPublishedDatetime?: string;\n sort?: PostSort;\n}\n\nexport type ListCreatorPostsResult = PostSummary[];\n\n/**\n * List posts for a specific creator.\n */\nexport async function listCreatorPosts(\n this: FanboxClient,\n params: ListCreatorPostsParams,\n): Promise<ListCreatorPostsResult> {\n return this.get(\"post.listCreator\", params);\n}\n","import type { FanboxClient } from \"../client.js\";\nimport type { Post } from \"../models/post.js\";\n\nexport interface GetPostParams {\n postId: string;\n}\n\nexport type GetPostResult = Post;\n\n/**\n * Get detailed information about a specific post.\n */\nexport async function getPost(\n this: FanboxClient,\n params: GetPostParams,\n): Promise<GetPostResult> {\n return this.get(\"post.info\", params);\n}\n","import type { FanboxClient } from \"../client.js\";\nimport type { PostListParams, PostSummary } from \"../models/post.js\";\n\nexport type ListHomePostsParams = PostListParams;\n\nexport type ListHomePostsResult = PostSummary[];\n\n/**\n * List all posts from the home feed from both following and supporting\n * creators. This endpoint is only available to logged-in users.\n */\nexport async function listHomePosts(\n this: FanboxClient,\n params: ListHomePostsParams = {},\n): Promise<ListHomePostsResult> {\n return this.get(\"post.listHome\", params);\n}\n","import type { FanboxClient } from \"../client.js\";\nimport type { PostListParams, PostSummary } from \"../models/post.js\";\n\nexport type ListSupportingPostsParams = PostListParams;\n\nexport type ListSupportingPostsResult = PostSummary[];\n\n/**\n * List all posts from the home feed from supporting creators only. This\n * endpoint is only available to logged-in users.\n */\nexport async function listSupportingPosts(\n this: FanboxClient,\n params: ListSupportingPostsParams = {},\n): Promise<ListSupportingPostsResult> {\n return this.get(\"post.listSupporting\", params);\n}\n","import type { FanboxClient } from \"../client.js\";\nimport type { CreatorSummary } from \"../models/creator.js\";\n\nexport interface ListFollowingCreatorsResult {\n creators: CreatorSummary[];\n}\n\n/**\n * List creators that the authenticated user is following.\n */\nexport async function listFollowingCreators(\n this: FanboxClient,\n): Promise<ListFollowingCreatorsResult> {\n return this.get(\"creator.listFollowing\");\n}\n","import type { FanboxClient } from \"../client.js\";\nimport type { SupportingPlan } from \"../models/plan.js\";\n\nexport type ListSupportingPlansResult = SupportingPlan[];\n\n/**\n * List plans that the authenticated user is supporting.\n */\nexport async function listSupportingPlans(\n this: FanboxClient,\n): Promise<ListSupportingPlansResult> {\n return this.get(\"plan.listSupporting\");\n}\n","import { Http2Transport, type HttpTransport } from \"../transport/http2.js\";\nimport { getCreator } from \"./endpoints/creator-get.js\";\nimport { paginateCreatorPosts } from \"./endpoints/creator-list-pages.js\";\nimport { listCreatorPlans } from \"./endpoints/creator-list-plans.js\";\nimport { listCreatorPosts } from \"./endpoints/creator-list-posts.js\";\nimport { getPost } from \"./endpoints/post-info.js\";\nimport { listHomePosts } from \"./endpoints/post-list-home.js\";\nimport { listSupportingPosts } from \"./endpoints/post-list-supporting.js\";\nimport { listFollowingCreators } from \"./endpoints/user-list-following.js\";\nimport { listSupportingPlans } from \"./endpoints/user-list-supporting.js\";\nimport type { FanboxEnvelope } from \"./fanbox-envelope.js\";\n\nconst DEFAULT_BASE_URL = \"https://api.fanbox.cc\";\n\nexport interface FanboxClientOptions {\n baseUrl?: string;\n headers?: Record<string, string>;\n transport?: HttpTransport;\n}\n\nexport class FanboxApiError extends Error {\n public readonly body: unknown;\n public readonly status: number;\n public readonly statusText: string;\n\n public constructor(response: Response, body: unknown) {\n super(\n `FANBOX API request failed: ${response.status} ${response.statusText}`,\n );\n this.name = \"FanboxApiError\";\n this.body = body;\n this.status = response.status;\n this.statusText = response.statusText;\n }\n}\n\nexport class FanboxClient {\n getCreator = getCreator;\n getPost = getPost;\n listCreatorPlans = listCreatorPlans;\n listCreatorPosts = listCreatorPosts;\n listFollowingCreators = listFollowingCreators;\n listHomePosts = listHomePosts;\n listSupportingPlans = listSupportingPlans;\n listSupportingPosts = listSupportingPosts;\n paginateCreatorPosts = paginateCreatorPosts;\n\n readonly #baseUrl: string;\n readonly #headers: Record<string, string>;\n readonly #transport: HttpTransport;\n\n public constructor(options: FanboxClientOptions = {}) {\n this.#baseUrl = options.baseUrl ?? DEFAULT_BASE_URL;\n this.#headers = options.headers ?? {};\n this.#transport = options.transport ?? new Http2Transport();\n }\n\n protected async get<T>(path: string, query: object = {}): Promise<T> {\n const url = new URL(\n path,\n this.#baseUrl.endsWith(\"/\") ? this.#baseUrl : `${this.#baseUrl}/`,\n );\n for (const [key, value] of Object.entries(query)) {\n if (value !== undefined) {\n url.searchParams.set(key, String(value));\n }\n }\n\n const request = new Request(url, { headers: this.#headers });\n const response = await this.#transport.fetch(request);\n const body = await response.json();\n if (!response.ok) {\n // TODO: log\n throw new FanboxApiError(response, body);\n }\n\n return (body as FanboxEnvelope<T>).body;\n }\n}\n"],"mappings":"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","names":["index_exports","__export","FanboxApiError","FanboxClient","__toCommonJS","import_node_http2","_sessions","Http2SessionManager","__privateAdd","sessions","__privateGet","closeHttp2Session","url","origin","existing","session","cleanup","resolve","HTTP2_HEADER_STATUS","Http2Error","message","_pool","Http2Transport","__privateAdd","Http2SessionManager","input","request","headers","attachHttp2Headers","stream","__privateGet","resolve","reject","settled","responseHeaders","createResponseHeaders","parseStatus","url","result","key","value","item","status","getCreator","params","paginateCreatorPosts","params","listCreatorPlans","params","listCreatorPosts","params","getPost","params","listHomePosts","params","listSupportingPosts","params","listFollowingCreators","listSupportingPlans","DEFAULT_BASE_URL","FanboxApiError","response","body","_baseUrl","_headers","_transport","FanboxClient","options","getCreator","getPost","listCreatorPlans","listCreatorPosts","listFollowingCreators","listHomePosts","listSupportingPlans","listSupportingPosts","paginateCreatorPosts","__privateAdd","__privateSet","Http2Transport","path","query","url","__privateGet","key","value","request"]}
@@ -1,31 +1,5 @@
1
- import { Readable } from 'node:stream';
2
-
3
- interface HttpRequest {
4
- body?: BodyInit | undefined;
5
- headers?: Headers | Record<string, string>;
6
- method?: string;
7
- url: string | URL;
8
- }
9
- interface HttpResponse {
10
- body: Readable;
11
- headers: Headers;
12
- json(): Promise<unknown>;
13
- ok: boolean;
14
- status: number;
15
- statusText: string;
16
- text(): Promise<string>;
17
- }
18
1
  interface HttpTransport {
19
- close(): Promise<void>;
20
- request(request: HttpRequest | string | URL): Promise<HttpResponse>;
21
- }
22
- type BodyInit = Blob | string | Uint8Array;
23
-
24
- interface FanboxClientOptions {
25
- baseUrl?: string;
26
- cookie?: string;
27
- transport?: HttpTransport;
28
- userAgent?: string;
2
+ fetch(input: Request | string | URL): Promise<Response>;
29
3
  }
30
4
 
31
5
  interface FanboxUser {
@@ -73,41 +47,58 @@ interface CreatorSummary {
73
47
  userId: string;
74
48
  }
75
49
 
76
- declare const CREATOR_GET_PATH = "creator.get";
77
50
  interface GetCreatorParams {
78
51
  creatorId: string;
79
52
  }
80
53
  type GetCreatorResult = Creator;
54
+ declare function getCreator(this: FanboxClient, params: GetCreatorParams): Promise<GetCreatorResult>;
81
55
 
82
- declare const CREATOR_LIST_FOLLOWING_PATH = "creator.listFollowing";
83
- type ListFollowingCreatorsResult = CreatorSummary[];
84
-
85
- interface Plan {
86
- coverImageUrl: null | string;
87
- creatorId: string;
88
- description: string;
89
- fee: number;
90
- hasAdultContent: boolean;
56
+ interface PostFile {
57
+ extension: string;
91
58
  id: string;
92
- paymentMethod: null | string;
93
- perks: string[];
94
- title: string;
95
- user: FanboxUser;
59
+ name: string;
60
+ size: number;
61
+ url: string;
96
62
  }
97
- interface SupportingPlan extends Plan {
98
- paymentMethod: string;
63
+ interface PostImage {
64
+ extension: string;
65
+ height: number;
66
+ id: string;
67
+ originalUrl: string;
68
+ thumbnailUrl: string;
69
+ width: number;
99
70
  }
100
71
 
101
- declare const PLAN_LIST_CREATOR_PATH = "plan.listCreator";
102
- interface ListCreatorPlansParams {
103
- creatorId: string;
72
+ type ArticleEmbedItem = ArticleEmbedKnownItem | ArticleEmbedUnknownItem;
73
+ type ArticleEmbedKnownItem = ArticleEmbedTwitterItem;
74
+ interface ArticleEmbedTwitterItem {
75
+ contentId: string;
76
+ id: string;
77
+ serviceProvider: "twitter";
78
+ }
79
+ interface ArticleEmbedUnknownItem {
80
+ id: string;
81
+ serviceProvider: string & {};
104
82
  }
105
- type ListCreatorPlansResult = Plan[];
106
83
 
107
- declare const PLAN_LIST_SUPPORTING_PATH = "plan.listSupporting";
108
- type ListSupportingPlansResult = SupportingPlan[];
84
+ interface ArticleUrlEmbedHtmlItem {
85
+ html: string;
86
+ id: string;
87
+ type: "html";
88
+ }
89
+ type ArticleUrlEmbedItem = ArticleUrlEmbedKnownItem | ArticleUrlEmbedUnknownItem;
90
+ type ArticleUrlEmbedKnownItem = ArticleUrlEmbedHtmlItem;
91
+ interface ArticleUrlEmbedUnknownItem {
92
+ [key: string]: unknown;
93
+ id: string;
94
+ type: string & {};
95
+ }
109
96
 
110
- type ArticleBlock = ArticleFileBlock | ArticleHeaderBlock | ArticleImageBlock | ArticleParagraphBlock | ArticleUnknownBlock | ArticleUrlEmbedBlock;
97
+ type ArticleBlock = ArticleUnknownBlock | KnownArticleBlock;
98
+ interface ArticleEmbedBlock {
99
+ embedId: string;
100
+ type: "embed";
101
+ }
111
102
  interface ArticleFileBlock {
112
103
  fileId: string;
113
104
  type: "file";
@@ -124,24 +115,27 @@ interface ArticleParagraphBlock {
124
115
  text: string;
125
116
  type: "p";
126
117
  }
127
- interface ArticlePost extends PostBase {
128
- body: ArticlePostBody;
129
- type: "article";
130
- }
131
118
  interface ArticlePostBody {
132
119
  blocks: ArticleBlock[];
120
+ embedMap: Record<string, ArticleEmbedItem>;
133
121
  fileMap: Record<string, PostFile>;
134
122
  imageMap: Record<string, PostImage>;
135
- urlEmbedMap: Record<string, unknown>;
123
+ urlEmbedMap: Record<string, ArticleUrlEmbedItem>;
136
124
  }
137
125
  interface ArticleUnknownBlock {
138
126
  [key: string]: unknown;
139
- type: string;
127
+ type: string & {};
140
128
  }
141
129
  interface ArticleUrlEmbedBlock {
142
130
  type: "url_embed";
143
131
  urlEmbedId: string;
144
132
  }
133
+ type KnownArticleBlock = ArticleEmbedBlock | ArticleFileBlock | ArticleHeaderBlock | ArticleImageBlock | ArticleParagraphBlock | ArticleUrlEmbedBlock;
134
+
135
+ interface ArticlePost extends PostBase {
136
+ body: ArticlePostBody;
137
+ type: "article";
138
+ }
145
139
  interface FilePost extends PostBase {
146
140
  body: FilePostBody;
147
141
  type: "file";
@@ -158,31 +152,17 @@ interface ImagePostBody {
158
152
  images: PostImage[];
159
153
  text: string;
160
154
  }
155
+ type KnownPost = ArticlePost | FilePost | ImagePost | TextPost | VideoPost;
161
156
  interface NeighboringPost {
162
157
  id: string;
163
158
  publishedDatetime: string;
164
159
  title: string;
165
160
  }
166
- type Post = ArticlePost | FilePost | ImagePost | TextPost | UnknownPost | VideoPost;
161
+ type Post = KnownPost | UnknownPost;
167
162
  interface PostCover {
168
163
  type: "cover_image" | "post_image";
169
164
  url: string;
170
165
  }
171
- interface PostFile {
172
- extension: string;
173
- id: string;
174
- name: string;
175
- size: number;
176
- url: string;
177
- }
178
- interface PostImage {
179
- extension: string;
180
- height: number;
181
- id: string;
182
- originalUrl: string;
183
- thumbnailUrl: string;
184
- width: number;
185
- }
186
166
  interface PostListParams {
187
167
  limit?: number;
188
168
  maxId?: string;
@@ -216,7 +196,7 @@ interface TextPostBody {
216
196
  text: string;
217
197
  }
218
198
  interface UnknownPost extends PostBase {
219
- type: string;
199
+ type: string & {};
220
200
  }
221
201
  type UnknownPostBody = Record<string, unknown>;
222
202
  interface VideoPost extends PostBase {
@@ -239,13 +219,35 @@ interface PostBase extends Omit<PostSummary, "cover"> {
239
219
  type: string;
240
220
  }
241
221
 
242
- declare const POST_INFO_PATH = "post.info";
243
- interface GetPostParams {
244
- postId: string;
222
+ interface PaginateCreatorPostsParams {
223
+ creatorId: string;
224
+ sort?: PostSort;
225
+ }
226
+ type PaginateCreatorPostsResult = string[];
227
+ declare function paginateCreatorPosts(this: FanboxClient, params: PaginateCreatorPostsParams): Promise<PaginateCreatorPostsResult>;
228
+
229
+ interface Plan {
230
+ coverImageUrl: null | string;
231
+ creatorId: string;
232
+ description: string;
233
+ fee: number;
234
+ hasAdultContent: boolean;
235
+ id: string;
236
+ paymentMethod: null | string;
237
+ perks: string[];
238
+ title: string;
239
+ user: FanboxUser;
240
+ }
241
+ interface SupportingPlan extends Plan {
242
+ paymentMethod: string;
245
243
  }
246
- type GetPostResult = Post;
247
244
 
248
- declare const POST_LIST_CREATOR_PATH = "post.listCreator";
245
+ interface ListCreatorPlansParams {
246
+ creatorId: string;
247
+ }
248
+ type ListCreatorPlansResult = Plan[];
249
+ declare function listCreatorPlans(this: FanboxClient, params: ListCreatorPlansParams): Promise<ListCreatorPlansResult>;
250
+
249
251
  interface ListCreatorPostsParams extends PostListParams {
250
252
  creatorId: string;
251
253
  firstId?: string;
@@ -253,44 +255,54 @@ interface ListCreatorPostsParams extends PostListParams {
253
255
  sort?: PostSort;
254
256
  }
255
257
  type ListCreatorPostsResult = PostSummary[];
258
+ declare function listCreatorPosts(this: FanboxClient, params: ListCreatorPostsParams): Promise<ListCreatorPostsResult>;
259
+
260
+ interface GetPostParams {
261
+ postId: string;
262
+ }
263
+ type GetPostResult = Post;
264
+ declare function getPost(this: FanboxClient, params: GetPostParams): Promise<GetPostResult>;
256
265
 
257
- declare const POST_LIST_HOME_PATH = "post.listHome";
258
266
  type ListHomePostsParams = PostListParams;
259
267
  type ListHomePostsResult = PostSummary[];
268
+ declare function listHomePosts(this: FanboxClient, params?: ListHomePostsParams): Promise<ListHomePostsResult>;
260
269
 
261
- declare const POST_LIST_SUPPORTING_PATH = "post.listSupporting";
262
270
  type ListSupportingPostsParams = PostListParams;
263
271
  type ListSupportingPostsResult = PostSummary[];
272
+ declare function listSupportingPosts(this: FanboxClient, params?: ListSupportingPostsParams): Promise<ListSupportingPostsResult>;
264
273
 
265
- declare const POST_PAGINATE_CREATOR_PATH = "post.paginateCreator";
266
- interface PaginateCreatorPostsParams {
267
- creatorId: string;
268
- sort?: PostSort;
274
+ interface ListFollowingCreatorsResult {
275
+ creators: CreatorSummary[];
269
276
  }
270
- type PaginateCreatorPostsResult = string[];
277
+ declare function listFollowingCreators(this: FanboxClient): Promise<ListFollowingCreatorsResult>;
278
+
279
+ type ListSupportingPlansResult = SupportingPlan[];
280
+ declare function listSupportingPlans(this: FanboxClient): Promise<ListSupportingPlansResult>;
271
281
 
282
+ interface FanboxClientOptions {
283
+ baseUrl?: string;
284
+ headers?: Record<string, string>;
285
+ transport?: HttpTransport;
286
+ }
272
287
  declare class FanboxApiError extends Error {
273
288
  readonly body: unknown;
274
289
  readonly status: number;
275
290
  readonly statusText: string;
276
- constructor(response: HttpResponse, body: unknown);
291
+ constructor(response: Response, body: unknown);
277
292
  }
278
293
  declare class FanboxClient {
279
294
  #private;
295
+ getCreator: typeof getCreator;
296
+ getPost: typeof getPost;
297
+ listCreatorPlans: typeof listCreatorPlans;
298
+ listCreatorPosts: typeof listCreatorPosts;
299
+ listFollowingCreators: typeof listFollowingCreators;
300
+ listHomePosts: typeof listHomePosts;
301
+ listSupportingPlans: typeof listSupportingPlans;
302
+ listSupportingPosts: typeof listSupportingPosts;
303
+ paginateCreatorPosts: typeof paginateCreatorPosts;
280
304
  constructor(options?: FanboxClientOptions);
281
- getCreator(params: GetCreatorParams): Promise<GetCreatorResult>;
282
- getPost(params: GetPostParams): Promise<GetPostResult>;
283
- listCreatorPlans(params: ListCreatorPlansParams): Promise<ListCreatorPlansResult>;
284
- listCreatorPosts(params: ListCreatorPostsParams): Promise<ListCreatorPostsResult>;
285
- listFollowingCreators(): Promise<ListFollowingCreatorsResult>;
286
- listHomePosts(params?: ListHomePostsParams): Promise<ListHomePostsResult>;
287
- listSupportingPlans(): Promise<ListSupportingPlansResult>;
288
- listSupportingPosts(params?: ListSupportingPostsParams): Promise<ListSupportingPostsResult>;
289
- paginateCreatorPosts(params: PaginateCreatorPostsParams): Promise<PaginateCreatorPostsResult>;
290
- }
291
-
292
- interface FanboxEnvelope<T> {
293
- body: T;
305
+ protected get<T>(path: string, query?: object): Promise<T>;
294
306
  }
295
307
 
296
- export { type ArticleBlock, type ArticleFileBlock, type ArticleHeaderBlock, type ArticleImageBlock, type ArticleParagraphBlock, type ArticlePost, type ArticlePostBody, type ArticleUnknownBlock, type ArticleUrlEmbedBlock, CREATOR_GET_PATH, CREATOR_LIST_FOLLOWING_PATH, type Creator, type CreatorProfileImage, type CreatorProfileItem, type CreatorProfileUnknownItem, type CreatorSummary, FanboxApiError, FanboxClient, type FanboxClientOptions, type FanboxEnvelope, type FanboxUser, type FilePost, type FilePostBody, type GetCreatorParams, type GetCreatorResult, type GetPostParams, type GetPostResult, type ImagePost, type ImagePostBody, type ListCreatorPlansParams, type ListCreatorPlansResult, type ListCreatorPostsParams, type ListCreatorPostsResult, type ListFollowingCreatorsResult, type ListHomePostsParams, type ListHomePostsResult, type ListSupportingPlansResult, type ListSupportingPostsParams, type ListSupportingPostsResult, type NeighboringPost, PLAN_LIST_CREATOR_PATH, PLAN_LIST_SUPPORTING_PATH, POST_INFO_PATH, POST_LIST_CREATOR_PATH, POST_LIST_HOME_PATH, POST_LIST_SUPPORTING_PATH, POST_PAGINATE_CREATOR_PATH, type PaginateCreatorPostsParams, type PaginateCreatorPostsResult, type Plan, type Post, type PostCover, type PostFile, type PostImage, type PostListParams, type PostSort, type PostSummary, type SupportingPlan, type TextPost, type TextPostBody, type UnknownPost, type UnknownPostBody, type VideoPost, type VideoPostBody };
308
+ export { type ArticlePost, type Creator, type CreatorProfileImage, type CreatorProfileItem, type CreatorProfileUnknownItem, type CreatorSummary, FanboxApiError, FanboxClient, type FanboxUser, type FilePost, type FilePostBody, type GetCreatorParams, type GetCreatorResult, type GetPostParams, type GetPostResult, type ImagePost, type ImagePostBody, type KnownPost, type ListCreatorPlansParams, type ListCreatorPlansResult, type ListCreatorPostsParams, type ListCreatorPostsResult, type ListFollowingCreatorsResult, type ListHomePostsParams, type ListHomePostsResult, type ListSupportingPlansResult, type ListSupportingPostsParams, type ListSupportingPostsResult, type NeighboringPost, type PaginateCreatorPostsParams, type PaginateCreatorPostsResult, type Plan, type Post, type PostCover, type PostListParams, type PostSort, type PostSummary, type SupportingPlan, type TextPost, type TextPostBody, type UnknownPost, type UnknownPostBody, type VideoPost, type VideoPostBody, getCreator, getPost, listCreatorPlans, listCreatorPosts, listFollowingCreators, listHomePosts, listSupportingPlans, listSupportingPosts, paginateCreatorPosts };