@moontaiworks/fanbox-dl 1.0.1 → 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.
- package/README.md +1 -1
- package/dist/bundle/index.cjs +1 -1
- package/dist/bundle/index.cjs.map +1 -1
- package/dist/bundle/index.d.cts +111 -101
- package/dist/bundle/index.d.ts +111 -101
- package/dist/bundle/index.js +1 -1
- package/dist/bundle/index.js.map +1 -1
- package/dist/cjs/cli.d.ts +3 -0
- package/dist/cjs/cli.d.ts.map +1 -0
- package/dist/cjs/cli.js +97 -0
- package/dist/cjs/cli.js.map +1 -0
- package/dist/cjs/client/client.d.ts +36 -0
- package/dist/cjs/client/client.d.ts.map +1 -0
- package/dist/cjs/client/client.js +73 -0
- package/dist/cjs/client/client.js.map +1 -0
- package/dist/cjs/client/endpoints/creator-get.d.ts +8 -0
- package/dist/cjs/client/endpoints/creator-get.d.ts.map +1 -0
- package/dist/cjs/client/endpoints/creator-get.js +7 -0
- package/dist/cjs/client/endpoints/creator-get.js.map +1 -0
- package/dist/cjs/client/endpoints/creator-list-pages.d.ts +9 -0
- package/dist/cjs/client/endpoints/creator-list-pages.d.ts.map +1 -0
- package/dist/cjs/client/endpoints/creator-list-pages.js +7 -0
- package/dist/cjs/client/endpoints/creator-list-pages.js.map +1 -0
- package/dist/cjs/client/endpoints/creator-list-plans.d.ts +8 -0
- package/dist/cjs/client/endpoints/creator-list-plans.d.ts.map +1 -0
- package/dist/cjs/client/endpoints/creator-list-plans.js +7 -0
- package/dist/cjs/client/endpoints/creator-list-plans.js.map +1 -0
- package/dist/cjs/client/endpoints/creator-list-posts.d.ts +11 -0
- package/dist/cjs/client/endpoints/creator-list-posts.d.ts.map +1 -0
- package/dist/cjs/client/endpoints/creator-list-posts.js +7 -0
- package/dist/cjs/client/endpoints/creator-list-posts.js.map +1 -0
- package/dist/cjs/client/endpoints/post-info.d.ts +8 -0
- package/dist/cjs/client/endpoints/post-info.d.ts.map +1 -0
- package/dist/cjs/client/endpoints/post-info.js +7 -0
- package/dist/cjs/client/endpoints/post-info.js.map +1 -0
- package/dist/cjs/client/endpoints/post-list-home.d.ts +6 -0
- package/dist/cjs/client/endpoints/post-list-home.d.ts.map +1 -0
- package/dist/cjs/client/endpoints/post-list-home.js +7 -0
- package/dist/cjs/client/endpoints/post-list-home.js.map +1 -0
- package/dist/cjs/client/endpoints/post-list-supporting.d.ts +6 -0
- package/dist/cjs/client/endpoints/post-list-supporting.d.ts.map +1 -0
- package/dist/cjs/client/endpoints/post-list-supporting.js +7 -0
- package/dist/cjs/client/endpoints/post-list-supporting.js.map +1 -0
- package/dist/cjs/client/endpoints/user-list-following.d.ts +7 -0
- package/dist/cjs/client/endpoints/user-list-following.d.ts.map +1 -0
- package/dist/cjs/client/endpoints/user-list-following.js +7 -0
- package/dist/cjs/client/endpoints/user-list-following.js.map +1 -0
- package/dist/cjs/client/endpoints/user-list-supporting.d.ts +5 -0
- package/dist/cjs/client/endpoints/user-list-supporting.d.ts.map +1 -0
- package/dist/cjs/client/endpoints/user-list-supporting.js +7 -0
- package/dist/cjs/client/endpoints/user-list-supporting.js.map +1 -0
- package/dist/cjs/client/fanbox-envelope.d.ts.map +1 -0
- package/dist/cjs/client/fanbox-envelope.js.map +1 -0
- package/dist/cjs/client/fanbox-headers.d.ts.map +1 -0
- package/dist/cjs/{fanbox-headers.js → client/fanbox-headers.js} +0 -4
- package/dist/cjs/client/fanbox-headers.js.map +1 -0
- package/dist/cjs/client/models/creator.d.ts.map +1 -0
- package/dist/cjs/client/models/creator.js.map +1 -0
- package/dist/cjs/client/models/plan.d.ts.map +1 -0
- package/dist/cjs/{endpoints → client}/models/plan.js.map +1 -1
- package/dist/cjs/client/models/post/article.d.ts +41 -0
- package/dist/cjs/client/models/post/article.d.ts.map +1 -0
- package/dist/cjs/client/models/post/article.js +3 -0
- package/dist/cjs/client/models/post/article.js.map +1 -0
- package/dist/cjs/client/models/post/asset.d.ts +16 -0
- package/dist/cjs/client/models/post/asset.d.ts.map +1 -0
- package/dist/cjs/client/models/post/asset.js +3 -0
- package/dist/cjs/client/models/post/asset.js.map +1 -0
- package/dist/cjs/client/models/post/embed.d.ts +12 -0
- package/dist/cjs/client/models/post/embed.d.ts.map +1 -0
- package/dist/cjs/client/models/post/embed.js +3 -0
- package/dist/cjs/client/models/post/embed.js.map +1 -0
- package/dist/cjs/client/models/post/url-embed.d.ts +13 -0
- package/dist/cjs/client/models/post/url-embed.d.ts.map +1 -0
- package/dist/cjs/client/models/post/url-embed.js +3 -0
- package/dist/cjs/client/models/post/url-embed.js.map +1 -0
- package/dist/cjs/{endpoints → client}/models/post.d.ts +5 -48
- package/dist/cjs/client/models/post.d.ts.map +1 -0
- package/dist/cjs/{endpoints → client}/models/post.js.map +1 -1
- package/dist/cjs/client/models/user.d.ts.map +1 -0
- package/dist/cjs/{endpoints → client}/models/user.js.map +1 -1
- package/dist/cjs/client/types.d.ts +14 -0
- package/dist/cjs/client/types.d.ts.map +1 -0
- package/dist/cjs/{types.js.map → client/types.js.map} +1 -1
- package/dist/cjs/downloader/asset/download.d.ts +21 -0
- package/dist/cjs/downloader/asset/download.d.ts.map +1 -0
- package/dist/cjs/downloader/asset/download.js +95 -0
- package/dist/cjs/downloader/asset/download.js.map +1 -0
- package/dist/cjs/downloader/cli/cookie.d.ts +2 -0
- package/dist/cjs/downloader/cli/cookie.d.ts.map +1 -0
- package/dist/cjs/downloader/cli/cookie.js +37 -0
- package/dist/cjs/downloader/cli/cookie.js.map +1 -0
- package/dist/cjs/downloader/cli/index.d.ts +4 -0
- package/dist/cjs/downloader/cli/index.d.ts.map +1 -0
- package/dist/cjs/downloader/cli/index.js +15 -0
- package/dist/cjs/downloader/cli/index.js.map +1 -0
- package/dist/cjs/downloader/cli/options.d.ts +22 -0
- package/dist/cjs/downloader/cli/options.d.ts.map +1 -0
- package/dist/cjs/downloader/cli/options.js +124 -0
- package/dist/cjs/downloader/cli/options.js.map +1 -0
- package/dist/cjs/downloader/{resolver.d.ts → cli/resolver.d.ts} +7 -1
- package/dist/cjs/downloader/cli/resolver.d.ts.map +1 -0
- package/dist/cjs/downloader/cli/resolver.js +28 -0
- package/dist/cjs/downloader/cli/resolver.js.map +1 -0
- package/dist/cjs/downloader/creator/discover-posts.d.ts +15 -0
- package/dist/cjs/downloader/creator/discover-posts.d.ts.map +1 -0
- package/dist/cjs/downloader/creator/discover-posts.js +20 -0
- package/dist/cjs/downloader/creator/discover-posts.js.map +1 -0
- package/dist/cjs/downloader/creator/sync.d.ts +16 -0
- package/dist/cjs/downloader/creator/sync.d.ts.map +1 -0
- package/dist/cjs/downloader/creator/sync.js +34 -0
- package/dist/cjs/downloader/creator/sync.js.map +1 -0
- package/dist/cjs/downloader/fs/filesystem.d.ts +2 -0
- package/dist/cjs/downloader/fs/filesystem.d.ts.map +1 -0
- package/dist/cjs/downloader/fs/filesystem.js +10 -0
- package/dist/cjs/downloader/fs/filesystem.js.map +1 -0
- package/dist/cjs/downloader/fs/path-manager.d.ts +17 -0
- package/dist/cjs/downloader/fs/path-manager.d.ts.map +1 -0
- package/dist/cjs/downloader/fs/path-manager.js +49 -0
- package/dist/cjs/downloader/fs/path-manager.js.map +1 -0
- package/dist/cjs/downloader/index.d.ts +8 -2
- package/dist/cjs/downloader/index.d.ts.map +1 -1
- package/dist/cjs/downloader/index.js +55 -5
- package/dist/cjs/downloader/index.js.map +1 -1
- package/dist/cjs/downloader/manifest/creator-manager.d.ts +15 -0
- package/dist/cjs/downloader/manifest/creator-manager.d.ts.map +1 -0
- package/dist/cjs/downloader/manifest/creator-manager.js +42 -0
- package/dist/cjs/downloader/manifest/creator-manager.js.map +1 -0
- package/dist/cjs/downloader/manifest/creator.d.ts +42 -0
- package/dist/cjs/downloader/manifest/creator.d.ts.map +1 -0
- package/dist/cjs/downloader/manifest/creator.js +54 -0
- package/dist/cjs/downloader/manifest/creator.js.map +1 -0
- package/dist/cjs/downloader/manifest/store.d.ts +9 -0
- package/dist/cjs/downloader/manifest/store.d.ts.map +1 -0
- package/dist/cjs/downloader/manifest/store.js +29 -0
- package/dist/cjs/downloader/manifest/store.js.map +1 -0
- package/dist/cjs/downloader/markdown/asset.d.ts +12 -0
- package/dist/cjs/downloader/markdown/asset.d.ts.map +1 -0
- package/dist/cjs/downloader/markdown/asset.js +31 -0
- package/dist/cjs/downloader/markdown/asset.js.map +1 -0
- package/dist/cjs/downloader/post/article.d.ts +4 -0
- package/dist/cjs/downloader/post/article.d.ts.map +1 -0
- package/dist/cjs/downloader/post/article.js +35 -0
- package/dist/cjs/downloader/post/article.js.map +1 -0
- package/dist/cjs/downloader/post/content.d.ts +52 -0
- package/dist/cjs/downloader/post/content.d.ts.map +1 -0
- package/dist/cjs/downloader/post/content.js +48 -0
- package/dist/cjs/downloader/post/content.js.map +1 -0
- package/dist/cjs/downloader/post/contents.d.ts +9 -0
- package/dist/cjs/downloader/post/contents.d.ts.map +1 -0
- package/dist/cjs/downloader/post/contents.js +36 -0
- package/dist/cjs/downloader/post/contents.js.map +1 -0
- package/dist/cjs/downloader/post/embed.d.ts +7 -0
- package/dist/cjs/downloader/post/embed.d.ts.map +1 -0
- package/dist/cjs/downloader/post/embed.js +14 -0
- package/dist/cjs/downloader/post/embed.js.map +1 -0
- package/dist/cjs/downloader/post/sync.d.ts +17 -0
- package/dist/cjs/downloader/post/sync.d.ts.map +1 -0
- package/dist/cjs/downloader/post/sync.js +127 -0
- package/dist/cjs/downloader/post/sync.js.map +1 -0
- package/dist/cjs/downloader/post/url-embed.d.ts +7 -0
- package/dist/cjs/downloader/post/url-embed.d.ts.map +1 -0
- package/dist/cjs/downloader/post/url-embed.js +14 -0
- package/dist/cjs/downloader/post/url-embed.js.map +1 -0
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/transport/http2-session.d.ts +7 -0
- package/dist/cjs/transport/http2-session.d.ts.map +1 -0
- package/dist/cjs/transport/http2-session.js +48 -0
- package/dist/cjs/transport/http2-session.js.map +1 -0
- package/dist/cjs/transport/http2.d.ts +11 -0
- package/dist/cjs/transport/http2.d.ts.map +1 -0
- package/dist/cjs/transport/http2.js +85 -0
- package/dist/cjs/transport/http2.js.map +1 -0
- package/dist/cjs/transport/worker.d.ts +17 -0
- package/dist/cjs/transport/worker.d.ts.map +1 -0
- package/dist/cjs/transport/worker.js +137 -0
- package/dist/cjs/transport/worker.js.map +1 -0
- package/dist/cjs/usage.d.ts +4 -0
- package/dist/cjs/usage.d.ts.map +1 -0
- package/dist/cjs/usage.js +11 -0
- package/dist/cjs/usage.js.map +1 -0
- package/dist/esm/cli.d.ts +3 -0
- package/dist/esm/cli.d.ts.map +1 -0
- package/dist/esm/cli.js +62 -0
- package/dist/esm/cli.js.map +1 -0
- package/dist/esm/client/client.d.ts +36 -0
- package/dist/esm/client/client.d.ts.map +1 -0
- package/dist/esm/client/client.js +68 -0
- package/dist/esm/client/client.js.map +1 -0
- package/dist/esm/client/endpoints/creator-get.d.ts +8 -0
- package/dist/esm/client/endpoints/creator-get.d.ts.map +1 -0
- package/dist/esm/client/endpoints/creator-get.js +4 -0
- package/dist/esm/client/endpoints/creator-get.js.map +1 -0
- package/dist/esm/client/endpoints/creator-list-pages.d.ts +9 -0
- package/dist/esm/client/endpoints/creator-list-pages.d.ts.map +1 -0
- package/dist/esm/client/endpoints/creator-list-pages.js +4 -0
- package/dist/esm/client/endpoints/creator-list-pages.js.map +1 -0
- package/dist/esm/client/endpoints/creator-list-plans.d.ts +8 -0
- package/dist/esm/client/endpoints/creator-list-plans.d.ts.map +1 -0
- package/dist/esm/client/endpoints/creator-list-plans.js +4 -0
- package/dist/esm/client/endpoints/creator-list-plans.js.map +1 -0
- package/dist/esm/client/endpoints/creator-list-posts.d.ts +11 -0
- package/dist/esm/client/endpoints/creator-list-posts.d.ts.map +1 -0
- package/dist/esm/client/endpoints/creator-list-posts.js +4 -0
- package/dist/esm/client/endpoints/creator-list-posts.js.map +1 -0
- package/dist/esm/client/endpoints/post-info.d.ts +8 -0
- package/dist/esm/client/endpoints/post-info.d.ts.map +1 -0
- package/dist/esm/client/endpoints/post-info.js +4 -0
- package/dist/esm/client/endpoints/post-info.js.map +1 -0
- package/dist/esm/client/endpoints/post-list-home.d.ts +6 -0
- package/dist/esm/client/endpoints/post-list-home.d.ts.map +1 -0
- package/dist/esm/client/endpoints/post-list-home.js +4 -0
- package/dist/esm/client/endpoints/post-list-home.js.map +1 -0
- package/dist/esm/client/endpoints/post-list-supporting.d.ts +6 -0
- package/dist/esm/client/endpoints/post-list-supporting.d.ts.map +1 -0
- package/dist/esm/client/endpoints/post-list-supporting.js +4 -0
- package/dist/esm/client/endpoints/post-list-supporting.js.map +1 -0
- package/dist/esm/client/endpoints/user-list-following.d.ts +7 -0
- package/dist/esm/client/endpoints/user-list-following.d.ts.map +1 -0
- package/dist/esm/client/endpoints/user-list-following.js +4 -0
- package/dist/esm/client/endpoints/user-list-following.js.map +1 -0
- package/dist/esm/client/endpoints/user-list-supporting.d.ts +5 -0
- package/dist/esm/client/endpoints/user-list-supporting.d.ts.map +1 -0
- package/dist/esm/client/endpoints/user-list-supporting.js +4 -0
- package/dist/esm/client/endpoints/user-list-supporting.js.map +1 -0
- package/dist/esm/client/fanbox-envelope.d.ts.map +1 -0
- package/dist/esm/client/fanbox-envelope.js.map +1 -0
- package/dist/esm/client/fanbox-headers.d.ts.map +1 -0
- package/dist/esm/{fanbox-headers.js → client/fanbox-headers.js} +0 -4
- package/dist/esm/client/fanbox-headers.js.map +1 -0
- package/dist/esm/client/models/creator.d.ts.map +1 -0
- package/dist/esm/client/models/creator.js.map +1 -0
- package/dist/esm/client/models/plan.d.ts.map +1 -0
- package/dist/esm/{endpoints → client}/models/plan.js.map +1 -1
- package/dist/esm/client/models/post/article.d.ts +41 -0
- package/dist/esm/client/models/post/article.d.ts.map +1 -0
- package/dist/esm/client/models/post/article.js +2 -0
- package/dist/esm/client/models/post/article.js.map +1 -0
- package/dist/esm/client/models/post/asset.d.ts +16 -0
- package/dist/esm/client/models/post/asset.d.ts.map +1 -0
- package/dist/esm/client/models/post/asset.js +2 -0
- package/dist/esm/client/models/post/asset.js.map +1 -0
- package/dist/esm/client/models/post/embed.d.ts +12 -0
- package/dist/esm/client/models/post/embed.d.ts.map +1 -0
- package/dist/esm/client/models/post/embed.js +2 -0
- package/dist/esm/client/models/post/embed.js.map +1 -0
- package/dist/esm/client/models/post/url-embed.d.ts +13 -0
- package/dist/esm/client/models/post/url-embed.d.ts.map +1 -0
- package/dist/esm/client/models/post/url-embed.js +2 -0
- package/dist/esm/client/models/post/url-embed.js.map +1 -0
- package/dist/esm/{endpoints → client}/models/post.d.ts +5 -48
- package/dist/esm/client/models/post.d.ts.map +1 -0
- package/dist/esm/{endpoints → client}/models/post.js.map +1 -1
- package/dist/esm/client/models/user.d.ts.map +1 -0
- package/dist/esm/{endpoints → client}/models/user.js.map +1 -1
- package/dist/esm/client/types.d.ts +14 -0
- package/dist/esm/client/types.d.ts.map +1 -0
- package/dist/esm/{types.js.map → client/types.js.map} +1 -1
- package/dist/esm/downloader/asset/download.d.ts +21 -0
- package/dist/esm/downloader/asset/download.d.ts.map +1 -0
- package/dist/esm/downloader/asset/download.js +56 -0
- package/dist/esm/downloader/asset/download.js.map +1 -0
- package/dist/esm/downloader/cli/cookie.d.ts +2 -0
- package/dist/esm/downloader/cli/cookie.d.ts.map +1 -0
- package/dist/esm/downloader/cli/cookie.js +34 -0
- package/dist/esm/downloader/cli/cookie.js.map +1 -0
- package/dist/esm/downloader/cli/index.d.ts +4 -0
- package/dist/esm/downloader/cli/index.d.ts.map +1 -0
- package/dist/esm/downloader/cli/index.js +11 -0
- package/dist/esm/downloader/cli/index.js.map +1 -0
- package/dist/esm/downloader/cli/options.d.ts +22 -0
- package/dist/esm/downloader/cli/options.d.ts.map +1 -0
- package/dist/esm/downloader/cli/options.js +120 -0
- package/dist/esm/downloader/cli/options.js.map +1 -0
- package/dist/esm/downloader/{resolver.d.ts → cli/resolver.d.ts} +7 -1
- package/dist/esm/downloader/cli/resolver.d.ts.map +1 -0
- package/dist/esm/downloader/cli/resolver.js +25 -0
- package/dist/esm/downloader/cli/resolver.js.map +1 -0
- package/dist/esm/downloader/creator/discover-posts.d.ts +15 -0
- package/dist/esm/downloader/creator/discover-posts.d.ts.map +1 -0
- package/dist/esm/downloader/creator/discover-posts.js +17 -0
- package/dist/esm/downloader/creator/discover-posts.js.map +1 -0
- package/dist/esm/downloader/creator/sync.d.ts +16 -0
- package/dist/esm/downloader/creator/sync.d.ts.map +1 -0
- package/dist/esm/downloader/creator/sync.js +31 -0
- package/dist/esm/downloader/creator/sync.js.map +1 -0
- package/dist/esm/downloader/fs/filesystem.d.ts +2 -0
- package/dist/esm/downloader/fs/filesystem.d.ts.map +1 -0
- package/dist/esm/downloader/fs/filesystem.js +7 -0
- package/dist/esm/downloader/fs/filesystem.js.map +1 -0
- package/dist/esm/downloader/fs/path-manager.d.ts +17 -0
- package/dist/esm/downloader/fs/path-manager.d.ts.map +1 -0
- package/dist/esm/downloader/fs/path-manager.js +45 -0
- package/dist/esm/downloader/fs/path-manager.js.map +1 -0
- package/dist/esm/downloader/index.d.ts +8 -2
- package/dist/esm/downloader/index.d.ts.map +1 -1
- package/dist/esm/downloader/index.js +54 -5
- package/dist/esm/downloader/index.js.map +1 -1
- package/dist/esm/downloader/manifest/creator-manager.d.ts +15 -0
- package/dist/esm/downloader/manifest/creator-manager.d.ts.map +1 -0
- package/dist/esm/downloader/manifest/creator-manager.js +38 -0
- package/dist/esm/downloader/manifest/creator-manager.js.map +1 -0
- package/dist/esm/downloader/manifest/creator.d.ts +42 -0
- package/dist/esm/downloader/manifest/creator.d.ts.map +1 -0
- package/dist/esm/downloader/manifest/creator.js +50 -0
- package/dist/esm/downloader/manifest/creator.js.map +1 -0
- package/dist/esm/downloader/manifest/store.d.ts +9 -0
- package/dist/esm/downloader/manifest/store.d.ts.map +1 -0
- package/dist/esm/downloader/manifest/store.js +25 -0
- package/dist/esm/downloader/manifest/store.js.map +1 -0
- package/dist/esm/downloader/markdown/asset.d.ts +12 -0
- package/dist/esm/downloader/markdown/asset.d.ts.map +1 -0
- package/dist/esm/downloader/markdown/asset.js +22 -0
- package/dist/esm/downloader/markdown/asset.js.map +1 -0
- package/dist/esm/downloader/post/article.d.ts +4 -0
- package/dist/esm/downloader/post/article.d.ts.map +1 -0
- package/dist/esm/downloader/post/article.js +32 -0
- package/dist/esm/downloader/post/article.js.map +1 -0
- package/dist/esm/downloader/post/content.d.ts +52 -0
- package/dist/esm/downloader/post/content.d.ts.map +1 -0
- package/dist/esm/downloader/post/content.js +39 -0
- package/dist/esm/downloader/post/content.js.map +1 -0
- package/dist/esm/downloader/post/contents.d.ts +9 -0
- package/dist/esm/downloader/post/contents.d.ts.map +1 -0
- package/dist/esm/downloader/post/contents.js +33 -0
- package/dist/esm/downloader/post/contents.js.map +1 -0
- package/dist/esm/downloader/post/embed.d.ts +7 -0
- package/dist/esm/downloader/post/embed.d.ts.map +1 -0
- package/dist/esm/downloader/post/embed.js +11 -0
- package/dist/esm/downloader/post/embed.js.map +1 -0
- package/dist/esm/downloader/post/sync.d.ts +17 -0
- package/dist/esm/downloader/post/sync.d.ts.map +1 -0
- package/dist/esm/downloader/post/sync.js +124 -0
- package/dist/esm/downloader/post/sync.js.map +1 -0
- package/dist/esm/downloader/post/url-embed.d.ts +7 -0
- package/dist/esm/downloader/post/url-embed.d.ts.map +1 -0
- package/dist/esm/downloader/post/url-embed.js +11 -0
- package/dist/esm/downloader/post/url-embed.js.map +1 -0
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/transport/http2-session.d.ts +7 -0
- package/dist/esm/transport/http2-session.d.ts.map +1 -0
- package/dist/esm/transport/http2-session.js +44 -0
- package/dist/esm/transport/http2-session.js.map +1 -0
- package/dist/esm/transport/http2.d.ts +11 -0
- package/dist/esm/transport/http2.d.ts.map +1 -0
- package/dist/esm/transport/http2.js +80 -0
- package/dist/esm/transport/http2.js.map +1 -0
- package/dist/esm/transport/worker.d.ts +17 -0
- package/dist/esm/transport/worker.d.ts.map +1 -0
- package/dist/esm/transport/worker.js +133 -0
- package/dist/esm/transport/worker.js.map +1 -0
- package/dist/esm/usage.d.ts +4 -0
- package/dist/esm/usage.d.ts.map +1 -0
- package/dist/esm/usage.js +7 -0
- package/dist/esm/usage.js.map +1 -0
- package/package.json +5 -2
- package/dist/cjs/client-options.d.ts +0 -8
- package/dist/cjs/client-options.d.ts.map +0 -1
- package/dist/cjs/client-options.js +0 -3
- package/dist/cjs/client-options.js.map +0 -1
- package/dist/cjs/client.d.ts +0 -31
- package/dist/cjs/client.d.ts.map +0 -1
- package/dist/cjs/client.js +0 -107
- package/dist/cjs/client.js.map +0 -1
- package/dist/cjs/downloader/asset.d.ts +0 -30
- package/dist/cjs/downloader/asset.d.ts.map +0 -1
- package/dist/cjs/downloader/asset.js +0 -99
- package/dist/cjs/downloader/asset.js.map +0 -1
- package/dist/cjs/downloader/cli.d.ts +0 -8
- package/dist/cjs/downloader/cli.d.ts.map +0 -1
- package/dist/cjs/downloader/cli.js +0 -168
- package/dist/cjs/downloader/cli.js.map +0 -1
- package/dist/cjs/downloader/discovery.d.ts +0 -12
- package/dist/cjs/downloader/discovery.d.ts.map +0 -1
- package/dist/cjs/downloader/discovery.js +0 -87
- package/dist/cjs/downloader/discovery.js.map +0 -1
- package/dist/cjs/downloader/errors.d.ts +0 -5
- package/dist/cjs/downloader/errors.d.ts.map +0 -1
- package/dist/cjs/downloader/errors.js +0 -40
- package/dist/cjs/downloader/errors.js.map +0 -1
- package/dist/cjs/downloader/logger.d.ts +0 -16
- package/dist/cjs/downloader/logger.d.ts.map +0 -1
- package/dist/cjs/downloader/logger.js +0 -51
- package/dist/cjs/downloader/logger.js.map +0 -1
- package/dist/cjs/downloader/manifest.d.ts +0 -31
- package/dist/cjs/downloader/manifest.d.ts.map +0 -1
- package/dist/cjs/downloader/manifest.js +0 -53
- package/dist/cjs/downloader/manifest.js.map +0 -1
- package/dist/cjs/downloader/markdown.d.ts +0 -4
- package/dist/cjs/downloader/markdown.d.ts.map +0 -1
- package/dist/cjs/downloader/markdown.js +0 -62
- package/dist/cjs/downloader/markdown.js.map +0 -1
- package/dist/cjs/downloader/options.d.ts +0 -24
- package/dist/cjs/downloader/options.d.ts.map +0 -1
- package/dist/cjs/downloader/options.js +0 -135
- package/dist/cjs/downloader/options.js.map +0 -1
- package/dist/cjs/downloader/path.d.ts +0 -15
- package/dist/cjs/downloader/path.d.ts.map +0 -1
- package/dist/cjs/downloader/path.js +0 -79
- package/dist/cjs/downloader/path.js.map +0 -1
- package/dist/cjs/downloader/resolver.d.ts.map +0 -1
- package/dist/cjs/downloader/resolver.js +0 -22
- package/dist/cjs/downloader/resolver.js.map +0 -1
- package/dist/cjs/downloader/scheduler.d.ts +0 -19
- package/dist/cjs/downloader/scheduler.d.ts.map +0 -1
- package/dist/cjs/downloader/scheduler.js +0 -124
- package/dist/cjs/downloader/scheduler.js.map +0 -1
- package/dist/cjs/downloader/sync.d.ts +0 -21
- package/dist/cjs/downloader/sync.d.ts.map +0 -1
- package/dist/cjs/downloader/sync.js +0 -317
- package/dist/cjs/downloader/sync.js.map +0 -1
- package/dist/cjs/endpoints/creator-get.d.ts +0 -7
- package/dist/cjs/endpoints/creator-get.d.ts.map +0 -1
- package/dist/cjs/endpoints/creator-get.js +0 -5
- package/dist/cjs/endpoints/creator-get.js.map +0 -1
- package/dist/cjs/endpoints/creator-list-following.d.ts +0 -6
- package/dist/cjs/endpoints/creator-list-following.d.ts.map +0 -1
- package/dist/cjs/endpoints/creator-list-following.js +0 -5
- package/dist/cjs/endpoints/creator-list-following.js.map +0 -1
- package/dist/cjs/endpoints/fanbox-envelope.d.ts.map +0 -1
- package/dist/cjs/endpoints/fanbox-envelope.js.map +0 -1
- package/dist/cjs/endpoints/models/creator.d.ts.map +0 -1
- package/dist/cjs/endpoints/models/creator.js.map +0 -1
- package/dist/cjs/endpoints/models/plan.d.ts.map +0 -1
- package/dist/cjs/endpoints/models/post.d.ts.map +0 -1
- package/dist/cjs/endpoints/models/user.d.ts.map +0 -1
- package/dist/cjs/endpoints/plan-list-creator.d.ts +0 -7
- package/dist/cjs/endpoints/plan-list-creator.d.ts.map +0 -1
- package/dist/cjs/endpoints/plan-list-creator.js +0 -5
- package/dist/cjs/endpoints/plan-list-creator.js.map +0 -1
- package/dist/cjs/endpoints/plan-list-supporting.d.ts +0 -4
- package/dist/cjs/endpoints/plan-list-supporting.d.ts.map +0 -1
- package/dist/cjs/endpoints/plan-list-supporting.js +0 -5
- package/dist/cjs/endpoints/plan-list-supporting.js.map +0 -1
- package/dist/cjs/endpoints/post-info.d.ts +0 -7
- package/dist/cjs/endpoints/post-info.d.ts.map +0 -1
- package/dist/cjs/endpoints/post-info.js +0 -5
- package/dist/cjs/endpoints/post-info.js.map +0 -1
- package/dist/cjs/endpoints/post-list-creator.d.ts +0 -10
- package/dist/cjs/endpoints/post-list-creator.d.ts.map +0 -1
- package/dist/cjs/endpoints/post-list-creator.js +0 -5
- package/dist/cjs/endpoints/post-list-creator.js.map +0 -1
- package/dist/cjs/endpoints/post-list-home.d.ts +0 -5
- package/dist/cjs/endpoints/post-list-home.d.ts.map +0 -1
- package/dist/cjs/endpoints/post-list-home.js +0 -5
- package/dist/cjs/endpoints/post-list-home.js.map +0 -1
- package/dist/cjs/endpoints/post-list-supporting.d.ts +0 -5
- package/dist/cjs/endpoints/post-list-supporting.d.ts.map +0 -1
- package/dist/cjs/endpoints/post-list-supporting.js +0 -5
- package/dist/cjs/endpoints/post-list-supporting.js.map +0 -1
- package/dist/cjs/endpoints/post-paginate-creator.d.ts +0 -8
- package/dist/cjs/endpoints/post-paginate-creator.d.ts.map +0 -1
- package/dist/cjs/endpoints/post-paginate-creator.js +0 -5
- package/dist/cjs/endpoints/post-paginate-creator.js.map +0 -1
- package/dist/cjs/fanbox-headers.d.ts.map +0 -1
- package/dist/cjs/fanbox-headers.js.map +0 -1
- package/dist/cjs/http.d.ts +0 -31
- package/dist/cjs/http.d.ts.map +0 -1
- package/dist/cjs/http.js +0 -200
- package/dist/cjs/http.js.map +0 -1
- package/dist/cjs/types.d.ts +0 -16
- package/dist/cjs/types.d.ts.map +0 -1
- package/dist/esm/client-options.d.ts +0 -8
- package/dist/esm/client-options.d.ts.map +0 -1
- package/dist/esm/client-options.js +0 -2
- package/dist/esm/client-options.js.map +0 -1
- package/dist/esm/client.d.ts +0 -31
- package/dist/esm/client.d.ts.map +0 -1
- package/dist/esm/client.js +0 -102
- package/dist/esm/client.js.map +0 -1
- package/dist/esm/downloader/asset.d.ts +0 -30
- package/dist/esm/downloader/asset.d.ts.map +0 -1
- package/dist/esm/downloader/asset.js +0 -91
- package/dist/esm/downloader/asset.js.map +0 -1
- package/dist/esm/downloader/cli.d.ts +0 -8
- package/dist/esm/downloader/cli.d.ts.map +0 -1
- package/dist/esm/downloader/cli.js +0 -164
- package/dist/esm/downloader/cli.js.map +0 -1
- package/dist/esm/downloader/discovery.d.ts +0 -12
- package/dist/esm/downloader/discovery.d.ts.map +0 -1
- package/dist/esm/downloader/discovery.js +0 -84
- package/dist/esm/downloader/discovery.js.map +0 -1
- package/dist/esm/downloader/errors.d.ts +0 -5
- package/dist/esm/downloader/errors.d.ts.map +0 -1
- package/dist/esm/downloader/errors.js +0 -36
- package/dist/esm/downloader/errors.js.map +0 -1
- package/dist/esm/downloader/logger.d.ts +0 -16
- package/dist/esm/downloader/logger.d.ts.map +0 -1
- package/dist/esm/downloader/logger.js +0 -47
- package/dist/esm/downloader/logger.js.map +0 -1
- package/dist/esm/downloader/manifest.d.ts +0 -31
- package/dist/esm/downloader/manifest.d.ts.map +0 -1
- package/dist/esm/downloader/manifest.js +0 -46
- package/dist/esm/downloader/manifest.js.map +0 -1
- package/dist/esm/downloader/markdown.d.ts +0 -4
- package/dist/esm/downloader/markdown.d.ts.map +0 -1
- package/dist/esm/downloader/markdown.js +0 -59
- package/dist/esm/downloader/markdown.js.map +0 -1
- package/dist/esm/downloader/options.d.ts +0 -24
- package/dist/esm/downloader/options.d.ts.map +0 -1
- package/dist/esm/downloader/options.js +0 -130
- package/dist/esm/downloader/options.js.map +0 -1
- package/dist/esm/downloader/path.d.ts +0 -15
- package/dist/esm/downloader/path.d.ts.map +0 -1
- package/dist/esm/downloader/path.js +0 -69
- package/dist/esm/downloader/path.js.map +0 -1
- package/dist/esm/downloader/resolver.d.ts.map +0 -1
- package/dist/esm/downloader/resolver.js +0 -19
- package/dist/esm/downloader/resolver.js.map +0 -1
- package/dist/esm/downloader/scheduler.d.ts +0 -19
- package/dist/esm/downloader/scheduler.d.ts.map +0 -1
- package/dist/esm/downloader/scheduler.js +0 -120
- package/dist/esm/downloader/scheduler.js.map +0 -1
- package/dist/esm/downloader/sync.d.ts +0 -21
- package/dist/esm/downloader/sync.d.ts.map +0 -1
- package/dist/esm/downloader/sync.js +0 -311
- package/dist/esm/downloader/sync.js.map +0 -1
- package/dist/esm/endpoints/creator-get.d.ts +0 -7
- package/dist/esm/endpoints/creator-get.d.ts.map +0 -1
- package/dist/esm/endpoints/creator-get.js +0 -2
- package/dist/esm/endpoints/creator-get.js.map +0 -1
- package/dist/esm/endpoints/creator-list-following.d.ts +0 -6
- package/dist/esm/endpoints/creator-list-following.d.ts.map +0 -1
- package/dist/esm/endpoints/creator-list-following.js +0 -2
- package/dist/esm/endpoints/creator-list-following.js.map +0 -1
- package/dist/esm/endpoints/fanbox-envelope.d.ts.map +0 -1
- package/dist/esm/endpoints/fanbox-envelope.js.map +0 -1
- package/dist/esm/endpoints/models/creator.d.ts.map +0 -1
- package/dist/esm/endpoints/models/creator.js.map +0 -1
- package/dist/esm/endpoints/models/plan.d.ts.map +0 -1
- package/dist/esm/endpoints/models/post.d.ts.map +0 -1
- package/dist/esm/endpoints/models/user.d.ts.map +0 -1
- package/dist/esm/endpoints/plan-list-creator.d.ts +0 -7
- package/dist/esm/endpoints/plan-list-creator.d.ts.map +0 -1
- package/dist/esm/endpoints/plan-list-creator.js +0 -2
- package/dist/esm/endpoints/plan-list-creator.js.map +0 -1
- package/dist/esm/endpoints/plan-list-supporting.d.ts +0 -4
- package/dist/esm/endpoints/plan-list-supporting.d.ts.map +0 -1
- package/dist/esm/endpoints/plan-list-supporting.js +0 -2
- package/dist/esm/endpoints/plan-list-supporting.js.map +0 -1
- package/dist/esm/endpoints/post-info.d.ts +0 -7
- package/dist/esm/endpoints/post-info.d.ts.map +0 -1
- package/dist/esm/endpoints/post-info.js +0 -2
- package/dist/esm/endpoints/post-info.js.map +0 -1
- package/dist/esm/endpoints/post-list-creator.d.ts +0 -10
- package/dist/esm/endpoints/post-list-creator.d.ts.map +0 -1
- package/dist/esm/endpoints/post-list-creator.js +0 -2
- package/dist/esm/endpoints/post-list-creator.js.map +0 -1
- package/dist/esm/endpoints/post-list-home.d.ts +0 -5
- package/dist/esm/endpoints/post-list-home.d.ts.map +0 -1
- package/dist/esm/endpoints/post-list-home.js +0 -2
- package/dist/esm/endpoints/post-list-home.js.map +0 -1
- package/dist/esm/endpoints/post-list-supporting.d.ts +0 -5
- package/dist/esm/endpoints/post-list-supporting.d.ts.map +0 -1
- package/dist/esm/endpoints/post-list-supporting.js +0 -2
- package/dist/esm/endpoints/post-list-supporting.js.map +0 -1
- package/dist/esm/endpoints/post-paginate-creator.d.ts +0 -8
- package/dist/esm/endpoints/post-paginate-creator.d.ts.map +0 -1
- package/dist/esm/endpoints/post-paginate-creator.js +0 -2
- package/dist/esm/endpoints/post-paginate-creator.js.map +0 -1
- package/dist/esm/fanbox-headers.d.ts.map +0 -1
- package/dist/esm/fanbox-headers.js.map +0 -1
- package/dist/esm/http.d.ts +0 -31
- package/dist/esm/http.d.ts.map +0 -1
- package/dist/esm/http.js +0 -195
- package/dist/esm/http.js.map +0 -1
- package/dist/esm/types.d.ts +0 -16
- package/dist/esm/types.d.ts.map +0 -1
- /package/dist/cjs/{endpoints → client}/fanbox-envelope.d.ts +0 -0
- /package/dist/cjs/{endpoints → client}/fanbox-envelope.js +0 -0
- /package/dist/cjs/{fanbox-headers.d.ts → client/fanbox-headers.d.ts} +0 -0
- /package/dist/cjs/{endpoints → client}/models/creator.d.ts +0 -0
- /package/dist/cjs/{endpoints → client}/models/creator.js +0 -0
- /package/dist/cjs/{endpoints → client}/models/plan.d.ts +0 -0
- /package/dist/cjs/{endpoints → client}/models/plan.js +0 -0
- /package/dist/cjs/{endpoints → client}/models/post.js +0 -0
- /package/dist/cjs/{endpoints → client}/models/user.d.ts +0 -0
- /package/dist/cjs/{endpoints → client}/models/user.js +0 -0
- /package/dist/cjs/{types.js → client/types.js} +0 -0
- /package/dist/esm/{endpoints → client}/fanbox-envelope.d.ts +0 -0
- /package/dist/esm/{endpoints → client}/fanbox-envelope.js +0 -0
- /package/dist/esm/{fanbox-headers.d.ts → client/fanbox-headers.d.ts} +0 -0
- /package/dist/esm/{endpoints → client}/models/creator.d.ts +0 -0
- /package/dist/esm/{endpoints → client}/models/creator.js +0 -0
- /package/dist/esm/{endpoints → client}/models/plan.d.ts +0 -0
- /package/dist/esm/{endpoints → client}/models/plan.js +0 -0
- /package/dist/esm/{endpoints → client}/models/post.js +0 -0
- /package/dist/esm/{endpoints → client}/models/user.d.ts +0 -0
- /package/dist/esm/{endpoints → client}/models/user.js +0 -0
- /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 `
|
|
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
|
package/dist/bundle/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
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 interface ListFollowingCreatorsResult {\n creators: CreatorSummary[];\n}\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"]}
|
package/dist/bundle/index.d.cts
CHANGED
|
@@ -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
|
-
|
|
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,43 +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
|
-
|
|
83
|
-
|
|
84
|
-
|
|
56
|
+
interface PostFile {
|
|
57
|
+
extension: string;
|
|
58
|
+
id: string;
|
|
59
|
+
name: string;
|
|
60
|
+
size: number;
|
|
61
|
+
url: string;
|
|
62
|
+
}
|
|
63
|
+
interface PostImage {
|
|
64
|
+
extension: string;
|
|
65
|
+
height: number;
|
|
66
|
+
id: string;
|
|
67
|
+
originalUrl: string;
|
|
68
|
+
thumbnailUrl: string;
|
|
69
|
+
width: number;
|
|
85
70
|
}
|
|
86
71
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
fee: number;
|
|
92
|
-
hasAdultContent: boolean;
|
|
72
|
+
type ArticleEmbedItem = ArticleEmbedKnownItem | ArticleEmbedUnknownItem;
|
|
73
|
+
type ArticleEmbedKnownItem = ArticleEmbedTwitterItem;
|
|
74
|
+
interface ArticleEmbedTwitterItem {
|
|
75
|
+
contentId: string;
|
|
93
76
|
id: string;
|
|
94
|
-
|
|
95
|
-
perks: string[];
|
|
96
|
-
title: string;
|
|
97
|
-
user: FanboxUser;
|
|
77
|
+
serviceProvider: "twitter";
|
|
98
78
|
}
|
|
99
|
-
interface
|
|
100
|
-
|
|
79
|
+
interface ArticleEmbedUnknownItem {
|
|
80
|
+
id: string;
|
|
81
|
+
serviceProvider: string & {};
|
|
101
82
|
}
|
|
102
83
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
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 & {};
|
|
106
95
|
}
|
|
107
|
-
type ListCreatorPlansResult = Plan[];
|
|
108
|
-
|
|
109
|
-
declare const PLAN_LIST_SUPPORTING_PATH = "plan.listSupporting";
|
|
110
|
-
type ListSupportingPlansResult = SupportingPlan[];
|
|
111
96
|
|
|
112
|
-
type ArticleBlock =
|
|
97
|
+
type ArticleBlock = ArticleUnknownBlock | KnownArticleBlock;
|
|
98
|
+
interface ArticleEmbedBlock {
|
|
99
|
+
embedId: string;
|
|
100
|
+
type: "embed";
|
|
101
|
+
}
|
|
113
102
|
interface ArticleFileBlock {
|
|
114
103
|
fileId: string;
|
|
115
104
|
type: "file";
|
|
@@ -126,24 +115,27 @@ interface ArticleParagraphBlock {
|
|
|
126
115
|
text: string;
|
|
127
116
|
type: "p";
|
|
128
117
|
}
|
|
129
|
-
interface ArticlePost extends PostBase {
|
|
130
|
-
body: ArticlePostBody;
|
|
131
|
-
type: "article";
|
|
132
|
-
}
|
|
133
118
|
interface ArticlePostBody {
|
|
134
119
|
blocks: ArticleBlock[];
|
|
120
|
+
embedMap: Record<string, ArticleEmbedItem>;
|
|
135
121
|
fileMap: Record<string, PostFile>;
|
|
136
122
|
imageMap: Record<string, PostImage>;
|
|
137
|
-
urlEmbedMap: Record<string,
|
|
123
|
+
urlEmbedMap: Record<string, ArticleUrlEmbedItem>;
|
|
138
124
|
}
|
|
139
125
|
interface ArticleUnknownBlock {
|
|
140
126
|
[key: string]: unknown;
|
|
141
|
-
type: string;
|
|
127
|
+
type: string & {};
|
|
142
128
|
}
|
|
143
129
|
interface ArticleUrlEmbedBlock {
|
|
144
130
|
type: "url_embed";
|
|
145
131
|
urlEmbedId: string;
|
|
146
132
|
}
|
|
133
|
+
type KnownArticleBlock = ArticleEmbedBlock | ArticleFileBlock | ArticleHeaderBlock | ArticleImageBlock | ArticleParagraphBlock | ArticleUrlEmbedBlock;
|
|
134
|
+
|
|
135
|
+
interface ArticlePost extends PostBase {
|
|
136
|
+
body: ArticlePostBody;
|
|
137
|
+
type: "article";
|
|
138
|
+
}
|
|
147
139
|
interface FilePost extends PostBase {
|
|
148
140
|
body: FilePostBody;
|
|
149
141
|
type: "file";
|
|
@@ -160,31 +152,17 @@ interface ImagePostBody {
|
|
|
160
152
|
images: PostImage[];
|
|
161
153
|
text: string;
|
|
162
154
|
}
|
|
155
|
+
type KnownPost = ArticlePost | FilePost | ImagePost | TextPost | VideoPost;
|
|
163
156
|
interface NeighboringPost {
|
|
164
157
|
id: string;
|
|
165
158
|
publishedDatetime: string;
|
|
166
159
|
title: string;
|
|
167
160
|
}
|
|
168
|
-
type Post =
|
|
161
|
+
type Post = KnownPost | UnknownPost;
|
|
169
162
|
interface PostCover {
|
|
170
163
|
type: "cover_image" | "post_image";
|
|
171
164
|
url: string;
|
|
172
165
|
}
|
|
173
|
-
interface PostFile {
|
|
174
|
-
extension: string;
|
|
175
|
-
id: string;
|
|
176
|
-
name: string;
|
|
177
|
-
size: number;
|
|
178
|
-
url: string;
|
|
179
|
-
}
|
|
180
|
-
interface PostImage {
|
|
181
|
-
extension: string;
|
|
182
|
-
height: number;
|
|
183
|
-
id: string;
|
|
184
|
-
originalUrl: string;
|
|
185
|
-
thumbnailUrl: string;
|
|
186
|
-
width: number;
|
|
187
|
-
}
|
|
188
166
|
interface PostListParams {
|
|
189
167
|
limit?: number;
|
|
190
168
|
maxId?: string;
|
|
@@ -218,7 +196,7 @@ interface TextPostBody {
|
|
|
218
196
|
text: string;
|
|
219
197
|
}
|
|
220
198
|
interface UnknownPost extends PostBase {
|
|
221
|
-
type: string;
|
|
199
|
+
type: string & {};
|
|
222
200
|
}
|
|
223
201
|
type UnknownPostBody = Record<string, unknown>;
|
|
224
202
|
interface VideoPost extends PostBase {
|
|
@@ -241,13 +219,35 @@ interface PostBase extends Omit<PostSummary, "cover"> {
|
|
|
241
219
|
type: string;
|
|
242
220
|
}
|
|
243
221
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
222
|
+
interface PaginateCreatorPostsParams {
|
|
223
|
+
creatorId: string;
|
|
224
|
+
sort?: PostSort;
|
|
247
225
|
}
|
|
248
|
-
type
|
|
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;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
interface ListCreatorPlansParams {
|
|
246
|
+
creatorId: string;
|
|
247
|
+
}
|
|
248
|
+
type ListCreatorPlansResult = Plan[];
|
|
249
|
+
declare function listCreatorPlans(this: FanboxClient, params: ListCreatorPlansParams): Promise<ListCreatorPlansResult>;
|
|
249
250
|
|
|
250
|
-
declare const POST_LIST_CREATOR_PATH = "post.listCreator";
|
|
251
251
|
interface ListCreatorPostsParams extends PostListParams {
|
|
252
252
|
creatorId: string;
|
|
253
253
|
firstId?: string;
|
|
@@ -255,44 +255,54 @@ interface ListCreatorPostsParams extends PostListParams {
|
|
|
255
255
|
sort?: PostSort;
|
|
256
256
|
}
|
|
257
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>;
|
|
258
265
|
|
|
259
|
-
declare const POST_LIST_HOME_PATH = "post.listHome";
|
|
260
266
|
type ListHomePostsParams = PostListParams;
|
|
261
267
|
type ListHomePostsResult = PostSummary[];
|
|
268
|
+
declare function listHomePosts(this: FanboxClient, params?: ListHomePostsParams): Promise<ListHomePostsResult>;
|
|
262
269
|
|
|
263
|
-
declare const POST_LIST_SUPPORTING_PATH = "post.listSupporting";
|
|
264
270
|
type ListSupportingPostsParams = PostListParams;
|
|
265
271
|
type ListSupportingPostsResult = PostSummary[];
|
|
272
|
+
declare function listSupportingPosts(this: FanboxClient, params?: ListSupportingPostsParams): Promise<ListSupportingPostsResult>;
|
|
266
273
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
creatorId: string;
|
|
270
|
-
sort?: PostSort;
|
|
274
|
+
interface ListFollowingCreatorsResult {
|
|
275
|
+
creators: CreatorSummary[];
|
|
271
276
|
}
|
|
272
|
-
|
|
277
|
+
declare function listFollowingCreators(this: FanboxClient): Promise<ListFollowingCreatorsResult>;
|
|
278
|
+
|
|
279
|
+
type ListSupportingPlansResult = SupportingPlan[];
|
|
280
|
+
declare function listSupportingPlans(this: FanboxClient): Promise<ListSupportingPlansResult>;
|
|
273
281
|
|
|
282
|
+
interface FanboxClientOptions {
|
|
283
|
+
baseUrl?: string;
|
|
284
|
+
headers?: Record<string, string>;
|
|
285
|
+
transport?: HttpTransport;
|
|
286
|
+
}
|
|
274
287
|
declare class FanboxApiError extends Error {
|
|
275
288
|
readonly body: unknown;
|
|
276
289
|
readonly status: number;
|
|
277
290
|
readonly statusText: string;
|
|
278
|
-
constructor(response:
|
|
291
|
+
constructor(response: Response, body: unknown);
|
|
279
292
|
}
|
|
280
293
|
declare class FanboxClient {
|
|
281
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;
|
|
282
304
|
constructor(options?: FanboxClientOptions);
|
|
283
|
-
|
|
284
|
-
getPost(params: GetPostParams): Promise<GetPostResult>;
|
|
285
|
-
listCreatorPlans(params: ListCreatorPlansParams): Promise<ListCreatorPlansResult>;
|
|
286
|
-
listCreatorPosts(params: ListCreatorPostsParams): Promise<ListCreatorPostsResult>;
|
|
287
|
-
listFollowingCreators(): Promise<ListFollowingCreatorsResult>;
|
|
288
|
-
listHomePosts(params?: ListHomePostsParams): Promise<ListHomePostsResult>;
|
|
289
|
-
listSupportingPlans(): Promise<ListSupportingPlansResult>;
|
|
290
|
-
listSupportingPosts(params?: ListSupportingPostsParams): Promise<ListSupportingPostsResult>;
|
|
291
|
-
paginateCreatorPosts(params: PaginateCreatorPostsParams): Promise<PaginateCreatorPostsResult>;
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
interface FanboxEnvelope<T> {
|
|
295
|
-
body: T;
|
|
305
|
+
protected get<T>(path: string, query?: object): Promise<T>;
|
|
296
306
|
}
|
|
297
307
|
|
|
298
|
-
export { type
|
|
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 };
|