@jackwener/opencli 1.6.4 → 1.6.5
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/dist/clis/1688/item.js +3 -3
- package/dist/clis/1688/search.js +2 -2
- package/dist/clis/1688/shared.d.ts +1 -1
- package/dist/clis/1688/shared.js +1 -1
- package/dist/clis/1688/store.js +2 -2
- package/dist/clis/36kr/article.js +2 -2
- package/dist/clis/36kr/hot.js +2 -2
- package/dist/clis/36kr/news.js +1 -1
- package/dist/clis/36kr/search.js +2 -2
- package/dist/clis/_shared/desktop-commands.d.ts +5 -5
- package/dist/clis/_shared/desktop-commands.js +1 -1
- package/dist/clis/amazon/bestsellers.js +1 -1
- package/dist/clis/amazon/discussion.js +2 -2
- package/dist/clis/amazon/movers-shakers.js +1 -1
- package/dist/clis/amazon/new-releases.js +1 -1
- package/dist/clis/amazon/offer.js +2 -2
- package/dist/clis/amazon/product.js +2 -2
- package/dist/clis/amazon/rankings.d.ts +1 -1
- package/dist/clis/amazon/rankings.js +2 -2
- package/dist/clis/amazon/search.js +2 -2
- package/dist/clis/amazon/shared.d.ts +1 -1
- package/dist/clis/amazon/shared.js +1 -1
- package/dist/clis/antigravity/dump.d.ts +1 -1
- package/dist/clis/antigravity/dump.js +1 -1
- package/dist/clis/antigravity/extract-code.d.ts +1 -1
- package/dist/clis/antigravity/extract-code.js +1 -1
- package/dist/clis/antigravity/model.d.ts +1 -1
- package/dist/clis/antigravity/model.js +1 -1
- package/dist/clis/antigravity/new.d.ts +1 -1
- package/dist/clis/antigravity/new.js +1 -1
- package/dist/clis/antigravity/read.d.ts +1 -1
- package/dist/clis/antigravity/read.js +1 -1
- package/dist/clis/antigravity/send.d.ts +1 -1
- package/dist/clis/antigravity/send.js +1 -1
- package/dist/clis/antigravity/serve.js +3 -3
- package/dist/clis/antigravity/status.d.ts +1 -1
- package/dist/clis/antigravity/status.js +1 -1
- package/dist/clis/antigravity/watch.d.ts +1 -1
- package/dist/clis/antigravity/watch.js +1 -1
- package/dist/clis/apple-podcasts/commands.test.js +1 -1
- package/dist/clis/apple-podcasts/episodes.js +2 -2
- package/dist/clis/apple-podcasts/search.js +2 -2
- package/dist/clis/apple-podcasts/top.js +2 -2
- package/dist/clis/apple-podcasts/utils.js +1 -1
- package/dist/clis/arxiv/paper.js +2 -2
- package/dist/clis/arxiv/search.js +2 -2
- package/dist/clis/arxiv/utils.js +1 -1
- package/dist/clis/band/bands.js +2 -2
- package/dist/clis/band/mentions.js +2 -2
- package/dist/clis/band/post.js +4 -4
- package/dist/clis/band/posts.js +2 -2
- package/dist/clis/barchart/flow.js +1 -1
- package/dist/clis/barchart/greeks.js +1 -1
- package/dist/clis/barchart/options.js +1 -1
- package/dist/clis/barchart/quote.js +1 -1
- package/dist/clis/bbc/news.js +1 -1
- package/dist/clis/bilibili/comments.js +1 -1
- package/dist/clis/bilibili/comments.test.js +1 -1
- package/dist/clis/bilibili/download.js +3 -3
- package/dist/clis/bilibili/dynamic.js +1 -1
- package/dist/clis/bilibili/dynamic.test.js +1 -1
- package/dist/clis/bilibili/favorite.js +1 -1
- package/dist/clis/bilibili/feed.js +1 -1
- package/dist/clis/bilibili/following.js +2 -2
- package/dist/clis/bilibili/history.js +1 -1
- package/dist/clis/bilibili/me.js +1 -1
- package/dist/clis/bilibili/ranking.js +1 -1
- package/dist/clis/bilibili/search.js +1 -1
- package/dist/clis/bilibili/subtitle.js +2 -2
- package/dist/clis/bilibili/subtitle.test.js +2 -2
- package/dist/clis/bilibili/user-videos.js +1 -1
- package/dist/clis/bilibili/utils.d.ts +1 -1
- package/dist/clis/bilibili/utils.js +1 -1
- package/dist/clis/bloomberg/businessweek.js +1 -1
- package/dist/clis/bloomberg/economics.js +1 -1
- package/dist/clis/bloomberg/feeds.js +1 -1
- package/dist/clis/bloomberg/industries.js +1 -1
- package/dist/clis/bloomberg/main.js +1 -1
- package/dist/clis/bloomberg/markets.js +1 -1
- package/dist/clis/bloomberg/news.js +2 -2
- package/dist/clis/bloomberg/opinions.js +1 -1
- package/dist/clis/bloomberg/politics.js +1 -1
- package/dist/clis/bloomberg/tech.js +1 -1
- package/dist/clis/bloomberg/utils.js +1 -1
- package/dist/clis/boss/batchgreet.js +1 -1
- package/dist/clis/boss/chatlist.js +1 -1
- package/dist/clis/boss/chatmsg.js +1 -1
- package/dist/clis/boss/detail.js +1 -1
- package/dist/clis/boss/exchange.js +1 -1
- package/dist/clis/boss/greet.js +1 -1
- package/dist/clis/boss/invite.js +1 -1
- package/dist/clis/boss/joblist.js +1 -1
- package/dist/clis/boss/mark.js +2 -2
- package/dist/clis/boss/recommend.js +1 -1
- package/dist/clis/boss/resume.js +1 -1
- package/dist/clis/boss/search.js +1 -1
- package/dist/clis/boss/send.js +2 -2
- package/dist/clis/boss/stats.js +1 -1
- package/dist/clis/boss/utils.d.ts +1 -1
- package/dist/clis/chaoxing/assignments.js +2 -2
- package/dist/clis/chaoxing/exams.js +1 -1
- package/dist/clis/chaoxing/utils.d.ts +1 -1
- package/dist/clis/chatgpt/ask.d.ts +1 -1
- package/dist/clis/chatgpt/ask.js +2 -2
- package/dist/clis/chatgpt/model.d.ts +1 -1
- package/dist/clis/chatgpt/model.js +2 -2
- package/dist/clis/chatgpt/new.d.ts +1 -1
- package/dist/clis/chatgpt/new.js +2 -2
- package/dist/clis/chatgpt/read.d.ts +1 -1
- package/dist/clis/chatgpt/read.js +2 -2
- package/dist/clis/chatgpt/send.d.ts +1 -1
- package/dist/clis/chatgpt/send.js +2 -2
- package/dist/clis/chatgpt/status.d.ts +1 -1
- package/dist/clis/chatgpt/status.js +2 -2
- package/dist/clis/chatwise/ask.d.ts +1 -1
- package/dist/clis/chatwise/ask.js +2 -2
- package/dist/clis/chatwise/export.d.ts +1 -1
- package/dist/clis/chatwise/export.js +1 -1
- package/dist/clis/chatwise/history.d.ts +1 -1
- package/dist/clis/chatwise/history.js +1 -1
- package/dist/clis/chatwise/model.d.ts +1 -1
- package/dist/clis/chatwise/model.js +2 -2
- package/dist/clis/chatwise/read.d.ts +1 -1
- package/dist/clis/chatwise/read.js +1 -1
- package/dist/clis/chatwise/send.d.ts +1 -1
- package/dist/clis/chatwise/send.js +2 -2
- package/dist/clis/codex/ask.d.ts +1 -1
- package/dist/clis/codex/ask.js +2 -2
- package/dist/clis/codex/export.d.ts +1 -1
- package/dist/clis/codex/export.js +1 -1
- package/dist/clis/codex/extract-diff.d.ts +1 -1
- package/dist/clis/codex/extract-diff.js +1 -1
- package/dist/clis/codex/history.d.ts +1 -1
- package/dist/clis/codex/history.js +1 -1
- package/dist/clis/codex/model.d.ts +1 -1
- package/dist/clis/codex/model.js +1 -1
- package/dist/clis/codex/read.d.ts +1 -1
- package/dist/clis/codex/read.js +1 -1
- package/dist/clis/codex/send.d.ts +1 -1
- package/dist/clis/codex/send.js +2 -2
- package/dist/clis/coupang/add-to-cart.js +1 -1
- package/dist/clis/coupang/search.js +1 -1
- package/dist/clis/ctrip/search.js +2 -2
- package/dist/clis/ctrip/search.test.js +1 -1
- package/dist/clis/cursor/ask.d.ts +1 -1
- package/dist/clis/cursor/ask.js +2 -2
- package/dist/clis/cursor/composer.d.ts +1 -1
- package/dist/clis/cursor/composer.js +2 -2
- package/dist/clis/cursor/export.d.ts +1 -1
- package/dist/clis/cursor/export.js +1 -1
- package/dist/clis/cursor/extract-code.d.ts +1 -1
- package/dist/clis/cursor/extract-code.js +1 -1
- package/dist/clis/cursor/history.d.ts +1 -1
- package/dist/clis/cursor/history.js +1 -1
- package/dist/clis/cursor/model.d.ts +1 -1
- package/dist/clis/cursor/model.js +1 -1
- package/dist/clis/cursor/read.d.ts +1 -1
- package/dist/clis/cursor/read.js +2 -2
- package/dist/clis/cursor/send.d.ts +1 -1
- package/dist/clis/cursor/send.js +2 -2
- package/dist/clis/discord-app/channels.d.ts +1 -1
- package/dist/clis/discord-app/channels.js +1 -1
- package/dist/clis/discord-app/members.d.ts +1 -1
- package/dist/clis/discord-app/members.js +1 -1
- package/dist/clis/discord-app/read.d.ts +1 -1
- package/dist/clis/discord-app/read.js +1 -1
- package/dist/clis/discord-app/search.d.ts +1 -1
- package/dist/clis/discord-app/search.js +1 -1
- package/dist/clis/discord-app/send.d.ts +1 -1
- package/dist/clis/discord-app/send.js +1 -1
- package/dist/clis/discord-app/servers.d.ts +1 -1
- package/dist/clis/discord-app/servers.js +1 -1
- package/dist/clis/discord-app/status.d.ts +1 -1
- package/dist/clis/discord-app/status.js +1 -1
- package/dist/clis/douban/book-hot.js +1 -1
- package/dist/clis/douban/download.js +4 -4
- package/dist/clis/douban/download.test.js +3 -3
- package/dist/clis/douban/marks.js +1 -1
- package/dist/clis/douban/movie-hot.js +1 -1
- package/dist/clis/douban/photos.js +1 -1
- package/dist/clis/douban/reviews.js +1 -1
- package/dist/clis/douban/search.js +1 -1
- package/dist/clis/douban/utils.d.ts +1 -1
- package/dist/clis/douban/utils.js +1 -1
- package/dist/clis/doubao/ask.d.ts +1 -1
- package/dist/clis/doubao/ask.js +1 -1
- package/dist/clis/doubao/detail.d.ts +1 -1
- package/dist/clis/doubao/detail.js +1 -1
- package/dist/clis/doubao/detail.test.js +1 -1
- package/dist/clis/doubao/history.d.ts +1 -1
- package/dist/clis/doubao/history.js +1 -1
- package/dist/clis/doubao/history.test.js +1 -1
- package/dist/clis/doubao/meeting-summary.d.ts +1 -1
- package/dist/clis/doubao/meeting-summary.js +1 -1
- package/dist/clis/doubao/meeting-transcript.d.ts +1 -1
- package/dist/clis/doubao/meeting-transcript.js +1 -1
- package/dist/clis/doubao/new.d.ts +1 -1
- package/dist/clis/doubao/new.js +1 -1
- package/dist/clis/doubao/read.d.ts +1 -1
- package/dist/clis/doubao/read.js +1 -1
- package/dist/clis/doubao/send.d.ts +1 -1
- package/dist/clis/doubao/send.js +1 -1
- package/dist/clis/doubao/status.d.ts +1 -1
- package/dist/clis/doubao/status.js +1 -1
- package/dist/clis/doubao/utils.d.ts +1 -1
- package/dist/clis/doubao-app/ask.d.ts +1 -1
- package/dist/clis/doubao-app/ask.js +1 -1
- package/dist/clis/doubao-app/dump.d.ts +1 -1
- package/dist/clis/doubao-app/dump.js +1 -1
- package/dist/clis/doubao-app/new.d.ts +1 -1
- package/dist/clis/doubao-app/new.js +1 -1
- package/dist/clis/doubao-app/read.d.ts +1 -1
- package/dist/clis/doubao-app/read.js +1 -1
- package/dist/clis/doubao-app/screenshot.d.ts +1 -1
- package/dist/clis/doubao-app/screenshot.js +1 -1
- package/dist/clis/doubao-app/send.d.ts +1 -1
- package/dist/clis/doubao-app/send.js +1 -1
- package/dist/clis/doubao-app/status.d.ts +1 -1
- package/dist/clis/doubao-app/status.js +1 -1
- package/dist/clis/douyin/_shared/browser-fetch.d.ts +1 -1
- package/dist/clis/douyin/_shared/browser-fetch.js +1 -1
- package/dist/clis/douyin/_shared/imagex-upload.js +1 -1
- package/dist/clis/douyin/_shared/imagex-upload.test.js +1 -1
- package/dist/clis/douyin/_shared/public-api.d.ts +1 -1
- package/dist/clis/douyin/_shared/sts2.d.ts +1 -1
- package/dist/clis/douyin/_shared/sts2.js +1 -1
- package/dist/clis/douyin/_shared/sts2.test.js +1 -1
- package/dist/clis/douyin/_shared/tos-upload-short-read.test.js +1 -1
- package/dist/clis/douyin/_shared/tos-upload.js +1 -1
- package/dist/clis/douyin/_shared/transcode.d.ts +1 -1
- package/dist/clis/douyin/_shared/transcode.js +1 -1
- package/dist/clis/douyin/_shared/transcode.test.js +1 -1
- package/dist/clis/douyin/activities.js +1 -1
- package/dist/clis/douyin/activities.test.js +1 -1
- package/dist/clis/douyin/collections.js +1 -1
- package/dist/clis/douyin/collections.test.js +1 -1
- package/dist/clis/douyin/delete.js +1 -1
- package/dist/clis/douyin/delete.test.js +1 -1
- package/dist/clis/douyin/draft.js +2 -2
- package/dist/clis/douyin/draft.test.js +2 -2
- package/dist/clis/douyin/drafts.js +1 -1
- package/dist/clis/douyin/drafts.test.js +1 -1
- package/dist/clis/douyin/hashtag.js +2 -2
- package/dist/clis/douyin/hashtag.test.js +1 -1
- package/dist/clis/douyin/location.js +1 -1
- package/dist/clis/douyin/location.test.js +1 -1
- package/dist/clis/douyin/profile.js +2 -2
- package/dist/clis/douyin/profile.test.js +1 -1
- package/dist/clis/douyin/publish.js +2 -2
- package/dist/clis/douyin/publish.test.js +1 -1
- package/dist/clis/douyin/stats.js +1 -1
- package/dist/clis/douyin/stats.test.js +1 -1
- package/dist/clis/douyin/update.js +2 -2
- package/dist/clis/douyin/update.test.js +1 -1
- package/dist/clis/douyin/user-videos.js +1 -1
- package/dist/clis/douyin/user-videos.test.js +1 -1
- package/dist/clis/douyin/videos.js +1 -1
- package/dist/clis/douyin/videos.test.js +1 -1
- package/dist/clis/facebook/search.test.js +1 -1
- package/dist/clis/gemini/ask.d.ts +1 -1
- package/dist/clis/gemini/ask.js +1 -1
- package/dist/clis/gemini/deep-research-result.d.ts +1 -1
- package/dist/clis/gemini/deep-research-result.js +1 -1
- package/dist/clis/gemini/deep-research.d.ts +1 -1
- package/dist/clis/gemini/deep-research.js +1 -1
- package/dist/clis/gemini/image.d.ts +1 -1
- package/dist/clis/gemini/image.js +2 -2
- package/dist/clis/gemini/new.d.ts +1 -1
- package/dist/clis/gemini/new.js +1 -1
- package/dist/clis/gemini/utils.d.ts +1 -1
- package/dist/clis/gemini/utils.js +1 -1
- package/dist/clis/google/news.js +2 -2
- package/dist/clis/google/search.js +2 -2
- package/dist/clis/google/suggest.js +2 -2
- package/dist/clis/google/trends.js +2 -2
- package/dist/clis/grok/ask.d.ts +2 -2
- package/dist/clis/grok/ask.js +1 -1
- package/dist/clis/hf/top.js +2 -2
- package/dist/clis/hupu/detail.js +1 -1
- package/dist/clis/hupu/like.js +2 -2
- package/dist/clis/hupu/mentions.js +2 -2
- package/dist/clis/hupu/reply.js +2 -2
- package/dist/clis/hupu/search.js +1 -1
- package/dist/clis/hupu/unlike.js +2 -2
- package/dist/clis/hupu/utils.d.ts +1 -1
- package/dist/clis/hupu/utils.js +1 -1
- package/dist/clis/imdb/person.js +2 -2
- package/dist/clis/imdb/reviews.js +2 -2
- package/dist/clis/imdb/search.js +2 -2
- package/dist/clis/imdb/title.js +2 -2
- package/dist/clis/imdb/top.js +2 -2
- package/dist/clis/imdb/trending.js +2 -2
- package/dist/clis/imdb/utils.d.ts +1 -1
- package/dist/clis/imdb/utils.js +1 -1
- package/dist/clis/instagram/_shared/private-publish.d.ts +1 -1
- package/dist/clis/instagram/_shared/private-publish.js +1 -1
- package/dist/clis/instagram/_shared/protocol-capture.d.ts +1 -1
- package/dist/clis/instagram/_shared/runtime-info.d.ts +1 -1
- package/dist/clis/instagram/download.js +3 -3
- package/dist/clis/instagram/download.test.js +4 -4
- package/dist/clis/instagram/note.js +2 -2
- package/dist/clis/instagram/note.test.js +2 -2
- package/dist/clis/instagram/post.js +2 -2
- package/dist/clis/instagram/post.test.js +2 -2
- package/dist/clis/instagram/reel.js +3 -3
- package/dist/clis/instagram/reel.test.js +2 -2
- package/dist/clis/instagram/story.js +2 -2
- package/dist/clis/instagram/story.test.js +2 -2
- package/dist/clis/jd/item.js +1 -1
- package/dist/clis/jd/item.test.js +1 -1
- package/dist/clis/jike/comment.js +1 -1
- package/dist/clis/jike/create.js +1 -1
- package/dist/clis/jike/feed.js +1 -1
- package/dist/clis/jike/like.js +1 -1
- package/dist/clis/jike/notifications.js +1 -1
- package/dist/clis/jike/repost.js +1 -1
- package/dist/clis/jike/search.js +1 -1
- package/dist/clis/lesswrong/_helpers.js +1 -1
- package/dist/clis/lesswrong/comments.js +2 -2
- package/dist/clis/lesswrong/curated.js +1 -1
- package/dist/clis/lesswrong/frontpage.js +1 -1
- package/dist/clis/lesswrong/new.js +1 -1
- package/dist/clis/lesswrong/read.js +2 -2
- package/dist/clis/lesswrong/sequences.js +1 -1
- package/dist/clis/lesswrong/shortform.js +1 -1
- package/dist/clis/lesswrong/tag.js +2 -2
- package/dist/clis/lesswrong/tags.js +1 -1
- package/dist/clis/lesswrong/top-month.js +1 -1
- package/dist/clis/lesswrong/top-week.js +1 -1
- package/dist/clis/lesswrong/top-year.js +1 -1
- package/dist/clis/lesswrong/top.js +1 -1
- package/dist/clis/lesswrong/user-posts.js +1 -1
- package/dist/clis/lesswrong/user.js +2 -2
- package/dist/clis/linkedin/search.js +2 -2
- package/dist/clis/linkedin/timeline.js +2 -2
- package/dist/clis/linkedin/timeline.test.js +1 -1
- package/dist/clis/linux-do/category.js +1 -1
- package/dist/clis/linux-do/feed.d.ts +2 -2
- package/dist/clis/linux-do/feed.js +2 -2
- package/dist/clis/linux-do/hot.js +1 -1
- package/dist/clis/linux-do/latest.js +1 -1
- package/dist/clis/medium/feed.js +1 -1
- package/dist/clis/medium/search.js +1 -1
- package/dist/clis/medium/user.js +1 -1
- package/dist/clis/medium/utils.d.ts +1 -1
- package/dist/clis/medium/utils.js +1 -1
- package/dist/clis/notebooklm/compat.test.js +1 -1
- package/dist/clis/notebooklm/current.js +2 -2
- package/dist/clis/notebooklm/get.js +2 -2
- package/dist/clis/notebooklm/history.js +2 -2
- package/dist/clis/notebooklm/history.test.js +1 -1
- package/dist/clis/notebooklm/list.js +2 -2
- package/dist/clis/notebooklm/note-list.js +2 -2
- package/dist/clis/notebooklm/note-list.test.js +1 -1
- package/dist/clis/notebooklm/notes-get.js +2 -2
- package/dist/clis/notebooklm/notes-get.test.js +1 -1
- package/dist/clis/notebooklm/open.js +2 -2
- package/dist/clis/notebooklm/open.test.js +1 -1
- package/dist/clis/notebooklm/rpc.d.ts +1 -1
- package/dist/clis/notebooklm/rpc.js +1 -1
- package/dist/clis/notebooklm/rpc.test.js +1 -1
- package/dist/clis/notebooklm/source-fulltext.js +2 -2
- package/dist/clis/notebooklm/source-fulltext.test.js +1 -1
- package/dist/clis/notebooklm/source-get.js +2 -2
- package/dist/clis/notebooklm/source-get.test.js +1 -1
- package/dist/clis/notebooklm/source-guide.js +2 -2
- package/dist/clis/notebooklm/source-guide.test.js +1 -1
- package/dist/clis/notebooklm/source-list.js +2 -2
- package/dist/clis/notebooklm/status.js +1 -1
- package/dist/clis/notebooklm/summary.js +2 -2
- package/dist/clis/notebooklm/summary.test.js +1 -1
- package/dist/clis/notebooklm/utils.d.ts +1 -1
- package/dist/clis/notebooklm/utils.js +1 -1
- package/dist/clis/notion/export.d.ts +1 -1
- package/dist/clis/notion/export.js +1 -1
- package/dist/clis/notion/favorites.d.ts +1 -1
- package/dist/clis/notion/favorites.js +1 -1
- package/dist/clis/notion/new.d.ts +1 -1
- package/dist/clis/notion/new.js +1 -1
- package/dist/clis/notion/read.d.ts +1 -1
- package/dist/clis/notion/read.js +1 -1
- package/dist/clis/notion/search.d.ts +1 -1
- package/dist/clis/notion/search.js +1 -1
- package/dist/clis/notion/sidebar.d.ts +1 -1
- package/dist/clis/notion/sidebar.js +1 -1
- package/dist/clis/notion/status.d.ts +1 -1
- package/dist/clis/notion/status.js +1 -1
- package/dist/clis/notion/write.d.ts +1 -1
- package/dist/clis/notion/write.js +1 -1
- package/dist/clis/ones/common.d.ts +1 -1
- package/dist/clis/ones/common.js +1 -1
- package/dist/clis/ones/enrich-tasks.d.ts +1 -1
- package/dist/clis/ones/login.js +2 -2
- package/dist/clis/ones/logout.js +1 -1
- package/dist/clis/ones/me.js +2 -2
- package/dist/clis/ones/my-tasks.js +2 -2
- package/dist/clis/ones/resolve-labels.d.ts +1 -1
- package/dist/clis/ones/task-helpers.js +1 -1
- package/dist/clis/ones/task.js +2 -2
- package/dist/clis/ones/tasks.js +2 -2
- package/dist/clis/ones/token-info.js +2 -2
- package/dist/clis/ones/worklog.js +2 -2
- package/dist/clis/paperreview/commands.test.js +1 -1
- package/dist/clis/paperreview/feedback.js +2 -2
- package/dist/clis/paperreview/review.js +2 -2
- package/dist/clis/paperreview/submit.js +2 -2
- package/dist/clis/paperreview/utils.js +1 -1
- package/dist/clis/paperreview/utils.test.js +1 -1
- package/dist/clis/pixiv/download.js +4 -4
- package/dist/clis/pixiv/download.test.js +3 -3
- package/dist/clis/pixiv/illusts.js +2 -2
- package/dist/clis/pixiv/illusts.test.js +2 -2
- package/dist/clis/pixiv/search.js +1 -1
- package/dist/clis/pixiv/search.test.js +2 -2
- package/dist/clis/pixiv/test-utils.d.ts +1 -1
- package/dist/clis/pixiv/utils.d.ts +1 -1
- package/dist/clis/pixiv/utils.js +1 -1
- package/dist/clis/producthunt/browse.js +2 -2
- package/dist/clis/producthunt/hot.js +2 -2
- package/dist/clis/producthunt/posts.js +1 -1
- package/dist/clis/producthunt/today.js +1 -1
- package/dist/clis/reddit/comment.js +2 -2
- package/dist/clis/reddit/read.js +2 -2
- package/dist/clis/reddit/read.test.js +1 -1
- package/dist/clis/reddit/save.js +2 -2
- package/dist/clis/reddit/saved.js +2 -2
- package/dist/clis/reddit/subscribe.js +2 -2
- package/dist/clis/reddit/upvote.js +2 -2
- package/dist/clis/reddit/upvoted.js +2 -2
- package/dist/clis/reuters/search.js +1 -1
- package/dist/clis/sinablog/article.js +1 -1
- package/dist/clis/sinablog/hot.js +1 -1
- package/dist/clis/sinablog/search.js +1 -1
- package/dist/clis/sinablog/user.js +1 -1
- package/dist/clis/sinablog/utils.d.ts +1 -1
- package/dist/clis/sinafinance/news.js +2 -2
- package/dist/clis/sinafinance/rolling-news.js +1 -1
- package/dist/clis/sinafinance/stock-rank.js +1 -1
- package/dist/clis/sinafinance/stock.js +2 -2
- package/dist/clis/smzdm/search.js +1 -1
- package/dist/clis/spotify/spotify.js +2 -2
- package/dist/clis/spotify/utils.js +1 -1
- package/dist/clis/substack/feed.js +1 -1
- package/dist/clis/substack/publication.js +1 -1
- package/dist/clis/substack/search.js +2 -2
- package/dist/clis/substack/utils.d.ts +1 -1
- package/dist/clis/substack/utils.js +1 -1
- package/dist/clis/tieba/commands.test.js +1 -1
- package/dist/clis/tieba/hot.js +2 -2
- package/dist/clis/tieba/posts.js +2 -2
- package/dist/clis/tieba/read.js +2 -2
- package/dist/clis/tieba/search.js +2 -2
- package/dist/clis/twitter/accept.js +2 -2
- package/dist/clis/twitter/article.js +2 -2
- package/dist/clis/twitter/block.js +2 -2
- package/dist/clis/twitter/bookmark.js +2 -2
- package/dist/clis/twitter/bookmarks.js +2 -2
- package/dist/clis/twitter/delete.js +2 -2
- package/dist/clis/twitter/delete.test.js +2 -2
- package/dist/clis/twitter/download.js +3 -3
- package/dist/clis/twitter/follow.js +2 -2
- package/dist/clis/twitter/followers.js +2 -2
- package/dist/clis/twitter/following.js +2 -2
- package/dist/clis/twitter/hide-reply.js +2 -2
- package/dist/clis/twitter/like.js +2 -2
- package/dist/clis/twitter/likes.js +2 -2
- package/dist/clis/twitter/notifications.js +2 -2
- package/dist/clis/twitter/post.js +2 -2
- package/dist/clis/twitter/post.test.js +1 -1
- package/dist/clis/twitter/profile.js +2 -2
- package/dist/clis/twitter/reply-dm.js +2 -2
- package/dist/clis/twitter/reply.js +2 -2
- package/dist/clis/twitter/reply.test.js +1 -1
- package/dist/clis/twitter/search.js +2 -2
- package/dist/clis/twitter/search.test.js +1 -1
- package/dist/clis/twitter/shared.d.ts +1 -1
- package/dist/clis/twitter/thread.js +2 -2
- package/dist/clis/twitter/timeline.js +2 -2
- package/dist/clis/twitter/trending.js +2 -2
- package/dist/clis/twitter/unblock.js +2 -2
- package/dist/clis/twitter/unbookmark.js +2 -2
- package/dist/clis/twitter/unfollow.js +2 -2
- package/dist/clis/v2ex/daily.js +2 -2
- package/dist/clis/v2ex/me.js +2 -2
- package/dist/clis/v2ex/notifications.js +2 -2
- package/dist/clis/web/read.js +2 -2
- package/dist/clis/weibo/comments.js +1 -1
- package/dist/clis/weibo/feed.js +1 -1
- package/dist/clis/weibo/hot.js +1 -1
- package/dist/clis/weibo/me.js +2 -2
- package/dist/clis/weibo/post.js +2 -2
- package/dist/clis/weibo/search.js +2 -2
- package/dist/clis/weibo/user.js +2 -2
- package/dist/clis/weibo/utils.d.ts +1 -1
- package/dist/clis/weibo/utils.js +1 -1
- package/dist/clis/weixin/download.js +2 -2
- package/dist/clis/weread/book.js +2 -2
- package/dist/clis/weread/commands.test.js +2 -2
- package/dist/clis/weread/highlights.js +1 -1
- package/dist/clis/weread/notebooks.js +1 -1
- package/dist/clis/weread/notes.js +1 -1
- package/dist/clis/weread/private-api-regression.test.js +2 -2
- package/dist/clis/weread/ranking.js +1 -1
- package/dist/clis/weread/search-regression.test.js +1 -1
- package/dist/clis/weread/search.js +1 -1
- package/dist/clis/weread/shelf.js +3 -3
- package/dist/clis/weread/utils.d.ts +1 -1
- package/dist/clis/weread/utils.js +1 -1
- package/dist/clis/wikipedia/random.js +2 -2
- package/dist/clis/wikipedia/search.js +2 -2
- package/dist/clis/wikipedia/summary.js +2 -2
- package/dist/clis/wikipedia/trending.js +2 -2
- package/dist/clis/wikipedia/utils.js +1 -1
- package/dist/clis/xianyu/chat.js +2 -2
- package/dist/clis/xianyu/item.js +2 -2
- package/dist/clis/xianyu/item.test.js +2 -2
- package/dist/clis/xianyu/search.js +2 -2
- package/dist/clis/xianyu/utils.js +1 -1
- package/dist/clis/xiaohongshu/comments.js +2 -2
- package/dist/clis/xiaohongshu/comments.test.js +1 -1
- package/dist/clis/xiaohongshu/creator-note-detail.d.ts +1 -1
- package/dist/clis/xiaohongshu/creator-note-detail.js +1 -1
- package/dist/clis/xiaohongshu/creator-note-detail.test.js +1 -1
- package/dist/clis/xiaohongshu/creator-notes-summary.js +1 -1
- package/dist/clis/xiaohongshu/creator-notes.d.ts +1 -1
- package/dist/clis/xiaohongshu/creator-notes.js +1 -1
- package/dist/clis/xiaohongshu/creator-notes.test.js +1 -1
- package/dist/clis/xiaohongshu/creator-profile.js +1 -1
- package/dist/clis/xiaohongshu/creator-stats.js +1 -1
- package/dist/clis/xiaohongshu/download.js +3 -3
- package/dist/clis/xiaohongshu/download.test.js +3 -3
- package/dist/clis/xiaohongshu/note.js +2 -2
- package/dist/clis/xiaohongshu/note.test.js +1 -1
- package/dist/clis/xiaohongshu/publish.js +1 -1
- package/dist/clis/xiaohongshu/publish.test.js +1 -1
- package/dist/clis/xiaohongshu/search.js +2 -2
- package/dist/clis/xiaohongshu/search.test.js +1 -1
- package/dist/clis/xiaohongshu/user.js +1 -1
- package/dist/clis/xiaoyuzhou/episode.js +2 -2
- package/dist/clis/xiaoyuzhou/podcast-episodes.js +2 -2
- package/dist/clis/xiaoyuzhou/podcast.js +2 -2
- package/dist/clis/xiaoyuzhou/utils.js +1 -1
- package/dist/clis/xueqiu/comments.d.ts +1 -1
- package/dist/clis/xueqiu/comments.js +4 -4
- package/dist/clis/xueqiu/comments.test.js +3 -3
- package/dist/clis/xueqiu/danjuan-utils.d.ts +1 -1
- package/dist/clis/xueqiu/fund-holdings.js +1 -1
- package/dist/clis/xueqiu/fund-snapshot.js +1 -1
- package/dist/clis/yahoo-finance/quote.js +1 -1
- package/dist/clis/yollomi/background.js +2 -2
- package/dist/clis/yollomi/edit.js +2 -2
- package/dist/clis/yollomi/face-swap.js +2 -2
- package/dist/clis/yollomi/generate.js +2 -2
- package/dist/clis/yollomi/models.js +1 -1
- package/dist/clis/yollomi/object-remover.js +2 -2
- package/dist/clis/yollomi/remove-bg.js +2 -2
- package/dist/clis/yollomi/restore.js +2 -2
- package/dist/clis/yollomi/try-on.js +2 -2
- package/dist/clis/yollomi/upload.js +2 -2
- package/dist/clis/yollomi/upscale.js +2 -2
- package/dist/clis/yollomi/utils.d.ts +1 -1
- package/dist/clis/yollomi/utils.js +1 -1
- package/dist/clis/yollomi/video.js +2 -2
- package/dist/clis/youtube/channel.js +2 -2
- package/dist/clis/youtube/comments.js +2 -2
- package/dist/clis/youtube/search.js +1 -1
- package/dist/clis/youtube/transcript.js +2 -2
- package/dist/clis/youtube/utils.d.ts +1 -1
- package/dist/clis/youtube/video.js +2 -2
- package/dist/clis/yuanbao/ask.d.ts +1 -1
- package/dist/clis/yuanbao/ask.js +2 -2
- package/dist/clis/yuanbao/ask.test.js +1 -1
- package/dist/clis/yuanbao/new.d.ts +1 -1
- package/dist/clis/yuanbao/new.js +1 -1
- package/dist/clis/yuanbao/new.test.js +1 -1
- package/dist/clis/yuanbao/shared.d.ts +2 -2
- package/dist/clis/yuanbao/shared.js +1 -1
- package/dist/clis/zhihu/download.js +2 -2
- package/dist/clis/zhihu/question.js +2 -2
- package/dist/clis/zhihu/question.test.js +2 -2
- package/dist/clis/zsxq/dynamics.js +1 -1
- package/dist/clis/zsxq/groups.js +1 -1
- package/dist/clis/zsxq/search.js +1 -1
- package/dist/clis/zsxq/search.test.js +1 -1
- package/dist/clis/zsxq/topic.js +2 -2
- package/dist/clis/zsxq/topic.test.js +1 -1
- package/dist/clis/zsxq/topics.js +1 -1
- package/dist/clis/zsxq/topics.test.js +1 -1
- package/dist/clis/zsxq/utils.d.ts +1 -1
- package/dist/clis/zsxq/utils.js +1 -1
- package/dist/src/discovery.d.ts +5 -5
- package/dist/src/discovery.js +22 -75
- package/dist/src/engine.test.js +3 -3
- package/dist/src/package-exports.test.d.ts +1 -0
- package/dist/src/package-exports.test.js +75 -0
- package/dist/src/registry-api.d.ts +1 -1
- package/package.json +15 -11
- package/dist/browser/cdp.d.ts +0 -1
- package/dist/browser/cdp.js +0 -2
- package/dist/browser/page.d.ts +0 -1
- package/dist/browser/page.js +0 -2
- package/dist/browser/utils.d.ts +0 -1
- package/dist/browser/utils.js +0 -2
- package/dist/download/article-download.d.ts +0 -1
- package/dist/download/article-download.js +0 -2
- package/dist/download/index.d.ts +0 -1
- package/dist/download/index.js +0 -2
- package/dist/download/media-download.d.ts +0 -1
- package/dist/download/media-download.js +0 -2
- package/dist/download/progress.d.ts +0 -1
- package/dist/download/progress.js +0 -2
- package/dist/pipeline/index.d.ts +0 -1
- package/dist/pipeline/index.js +0 -2
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as path from 'node:path';
|
|
5
5
|
import chalk from 'chalk';
|
|
6
|
-
import { cli, Strategy } from '
|
|
7
|
-
import { CliError } from '
|
|
6
|
+
import { cli, Strategy } from '@jackwener/opencli/registry';
|
|
7
|
+
import { CliError } from '@jackwener/opencli/errors';
|
|
8
8
|
import { YOLLOMI_DOMAIN, yollomiPost, downloadOutput, fmtBytes } from './utils.js';
|
|
9
9
|
cli({
|
|
10
10
|
site: 'yollomi',
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import * as path from 'node:path';
|
|
6
6
|
import chalk from 'chalk';
|
|
7
|
-
import { cli, Strategy } from '
|
|
8
|
-
import { CliError } from '
|
|
7
|
+
import { cli, Strategy } from '@jackwener/opencli/registry';
|
|
8
|
+
import { CliError } from '@jackwener/opencli/errors';
|
|
9
9
|
import { YOLLOMI_DOMAIN, yollomiPost, downloadOutput, fmtBytes } from './utils.js';
|
|
10
10
|
cli({
|
|
11
11
|
site: 'yollomi',
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import * as path from 'node:path';
|
|
6
6
|
import chalk from 'chalk';
|
|
7
|
-
import { cli, Strategy } from '
|
|
8
|
-
import { CliError } from '
|
|
7
|
+
import { cli, Strategy } from '@jackwener/opencli/registry';
|
|
8
|
+
import { CliError } from '@jackwener/opencli/errors';
|
|
9
9
|
import { YOLLOMI_DOMAIN, yollomiPost, downloadOutput, fmtBytes } from './utils.js';
|
|
10
10
|
cli({
|
|
11
11
|
site: 'yollomi',
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import * as path from 'node:path';
|
|
10
10
|
import chalk from 'chalk';
|
|
11
|
-
import { cli, Strategy } from '
|
|
12
|
-
import { CliError } from '
|
|
11
|
+
import { cli, Strategy } from '@jackwener/opencli/registry';
|
|
12
|
+
import { CliError } from '@jackwener/opencli/errors';
|
|
13
13
|
import { YOLLOMI_DOMAIN, yollomiPost, downloadOutput, fmtBytes, MODEL_ROUTES } from './utils.js';
|
|
14
14
|
function getDimensions(ratio) {
|
|
15
15
|
const map = {
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as path from 'node:path';
|
|
5
5
|
import chalk from 'chalk';
|
|
6
|
-
import { cli, Strategy } from '
|
|
7
|
-
import { CliError } from '
|
|
6
|
+
import { cli, Strategy } from '@jackwener/opencli/registry';
|
|
7
|
+
import { CliError } from '@jackwener/opencli/errors';
|
|
8
8
|
import { YOLLOMI_DOMAIN, yollomiPost, downloadOutput, fmtBytes } from './utils.js';
|
|
9
9
|
cli({
|
|
10
10
|
site: 'yollomi',
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as path from 'node:path';
|
|
5
5
|
import chalk from 'chalk';
|
|
6
|
-
import { cli, Strategy } from '
|
|
7
|
-
import { CliError } from '
|
|
6
|
+
import { cli, Strategy } from '@jackwener/opencli/registry';
|
|
7
|
+
import { CliError } from '@jackwener/opencli/errors';
|
|
8
8
|
import { YOLLOMI_DOMAIN, yollomiPost, downloadOutput, fmtBytes } from './utils.js';
|
|
9
9
|
cli({
|
|
10
10
|
site: 'yollomi',
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as path from 'node:path';
|
|
5
5
|
import chalk from 'chalk';
|
|
6
|
-
import { cli, Strategy } from '
|
|
7
|
-
import { CliError } from '
|
|
6
|
+
import { cli, Strategy } from '@jackwener/opencli/registry';
|
|
7
|
+
import { CliError } from '@jackwener/opencli/errors';
|
|
8
8
|
import { YOLLOMI_DOMAIN, yollomiPost, downloadOutput, fmtBytes } from './utils.js';
|
|
9
9
|
cli({
|
|
10
10
|
site: 'yollomi',
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as path from 'node:path';
|
|
5
5
|
import chalk from 'chalk';
|
|
6
|
-
import { cli, Strategy } from '
|
|
7
|
-
import { CliError } from '
|
|
6
|
+
import { cli, Strategy } from '@jackwener/opencli/registry';
|
|
7
|
+
import { CliError } from '@jackwener/opencli/errors';
|
|
8
8
|
import { YOLLOMI_DOMAIN, yollomiPost, downloadOutput, fmtBytes } from './utils.js';
|
|
9
9
|
cli({
|
|
10
10
|
site: 'yollomi',
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
import * as fs from 'node:fs';
|
|
8
8
|
import * as path from 'node:path';
|
|
9
9
|
import chalk from 'chalk';
|
|
10
|
-
import { cli, Strategy } from '
|
|
11
|
-
import { CliError } from '
|
|
10
|
+
import { cli, Strategy } from '@jackwener/opencli/registry';
|
|
11
|
+
import { CliError } from '@jackwener/opencli/errors';
|
|
12
12
|
import { YOLLOMI_DOMAIN, ensureOnYollomi, fmtBytes } from './utils.js';
|
|
13
13
|
const MIME_MAP = {
|
|
14
14
|
'.jpg': 'image/jpeg', '.jpeg': 'image/jpeg',
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as path from 'node:path';
|
|
5
5
|
import chalk from 'chalk';
|
|
6
|
-
import { cli, Strategy } from '
|
|
7
|
-
import { CliError } from '
|
|
6
|
+
import { cli, Strategy } from '@jackwener/opencli/registry';
|
|
7
|
+
import { CliError } from '@jackwener/opencli/errors';
|
|
8
8
|
import { YOLLOMI_DOMAIN, yollomiPost, downloadOutput, fmtBytes } from './utils.js';
|
|
9
9
|
cli({
|
|
10
10
|
site: 'yollomi',
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Auth: browser session cookies from NextAuth — just log in to yollomi.com in Chrome.
|
|
9
9
|
*/
|
|
10
|
-
import type { IPage } from '
|
|
10
|
+
import type { IPage } from '@jackwener/opencli/types';
|
|
11
11
|
export declare const YOLLOMI_DOMAIN = "yollomi.com";
|
|
12
12
|
/**
|
|
13
13
|
* Ensure the browser tab is on yollomi.com.
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import * as fs from 'node:fs';
|
|
11
11
|
import * as path from 'node:path';
|
|
12
|
-
import { CliError } from '
|
|
12
|
+
import { CliError } from '@jackwener/opencli/errors';
|
|
13
13
|
export const YOLLOMI_DOMAIN = 'yollomi.com';
|
|
14
14
|
/**
|
|
15
15
|
* Ensure the browser tab is on yollomi.com.
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import * as path from 'node:path';
|
|
6
6
|
import chalk from 'chalk';
|
|
7
|
-
import { cli, Strategy } from '
|
|
8
|
-
import { CliError } from '
|
|
7
|
+
import { cli, Strategy } from '@jackwener/opencli/registry';
|
|
8
|
+
import { CliError } from '@jackwener/opencli/errors';
|
|
9
9
|
import { YOLLOMI_DOMAIN, yollomiPost, downloadOutput, fmtBytes } from './utils.js';
|
|
10
10
|
cli({
|
|
11
11
|
site: 'yollomi',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* YouTube channel — get channel info and recent videos via InnerTube API.
|
|
3
3
|
*/
|
|
4
|
-
import { cli, Strategy } from '
|
|
5
|
-
import { CommandExecutionError } from '
|
|
4
|
+
import { cli, Strategy } from '@jackwener/opencli/registry';
|
|
5
|
+
import { CommandExecutionError } from '@jackwener/opencli/errors';
|
|
6
6
|
cli({
|
|
7
7
|
site: 'youtube',
|
|
8
8
|
name: 'channel',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* YouTube comments — get video comments via InnerTube API.
|
|
3
3
|
*/
|
|
4
|
-
import { cli, Strategy } from '
|
|
5
|
-
import { CommandExecutionError } from '
|
|
4
|
+
import { cli, Strategy } from '@jackwener/opencli/registry';
|
|
5
|
+
import { CommandExecutionError } from '@jackwener/opencli/errors';
|
|
6
6
|
import { parseVideoId } from './utils.js';
|
|
7
7
|
cli({
|
|
8
8
|
site: 'youtube',
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
* --mode grouped (default): sentences merged, speaker detection, chapters
|
|
10
10
|
* --mode raw: every caption segment as-is with precise timestamps
|
|
11
11
|
*/
|
|
12
|
-
import { cli, Strategy } from '
|
|
12
|
+
import { cli, Strategy } from '@jackwener/opencli/registry';
|
|
13
13
|
import { parseVideoId, prepareYoutubeApiPage } from './utils.js';
|
|
14
14
|
import { groupTranscriptSegments, formatGroupedTranscript, } from './transcript-group.js';
|
|
15
|
-
import { CommandExecutionError, EmptyResultError } from '
|
|
15
|
+
import { CommandExecutionError, EmptyResultError } from '@jackwener/opencli/errors';
|
|
16
16
|
cli({
|
|
17
17
|
site: 'youtube',
|
|
18
18
|
name: 'transcript',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared YouTube utilities — URL parsing, video ID extraction, etc.
|
|
3
3
|
*/
|
|
4
|
-
import type { IPage } from '
|
|
4
|
+
import type { IPage } from '@jackwener/opencli/types';
|
|
5
5
|
/**
|
|
6
6
|
* Extract a YouTube video ID from a URL or bare video ID string.
|
|
7
7
|
* Supports: watch?v=, youtu.be/, /shorts/, /embed/, /live/, /v/
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* YouTube video metadata — fetch watch HTML and parse bootstrap data without opening the watch UI.
|
|
3
3
|
*/
|
|
4
|
-
import { cli, Strategy } from '
|
|
4
|
+
import { cli, Strategy } from '@jackwener/opencli/registry';
|
|
5
5
|
import { extractJsonAssignmentFromHtml, parseVideoId, prepareYoutubeApiPage } from './utils.js';
|
|
6
|
-
import { CommandExecutionError } from '
|
|
6
|
+
import { CommandExecutionError } from '@jackwener/opencli/errors';
|
|
7
7
|
cli({
|
|
8
8
|
site: 'youtube',
|
|
9
9
|
name: 'video',
|
|
@@ -8,7 +8,7 @@ export declare function updateStableState(previousText: string, stableCount: num
|
|
|
8
8
|
previousText: string;
|
|
9
9
|
stableCount: number;
|
|
10
10
|
};
|
|
11
|
-
export declare const askCommand: import("
|
|
11
|
+
export declare const askCommand: import("@jackwener/opencli/registry").CliCommand;
|
|
12
12
|
export declare const __test__: {
|
|
13
13
|
collectYuanbaoTranscriptAdditions: typeof collectYuanbaoTranscriptAdditions;
|
|
14
14
|
convertYuanbaoHtmlToMarkdown: typeof convertYuanbaoHtmlToMarkdown;
|
package/dist/clis/yuanbao/ask.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { cli, Strategy } from '
|
|
1
|
+
import { cli, Strategy } from '@jackwener/opencli/registry';
|
|
2
2
|
import TurndownService from 'turndown';
|
|
3
|
-
import { CommandExecutionError, TimeoutError } from '
|
|
3
|
+
import { CommandExecutionError, TimeoutError } from '@jackwener/opencli/errors';
|
|
4
4
|
import { YUANBAO_DOMAIN, IS_VISIBLE_JS, authRequired, isOnYuanbao, ensureYuanbaoPage, hasLoginGate } from './shared.js';
|
|
5
5
|
const YUANBAO_RESPONSE_POLL_INTERVAL_SECONDS = 2;
|
|
6
6
|
const YUANBAO_MIN_WAIT_MS = 8_000;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expect, it, vi } from 'vitest';
|
|
2
|
-
import { AuthRequiredError, CommandExecutionError, TimeoutError } from '
|
|
2
|
+
import { AuthRequiredError, CommandExecutionError, TimeoutError } from '@jackwener/opencli/errors';
|
|
3
3
|
import { __test__ } from './ask.js';
|
|
4
4
|
import { askCommand } from './ask.js';
|
|
5
5
|
describe('yuanbao ask helpers', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const newCommand: import("
|
|
1
|
+
export declare const newCommand: import("@jackwener/opencli/registry").CliCommand;
|
package/dist/clis/yuanbao/new.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cli, Strategy } from '
|
|
1
|
+
import { cli, Strategy } from '@jackwener/opencli/registry';
|
|
2
2
|
import { YUANBAO_DOMAIN, YUANBAO_URL, IS_VISIBLE_JS, authRequired, ensureYuanbaoPage, hasLoginGate } from './shared.js';
|
|
3
3
|
async function getCurrentUrl(page) {
|
|
4
4
|
const result = await page.evaluate('window.location.href').catch(() => '');
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expect, it, vi } from 'vitest';
|
|
2
|
-
import { AuthRequiredError } from '
|
|
2
|
+
import { AuthRequiredError } from '@jackwener/opencli/errors';
|
|
3
3
|
import { newCommand } from './new.js';
|
|
4
4
|
function createNewPageMock(overrides = {}) {
|
|
5
5
|
const currentUrl = overrides.currentUrl ?? 'https://yuanbao.tencent.com/';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { IPage } from '
|
|
2
|
-
import { AuthRequiredError } from '
|
|
1
|
+
import type { IPage } from '@jackwener/opencli/types';
|
|
2
|
+
import { AuthRequiredError } from '@jackwener/opencli/errors';
|
|
3
3
|
export declare const YUANBAO_DOMAIN = "yuanbao.tencent.com";
|
|
4
4
|
export declare const YUANBAO_URL = "https://yuanbao.tencent.com/";
|
|
5
5
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AuthRequiredError } from '
|
|
1
|
+
import { AuthRequiredError } from '@jackwener/opencli/errors';
|
|
2
2
|
export const YUANBAO_DOMAIN = 'yuanbao.tencent.com';
|
|
3
3
|
export const YUANBAO_URL = 'https://yuanbao.tencent.com/';
|
|
4
4
|
const SESSION_HINT = 'Likely login/auth/challenge/session issue in the existing yuanbao.tencent.com browser session.';
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* Usage:
|
|
5
5
|
* opencli zhihu download --url "https://zhuanlan.zhihu.com/p/xxx" --output ./zhihu
|
|
6
6
|
*/
|
|
7
|
-
import { cli, Strategy } from '
|
|
8
|
-
import { downloadArticle } from '
|
|
7
|
+
import { cli, Strategy } from '@jackwener/opencli/registry';
|
|
8
|
+
import { downloadArticle } from '@jackwener/opencli/download/article-download';
|
|
9
9
|
cli({
|
|
10
10
|
site: 'zhihu',
|
|
11
11
|
name: 'download',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { cli, Strategy } from '
|
|
2
|
-
import { AuthRequiredError, CliError } from '
|
|
1
|
+
import { cli, Strategy } from '@jackwener/opencli/registry';
|
|
2
|
+
import { AuthRequiredError, CliError } from '@jackwener/opencli/errors';
|
|
3
3
|
function stripHtml(html) {
|
|
4
4
|
return html
|
|
5
5
|
.replace(/<[^>]+>/g, '')
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { describe, expect, it, vi } from 'vitest';
|
|
2
|
-
import { getRegistry } from '
|
|
3
|
-
import { AuthRequiredError, CliError } from '
|
|
2
|
+
import { getRegistry } from '@jackwener/opencli/registry';
|
|
3
|
+
import { AuthRequiredError, CliError } from '@jackwener/opencli/errors';
|
|
4
4
|
import './question.js';
|
|
5
5
|
describe('zhihu question', () => {
|
|
6
6
|
it('returns answers from the Zhihu API', async () => {
|
package/dist/clis/zsxq/groups.js
CHANGED
package/dist/clis/zsxq/search.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cli, Strategy } from '
|
|
1
|
+
import { cli, Strategy } from '@jackwener/opencli/registry';
|
|
2
2
|
import { getActiveGroupId, ensureZsxqAuth, ensureZsxqPage, fetchFirstJson, getGroupsFromResponse, getTopicsFromResponse, toTopicRow, } from './utils.js';
|
|
3
3
|
cli({
|
|
4
4
|
site: 'zsxq',
|
package/dist/clis/zsxq/topic.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { cli, Strategy } from '
|
|
2
|
-
import { CliError } from '
|
|
1
|
+
import { cli, Strategy } from '@jackwener/opencli/registry';
|
|
2
|
+
import { CliError } from '@jackwener/opencli/errors';
|
|
3
3
|
import { browserJsonRequest, ensureZsxqAuth, ensureZsxqPage, fetchFirstJson, getCommentsFromResponse, getTopicFromResponse, getTopicUrl, summarizeComments, toTopicRow, } from './utils.js';
|
|
4
4
|
cli({
|
|
5
5
|
site: 'zsxq',
|
package/dist/clis/zsxq/topics.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cli, Strategy } from '
|
|
1
|
+
import { cli, Strategy } from '@jackwener/opencli/registry';
|
|
2
2
|
import { getActiveGroupId, ensureZsxqAuth, ensureZsxqPage, fetchFirstJson, getTopicsFromResponse, toTopicRow, } from './utils.js';
|
|
3
3
|
cli({
|
|
4
4
|
site: 'zsxq',
|
package/dist/clis/zsxq/utils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ArgumentError, AuthRequiredError, CliError } from '
|
|
1
|
+
import { ArgumentError, AuthRequiredError, CliError } from '@jackwener/opencli/errors';
|
|
2
2
|
const SITE_DOMAIN = 'wx.zsxq.com';
|
|
3
3
|
const SITE_URL = 'https://wx.zsxq.com';
|
|
4
4
|
function asRecord(value) {
|
package/dist/src/discovery.d.ts
CHANGED
|
@@ -14,12 +14,12 @@ export declare const USER_CLIS_DIR: string;
|
|
|
14
14
|
/** Plugins directory: ~/.opencli/plugins/ */
|
|
15
15
|
export declare const PLUGINS_DIR: string;
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
17
|
+
* Ensure ~/.opencli/node_modules/@jackwener/opencli symlink exists so that
|
|
18
|
+
* user CLIs in ~/.opencli/clis/ can `import { cli } from '@jackwener/opencli/registry'`.
|
|
19
19
|
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
20
|
+
* This is the sole resolution mechanism — adapters use package exports
|
|
21
|
+
* (e.g. `@jackwener/opencli/registry`, `@jackwener/opencli/errors`) and
|
|
22
|
+
* Node.js resolves them through this symlink.
|
|
23
23
|
*/
|
|
24
24
|
export declare function ensureUserCliCompatShims(baseDir?: string): Promise<void>;
|
|
25
25
|
/**
|
package/dist/src/discovery.js
CHANGED
|
@@ -43,88 +43,32 @@ function findPackageRoot() {
|
|
|
43
43
|
}
|
|
44
44
|
return dir;
|
|
45
45
|
}
|
|
46
|
-
function resolveHostRuntimeModulePath(moduleName) {
|
|
47
|
-
const runtimeDir = path.dirname(fileURLToPath(import.meta.url));
|
|
48
|
-
for (const ext of ['.js', '.ts']) {
|
|
49
|
-
const candidate = path.join(runtimeDir, `${moduleName}${ext}`);
|
|
50
|
-
if (fs.existsSync(candidate))
|
|
51
|
-
return candidate;
|
|
52
|
-
}
|
|
53
|
-
return path.join(runtimeDir, `${moduleName}.js`);
|
|
54
|
-
}
|
|
55
|
-
async function writeCompatShimIfNeeded(filePath, content) {
|
|
56
|
-
try {
|
|
57
|
-
const existing = await fs.promises.readFile(filePath, 'utf-8');
|
|
58
|
-
if (existing === content)
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
// Fall through to write missing shim
|
|
63
|
-
}
|
|
64
|
-
await fs.promises.writeFile(filePath, content, 'utf-8');
|
|
65
|
-
}
|
|
66
46
|
/**
|
|
67
|
-
*
|
|
68
|
-
*
|
|
47
|
+
* Ensure ~/.opencli/node_modules/@jackwener/opencli symlink exists so that
|
|
48
|
+
* user CLIs in ~/.opencli/clis/ can `import { cli } from '@jackwener/opencli/registry'`.
|
|
69
49
|
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
50
|
+
* This is the sole resolution mechanism — adapters use package exports
|
|
51
|
+
* (e.g. `@jackwener/opencli/registry`, `@jackwener/opencli/errors`) and
|
|
52
|
+
* Node.js resolves them through this symlink.
|
|
73
53
|
*/
|
|
74
54
|
export async function ensureUserCliCompatShims(baseDir = USER_OPENCLI_DIR) {
|
|
75
55
|
await fs.promises.mkdir(baseDir, { recursive: true });
|
|
76
|
-
//
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
['launcher', 'launcher'],
|
|
84
|
-
];
|
|
85
|
-
// Subdirectory shims: [subdir, filename, runtime module path relative to src/]
|
|
86
|
-
const subdirShims = [
|
|
87
|
-
['browser', 'cdp', 'browser/cdp'],
|
|
88
|
-
['browser', 'page', 'browser/page'],
|
|
89
|
-
['browser', 'utils', 'browser/utils'],
|
|
90
|
-
['download', 'index', 'download/index'],
|
|
91
|
-
['download', 'article-download', 'download/article-download'],
|
|
92
|
-
['download', 'media-download', 'download/media-download'],
|
|
93
|
-
['download', 'progress', 'download/progress'],
|
|
94
|
-
['pipeline', 'index', 'pipeline/index'],
|
|
95
|
-
];
|
|
96
|
-
const writes = [];
|
|
97
|
-
// Root-level shims (both with and without .js extension)
|
|
98
|
-
// Also generate src/ shims: adapters import ../../src/registry.js etc., which
|
|
99
|
-
// resolve to ~/.opencli/src/registry.js when running from ~/.opencli/clis/<site>/
|
|
100
|
-
const srcDir = path.join(baseDir, 'src');
|
|
101
|
-
await fs.promises.mkdir(srcDir, { recursive: true });
|
|
102
|
-
for (const [shimName, moduleName] of rootShims) {
|
|
103
|
-
const url = pathToFileURL(resolveHostRuntimeModulePath(moduleName)).href;
|
|
104
|
-
const content = `export * from '${url}';\n`;
|
|
105
|
-
writes.push(writeCompatShimIfNeeded(path.join(baseDir, shimName), content));
|
|
106
|
-
writes.push(writeCompatShimIfNeeded(path.join(baseDir, `${shimName}.js`), content));
|
|
107
|
-
writes.push(writeCompatShimIfNeeded(path.join(srcDir, `${shimName}.js`), content));
|
|
56
|
+
// package.json for ESM resolution in ~/.opencli/
|
|
57
|
+
const pkgJsonPath = path.join(baseDir, 'package.json');
|
|
58
|
+
const pkgJsonContent = `${JSON.stringify({ name: 'opencli-user-runtime', private: true, type: 'module' }, null, 2)}\n`;
|
|
59
|
+
try {
|
|
60
|
+
const existing = await fs.promises.readFile(pkgJsonPath, 'utf-8');
|
|
61
|
+
if (existing !== pkgJsonContent)
|
|
62
|
+
await fs.promises.writeFile(pkgJsonPath, pkgJsonContent, 'utf-8');
|
|
108
63
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
const dir = path.join(baseDir, subdir);
|
|
112
|
-
await fs.promises.mkdir(dir, { recursive: true });
|
|
113
|
-
const url = pathToFileURL(resolveHostRuntimeModulePath(runtimePath)).href;
|
|
114
|
-
const content = `export * from '${url}';\n`;
|
|
115
|
-
writes.push(writeCompatShimIfNeeded(path.join(dir, `${filename}.js`), content));
|
|
64
|
+
catch {
|
|
65
|
+
await fs.promises.writeFile(pkgJsonPath, pkgJsonContent, 'utf-8');
|
|
116
66
|
}
|
|
117
|
-
//
|
|
118
|
-
writes.push(writeCompatShimIfNeeded(path.join(baseDir, 'package.json'), `${JSON.stringify({ name: 'opencli-user-runtime', private: true, type: 'module' }, null, 2)}\n`));
|
|
119
|
-
await Promise.all(writes);
|
|
120
|
-
// Create node_modules/@jackwener/opencli symlink so user TS CLIs can import
|
|
121
|
-
// from '@jackwener/opencli/registry' (the package export).
|
|
122
|
-
// This is needed because ~/.opencli/clis/ is outside opencli's node_modules tree.
|
|
67
|
+
// Create node_modules/@jackwener/opencli symlink pointing to the installed package root.
|
|
123
68
|
const opencliRoot = findPackageRoot();
|
|
124
69
|
const symlinkDir = path.join(baseDir, 'node_modules', '@jackwener');
|
|
125
70
|
const symlinkPath = path.join(symlinkDir, 'opencli');
|
|
126
71
|
try {
|
|
127
|
-
// Only recreate if symlink is missing or points to wrong target
|
|
128
72
|
let needsUpdate = true;
|
|
129
73
|
try {
|
|
130
74
|
const existing = await fs.promises.readlink(symlinkPath);
|
|
@@ -134,15 +78,18 @@ export async function ensureUserCliCompatShims(baseDir = USER_OPENCLI_DIR) {
|
|
|
134
78
|
catch { /* doesn't exist */ }
|
|
135
79
|
if (needsUpdate) {
|
|
136
80
|
await fs.promises.mkdir(symlinkDir, { recursive: true });
|
|
81
|
+
// Use rm instead of unlink — handles both symlinks and stale directories
|
|
137
82
|
try {
|
|
138
|
-
await fs.promises.
|
|
83
|
+
await fs.promises.rm(symlinkPath, { recursive: true, force: true });
|
|
139
84
|
}
|
|
140
85
|
catch { /* doesn't exist */ }
|
|
141
|
-
|
|
86
|
+
// Use 'junction' on Windows — doesn't require admin/Developer Mode privileges
|
|
87
|
+
const symlinkType = process.platform === 'win32' ? 'junction' : 'dir';
|
|
88
|
+
await fs.promises.symlink(opencliRoot, symlinkPath, symlinkType);
|
|
142
89
|
}
|
|
143
90
|
}
|
|
144
|
-
catch {
|
|
145
|
-
|
|
91
|
+
catch (err) {
|
|
92
|
+
log.warn(`Could not create symlink at ${symlinkPath}: ${getErrorMessage(err)}`);
|
|
146
93
|
}
|
|
147
94
|
}
|
|
148
95
|
const ADAPTER_MANIFEST_PATH = path.join(USER_OPENCLI_DIR, 'adapter-manifest.json');
|
package/dist/src/engine.test.js
CHANGED
|
@@ -71,7 +71,7 @@ cli({
|
|
|
71
71
|
await fs.promises.rm(tempBuildRoot, { recursive: true, force: true });
|
|
72
72
|
}
|
|
73
73
|
});
|
|
74
|
-
it('loads
|
|
74
|
+
it('loads user CLI modules via package exports symlink', async () => {
|
|
75
75
|
const tempOpencliRoot = await fs.promises.mkdtemp(path.join(os.tmpdir(), 'opencli-user-clis-'));
|
|
76
76
|
const userClisDir = path.join(tempOpencliRoot, 'clis');
|
|
77
77
|
const siteDir = path.join(userClisDir, 'legacy-site');
|
|
@@ -80,8 +80,8 @@ cli({
|
|
|
80
80
|
await ensureUserCliCompatShims(tempOpencliRoot);
|
|
81
81
|
await fs.promises.mkdir(siteDir, { recursive: true });
|
|
82
82
|
await fs.promises.writeFile(commandPath, `
|
|
83
|
-
import { cli, Strategy } from '
|
|
84
|
-
import { CommandExecutionError } from '
|
|
83
|
+
import { cli, Strategy } from '@jackwener/opencli/registry';
|
|
84
|
+
import { CommandExecutionError } from '@jackwener/opencli/errors';
|
|
85
85
|
|
|
86
86
|
cli({
|
|
87
87
|
site: 'legacy-site',
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|