@jackwener/opencli 1.7.0 → 1.7.2
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 +13 -13
- package/README.zh-CN.md +11 -10
- package/cli-manifest.json +17536 -0
- package/clis/antigravity/SKILL.md +38 -0
- package/{dist/clis → clis}/barchart/quote.js +2 -1
- package/{dist/clis → clis}/bilibili/following.js +1 -0
- package/clis/binance/asks.js +21 -0
- package/clis/binance/commands.test.js +70 -0
- package/clis/binance/depth.js +21 -0
- package/clis/binance/gainers.js +22 -0
- package/clis/binance/klines.js +21 -0
- package/clis/binance/losers.js +22 -0
- package/clis/binance/pairs.js +21 -0
- package/clis/binance/price.js +18 -0
- package/clis/binance/prices.js +19 -0
- package/clis/binance/ticker.js +21 -0
- package/clis/binance/top.js +21 -0
- package/clis/binance/trades.js +20 -0
- package/clis/linux-do/categories.js +49 -0
- package/{dist/clis → clis}/linux-do/feed.js +1 -1
- package/clis/linux-do/search.js +28 -0
- package/clis/linux-do/tags.js +27 -0
- package/{dist/clis → clis}/linux-do/topic-content.test.js +1 -1
- package/clis/linux-do/topic.js +52 -0
- package/clis/linux-do/user-posts.js +56 -0
- package/clis/linux-do/user-topics.js +36 -0
- package/clis/slock/_utils.js +12 -0
- package/clis/twitter/lists-parser.js +77 -0
- package/clis/twitter/lists.d.ts +5 -0
- package/clis/twitter/lists.js +62 -0
- package/clis/twitter/lists.test.js +50 -0
- package/{dist/clis → clis}/weibo/feed.js +18 -5
- package/clis/xueqiu/earnings-date.js +44 -0
- package/clis/xueqiu/feed.js +38 -0
- package/clis/xueqiu/groups.js +22 -0
- package/clis/xueqiu/hot-stock.js +31 -0
- package/clis/xueqiu/hot.js +36 -0
- package/clis/xueqiu/kline.js +43 -0
- package/clis/xueqiu/search.js +36 -0
- package/clis/xueqiu/stock.js +64 -0
- package/clis/xueqiu/utils.js +29 -0
- package/clis/xueqiu/watchlist.js +36 -0
- package/{dist/clis → clis}/yahoo-finance/quote.js +2 -1
- package/{dist/clis → clis}/zsxq/topic.js +5 -3
- package/{dist/clis → clis}/zsxq/topic.test.js +4 -3
- package/{dist/clis → clis}/zsxq/utils.js +1 -1
- package/dist/src/browser/base-page.js +1 -1
- package/dist/src/browser/cdp.js +6 -4
- package/dist/src/browser/stealth.d.ts +0 -5
- package/dist/src/browser/stealth.js +8 -2
- package/dist/src/build-manifest.d.ts +5 -5
- package/dist/src/build-manifest.js +14 -10
- package/dist/src/build-manifest.test.js +7 -7
- package/dist/src/capabilityRouting.d.ts +1 -1
- package/dist/src/capabilityRouting.js +4 -2
- package/dist/src/capabilityRouting.test.js +4 -1
- package/dist/src/cli.js +171 -61
- package/dist/src/commanderAdapter.d.ts +0 -1
- package/dist/src/commanderAdapter.js +27 -152
- package/dist/src/commanderAdapter.test.js +47 -15
- package/dist/src/commands/daemon.js +4 -4
- package/dist/src/commands/daemon.test.js +5 -14
- package/dist/src/completion-fast.d.ts +0 -3
- package/dist/src/completion-fast.js +2 -54
- package/dist/src/completion-shared.d.ts +13 -0
- package/dist/src/completion-shared.js +63 -0
- package/dist/src/completion.d.ts +2 -3
- package/dist/src/completion.js +3 -56
- package/dist/src/daemon.js +13 -8
- package/dist/src/diagnostic.d.ts +2 -3
- package/dist/src/diagnostic.js +4 -21
- package/dist/src/diagnostic.test.js +8 -9
- package/dist/src/discovery.d.ts +7 -4
- package/dist/src/discovery.js +19 -44
- package/dist/src/doctor.js +15 -15
- package/dist/src/download/index.js +2 -1
- package/dist/src/download/progress.js +10 -10
- package/dist/src/engine.test.js +33 -5
- package/dist/src/errors.d.ts +16 -2
- package/dist/src/errors.js +28 -16
- package/dist/src/errors.test.js +38 -1
- package/dist/src/execution.d.ts +4 -1
- package/dist/src/execution.js +10 -9
- package/dist/src/execution.test.js +18 -2
- package/dist/src/external.js +12 -13
- package/dist/src/generate-verified.js +10 -10
- package/dist/src/generate-verified.test.js +1 -1
- package/dist/src/logger.js +10 -10
- package/dist/src/main.js +24 -11
- package/dist/src/output.js +5 -5
- package/dist/src/package-exports.test.js +8 -8
- package/dist/src/pipeline/steps/tap.js +2 -1
- package/dist/src/pipeline/template.js +80 -26
- package/dist/src/plugin.js +36 -23
- package/dist/src/plugin.test.js +41 -0
- package/dist/src/record.js +23 -23
- package/dist/src/registry.d.ts +11 -6
- package/dist/src/registry.js +40 -12
- package/dist/src/registry.test.js +56 -0
- package/dist/src/runtime.js +2 -1
- package/dist/src/tui.js +14 -14
- package/dist/src/update-check.js +3 -3
- package/dist/src/validate.d.ts +12 -5
- package/dist/src/validate.js +88 -59
- package/dist/src/weixin-download.test.js +1 -0
- package/package.json +8 -11
- package/scripts/check-doc-coverage.sh +10 -0
- package/scripts/clean-dist.cjs +2 -2
- package/scripts/copy-yaml.cjs +3 -19
- package/scripts/fetch-adapters.js +137 -28
- package/scripts/postinstall.js +1 -0
- package/dist/clis/1688/assets.d.ts +0 -42
- package/dist/clis/1688/download.d.ts +0 -9
- package/dist/clis/1688/download.test.d.ts +0 -1
- package/dist/clis/1688/item.d.ts +0 -70
- package/dist/clis/1688/item.test.d.ts +0 -1
- package/dist/clis/1688/search.d.ts +0 -56
- package/dist/clis/1688/search.test.d.ts +0 -1
- package/dist/clis/1688/shared.d.ts +0 -122
- package/dist/clis/1688/shared.test.d.ts +0 -1
- package/dist/clis/1688/store.d.ts +0 -45
- package/dist/clis/1688/store.test.d.ts +0 -1
- package/dist/clis/36kr/article.d.ts +0 -1
- package/dist/clis/36kr/hot.d.ts +0 -3
- package/dist/clis/36kr/hot.test.d.ts +0 -1
- package/dist/clis/36kr/news.d.ts +0 -1
- package/dist/clis/36kr/news.test.d.ts +0 -1
- package/dist/clis/36kr/search.d.ts +0 -1
- package/dist/clis/_shared/common.d.ts +0 -11
- package/dist/clis/_shared/desktop-commands.d.ts +0 -22
- package/dist/clis/amazon/bestsellers.d.ts +0 -1
- package/dist/clis/amazon/bestsellers.test.d.ts +0 -1
- package/dist/clis/amazon/discussion.d.ts +0 -20
- package/dist/clis/amazon/discussion.test.d.ts +0 -1
- package/dist/clis/amazon/movers-shakers.d.ts +0 -1
- package/dist/clis/amazon/new-releases.d.ts +0 -1
- package/dist/clis/amazon/offer.d.ts +0 -23
- package/dist/clis/amazon/offer.test.d.ts +0 -1
- package/dist/clis/amazon/product.d.ts +0 -18
- package/dist/clis/amazon/product.test.d.ts +0 -1
- package/dist/clis/amazon/rankings.d.ts +0 -59
- package/dist/clis/amazon/rankings.test.d.ts +0 -1
- package/dist/clis/amazon/search.d.ts +0 -18
- package/dist/clis/amazon/search.test.d.ts +0 -1
- package/dist/clis/amazon/shared.d.ts +0 -75
- package/dist/clis/amazon/shared.test.d.ts +0 -1
- package/dist/clis/antigravity/dump.d.ts +0 -1
- package/dist/clis/antigravity/extract-code.d.ts +0 -1
- package/dist/clis/antigravity/model.d.ts +0 -1
- package/dist/clis/antigravity/new.d.ts +0 -1
- package/dist/clis/antigravity/read.d.ts +0 -1
- package/dist/clis/antigravity/send.d.ts +0 -1
- package/dist/clis/antigravity/serve.d.ts +0 -14
- package/dist/clis/antigravity/status.d.ts +0 -1
- package/dist/clis/antigravity/watch.d.ts +0 -1
- package/dist/clis/apple-podcasts/commands.test.d.ts +0 -2
- package/dist/clis/apple-podcasts/episodes.d.ts +0 -1
- package/dist/clis/apple-podcasts/search.d.ts +0 -1
- package/dist/clis/apple-podcasts/top.d.ts +0 -1
- package/dist/clis/apple-podcasts/utils.d.ts +0 -11
- package/dist/clis/apple-podcasts/utils.test.d.ts +0 -1
- package/dist/clis/arxiv/paper.d.ts +0 -1
- package/dist/clis/arxiv/search.d.ts +0 -1
- package/dist/clis/arxiv/utils.d.ts +0 -18
- package/dist/clis/band/bands.d.ts +0 -1
- package/dist/clis/band/mentions.d.ts +0 -1
- package/dist/clis/band/post.d.ts +0 -1
- package/dist/clis/band/posts.d.ts +0 -1
- package/dist/clis/barchart/flow.d.ts +0 -1
- package/dist/clis/barchart/greeks.d.ts +0 -1
- package/dist/clis/barchart/options.d.ts +0 -1
- package/dist/clis/barchart/quote.d.ts +0 -1
- package/dist/clis/bbc/news.d.ts +0 -1
- package/dist/clis/bilibili/comments.d.ts +0 -5
- package/dist/clis/bilibili/comments.test.d.ts +0 -1
- package/dist/clis/bilibili/download.d.ts +0 -10
- package/dist/clis/bilibili/dynamic.d.ts +0 -1
- package/dist/clis/bilibili/dynamic.test.d.ts +0 -1
- package/dist/clis/bilibili/favorite.d.ts +0 -1
- package/dist/clis/bilibili/feed.d.ts +0 -1
- package/dist/clis/bilibili/following.d.ts +0 -1
- package/dist/clis/bilibili/history.d.ts +0 -1
- package/dist/clis/bilibili/hot.d.ts +0 -1
- package/dist/clis/bilibili/me.d.ts +0 -1
- package/dist/clis/bilibili/ranking.d.ts +0 -1
- package/dist/clis/bilibili/search.d.ts +0 -1
- package/dist/clis/bilibili/subtitle.d.ts +0 -1
- package/dist/clis/bilibili/subtitle.test.d.ts +0 -1
- package/dist/clis/bilibili/user-videos.d.ts +0 -1
- package/dist/clis/bilibili/utils.d.ts +0 -19
- package/dist/clis/bilibili/utils.test.d.ts +0 -1
- package/dist/clis/bloomberg/businessweek.d.ts +0 -1
- package/dist/clis/bloomberg/economics.d.ts +0 -1
- package/dist/clis/bloomberg/feeds.d.ts +0 -1
- package/dist/clis/bloomberg/industries.d.ts +0 -1
- package/dist/clis/bloomberg/main.d.ts +0 -1
- package/dist/clis/bloomberg/markets.d.ts +0 -1
- package/dist/clis/bloomberg/news.d.ts +0 -1
- package/dist/clis/bloomberg/opinions.d.ts +0 -1
- package/dist/clis/bloomberg/politics.d.ts +0 -1
- package/dist/clis/bloomberg/tech.d.ts +0 -1
- package/dist/clis/bloomberg/utils.d.ts +0 -34
- package/dist/clis/bloomberg/utils.test.d.ts +0 -1
- package/dist/clis/bluesky/feeds.d.ts +0 -1
- package/dist/clis/bluesky/followers.d.ts +0 -1
- package/dist/clis/bluesky/following.d.ts +0 -1
- package/dist/clis/bluesky/profile.d.ts +0 -1
- package/dist/clis/bluesky/search.d.ts +0 -1
- package/dist/clis/bluesky/starter-packs.d.ts +0 -1
- package/dist/clis/bluesky/thread.d.ts +0 -1
- package/dist/clis/bluesky/trending.d.ts +0 -1
- package/dist/clis/bluesky/user.d.ts +0 -1
- package/dist/clis/boss/batchgreet.d.ts +0 -1
- package/dist/clis/boss/chatlist.d.ts +0 -1
- package/dist/clis/boss/chatmsg.d.ts +0 -1
- package/dist/clis/boss/detail.d.ts +0 -1
- package/dist/clis/boss/exchange.d.ts +0 -1
- package/dist/clis/boss/greet.d.ts +0 -1
- package/dist/clis/boss/invite.d.ts +0 -1
- package/dist/clis/boss/joblist.d.ts +0 -1
- package/dist/clis/boss/mark.d.ts +0 -1
- package/dist/clis/boss/recommend.d.ts +0 -1
- package/dist/clis/boss/resume.d.ts +0 -1
- package/dist/clis/boss/search.d.ts +0 -1
- package/dist/clis/boss/send.d.ts +0 -1
- package/dist/clis/boss/stats.d.ts +0 -1
- package/dist/clis/boss/utils.d.ts +0 -92
- package/dist/clis/chaoxing/assignments.d.ts +0 -1
- package/dist/clis/chaoxing/exams.d.ts +0 -1
- package/dist/clis/chaoxing/utils.d.ts +0 -58
- package/dist/clis/chaoxing/utils.test.d.ts +0 -1
- package/dist/clis/chatgpt/ask.d.ts +0 -1
- package/dist/clis/chatgpt/ax.d.ts +0 -7
- package/dist/clis/chatgpt/model.d.ts +0 -1
- package/dist/clis/chatgpt/new.d.ts +0 -1
- package/dist/clis/chatgpt/read.d.ts +0 -1
- package/dist/clis/chatgpt/send.d.ts +0 -1
- package/dist/clis/chatgpt/status.d.ts +0 -1
- package/dist/clis/chatwise/ask.d.ts +0 -1
- package/dist/clis/chatwise/export.d.ts +0 -1
- package/dist/clis/chatwise/history.d.ts +0 -1
- package/dist/clis/chatwise/model.d.ts +0 -1
- package/dist/clis/chatwise/new.d.ts +0 -1
- package/dist/clis/chatwise/read.d.ts +0 -1
- package/dist/clis/chatwise/screenshot.d.ts +0 -1
- package/dist/clis/chatwise/send.d.ts +0 -1
- package/dist/clis/chatwise/status.d.ts +0 -1
- package/dist/clis/cnki/search.d.ts +0 -1
- package/dist/clis/cnki/search.test.d.ts +0 -1
- package/dist/clis/codex/ask.d.ts +0 -1
- package/dist/clis/codex/dump.d.ts +0 -1
- package/dist/clis/codex/export.d.ts +0 -1
- package/dist/clis/codex/extract-diff.d.ts +0 -1
- package/dist/clis/codex/history.d.ts +0 -1
- package/dist/clis/codex/model.d.ts +0 -1
- package/dist/clis/codex/new.d.ts +0 -1
- package/dist/clis/codex/read.d.ts +0 -1
- package/dist/clis/codex/screenshot.d.ts +0 -1
- package/dist/clis/codex/send.d.ts +0 -1
- package/dist/clis/codex/status.d.ts +0 -1
- package/dist/clis/coupang/add-to-cart.d.ts +0 -1
- package/dist/clis/coupang/search.d.ts +0 -1
- package/dist/clis/coupang/utils.d.ts +0 -24
- package/dist/clis/coupang/utils.test.d.ts +0 -1
- package/dist/clis/ctrip/search.d.ts +0 -14
- package/dist/clis/ctrip/search.test.d.ts +0 -1
- package/dist/clis/cursor/ask.d.ts +0 -1
- package/dist/clis/cursor/composer.d.ts +0 -1
- package/dist/clis/cursor/dump.d.ts +0 -1
- package/dist/clis/cursor/export.d.ts +0 -1
- package/dist/clis/cursor/extract-code.d.ts +0 -1
- package/dist/clis/cursor/history.d.ts +0 -1
- package/dist/clis/cursor/model.d.ts +0 -1
- package/dist/clis/cursor/new.d.ts +0 -1
- package/dist/clis/cursor/read.d.ts +0 -1
- package/dist/clis/cursor/screenshot.d.ts +0 -1
- package/dist/clis/cursor/send.d.ts +0 -1
- package/dist/clis/cursor/status.d.ts +0 -1
- package/dist/clis/devto/tag.d.ts +0 -1
- package/dist/clis/devto/top.d.ts +0 -1
- package/dist/clis/devto/user.d.ts +0 -1
- package/dist/clis/dictionary/examples.d.ts +0 -1
- package/dist/clis/dictionary/search.d.ts +0 -1
- package/dist/clis/dictionary/synonyms.d.ts +0 -1
- package/dist/clis/discord-app/channels.d.ts +0 -1
- package/dist/clis/discord-app/members.d.ts +0 -1
- package/dist/clis/discord-app/read.d.ts +0 -1
- package/dist/clis/discord-app/search.d.ts +0 -1
- package/dist/clis/discord-app/send.d.ts +0 -1
- package/dist/clis/discord-app/servers.d.ts +0 -1
- package/dist/clis/discord-app/status.d.ts +0 -1
- package/dist/clis/douban/book-hot.d.ts +0 -1
- package/dist/clis/douban/download.d.ts +0 -1
- package/dist/clis/douban/download.test.d.ts +0 -1
- package/dist/clis/douban/marks.d.ts +0 -1
- package/dist/clis/douban/movie-hot.d.ts +0 -1
- package/dist/clis/douban/photos.d.ts +0 -1
- package/dist/clis/douban/reviews.d.ts +0 -1
- package/dist/clis/douban/search.d.ts +0 -1
- package/dist/clis/douban/subject.d.ts +0 -1
- package/dist/clis/douban/top250.d.ts +0 -1
- package/dist/clis/douban/utils.d.ts +0 -63
- package/dist/clis/douban/utils.test.d.ts +0 -1
- package/dist/clis/doubao/ask.d.ts +0 -1
- package/dist/clis/doubao/detail.d.ts +0 -1
- package/dist/clis/doubao/detail.test.d.ts +0 -1
- package/dist/clis/doubao/history.d.ts +0 -1
- package/dist/clis/doubao/history.test.d.ts +0 -1
- package/dist/clis/doubao/meeting-summary.d.ts +0 -1
- package/dist/clis/doubao/meeting-transcript.d.ts +0 -1
- package/dist/clis/doubao/new.d.ts +0 -1
- package/dist/clis/doubao/read.d.ts +0 -1
- package/dist/clis/doubao/send.d.ts +0 -1
- package/dist/clis/doubao/status.d.ts +0 -1
- package/dist/clis/doubao/utils.d.ts +0 -50
- package/dist/clis/doubao/utils.test.d.ts +0 -1
- package/dist/clis/doubao-app/ask.d.ts +0 -1
- package/dist/clis/doubao-app/dump.d.ts +0 -1
- package/dist/clis/doubao-app/new.d.ts +0 -1
- package/dist/clis/doubao-app/read.d.ts +0 -1
- package/dist/clis/doubao-app/screenshot.d.ts +0 -1
- package/dist/clis/doubao-app/send.d.ts +0 -1
- package/dist/clis/doubao-app/status.d.ts +0 -1
- package/dist/clis/doubao-app/utils.d.ts +0 -37
- package/dist/clis/douyin/_shared/browser-fetch.d.ts +0 -10
- package/dist/clis/douyin/_shared/browser-fetch.test.d.ts +0 -1
- package/dist/clis/douyin/_shared/creation-id.d.ts +0 -1
- package/dist/clis/douyin/_shared/creation-id.test.d.ts +0 -1
- package/dist/clis/douyin/_shared/imagex-upload.d.ts +0 -20
- package/dist/clis/douyin/_shared/imagex-upload.test.d.ts +0 -1
- package/dist/clis/douyin/_shared/public-api.d.ts +0 -33
- package/dist/clis/douyin/_shared/sts2.d.ts +0 -8
- package/dist/clis/douyin/_shared/sts2.test.d.ts +0 -1
- package/dist/clis/douyin/_shared/text-extra.d.ts +0 -18
- package/dist/clis/douyin/_shared/text-extra.test.d.ts +0 -1
- package/dist/clis/douyin/_shared/timing.d.ts +0 -2
- package/dist/clis/douyin/_shared/timing.test.d.ts +0 -1
- package/dist/clis/douyin/_shared/tos-upload-short-read.test.d.ts +0 -11
- package/dist/clis/douyin/_shared/tos-upload.d.ts +0 -53
- package/dist/clis/douyin/_shared/tos-upload.test.d.ts +0 -1
- package/dist/clis/douyin/_shared/transcode.d.ts +0 -27
- package/dist/clis/douyin/_shared/transcode.test.d.ts +0 -1
- package/dist/clis/douyin/_shared/types.d.ts +0 -26
- package/dist/clis/douyin/_shared/types.js +0 -1
- package/dist/clis/douyin/activities.d.ts +0 -1
- package/dist/clis/douyin/activities.test.d.ts +0 -1
- package/dist/clis/douyin/collections.d.ts +0 -1
- package/dist/clis/douyin/collections.test.d.ts +0 -1
- package/dist/clis/douyin/delete.d.ts +0 -1
- package/dist/clis/douyin/delete.test.d.ts +0 -1
- package/dist/clis/douyin/draft.d.ts +0 -11
- package/dist/clis/douyin/draft.test.d.ts +0 -1
- package/dist/clis/douyin/drafts.d.ts +0 -1
- package/dist/clis/douyin/drafts.test.d.ts +0 -1
- package/dist/clis/douyin/hashtag.d.ts +0 -1
- package/dist/clis/douyin/hashtag.test.d.ts +0 -1
- package/dist/clis/douyin/location.d.ts +0 -1
- package/dist/clis/douyin/location.test.d.ts +0 -1
- package/dist/clis/douyin/profile.d.ts +0 -1
- package/dist/clis/douyin/profile.test.d.ts +0 -1
- package/dist/clis/douyin/publish.d.ts +0 -14
- package/dist/clis/douyin/publish.test.d.ts +0 -1
- package/dist/clis/douyin/stats.d.ts +0 -1
- package/dist/clis/douyin/stats.test.d.ts +0 -1
- package/dist/clis/douyin/update.d.ts +0 -1
- package/dist/clis/douyin/update.test.d.ts +0 -1
- package/dist/clis/douyin/user-videos.d.ts +0 -5
- package/dist/clis/douyin/user-videos.test.d.ts +0 -1
- package/dist/clis/douyin/videos.d.ts +0 -1
- package/dist/clis/douyin/videos.test.d.ts +0 -1
- package/dist/clis/facebook/add-friend.d.ts +0 -1
- package/dist/clis/facebook/events.d.ts +0 -1
- package/dist/clis/facebook/feed.d.ts +0 -1
- package/dist/clis/facebook/friends.d.ts +0 -1
- package/dist/clis/facebook/groups.d.ts +0 -1
- package/dist/clis/facebook/join-group.d.ts +0 -1
- package/dist/clis/facebook/memories.d.ts +0 -1
- package/dist/clis/facebook/notifications.d.ts +0 -1
- package/dist/clis/facebook/profile.d.ts +0 -1
- package/dist/clis/facebook/search.d.ts +0 -1
- package/dist/clis/facebook/search.test.d.ts +0 -5
- package/dist/clis/gemini/ask.d.ts +0 -1
- package/dist/clis/gemini/ask.test.d.ts +0 -1
- package/dist/clis/gemini/deep-research-result.d.ts +0 -1
- package/dist/clis/gemini/deep-research-result.test.d.ts +0 -1
- package/dist/clis/gemini/deep-research.d.ts +0 -1
- package/dist/clis/gemini/deep-research.test.d.ts +0 -1
- package/dist/clis/gemini/image.d.ts +0 -1
- package/dist/clis/gemini/new.d.ts +0 -1
- package/dist/clis/gemini/reply-state.test.d.ts +0 -1
- package/dist/clis/gemini/utils.d.ts +0 -106
- package/dist/clis/gemini/utils.test.d.ts +0 -1
- package/dist/clis/gitee/index.d.ts +0 -3
- package/dist/clis/gitee/search.d.ts +0 -1
- package/dist/clis/gitee/trending.d.ts +0 -1
- package/dist/clis/gitee/user.d.ts +0 -1
- package/dist/clis/gitee/user.test.d.ts +0 -1
- package/dist/clis/google/news.d.ts +0 -5
- package/dist/clis/google/search.d.ts +0 -10
- package/dist/clis/google/suggest.d.ts +0 -5
- package/dist/clis/google/trends.d.ts +0 -5
- package/dist/clis/google/utils.d.ts +0 -9
- package/dist/clis/google/utils.test.d.ts +0 -1
- package/dist/clis/grok/ask.d.ts +0 -19
- package/dist/clis/grok/ask.test.d.ts +0 -1
- package/dist/clis/hackernews/ask.d.ts +0 -1
- package/dist/clis/hackernews/best.d.ts +0 -1
- package/dist/clis/hackernews/jobs.d.ts +0 -1
- package/dist/clis/hackernews/new.d.ts +0 -1
- package/dist/clis/hackernews/search.d.ts +0 -1
- package/dist/clis/hackernews/show.d.ts +0 -1
- package/dist/clis/hackernews/top.d.ts +0 -1
- package/dist/clis/hackernews/user.d.ts +0 -1
- package/dist/clis/hf/top.d.ts +0 -1
- package/dist/clis/hupu/detail.d.ts +0 -1
- package/dist/clis/hupu/hot.d.ts +0 -1
- package/dist/clis/hupu/like.d.ts +0 -1
- package/dist/clis/hupu/mentions.d.ts +0 -1
- package/dist/clis/hupu/reply.d.ts +0 -1
- package/dist/clis/hupu/search.d.ts +0 -1
- package/dist/clis/hupu/unlike.d.ts +0 -1
- package/dist/clis/hupu/utils.d.ts +0 -20
- package/dist/clis/imdb/person.d.ts +0 -1
- package/dist/clis/imdb/reviews.d.ts +0 -1
- package/dist/clis/imdb/search.d.ts +0 -1
- package/dist/clis/imdb/title.d.ts +0 -1
- package/dist/clis/imdb/top.d.ts +0 -1
- package/dist/clis/imdb/trending.d.ts +0 -1
- package/dist/clis/imdb/utils.d.ts +0 -46
- package/dist/clis/imdb/utils.test.d.ts +0 -1
- package/dist/clis/instagram/_shared/private-publish.d.ts +0 -138
- package/dist/clis/instagram/_shared/private-publish.test.d.ts +0 -1
- package/dist/clis/instagram/_shared/protocol-capture.d.ts +0 -26
- package/dist/clis/instagram/_shared/protocol-capture.test.d.ts +0 -1
- package/dist/clis/instagram/_shared/runtime-info.d.ts +0 -9
- package/dist/clis/instagram/comment.d.ts +0 -1
- package/dist/clis/instagram/download.d.ts +0 -16
- package/dist/clis/instagram/download.test.d.ts +0 -1
- package/dist/clis/instagram/explore.d.ts +0 -1
- package/dist/clis/instagram/follow.d.ts +0 -1
- package/dist/clis/instagram/followers.d.ts +0 -1
- package/dist/clis/instagram/following.d.ts +0 -1
- package/dist/clis/instagram/like.d.ts +0 -1
- package/dist/clis/instagram/note.d.ts +0 -1
- package/dist/clis/instagram/note.test.d.ts +0 -1
- package/dist/clis/instagram/post.d.ts +0 -4
- package/dist/clis/instagram/post.test.d.ts +0 -1
- package/dist/clis/instagram/profile.d.ts +0 -1
- package/dist/clis/instagram/reel.d.ts +0 -1
- package/dist/clis/instagram/reel.test.d.ts +0 -1
- package/dist/clis/instagram/save.d.ts +0 -1
- package/dist/clis/instagram/saved.d.ts +0 -1
- package/dist/clis/instagram/search.d.ts +0 -1
- package/dist/clis/instagram/story.d.ts +0 -1
- package/dist/clis/instagram/story.test.d.ts +0 -1
- package/dist/clis/instagram/unfollow.d.ts +0 -1
- package/dist/clis/instagram/unlike.d.ts +0 -1
- package/dist/clis/instagram/unsave.d.ts +0 -1
- package/dist/clis/instagram/user.d.ts +0 -1
- package/dist/clis/jd/add-cart.d.ts +0 -1
- package/dist/clis/jd/cart.d.ts +0 -1
- package/dist/clis/jd/commands.test.d.ts +0 -5
- package/dist/clis/jd/detail.d.ts +0 -1
- package/dist/clis/jd/item.d.ts +0 -5
- package/dist/clis/jd/item.test.d.ts +0 -1
- package/dist/clis/jd/reviews.d.ts +0 -1
- package/dist/clis/jd/search.d.ts +0 -1
- package/dist/clis/jianyu/detail.d.ts +0 -1
- package/dist/clis/jianyu/search.d.ts +0 -51
- package/dist/clis/jianyu/search.test.d.ts +0 -1
- package/dist/clis/jianyu/shared/china-bid-search.d.ts +0 -12
- package/dist/clis/jianyu/shared/procurement-contract.d.ts +0 -68
- package/dist/clis/jianyu/shared/procurement-contract.test.d.ts +0 -1
- package/dist/clis/jianyu/shared/procurement-detail.d.ts +0 -6
- package/dist/clis/jianyu/shared/procurement-detail.test.d.ts +0 -1
- package/dist/clis/jike/comment.d.ts +0 -1
- package/dist/clis/jike/create.d.ts +0 -1
- package/dist/clis/jike/feed.d.ts +0 -1
- package/dist/clis/jike/like.d.ts +0 -1
- package/dist/clis/jike/notifications.d.ts +0 -1
- package/dist/clis/jike/post.d.ts +0 -1
- package/dist/clis/jike/repost.d.ts +0 -1
- package/dist/clis/jike/search.d.ts +0 -1
- package/dist/clis/jike/topic.d.ts +0 -1
- package/dist/clis/jike/user.d.ts +0 -1
- package/dist/clis/jike/utils.d.ts +0 -19
- package/dist/clis/jimeng/generate.d.ts +0 -1
- package/dist/clis/jimeng/history.d.ts +0 -1
- package/dist/clis/jimeng/new.d.ts +0 -1
- package/dist/clis/jimeng/workspaces.d.ts +0 -1
- package/dist/clis/lesswrong/_helpers.d.ts +0 -15
- package/dist/clis/lesswrong/comments.d.ts +0 -1
- package/dist/clis/lesswrong/curated.d.ts +0 -1
- package/dist/clis/lesswrong/frontpage.d.ts +0 -1
- package/dist/clis/lesswrong/new.d.ts +0 -1
- package/dist/clis/lesswrong/read.d.ts +0 -1
- package/dist/clis/lesswrong/sequences.d.ts +0 -1
- package/dist/clis/lesswrong/shortform.d.ts +0 -1
- package/dist/clis/lesswrong/tag.d.ts +0 -1
- package/dist/clis/lesswrong/tags.d.ts +0 -1
- package/dist/clis/lesswrong/top-month.d.ts +0 -1
- package/dist/clis/lesswrong/top-week.d.ts +0 -1
- package/dist/clis/lesswrong/top-year.d.ts +0 -1
- package/dist/clis/lesswrong/top.d.ts +0 -1
- package/dist/clis/lesswrong/user-posts.d.ts +0 -1
- package/dist/clis/lesswrong/user.d.ts +0 -1
- package/dist/clis/linkedin/search.d.ts +0 -1
- package/dist/clis/linkedin/timeline.d.ts +0 -21
- package/dist/clis/linkedin/timeline.test.d.ts +0 -1
- package/dist/clis/linux-do/categories.d.ts +0 -1
- package/dist/clis/linux-do/categories.js +0 -65
- package/dist/clis/linux-do/category.d.ts +0 -1
- package/dist/clis/linux-do/feed.d.ts +0 -45
- package/dist/clis/linux-do/feed.test.d.ts +0 -1
- package/dist/clis/linux-do/hot.d.ts +0 -1
- package/dist/clis/linux-do/latest.d.ts +0 -1
- package/dist/clis/linux-do/search.d.ts +0 -1
- package/dist/clis/linux-do/search.js +0 -41
- package/dist/clis/linux-do/tags.d.ts +0 -1
- package/dist/clis/linux-do/tags.js +0 -39
- package/dist/clis/linux-do/topic-content.d.ts +0 -35
- package/dist/clis/linux-do/topic-content.test.d.ts +0 -1
- package/dist/clis/linux-do/topic.d.ts +0 -1
- package/dist/clis/linux-do/topic.js +0 -56
- package/dist/clis/linux-do/user-posts.d.ts +0 -1
- package/dist/clis/linux-do/user-posts.js +0 -61
- package/dist/clis/linux-do/user-topics.d.ts +0 -1
- package/dist/clis/linux-do/user-topics.js +0 -48
- package/dist/clis/lobsters/active.d.ts +0 -1
- package/dist/clis/lobsters/hot.d.ts +0 -1
- package/dist/clis/lobsters/newest.d.ts +0 -1
- package/dist/clis/lobsters/tag.d.ts +0 -1
- package/dist/clis/medium/feed.d.ts +0 -1
- package/dist/clis/medium/search.d.ts +0 -1
- package/dist/clis/medium/user.d.ts +0 -1
- package/dist/clis/medium/utils.d.ts +0 -5
- package/dist/clis/notebooklm/compat.test.d.ts +0 -3
- package/dist/clis/notebooklm/current.d.ts +0 -1
- package/dist/clis/notebooklm/get.d.ts +0 -1
- package/dist/clis/notebooklm/history.d.ts +0 -1
- package/dist/clis/notebooklm/history.test.d.ts +0 -1
- package/dist/clis/notebooklm/list.d.ts +0 -1
- package/dist/clis/notebooklm/note-list.d.ts +0 -1
- package/dist/clis/notebooklm/note-list.test.d.ts +0 -1
- package/dist/clis/notebooklm/notes-get.d.ts +0 -1
- package/dist/clis/notebooklm/notes-get.test.d.ts +0 -1
- package/dist/clis/notebooklm/open.d.ts +0 -1
- package/dist/clis/notebooklm/open.test.d.ts +0 -1
- package/dist/clis/notebooklm/rpc.d.ts +0 -36
- package/dist/clis/notebooklm/rpc.test.d.ts +0 -1
- package/dist/clis/notebooklm/shared.d.ts +0 -87
- package/dist/clis/notebooklm/source-fulltext.d.ts +0 -1
- package/dist/clis/notebooklm/source-fulltext.test.d.ts +0 -1
- package/dist/clis/notebooklm/source-get.d.ts +0 -1
- package/dist/clis/notebooklm/source-get.test.d.ts +0 -1
- package/dist/clis/notebooklm/source-guide.d.ts +0 -1
- package/dist/clis/notebooklm/source-guide.test.d.ts +0 -1
- package/dist/clis/notebooklm/source-list.d.ts +0 -1
- package/dist/clis/notebooklm/status.d.ts +0 -1
- package/dist/clis/notebooklm/summary.d.ts +0 -1
- package/dist/clis/notebooklm/summary.test.d.ts +0 -1
- package/dist/clis/notebooklm/utils.d.ts +0 -38
- package/dist/clis/notebooklm/utils.test.d.ts +0 -1
- package/dist/clis/notion/export.d.ts +0 -1
- package/dist/clis/notion/favorites.d.ts +0 -1
- package/dist/clis/notion/new.d.ts +0 -1
- package/dist/clis/notion/read.d.ts +0 -1
- package/dist/clis/notion/search.d.ts +0 -1
- package/dist/clis/notion/sidebar.d.ts +0 -1
- package/dist/clis/notion/status.d.ts +0 -1
- package/dist/clis/notion/write.d.ts +0 -1
- package/dist/clis/ones/common.d.ts +0 -32
- package/dist/clis/ones/enrich-tasks.d.ts +0 -5
- package/dist/clis/ones/login.d.ts +0 -1
- package/dist/clis/ones/logout.d.ts +0 -1
- package/dist/clis/ones/me.d.ts +0 -1
- package/dist/clis/ones/my-tasks.d.ts +0 -1
- package/dist/clis/ones/resolve-labels.d.ts +0 -10
- package/dist/clis/ones/task-helpers.d.ts +0 -29
- package/dist/clis/ones/task-helpers.test.d.ts +0 -1
- package/dist/clis/ones/task.d.ts +0 -1
- package/dist/clis/ones/tasks.d.ts +0 -1
- package/dist/clis/ones/token-info.d.ts +0 -1
- package/dist/clis/ones/worklog.d.ts +0 -11
- package/dist/clis/ones/worklog.test.d.ts +0 -1
- package/dist/clis/paperreview/commands.test.d.ts +0 -3
- package/dist/clis/paperreview/feedback.d.ts +0 -1
- package/dist/clis/paperreview/review.d.ts +0 -1
- package/dist/clis/paperreview/submit.d.ts +0 -1
- package/dist/clis/paperreview/utils.d.ts +0 -46
- package/dist/clis/paperreview/utils.test.d.ts +0 -1
- package/dist/clis/pixiv/detail.d.ts +0 -1
- package/dist/clis/pixiv/download.d.ts +0 -7
- package/dist/clis/pixiv/download.test.d.ts +0 -1
- package/dist/clis/pixiv/illusts.d.ts +0 -8
- package/dist/clis/pixiv/illusts.test.d.ts +0 -1
- package/dist/clis/pixiv/ranking.d.ts +0 -1
- package/dist/clis/pixiv/search.d.ts +0 -6
- package/dist/clis/pixiv/search.test.d.ts +0 -1
- package/dist/clis/pixiv/test-utils.d.ts +0 -12
- package/dist/clis/pixiv/user.d.ts +0 -1
- package/dist/clis/pixiv/utils.d.ts +0 -27
- package/dist/clis/producthunt/browse.d.ts +0 -1
- package/dist/clis/producthunt/hot.d.ts +0 -1
- package/dist/clis/producthunt/posts.d.ts +0 -1
- package/dist/clis/producthunt/today.d.ts +0 -1
- package/dist/clis/producthunt/utils.d.ts +0 -29
- package/dist/clis/producthunt/utils.test.d.ts +0 -1
- package/dist/clis/quark/ls.d.ts +0 -1
- package/dist/clis/quark/mkdir.d.ts +0 -1
- package/dist/clis/quark/mv.d.ts +0 -1
- package/dist/clis/quark/rename.d.ts +0 -1
- package/dist/clis/quark/rm.d.ts +0 -1
- package/dist/clis/quark/save.d.ts +0 -1
- package/dist/clis/quark/share-tree.d.ts +0 -1
- package/dist/clis/quark/utils.d.ts +0 -50
- package/dist/clis/quark/utils.test.d.ts +0 -1
- package/dist/clis/reddit/comment.d.ts +0 -1
- package/dist/clis/reddit/frontpage.d.ts +0 -1
- package/dist/clis/reddit/hot.d.ts +0 -1
- package/dist/clis/reddit/popular.d.ts +0 -1
- package/dist/clis/reddit/read.d.ts +0 -1
- package/dist/clis/reddit/read.test.d.ts +0 -1
- package/dist/clis/reddit/save.d.ts +0 -1
- package/dist/clis/reddit/saved.d.ts +0 -1
- package/dist/clis/reddit/search.d.ts +0 -1
- package/dist/clis/reddit/subreddit.d.ts +0 -1
- package/dist/clis/reddit/subscribe.d.ts +0 -1
- package/dist/clis/reddit/upvote.d.ts +0 -1
- package/dist/clis/reddit/upvoted.d.ts +0 -1
- package/dist/clis/reddit/user-comments.d.ts +0 -1
- package/dist/clis/reddit/user-posts.d.ts +0 -1
- package/dist/clis/reddit/user.d.ts +0 -1
- package/dist/clis/reuters/search.d.ts +0 -1
- package/dist/clis/sinablog/article.d.ts +0 -1
- package/dist/clis/sinablog/hot.d.ts +0 -1
- package/dist/clis/sinablog/search.d.ts +0 -1
- package/dist/clis/sinablog/user.d.ts +0 -1
- package/dist/clis/sinablog/utils.d.ts +0 -7
- package/dist/clis/sinafinance/news.d.ts +0 -7
- package/dist/clis/sinafinance/rolling-news.d.ts +0 -4
- package/dist/clis/sinafinance/stock-rank.d.ts +0 -4
- package/dist/clis/sinafinance/stock.d.ts +0 -8
- package/dist/clis/smzdm/search.d.ts +0 -1
- package/dist/clis/spotify/spotify.d.ts +0 -1
- package/dist/clis/spotify/utils.d.ts +0 -21
- package/dist/clis/spotify/utils.test.d.ts +0 -1
- package/dist/clis/stackoverflow/bounties.d.ts +0 -1
- package/dist/clis/stackoverflow/hot.d.ts +0 -1
- package/dist/clis/stackoverflow/search.d.ts +0 -1
- package/dist/clis/stackoverflow/unanswered.d.ts +0 -1
- package/dist/clis/steam/top-sellers.d.ts +0 -1
- package/dist/clis/substack/feed.d.ts +0 -1
- package/dist/clis/substack/publication.d.ts +0 -1
- package/dist/clis/substack/search.d.ts +0 -1
- package/dist/clis/substack/utils.d.ts +0 -8
- package/dist/clis/substack/utils.test.d.ts +0 -1
- package/dist/clis/taobao/add-cart.d.ts +0 -1
- package/dist/clis/taobao/cart.d.ts +0 -1
- package/dist/clis/taobao/commands.test.d.ts +0 -5
- package/dist/clis/taobao/detail.d.ts +0 -1
- package/dist/clis/taobao/reviews.d.ts +0 -1
- package/dist/clis/taobao/search.d.ts +0 -1
- package/dist/clis/tieba/commands.test.d.ts +0 -4
- package/dist/clis/tieba/hot.d.ts +0 -1
- package/dist/clis/tieba/posts.d.ts +0 -1
- package/dist/clis/tieba/read.d.ts +0 -1
- package/dist/clis/tieba/search.d.ts +0 -1
- package/dist/clis/tieba/utils.d.ts +0 -101
- package/dist/clis/tieba/utils.test.d.ts +0 -1
- package/dist/clis/tiktok/comment.d.ts +0 -1
- package/dist/clis/tiktok/explore.d.ts +0 -1
- package/dist/clis/tiktok/follow.d.ts +0 -1
- package/dist/clis/tiktok/following.d.ts +0 -1
- package/dist/clis/tiktok/friends.d.ts +0 -1
- package/dist/clis/tiktok/like.d.ts +0 -1
- package/dist/clis/tiktok/live.d.ts +0 -1
- package/dist/clis/tiktok/notifications.d.ts +0 -1
- package/dist/clis/tiktok/profile.d.ts +0 -1
- package/dist/clis/tiktok/save.d.ts +0 -1
- package/dist/clis/tiktok/search.d.ts +0 -1
- package/dist/clis/tiktok/unfollow.d.ts +0 -1
- package/dist/clis/tiktok/unlike.d.ts +0 -1
- package/dist/clis/tiktok/unsave.d.ts +0 -1
- package/dist/clis/tiktok/user.d.ts +0 -1
- package/dist/clis/twitter/accept.d.ts +0 -1
- package/dist/clis/twitter/article.d.ts +0 -1
- package/dist/clis/twitter/block.d.ts +0 -1
- package/dist/clis/twitter/bookmark.d.ts +0 -1
- package/dist/clis/twitter/bookmarks.d.ts +0 -1
- package/dist/clis/twitter/delete.d.ts +0 -7
- package/dist/clis/twitter/delete.test.d.ts +0 -1
- package/dist/clis/twitter/download.d.ts +0 -8
- package/dist/clis/twitter/follow.d.ts +0 -1
- package/dist/clis/twitter/followers.d.ts +0 -1
- package/dist/clis/twitter/following.d.ts +0 -1
- package/dist/clis/twitter/hide-reply.d.ts +0 -1
- package/dist/clis/twitter/like.d.ts +0 -1
- package/dist/clis/twitter/likes.d.ts +0 -24
- package/dist/clis/twitter/likes.test.d.ts +0 -1
- package/dist/clis/twitter/notifications.d.ts +0 -1
- package/dist/clis/twitter/post.d.ts +0 -1
- package/dist/clis/twitter/post.test.d.ts +0 -1
- package/dist/clis/twitter/profile.d.ts +0 -1
- package/dist/clis/twitter/reply-dm.d.ts +0 -1
- package/dist/clis/twitter/reply.d.ts +0 -13
- package/dist/clis/twitter/reply.test.d.ts +0 -1
- package/dist/clis/twitter/search.d.ts +0 -1
- package/dist/clis/twitter/search.test.d.ts +0 -1
- package/dist/clis/twitter/shared.d.ts +0 -6
- package/dist/clis/twitter/thread.d.ts +0 -1
- package/dist/clis/twitter/timeline.d.ts +0 -24
- package/dist/clis/twitter/timeline.test.d.ts +0 -1
- package/dist/clis/twitter/trending.d.ts +0 -1
- package/dist/clis/twitter/unblock.d.ts +0 -1
- package/dist/clis/twitter/unbookmark.d.ts +0 -1
- package/dist/clis/twitter/unfollow.d.ts +0 -1
- package/dist/clis/v2ex/daily.d.ts +0 -1
- package/dist/clis/v2ex/hot.d.ts +0 -1
- package/dist/clis/v2ex/latest.d.ts +0 -1
- package/dist/clis/v2ex/me.d.ts +0 -1
- package/dist/clis/v2ex/member.d.ts +0 -1
- package/dist/clis/v2ex/node.d.ts +0 -1
- package/dist/clis/v2ex/nodes.d.ts +0 -1
- package/dist/clis/v2ex/notifications.d.ts +0 -1
- package/dist/clis/v2ex/replies.d.ts +0 -1
- package/dist/clis/v2ex/topic.d.ts +0 -1
- package/dist/clis/v2ex/user.d.ts +0 -1
- package/dist/clis/web/read.d.ts +0 -16
- package/dist/clis/weibo/comments.d.ts +0 -1
- package/dist/clis/weibo/feed.d.ts +0 -1
- package/dist/clis/weibo/hot.d.ts +0 -1
- package/dist/clis/weibo/me.d.ts +0 -1
- package/dist/clis/weibo/post.d.ts +0 -1
- package/dist/clis/weibo/search.d.ts +0 -1
- package/dist/clis/weibo/user.d.ts +0 -1
- package/dist/clis/weibo/utils.d.ts +0 -6
- package/dist/clis/weixin/download.d.ts +0 -38
- package/dist/clis/weread/book.d.ts +0 -1
- package/dist/clis/weread/commands.test.d.ts +0 -3
- package/dist/clis/weread/highlights.d.ts +0 -1
- package/dist/clis/weread/notebooks.d.ts +0 -1
- package/dist/clis/weread/notes.d.ts +0 -1
- package/dist/clis/weread/private-api-regression.test.d.ts +0 -1
- package/dist/clis/weread/ranking.d.ts +0 -1
- package/dist/clis/weread/search-regression.test.d.ts +0 -1
- package/dist/clis/weread/search.d.ts +0 -1
- package/dist/clis/weread/shelf.d.ts +0 -1
- package/dist/clis/weread/utils.d.ts +0 -76
- package/dist/clis/weread/utils.test.d.ts +0 -1
- package/dist/clis/wikipedia/random.d.ts +0 -1
- package/dist/clis/wikipedia/search.d.ts +0 -1
- package/dist/clis/wikipedia/summary.d.ts +0 -1
- package/dist/clis/wikipedia/trending.d.ts +0 -1
- package/dist/clis/wikipedia/utils.d.ts +0 -36
- package/dist/clis/xianyu/chat.d.ts +0 -7
- package/dist/clis/xianyu/chat.test.d.ts +0 -1
- package/dist/clis/xianyu/item.d.ts +0 -7
- package/dist/clis/xianyu/item.test.d.ts +0 -1
- package/dist/clis/xianyu/search.d.ts +0 -10
- package/dist/clis/xianyu/search.test.d.ts +0 -1
- package/dist/clis/xianyu/utils.d.ts +0 -1
- package/dist/clis/xiaoe/catalog.d.ts +0 -1
- package/dist/clis/xiaoe/content.d.ts +0 -1
- package/dist/clis/xiaoe/courses.d.ts +0 -1
- package/dist/clis/xiaoe/detail.d.ts +0 -1
- package/dist/clis/xiaoe/play-url.d.ts +0 -1
- package/dist/clis/xiaohongshu/comments.d.ts +0 -8
- package/dist/clis/xiaohongshu/comments.test.d.ts +0 -1
- package/dist/clis/xiaohongshu/creator-note-detail.d.ts +0 -84
- package/dist/clis/xiaohongshu/creator-note-detail.test.d.ts +0 -1
- package/dist/clis/xiaohongshu/creator-notes-summary.d.ts +0 -28
- package/dist/clis/xiaohongshu/creator-notes-summary.test.d.ts +0 -1
- package/dist/clis/xiaohongshu/creator-notes.d.ts +0 -24
- package/dist/clis/xiaohongshu/creator-notes.test.d.ts +0 -1
- package/dist/clis/xiaohongshu/creator-profile.d.ts +0 -10
- package/dist/clis/xiaohongshu/creator-stats.d.ts +0 -10
- package/dist/clis/xiaohongshu/download.d.ts +0 -10
- package/dist/clis/xiaohongshu/download.test.d.ts +0 -1
- package/dist/clis/xiaohongshu/feed.d.ts +0 -1
- package/dist/clis/xiaohongshu/note-helpers.d.ts +0 -12
- package/dist/clis/xiaohongshu/note.d.ts +0 -11
- package/dist/clis/xiaohongshu/note.test.d.ts +0 -1
- package/dist/clis/xiaohongshu/notifications.d.ts +0 -1
- package/dist/clis/xiaohongshu/publish.d.ts +0 -18
- package/dist/clis/xiaohongshu/publish.test.d.ts +0 -1
- package/dist/clis/xiaohongshu/search.d.ts +0 -15
- package/dist/clis/xiaohongshu/search.test.d.ts +0 -1
- package/dist/clis/xiaohongshu/user-helpers.d.ts +0 -16
- package/dist/clis/xiaohongshu/user-helpers.test.d.ts +0 -1
- package/dist/clis/xiaohongshu/user.d.ts +0 -1
- package/dist/clis/xiaoyuzhou/episode.d.ts +0 -1
- package/dist/clis/xiaoyuzhou/podcast-episodes.d.ts +0 -1
- package/dist/clis/xiaoyuzhou/podcast.d.ts +0 -1
- package/dist/clis/xiaoyuzhou/utils.d.ts +0 -16
- package/dist/clis/xiaoyuzhou/utils.test.d.ts +0 -1
- package/dist/clis/xueqiu/comments.d.ts +0 -118
- package/dist/clis/xueqiu/comments.test.d.ts +0 -1
- package/dist/clis/xueqiu/danjuan-utils.d.ts +0 -55
- package/dist/clis/xueqiu/danjuan-utils.test.d.ts +0 -1
- package/dist/clis/xueqiu/earnings-date.d.ts +0 -1
- package/dist/clis/xueqiu/earnings-date.js +0 -61
- package/dist/clis/xueqiu/feed.d.ts +0 -1
- package/dist/clis/xueqiu/feed.js +0 -48
- package/dist/clis/xueqiu/fund-holdings.d.ts +0 -1
- package/dist/clis/xueqiu/fund-snapshot.d.ts +0 -1
- package/dist/clis/xueqiu/groups.d.ts +0 -1
- package/dist/clis/xueqiu/groups.js +0 -25
- package/dist/clis/xueqiu/hot-stock.d.ts +0 -1
- package/dist/clis/xueqiu/hot-stock.js +0 -44
- package/dist/clis/xueqiu/hot.d.ts +0 -1
- package/dist/clis/xueqiu/hot.js +0 -44
- package/dist/clis/xueqiu/kline.d.ts +0 -1
- package/dist/clis/xueqiu/kline.js +0 -64
- package/dist/clis/xueqiu/search.d.ts +0 -1
- package/dist/clis/xueqiu/search.js +0 -49
- package/dist/clis/xueqiu/stock.d.ts +0 -1
- package/dist/clis/xueqiu/stock.js +0 -72
- package/dist/clis/xueqiu/watchlist.d.ts +0 -1
- package/dist/clis/xueqiu/watchlist.js +0 -45
- package/dist/clis/yahoo-finance/quote.d.ts +0 -1
- package/dist/clis/yollomi/background.d.ts +0 -4
- package/dist/clis/yollomi/edit.d.ts +0 -5
- package/dist/clis/yollomi/face-swap.d.ts +0 -5
- package/dist/clis/yollomi/generate.d.ts +0 -9
- package/dist/clis/yollomi/models.d.ts +0 -1
- package/dist/clis/yollomi/object-remover.d.ts +0 -4
- package/dist/clis/yollomi/remove-bg.d.ts +0 -4
- package/dist/clis/yollomi/restore.d.ts +0 -4
- package/dist/clis/yollomi/try-on.d.ts +0 -4
- package/dist/clis/yollomi/upload.d.ts +0 -7
- package/dist/clis/yollomi/upscale.d.ts +0 -4
- package/dist/clis/yollomi/utils.d.ts +0 -45
- package/dist/clis/yollomi/video.d.ts +0 -5
- package/dist/clis/youtube/channel.d.ts +0 -1
- package/dist/clis/youtube/comments.d.ts +0 -1
- package/dist/clis/youtube/search.d.ts +0 -1
- package/dist/clis/youtube/transcript-group.d.ts +0 -44
- package/dist/clis/youtube/transcript-group.test.d.ts +0 -1
- package/dist/clis/youtube/transcript.d.ts +0 -1
- package/dist/clis/youtube/utils.d.ts +0 -17
- package/dist/clis/youtube/utils.test.d.ts +0 -1
- package/dist/clis/youtube/video.d.ts +0 -1
- package/dist/clis/yuanbao/ask.d.ts +0 -21
- package/dist/clis/yuanbao/ask.test.d.ts +0 -1
- package/dist/clis/yuanbao/new.d.ts +0 -1
- package/dist/clis/yuanbao/new.test.d.ts +0 -1
- package/dist/clis/yuanbao/shared.d.ts +0 -13
- package/dist/clis/zhihu/answer.d.ts +0 -1
- package/dist/clis/zhihu/answer.test.d.ts +0 -1
- package/dist/clis/zhihu/comment.d.ts +0 -1
- package/dist/clis/zhihu/comment.test.d.ts +0 -1
- package/dist/clis/zhihu/download.d.ts +0 -7
- package/dist/clis/zhihu/download.test.d.ts +0 -1
- package/dist/clis/zhihu/favorite.d.ts +0 -1
- package/dist/clis/zhihu/favorite.test.d.ts +0 -1
- package/dist/clis/zhihu/follow.d.ts +0 -1
- package/dist/clis/zhihu/follow.test.d.ts +0 -1
- package/dist/clis/zhihu/hot.d.ts +0 -1
- package/dist/clis/zhihu/like.d.ts +0 -1
- package/dist/clis/zhihu/like.test.d.ts +0 -1
- package/dist/clis/zhihu/question.d.ts +0 -1
- package/dist/clis/zhihu/question.test.d.ts +0 -1
- package/dist/clis/zhihu/search.d.ts +0 -1
- package/dist/clis/zhihu/target.d.ts +0 -24
- package/dist/clis/zhihu/target.test.d.ts +0 -1
- package/dist/clis/zhihu/write-shared.d.ts +0 -32
- package/dist/clis/zhihu/write-shared.test.d.ts +0 -1
- package/dist/clis/zsxq/dynamics.d.ts +0 -1
- package/dist/clis/zsxq/groups.d.ts +0 -1
- package/dist/clis/zsxq/search.d.ts +0 -1
- package/dist/clis/zsxq/search.test.d.ts +0 -1
- package/dist/clis/zsxq/topic.d.ts +0 -1
- package/dist/clis/zsxq/topic.test.d.ts +0 -1
- package/dist/clis/zsxq/topics.d.ts +0 -1
- package/dist/clis/zsxq/topics.test.d.ts +0 -1
- package/dist/clis/zsxq/utils.d.ts +0 -97
- package/dist/src/clis/binance/asks.d.ts +0 -1
- package/dist/src/clis/binance/asks.js +0 -20
- package/dist/src/clis/binance/commands.test.d.ts +0 -3
- package/dist/src/clis/binance/commands.test.js +0 -58
- package/dist/src/clis/binance/depth.d.ts +0 -1
- package/dist/src/clis/binance/depth.js +0 -20
- package/dist/src/clis/binance/gainers.d.ts +0 -1
- package/dist/src/clis/binance/gainers.js +0 -21
- package/dist/src/clis/binance/klines.d.ts +0 -1
- package/dist/src/clis/binance/klines.js +0 -20
- package/dist/src/clis/binance/losers.d.ts +0 -1
- package/dist/src/clis/binance/losers.js +0 -21
- package/dist/src/clis/binance/pairs.d.ts +0 -1
- package/dist/src/clis/binance/pairs.js +0 -20
- package/dist/src/clis/binance/price.d.ts +0 -1
- package/dist/src/clis/binance/price.js +0 -17
- package/dist/src/clis/binance/prices.d.ts +0 -1
- package/dist/src/clis/binance/prices.js +0 -18
- package/dist/src/clis/binance/ticker.d.ts +0 -1
- package/dist/src/clis/binance/ticker.js +0 -20
- package/dist/src/clis/binance/top.d.ts +0 -1
- package/dist/src/clis/binance/top.js +0 -20
- package/dist/src/clis/binance/trades.d.ts +0 -1
- package/dist/src/clis/binance/trades.js +0 -19
- package/scripts/clean-yaml.cjs +0 -19
- package/scripts/test-site.mjs +0 -70
- /package/{dist/clis → clis}/1688/assets.js +0 -0
- /package/{dist/clis → clis}/1688/assets.test.js +0 -0
- /package/{dist/clis → clis}/1688/download.js +0 -0
- /package/{dist/clis → clis}/1688/download.test.js +0 -0
- /package/{dist/clis → clis}/1688/item.js +0 -0
- /package/{dist/clis → clis}/1688/item.test.js +0 -0
- /package/{dist/clis → clis}/1688/search.js +0 -0
- /package/{dist/clis → clis}/1688/search.test.js +0 -0
- /package/{dist/clis → clis}/1688/shared.js +0 -0
- /package/{dist/clis → clis}/1688/shared.test.js +0 -0
- /package/{dist/clis → clis}/1688/store.js +0 -0
- /package/{dist/clis → clis}/1688/store.test.js +0 -0
- /package/{dist/clis → clis}/36kr/article.js +0 -0
- /package/{dist/clis → clis}/36kr/hot.js +0 -0
- /package/{dist/clis → clis}/36kr/hot.test.js +0 -0
- /package/{dist/clis → clis}/36kr/news.js +0 -0
- /package/{dist/clis → clis}/36kr/news.test.js +0 -0
- /package/{dist/clis → clis}/36kr/search.js +0 -0
- /package/{dist/clis → clis}/_shared/common.js +0 -0
- /package/{dist/clis → clis}/_shared/desktop-commands.js +0 -0
- /package/{dist/clis → clis}/amazon/bestsellers.js +0 -0
- /package/{dist/clis → clis}/amazon/bestsellers.test.js +0 -0
- /package/{dist/clis → clis}/amazon/discussion.js +0 -0
- /package/{dist/clis → clis}/amazon/discussion.test.js +0 -0
- /package/{dist/clis → clis}/amazon/movers-shakers.js +0 -0
- /package/{dist/clis → clis}/amazon/new-releases.js +0 -0
- /package/{dist/clis → clis}/amazon/offer.js +0 -0
- /package/{dist/clis → clis}/amazon/offer.test.js +0 -0
- /package/{dist/clis → clis}/amazon/product.js +0 -0
- /package/{dist/clis → clis}/amazon/product.test.js +0 -0
- /package/{dist/clis → clis}/amazon/rankings.js +0 -0
- /package/{dist/clis → clis}/amazon/rankings.test.js +0 -0
- /package/{dist/clis → clis}/amazon/search.js +0 -0
- /package/{dist/clis → clis}/amazon/search.test.js +0 -0
- /package/{dist/clis → clis}/amazon/shared.js +0 -0
- /package/{dist/clis → clis}/amazon/shared.test.js +0 -0
- /package/{dist/clis → clis}/antigravity/dump.js +0 -0
- /package/{dist/clis → clis}/antigravity/extract-code.js +0 -0
- /package/{dist/clis → clis}/antigravity/model.js +0 -0
- /package/{dist/clis → clis}/antigravity/new.js +0 -0
- /package/{dist/clis → clis}/antigravity/read.js +0 -0
- /package/{dist/clis → clis}/antigravity/send.js +0 -0
- /package/{dist/clis → clis}/antigravity/serve.js +0 -0
- /package/{dist/clis → clis}/antigravity/status.js +0 -0
- /package/{dist/clis → clis}/antigravity/watch.js +0 -0
- /package/{dist/clis → clis}/apple-podcasts/commands.test.js +0 -0
- /package/{dist/clis → clis}/apple-podcasts/episodes.js +0 -0
- /package/{dist/clis → clis}/apple-podcasts/search.js +0 -0
- /package/{dist/clis → clis}/apple-podcasts/top.js +0 -0
- /package/{dist/clis → clis}/apple-podcasts/utils.js +0 -0
- /package/{dist/clis → clis}/apple-podcasts/utils.test.js +0 -0
- /package/{dist/clis → clis}/arxiv/paper.js +0 -0
- /package/{dist/clis → clis}/arxiv/search.js +0 -0
- /package/{dist/clis → clis}/arxiv/utils.js +0 -0
- /package/{dist/clis → clis}/band/bands.js +0 -0
- /package/{dist/clis → clis}/band/mentions.js +0 -0
- /package/{dist/clis → clis}/band/post.js +0 -0
- /package/{dist/clis → clis}/band/posts.js +0 -0
- /package/{dist/clis → clis}/barchart/flow.js +0 -0
- /package/{dist/clis → clis}/barchart/greeks.js +0 -0
- /package/{dist/clis → clis}/barchart/options.js +0 -0
- /package/{dist/clis → clis}/bbc/news.js +0 -0
- /package/{dist/clis → clis}/bilibili/comments.js +0 -0
- /package/{dist/clis → clis}/bilibili/comments.test.js +0 -0
- /package/{dist/clis → clis}/bilibili/download.js +0 -0
- /package/{dist/clis → clis}/bilibili/dynamic.js +0 -0
- /package/{dist/clis → clis}/bilibili/dynamic.test.js +0 -0
- /package/{dist/clis → clis}/bilibili/favorite.js +0 -0
- /package/{dist/clis → clis}/bilibili/feed.js +0 -0
- /package/{dist/clis → clis}/bilibili/history.js +0 -0
- /package/{dist/clis → clis}/bilibili/hot.js +0 -0
- /package/{dist/clis → clis}/bilibili/me.js +0 -0
- /package/{dist/clis → clis}/bilibili/ranking.js +0 -0
- /package/{dist/clis → clis}/bilibili/search.js +0 -0
- /package/{dist/clis → clis}/bilibili/subtitle.js +0 -0
- /package/{dist/clis → clis}/bilibili/subtitle.test.js +0 -0
- /package/{dist/clis → clis}/bilibili/user-videos.js +0 -0
- /package/{dist/clis → clis}/bilibili/utils.js +0 -0
- /package/{dist/clis → clis}/bilibili/utils.test.js +0 -0
- /package/{dist/clis → clis}/bloomberg/businessweek.js +0 -0
- /package/{dist/clis → clis}/bloomberg/economics.js +0 -0
- /package/{dist/clis → clis}/bloomberg/feeds.js +0 -0
- /package/{dist/clis → clis}/bloomberg/industries.js +0 -0
- /package/{dist/clis → clis}/bloomberg/main.js +0 -0
- /package/{dist/clis → clis}/bloomberg/markets.js +0 -0
- /package/{dist/clis → clis}/bloomberg/news.js +0 -0
- /package/{dist/clis → clis}/bloomberg/opinions.js +0 -0
- /package/{dist/clis → clis}/bloomberg/politics.js +0 -0
- /package/{dist/clis → clis}/bloomberg/tech.js +0 -0
- /package/{dist/clis → clis}/bloomberg/utils.js +0 -0
- /package/{dist/clis → clis}/bloomberg/utils.test.js +0 -0
- /package/{dist/clis → clis}/bluesky/feeds.js +0 -0
- /package/{dist/clis → clis}/bluesky/followers.js +0 -0
- /package/{dist/clis → clis}/bluesky/following.js +0 -0
- /package/{dist/clis → clis}/bluesky/profile.js +0 -0
- /package/{dist/clis → clis}/bluesky/search.js +0 -0
- /package/{dist/clis → clis}/bluesky/starter-packs.js +0 -0
- /package/{dist/clis → clis}/bluesky/thread.js +0 -0
- /package/{dist/clis → clis}/bluesky/trending.js +0 -0
- /package/{dist/clis → clis}/bluesky/user.js +0 -0
- /package/{dist/clis → clis}/boss/batchgreet.js +0 -0
- /package/{dist/clis → clis}/boss/chatlist.js +0 -0
- /package/{dist/clis → clis}/boss/chatmsg.js +0 -0
- /package/{dist/clis → clis}/boss/detail.js +0 -0
- /package/{dist/clis → clis}/boss/exchange.js +0 -0
- /package/{dist/clis → clis}/boss/greet.js +0 -0
- /package/{dist/clis → clis}/boss/invite.js +0 -0
- /package/{dist/clis → clis}/boss/joblist.js +0 -0
- /package/{dist/clis → clis}/boss/mark.js +0 -0
- /package/{dist/clis → clis}/boss/recommend.js +0 -0
- /package/{dist/clis → clis}/boss/resume.js +0 -0
- /package/{dist/clis → clis}/boss/search.js +0 -0
- /package/{dist/clis → clis}/boss/send.js +0 -0
- /package/{dist/clis → clis}/boss/stats.js +0 -0
- /package/{dist/clis → clis}/boss/utils.js +0 -0
- /package/{dist/clis → clis}/chaoxing/assignments.js +0 -0
- /package/{dist/clis → clis}/chaoxing/exams.js +0 -0
- /package/{dist/clis → clis}/chaoxing/utils.js +0 -0
- /package/{dist/clis → clis}/chaoxing/utils.test.js +0 -0
- /package/{dist/clis → clis}/chatgpt/ask.js +0 -0
- /package/{dist/clis → clis}/chatgpt/ax.js +0 -0
- /package/{dist/clis → clis}/chatgpt/model.js +0 -0
- /package/{dist/clis → clis}/chatgpt/new.js +0 -0
- /package/{dist/clis → clis}/chatgpt/read.js +0 -0
- /package/{dist/clis → clis}/chatgpt/send.js +0 -0
- /package/{dist/clis → clis}/chatgpt/status.js +0 -0
- /package/{dist/clis → clis}/chatwise/ask.js +0 -0
- /package/{dist/clis → clis}/chatwise/export.js +0 -0
- /package/{dist/clis → clis}/chatwise/history.js +0 -0
- /package/{dist/clis → clis}/chatwise/model.js +0 -0
- /package/{dist/clis → clis}/chatwise/new.js +0 -0
- /package/{dist/clis → clis}/chatwise/read.js +0 -0
- /package/{dist/clis → clis}/chatwise/screenshot.js +0 -0
- /package/{dist/clis → clis}/chatwise/send.js +0 -0
- /package/{dist/clis → clis}/chatwise/status.js +0 -0
- /package/{dist/clis → clis}/cnki/search.js +0 -0
- /package/{dist/clis → clis}/cnki/search.test.js +0 -0
- /package/{dist/clis → clis}/codex/ask.js +0 -0
- /package/{dist/clis → clis}/codex/dump.js +0 -0
- /package/{dist/clis → clis}/codex/export.js +0 -0
- /package/{dist/clis → clis}/codex/extract-diff.js +0 -0
- /package/{dist/clis → clis}/codex/history.js +0 -0
- /package/{dist/clis → clis}/codex/model.js +0 -0
- /package/{dist/clis → clis}/codex/new.js +0 -0
- /package/{dist/clis → clis}/codex/read.js +0 -0
- /package/{dist/clis → clis}/codex/screenshot.js +0 -0
- /package/{dist/clis → clis}/codex/send.js +0 -0
- /package/{dist/clis → clis}/codex/status.js +0 -0
- /package/{dist/clis → clis}/coupang/add-to-cart.js +0 -0
- /package/{dist/clis → clis}/coupang/search.js +0 -0
- /package/{dist/clis → clis}/coupang/utils.js +0 -0
- /package/{dist/clis → clis}/coupang/utils.test.js +0 -0
- /package/{dist/clis → clis}/ctrip/search.js +0 -0
- /package/{dist/clis → clis}/ctrip/search.test.js +0 -0
- /package/{dist/clis → clis}/cursor/ask.js +0 -0
- /package/{dist/clis → clis}/cursor/composer.js +0 -0
- /package/{dist/clis → clis}/cursor/dump.js +0 -0
- /package/{dist/clis → clis}/cursor/export.js +0 -0
- /package/{dist/clis → clis}/cursor/extract-code.js +0 -0
- /package/{dist/clis → clis}/cursor/history.js +0 -0
- /package/{dist/clis → clis}/cursor/model.js +0 -0
- /package/{dist/clis → clis}/cursor/new.js +0 -0
- /package/{dist/clis → clis}/cursor/read.js +0 -0
- /package/{dist/clis → clis}/cursor/screenshot.js +0 -0
- /package/{dist/clis → clis}/cursor/send.js +0 -0
- /package/{dist/clis → clis}/cursor/status.js +0 -0
- /package/{dist/clis → clis}/devto/tag.js +0 -0
- /package/{dist/clis → clis}/devto/top.js +0 -0
- /package/{dist/clis → clis}/devto/user.js +0 -0
- /package/{dist/clis → clis}/dictionary/examples.js +0 -0
- /package/{dist/clis → clis}/dictionary/search.js +0 -0
- /package/{dist/clis → clis}/dictionary/synonyms.js +0 -0
- /package/{dist/clis → clis}/discord-app/channels.js +0 -0
- /package/{dist/clis → clis}/discord-app/members.js +0 -0
- /package/{dist/clis → clis}/discord-app/read.js +0 -0
- /package/{dist/clis → clis}/discord-app/search.js +0 -0
- /package/{dist/clis → clis}/discord-app/send.js +0 -0
- /package/{dist/clis → clis}/discord-app/servers.js +0 -0
- /package/{dist/clis → clis}/discord-app/status.js +0 -0
- /package/{dist/clis → clis}/douban/book-hot.js +0 -0
- /package/{dist/clis → clis}/douban/download.js +0 -0
- /package/{dist/clis → clis}/douban/download.test.js +0 -0
- /package/{dist/clis → clis}/douban/marks.js +0 -0
- /package/{dist/clis → clis}/douban/movie-hot.js +0 -0
- /package/{dist/clis → clis}/douban/photos.js +0 -0
- /package/{dist/clis → clis}/douban/reviews.js +0 -0
- /package/{dist/clis → clis}/douban/search.js +0 -0
- /package/{dist/clis → clis}/douban/subject.js +0 -0
- /package/{dist/clis → clis}/douban/top250.js +0 -0
- /package/{dist/clis → clis}/douban/utils.js +0 -0
- /package/{dist/clis → clis}/douban/utils.test.js +0 -0
- /package/{dist/clis → clis}/doubao/ask.js +0 -0
- /package/{dist/clis → clis}/doubao/detail.js +0 -0
- /package/{dist/clis → clis}/doubao/detail.test.js +0 -0
- /package/{dist/clis → clis}/doubao/history.js +0 -0
- /package/{dist/clis → clis}/doubao/history.test.js +0 -0
- /package/{dist/clis → clis}/doubao/meeting-summary.js +0 -0
- /package/{dist/clis → clis}/doubao/meeting-transcript.js +0 -0
- /package/{dist/clis → clis}/doubao/new.js +0 -0
- /package/{dist/clis → clis}/doubao/read.js +0 -0
- /package/{dist/clis → clis}/doubao/send.js +0 -0
- /package/{dist/clis → clis}/doubao/status.js +0 -0
- /package/{dist/clis → clis}/doubao/utils.js +0 -0
- /package/{dist/clis → clis}/doubao/utils.test.js +0 -0
- /package/{dist/clis → clis}/doubao-app/ask.js +0 -0
- /package/{dist/clis → clis}/doubao-app/dump.js +0 -0
- /package/{dist/clis → clis}/doubao-app/new.js +0 -0
- /package/{dist/clis → clis}/doubao-app/read.js +0 -0
- /package/{dist/clis → clis}/doubao-app/screenshot.js +0 -0
- /package/{dist/clis → clis}/doubao-app/send.js +0 -0
- /package/{dist/clis → clis}/doubao-app/status.js +0 -0
- /package/{dist/clis → clis}/doubao-app/utils.js +0 -0
- /package/{dist/clis → clis}/douyin/_shared/browser-fetch.js +0 -0
- /package/{dist/clis → clis}/douyin/_shared/browser-fetch.test.js +0 -0
- /package/{dist/clis → clis}/douyin/_shared/creation-id.js +0 -0
- /package/{dist/clis → clis}/douyin/_shared/creation-id.test.js +0 -0
- /package/{dist/clis → clis}/douyin/_shared/imagex-upload.js +0 -0
- /package/{dist/clis → clis}/douyin/_shared/imagex-upload.test.js +0 -0
- /package/{dist/clis → clis}/douyin/_shared/public-api.js +0 -0
- /package/{dist/clis → clis}/douyin/_shared/sts2.js +0 -0
- /package/{dist/clis → clis}/douyin/_shared/sts2.test.js +0 -0
- /package/{dist/clis → clis}/douyin/_shared/text-extra.js +0 -0
- /package/{dist/clis → clis}/douyin/_shared/text-extra.test.js +0 -0
- /package/{dist/clis → clis}/douyin/_shared/timing.js +0 -0
- /package/{dist/clis → clis}/douyin/_shared/timing.test.js +0 -0
- /package/{dist/clis → clis}/douyin/_shared/tos-upload-short-read.test.js +0 -0
- /package/{dist/clis → clis}/douyin/_shared/tos-upload.js +0 -0
- /package/{dist/clis → clis}/douyin/_shared/tos-upload.test.js +0 -0
- /package/{dist/clis → clis}/douyin/_shared/transcode.js +0 -0
- /package/{dist/clis → clis}/douyin/_shared/transcode.test.js +0 -0
- /package/{dist/clis/1688/assets.test.d.ts → clis/douyin/_shared/types.js} +0 -0
- /package/{dist/clis → clis}/douyin/activities.js +0 -0
- /package/{dist/clis → clis}/douyin/activities.test.js +0 -0
- /package/{dist/clis → clis}/douyin/collections.js +0 -0
- /package/{dist/clis → clis}/douyin/collections.test.js +0 -0
- /package/{dist/clis → clis}/douyin/delete.js +0 -0
- /package/{dist/clis → clis}/douyin/delete.test.js +0 -0
- /package/{dist/clis → clis}/douyin/draft.js +0 -0
- /package/{dist/clis → clis}/douyin/draft.test.js +0 -0
- /package/{dist/clis → clis}/douyin/drafts.js +0 -0
- /package/{dist/clis → clis}/douyin/drafts.test.js +0 -0
- /package/{dist/clis → clis}/douyin/hashtag.js +0 -0
- /package/{dist/clis → clis}/douyin/hashtag.test.js +0 -0
- /package/{dist/clis → clis}/douyin/location.js +0 -0
- /package/{dist/clis → clis}/douyin/location.test.js +0 -0
- /package/{dist/clis → clis}/douyin/profile.js +0 -0
- /package/{dist/clis → clis}/douyin/profile.test.js +0 -0
- /package/{dist/clis → clis}/douyin/publish.js +0 -0
- /package/{dist/clis → clis}/douyin/publish.test.js +0 -0
- /package/{dist/clis → clis}/douyin/stats.js +0 -0
- /package/{dist/clis → clis}/douyin/stats.test.js +0 -0
- /package/{dist/clis → clis}/douyin/update.js +0 -0
- /package/{dist/clis → clis}/douyin/update.test.js +0 -0
- /package/{dist/clis → clis}/douyin/user-videos.js +0 -0
- /package/{dist/clis → clis}/douyin/user-videos.test.js +0 -0
- /package/{dist/clis → clis}/douyin/videos.js +0 -0
- /package/{dist/clis → clis}/douyin/videos.test.js +0 -0
- /package/{dist/clis → clis}/facebook/add-friend.js +0 -0
- /package/{dist/clis → clis}/facebook/events.js +0 -0
- /package/{dist/clis → clis}/facebook/feed.js +0 -0
- /package/{dist/clis → clis}/facebook/friends.js +0 -0
- /package/{dist/clis → clis}/facebook/groups.js +0 -0
- /package/{dist/clis → clis}/facebook/join-group.js +0 -0
- /package/{dist/clis → clis}/facebook/memories.js +0 -0
- /package/{dist/clis → clis}/facebook/notifications.js +0 -0
- /package/{dist/clis → clis}/facebook/profile.js +0 -0
- /package/{dist/clis → clis}/facebook/search.js +0 -0
- /package/{dist/clis → clis}/facebook/search.test.js +0 -0
- /package/{dist/clis → clis}/gemini/ask.js +0 -0
- /package/{dist/clis → clis}/gemini/ask.test.js +0 -0
- /package/{dist/clis → clis}/gemini/deep-research-result.js +0 -0
- /package/{dist/clis → clis}/gemini/deep-research-result.test.js +0 -0
- /package/{dist/clis → clis}/gemini/deep-research.js +0 -0
- /package/{dist/clis → clis}/gemini/deep-research.test.js +0 -0
- /package/{dist/clis → clis}/gemini/image.js +0 -0
- /package/{dist/clis → clis}/gemini/new.js +0 -0
- /package/{dist/clis → clis}/gemini/reply-state.test.js +0 -0
- /package/{dist/clis → clis}/gemini/utils.js +0 -0
- /package/{dist/clis → clis}/gemini/utils.test.js +0 -0
- /package/{dist/clis → clis}/gitee/index.js +0 -0
- /package/{dist/clis → clis}/gitee/search.js +0 -0
- /package/{dist/clis → clis}/gitee/trending.js +0 -0
- /package/{dist/clis → clis}/gitee/user.js +0 -0
- /package/{dist/clis → clis}/gitee/user.test.js +0 -0
- /package/{dist/clis → clis}/google/news.js +0 -0
- /package/{dist/clis → clis}/google/search.js +0 -0
- /package/{dist/clis → clis}/google/suggest.js +0 -0
- /package/{dist/clis → clis}/google/trends.js +0 -0
- /package/{dist/clis → clis}/google/utils.js +0 -0
- /package/{dist/clis → clis}/google/utils.test.js +0 -0
- /package/{dist/clis → clis}/grok/ask.js +0 -0
- /package/{dist/clis → clis}/grok/ask.test.js +0 -0
- /package/{dist/clis → clis}/hackernews/ask.js +0 -0
- /package/{dist/clis → clis}/hackernews/best.js +0 -0
- /package/{dist/clis → clis}/hackernews/jobs.js +0 -0
- /package/{dist/clis → clis}/hackernews/new.js +0 -0
- /package/{dist/clis → clis}/hackernews/search.js +0 -0
- /package/{dist/clis → clis}/hackernews/show.js +0 -0
- /package/{dist/clis → clis}/hackernews/top.js +0 -0
- /package/{dist/clis → clis}/hackernews/user.js +0 -0
- /package/{dist/clis → clis}/hf/top.js +0 -0
- /package/{dist/clis → clis}/hupu/detail.js +0 -0
- /package/{dist/clis → clis}/hupu/hot.js +0 -0
- /package/{dist/clis → clis}/hupu/like.js +0 -0
- /package/{dist/clis → clis}/hupu/mentions.js +0 -0
- /package/{dist/clis → clis}/hupu/reply.js +0 -0
- /package/{dist/clis → clis}/hupu/search.js +0 -0
- /package/{dist/clis → clis}/hupu/unlike.js +0 -0
- /package/{dist/clis → clis}/hupu/utils.js +0 -0
- /package/{dist/clis → clis}/imdb/person.js +0 -0
- /package/{dist/clis → clis}/imdb/reviews.js +0 -0
- /package/{dist/clis → clis}/imdb/search.js +0 -0
- /package/{dist/clis → clis}/imdb/title.js +0 -0
- /package/{dist/clis → clis}/imdb/top.js +0 -0
- /package/{dist/clis → clis}/imdb/trending.js +0 -0
- /package/{dist/clis → clis}/imdb/utils.js +0 -0
- /package/{dist/clis → clis}/imdb/utils.test.js +0 -0
- /package/{dist/clis → clis}/instagram/_shared/private-publish.js +0 -0
- /package/{dist/clis → clis}/instagram/_shared/private-publish.test.js +0 -0
- /package/{dist/clis → clis}/instagram/_shared/protocol-capture.js +0 -0
- /package/{dist/clis → clis}/instagram/_shared/protocol-capture.test.js +0 -0
- /package/{dist/clis → clis}/instagram/_shared/runtime-info.js +0 -0
- /package/{dist/clis → clis}/instagram/comment.js +0 -0
- /package/{dist/clis → clis}/instagram/download.js +0 -0
- /package/{dist/clis → clis}/instagram/download.test.js +0 -0
- /package/{dist/clis → clis}/instagram/explore.js +0 -0
- /package/{dist/clis → clis}/instagram/follow.js +0 -0
- /package/{dist/clis → clis}/instagram/followers.js +0 -0
- /package/{dist/clis → clis}/instagram/following.js +0 -0
- /package/{dist/clis → clis}/instagram/like.js +0 -0
- /package/{dist/clis → clis}/instagram/note.js +0 -0
- /package/{dist/clis → clis}/instagram/note.test.js +0 -0
- /package/{dist/clis → clis}/instagram/post.js +0 -0
- /package/{dist/clis → clis}/instagram/post.test.js +0 -0
- /package/{dist/clis → clis}/instagram/profile.js +0 -0
- /package/{dist/clis → clis}/instagram/reel.js +0 -0
- /package/{dist/clis → clis}/instagram/reel.test.js +0 -0
- /package/{dist/clis → clis}/instagram/save.js +0 -0
- /package/{dist/clis → clis}/instagram/saved.js +0 -0
- /package/{dist/clis → clis}/instagram/search.js +0 -0
- /package/{dist/clis → clis}/instagram/story.js +0 -0
- /package/{dist/clis → clis}/instagram/story.test.js +0 -0
- /package/{dist/clis → clis}/instagram/unfollow.js +0 -0
- /package/{dist/clis → clis}/instagram/unlike.js +0 -0
- /package/{dist/clis → clis}/instagram/unsave.js +0 -0
- /package/{dist/clis → clis}/instagram/user.js +0 -0
- /package/{dist/clis → clis}/jd/add-cart.js +0 -0
- /package/{dist/clis → clis}/jd/cart.js +0 -0
- /package/{dist/clis → clis}/jd/commands.test.js +0 -0
- /package/{dist/clis → clis}/jd/detail.js +0 -0
- /package/{dist/clis → clis}/jd/item.js +0 -0
- /package/{dist/clis → clis}/jd/item.test.js +0 -0
- /package/{dist/clis → clis}/jd/reviews.js +0 -0
- /package/{dist/clis → clis}/jd/search.js +0 -0
- /package/{dist/clis → clis}/jianyu/detail.js +0 -0
- /package/{dist/clis → clis}/jianyu/search.js +0 -0
- /package/{dist/clis → clis}/jianyu/search.test.js +0 -0
- /package/{dist/clis → clis}/jianyu/shared/china-bid-search.js +0 -0
- /package/{dist/clis → clis}/jianyu/shared/procurement-contract.js +0 -0
- /package/{dist/clis → clis}/jianyu/shared/procurement-contract.test.js +0 -0
- /package/{dist/clis → clis}/jianyu/shared/procurement-detail.js +0 -0
- /package/{dist/clis → clis}/jianyu/shared/procurement-detail.test.js +0 -0
- /package/{dist/clis → clis}/jike/comment.js +0 -0
- /package/{dist/clis → clis}/jike/create.js +0 -0
- /package/{dist/clis → clis}/jike/feed.js +0 -0
- /package/{dist/clis → clis}/jike/like.js +0 -0
- /package/{dist/clis → clis}/jike/notifications.js +0 -0
- /package/{dist/clis → clis}/jike/post.js +0 -0
- /package/{dist/clis → clis}/jike/repost.js +0 -0
- /package/{dist/clis → clis}/jike/search.js +0 -0
- /package/{dist/clis → clis}/jike/topic.js +0 -0
- /package/{dist/clis → clis}/jike/user.js +0 -0
- /package/{dist/clis → clis}/jike/utils.js +0 -0
- /package/{dist/clis → clis}/jimeng/generate.js +0 -0
- /package/{dist/clis → clis}/jimeng/history.js +0 -0
- /package/{dist/clis → clis}/jimeng/new.js +0 -0
- /package/{dist/clis → clis}/jimeng/workspaces.js +0 -0
- /package/{dist/clis → clis}/lesswrong/_helpers.js +0 -0
- /package/{dist/clis → clis}/lesswrong/comments.js +0 -0
- /package/{dist/clis → clis}/lesswrong/curated.js +0 -0
- /package/{dist/clis → clis}/lesswrong/frontpage.js +0 -0
- /package/{dist/clis → clis}/lesswrong/new.js +0 -0
- /package/{dist/clis → clis}/lesswrong/read.js +0 -0
- /package/{dist/clis → clis}/lesswrong/sequences.js +0 -0
- /package/{dist/clis → clis}/lesswrong/shortform.js +0 -0
- /package/{dist/clis → clis}/lesswrong/tag.js +0 -0
- /package/{dist/clis → clis}/lesswrong/tags.js +0 -0
- /package/{dist/clis → clis}/lesswrong/top-month.js +0 -0
- /package/{dist/clis → clis}/lesswrong/top-week.js +0 -0
- /package/{dist/clis → clis}/lesswrong/top-year.js +0 -0
- /package/{dist/clis → clis}/lesswrong/top.js +0 -0
- /package/{dist/clis → clis}/lesswrong/user-posts.js +0 -0
- /package/{dist/clis → clis}/lesswrong/user.js +0 -0
- /package/{dist/clis → clis}/linkedin/search.js +0 -0
- /package/{dist/clis → clis}/linkedin/timeline.js +0 -0
- /package/{dist/clis → clis}/linkedin/timeline.test.js +0 -0
- /package/{dist/clis → clis}/linux-do/category.js +0 -0
- /package/{dist/clis → clis}/linux-do/feed.test.js +0 -0
- /package/{dist/clis → clis}/linux-do/hot.js +0 -0
- /package/{dist/clis → clis}/linux-do/latest.js +0 -0
- /package/{dist/clis → clis}/linux-do/topic-content.js +0 -0
- /package/{dist/clis → clis}/lobsters/active.js +0 -0
- /package/{dist/clis → clis}/lobsters/hot.js +0 -0
- /package/{dist/clis → clis}/lobsters/newest.js +0 -0
- /package/{dist/clis → clis}/lobsters/tag.js +0 -0
- /package/{dist/clis → clis}/medium/feed.js +0 -0
- /package/{dist/clis → clis}/medium/search.js +0 -0
- /package/{dist/clis → clis}/medium/user.js +0 -0
- /package/{dist/clis → clis}/medium/utils.js +0 -0
- /package/{dist/clis → clis}/notebooklm/compat.test.js +0 -0
- /package/{dist/clis → clis}/notebooklm/current.js +0 -0
- /package/{dist/clis → clis}/notebooklm/get.js +0 -0
- /package/{dist/clis → clis}/notebooklm/history.js +0 -0
- /package/{dist/clis → clis}/notebooklm/history.test.js +0 -0
- /package/{dist/clis → clis}/notebooklm/list.js +0 -0
- /package/{dist/clis → clis}/notebooklm/note-list.js +0 -0
- /package/{dist/clis → clis}/notebooklm/note-list.test.js +0 -0
- /package/{dist/clis → clis}/notebooklm/notes-get.js +0 -0
- /package/{dist/clis → clis}/notebooklm/notes-get.test.js +0 -0
- /package/{dist/clis → clis}/notebooklm/open.js +0 -0
- /package/{dist/clis → clis}/notebooklm/open.test.js +0 -0
- /package/{dist/clis → clis}/notebooklm/rpc.js +0 -0
- /package/{dist/clis → clis}/notebooklm/rpc.test.js +0 -0
- /package/{dist/clis → clis}/notebooklm/shared.js +0 -0
- /package/{dist/clis → clis}/notebooklm/source-fulltext.js +0 -0
- /package/{dist/clis → clis}/notebooklm/source-fulltext.test.js +0 -0
- /package/{dist/clis → clis}/notebooklm/source-get.js +0 -0
- /package/{dist/clis → clis}/notebooklm/source-get.test.js +0 -0
- /package/{dist/clis → clis}/notebooklm/source-guide.js +0 -0
- /package/{dist/clis → clis}/notebooklm/source-guide.test.js +0 -0
- /package/{dist/clis → clis}/notebooklm/source-list.js +0 -0
- /package/{dist/clis → clis}/notebooklm/status.js +0 -0
- /package/{dist/clis → clis}/notebooklm/summary.js +0 -0
- /package/{dist/clis → clis}/notebooklm/summary.test.js +0 -0
- /package/{dist/clis → clis}/notebooklm/utils.js +0 -0
- /package/{dist/clis → clis}/notebooklm/utils.test.js +0 -0
- /package/{dist/clis → clis}/notion/export.js +0 -0
- /package/{dist/clis → clis}/notion/favorites.js +0 -0
- /package/{dist/clis → clis}/notion/new.js +0 -0
- /package/{dist/clis → clis}/notion/read.js +0 -0
- /package/{dist/clis → clis}/notion/search.js +0 -0
- /package/{dist/clis → clis}/notion/sidebar.js +0 -0
- /package/{dist/clis → clis}/notion/status.js +0 -0
- /package/{dist/clis → clis}/notion/write.js +0 -0
- /package/{dist/clis → clis}/ones/common.js +0 -0
- /package/{dist/clis → clis}/ones/enrich-tasks.js +0 -0
- /package/{dist/clis → clis}/ones/login.js +0 -0
- /package/{dist/clis → clis}/ones/logout.js +0 -0
- /package/{dist/clis → clis}/ones/me.js +0 -0
- /package/{dist/clis → clis}/ones/my-tasks.js +0 -0
- /package/{dist/clis → clis}/ones/resolve-labels.js +0 -0
- /package/{dist/clis → clis}/ones/task-helpers.js +0 -0
- /package/{dist/clis → clis}/ones/task-helpers.test.js +0 -0
- /package/{dist/clis → clis}/ones/task.js +0 -0
- /package/{dist/clis → clis}/ones/tasks.js +0 -0
- /package/{dist/clis → clis}/ones/token-info.js +0 -0
- /package/{dist/clis → clis}/ones/worklog.js +0 -0
- /package/{dist/clis → clis}/ones/worklog.test.js +0 -0
- /package/{dist/clis → clis}/paperreview/commands.test.js +0 -0
- /package/{dist/clis → clis}/paperreview/feedback.js +0 -0
- /package/{dist/clis → clis}/paperreview/review.js +0 -0
- /package/{dist/clis → clis}/paperreview/submit.js +0 -0
- /package/{dist/clis → clis}/paperreview/utils.js +0 -0
- /package/{dist/clis → clis}/paperreview/utils.test.js +0 -0
- /package/{dist/clis → clis}/pixiv/detail.js +0 -0
- /package/{dist/clis → clis}/pixiv/download.js +0 -0
- /package/{dist/clis → clis}/pixiv/download.test.js +0 -0
- /package/{dist/clis → clis}/pixiv/illusts.js +0 -0
- /package/{dist/clis → clis}/pixiv/illusts.test.js +0 -0
- /package/{dist/clis → clis}/pixiv/ranking.js +0 -0
- /package/{dist/clis → clis}/pixiv/search.js +0 -0
- /package/{dist/clis → clis}/pixiv/search.test.js +0 -0
- /package/{dist/clis → clis}/pixiv/test-utils.js +0 -0
- /package/{dist/clis → clis}/pixiv/user.js +0 -0
- /package/{dist/clis → clis}/pixiv/utils.js +0 -0
- /package/{dist/clis → clis}/producthunt/browse.js +0 -0
- /package/{dist/clis → clis}/producthunt/hot.js +0 -0
- /package/{dist/clis → clis}/producthunt/posts.js +0 -0
- /package/{dist/clis → clis}/producthunt/today.js +0 -0
- /package/{dist/clis → clis}/producthunt/utils.js +0 -0
- /package/{dist/clis → clis}/producthunt/utils.test.js +0 -0
- /package/{dist/clis → clis}/quark/ls.js +0 -0
- /package/{dist/clis → clis}/quark/mkdir.js +0 -0
- /package/{dist/clis → clis}/quark/mv.js +0 -0
- /package/{dist/clis → clis}/quark/rename.js +0 -0
- /package/{dist/clis → clis}/quark/rm.js +0 -0
- /package/{dist/clis → clis}/quark/save.js +0 -0
- /package/{dist/clis → clis}/quark/share-tree.js +0 -0
- /package/{dist/clis → clis}/quark/utils.js +0 -0
- /package/{dist/clis → clis}/quark/utils.test.js +0 -0
- /package/{dist/clis → clis}/reddit/comment.js +0 -0
- /package/{dist/clis → clis}/reddit/frontpage.js +0 -0
- /package/{dist/clis → clis}/reddit/hot.js +0 -0
- /package/{dist/clis → clis}/reddit/popular.js +0 -0
- /package/{dist/clis → clis}/reddit/read.js +0 -0
- /package/{dist/clis → clis}/reddit/read.test.js +0 -0
- /package/{dist/clis → clis}/reddit/save.js +0 -0
- /package/{dist/clis → clis}/reddit/saved.js +0 -0
- /package/{dist/clis → clis}/reddit/search.js +0 -0
- /package/{dist/clis → clis}/reddit/subreddit.js +0 -0
- /package/{dist/clis → clis}/reddit/subscribe.js +0 -0
- /package/{dist/clis → clis}/reddit/upvote.js +0 -0
- /package/{dist/clis → clis}/reddit/upvoted.js +0 -0
- /package/{dist/clis → clis}/reddit/user-comments.js +0 -0
- /package/{dist/clis → clis}/reddit/user-posts.js +0 -0
- /package/{dist/clis → clis}/reddit/user.js +0 -0
- /package/{dist/clis → clis}/reuters/search.js +0 -0
- /package/{dist/clis → clis}/sinablog/article.js +0 -0
- /package/{dist/clis → clis}/sinablog/hot.js +0 -0
- /package/{dist/clis → clis}/sinablog/search.js +0 -0
- /package/{dist/clis → clis}/sinablog/user.js +0 -0
- /package/{dist/clis → clis}/sinablog/utils.js +0 -0
- /package/{dist/clis → clis}/sinafinance/news.js +0 -0
- /package/{dist/clis → clis}/sinafinance/rolling-news.js +0 -0
- /package/{dist/clis → clis}/sinafinance/stock-rank.js +0 -0
- /package/{dist/clis → clis}/sinafinance/stock.js +0 -0
- /package/{dist/clis → clis}/smzdm/search.js +0 -0
- /package/{dist/clis → clis}/spotify/spotify.js +0 -0
- /package/{dist/clis → clis}/spotify/utils.js +0 -0
- /package/{dist/clis → clis}/spotify/utils.test.js +0 -0
- /package/{dist/clis → clis}/stackoverflow/bounties.js +0 -0
- /package/{dist/clis → clis}/stackoverflow/hot.js +0 -0
- /package/{dist/clis → clis}/stackoverflow/search.js +0 -0
- /package/{dist/clis → clis}/stackoverflow/unanswered.js +0 -0
- /package/{dist/clis → clis}/steam/top-sellers.js +0 -0
- /package/{dist/clis → clis}/substack/feed.js +0 -0
- /package/{dist/clis → clis}/substack/publication.js +0 -0
- /package/{dist/clis → clis}/substack/search.js +0 -0
- /package/{dist/clis → clis}/substack/utils.js +0 -0
- /package/{dist/clis → clis}/substack/utils.test.js +0 -0
- /package/{dist/clis → clis}/taobao/add-cart.js +0 -0
- /package/{dist/clis → clis}/taobao/cart.js +0 -0
- /package/{dist/clis → clis}/taobao/commands.test.js +0 -0
- /package/{dist/clis → clis}/taobao/detail.js +0 -0
- /package/{dist/clis → clis}/taobao/reviews.js +0 -0
- /package/{dist/clis → clis}/taobao/search.js +0 -0
- /package/{dist/clis → clis}/tieba/commands.test.js +0 -0
- /package/{dist/clis → clis}/tieba/hot.js +0 -0
- /package/{dist/clis → clis}/tieba/posts.js +0 -0
- /package/{dist/clis → clis}/tieba/read.js +0 -0
- /package/{dist/clis → clis}/tieba/search.js +0 -0
- /package/{dist/clis → clis}/tieba/utils.js +0 -0
- /package/{dist/clis → clis}/tieba/utils.test.js +0 -0
- /package/{dist/clis → clis}/tiktok/comment.js +0 -0
- /package/{dist/clis → clis}/tiktok/explore.js +0 -0
- /package/{dist/clis → clis}/tiktok/follow.js +0 -0
- /package/{dist/clis → clis}/tiktok/following.js +0 -0
- /package/{dist/clis → clis}/tiktok/friends.js +0 -0
- /package/{dist/clis → clis}/tiktok/like.js +0 -0
- /package/{dist/clis → clis}/tiktok/live.js +0 -0
- /package/{dist/clis → clis}/tiktok/notifications.js +0 -0
- /package/{dist/clis → clis}/tiktok/profile.js +0 -0
- /package/{dist/clis → clis}/tiktok/save.js +0 -0
- /package/{dist/clis → clis}/tiktok/search.js +0 -0
- /package/{dist/clis → clis}/tiktok/unfollow.js +0 -0
- /package/{dist/clis → clis}/tiktok/unlike.js +0 -0
- /package/{dist/clis → clis}/tiktok/unsave.js +0 -0
- /package/{dist/clis → clis}/tiktok/user.js +0 -0
- /package/{dist/clis → clis}/twitter/accept.js +0 -0
- /package/{dist/clis → clis}/twitter/article.js +0 -0
- /package/{dist/clis → clis}/twitter/block.js +0 -0
- /package/{dist/clis → clis}/twitter/bookmark.js +0 -0
- /package/{dist/clis → clis}/twitter/bookmarks.js +0 -0
- /package/{dist/clis → clis}/twitter/delete.js +0 -0
- /package/{dist/clis → clis}/twitter/delete.test.js +0 -0
- /package/{dist/clis → clis}/twitter/download.js +0 -0
- /package/{dist/clis → clis}/twitter/follow.js +0 -0
- /package/{dist/clis → clis}/twitter/followers.js +0 -0
- /package/{dist/clis → clis}/twitter/following.js +0 -0
- /package/{dist/clis → clis}/twitter/hide-reply.js +0 -0
- /package/{dist/clis → clis}/twitter/like.js +0 -0
- /package/{dist/clis → clis}/twitter/likes.js +0 -0
- /package/{dist/clis → clis}/twitter/likes.test.js +0 -0
- /package/{dist/clis → clis}/twitter/notifications.js +0 -0
- /package/{dist/clis → clis}/twitter/post.js +0 -0
- /package/{dist/clis → clis}/twitter/post.test.js +0 -0
- /package/{dist/clis → clis}/twitter/profile.js +0 -0
- /package/{dist/clis → clis}/twitter/reply-dm.js +0 -0
- /package/{dist/clis → clis}/twitter/reply.js +0 -0
- /package/{dist/clis → clis}/twitter/reply.test.js +0 -0
- /package/{dist/clis → clis}/twitter/search.js +0 -0
- /package/{dist/clis → clis}/twitter/search.test.js +0 -0
- /package/{dist/clis → clis}/twitter/shared.js +0 -0
- /package/{dist/clis → clis}/twitter/thread.js +0 -0
- /package/{dist/clis → clis}/twitter/timeline.js +0 -0
- /package/{dist/clis → clis}/twitter/timeline.test.js +0 -0
- /package/{dist/clis → clis}/twitter/trending.js +0 -0
- /package/{dist/clis → clis}/twitter/unblock.js +0 -0
- /package/{dist/clis → clis}/twitter/unbookmark.js +0 -0
- /package/{dist/clis → clis}/twitter/unfollow.js +0 -0
- /package/{dist/clis → clis}/v2ex/daily.js +0 -0
- /package/{dist/clis → clis}/v2ex/hot.js +0 -0
- /package/{dist/clis → clis}/v2ex/latest.js +0 -0
- /package/{dist/clis → clis}/v2ex/me.js +0 -0
- /package/{dist/clis → clis}/v2ex/member.js +0 -0
- /package/{dist/clis → clis}/v2ex/node.js +0 -0
- /package/{dist/clis → clis}/v2ex/nodes.js +0 -0
- /package/{dist/clis → clis}/v2ex/notifications.js +0 -0
- /package/{dist/clis → clis}/v2ex/replies.js +0 -0
- /package/{dist/clis → clis}/v2ex/topic.js +0 -0
- /package/{dist/clis → clis}/v2ex/user.js +0 -0
- /package/{dist/clis → clis}/web/read.js +0 -0
- /package/{dist/clis → clis}/weibo/comments.js +0 -0
- /package/{dist/clis → clis}/weibo/hot.js +0 -0
- /package/{dist/clis → clis}/weibo/me.js +0 -0
- /package/{dist/clis → clis}/weibo/post.js +0 -0
- /package/{dist/clis → clis}/weibo/search.js +0 -0
- /package/{dist/clis → clis}/weibo/user.js +0 -0
- /package/{dist/clis → clis}/weibo/utils.js +0 -0
- /package/{dist/clis → clis}/weixin/download.js +0 -0
- /package/{dist/clis → clis}/weread/book.js +0 -0
- /package/{dist/clis → clis}/weread/commands.test.js +0 -0
- /package/{dist/clis → clis}/weread/highlights.js +0 -0
- /package/{dist/clis → clis}/weread/notebooks.js +0 -0
- /package/{dist/clis → clis}/weread/notes.js +0 -0
- /package/{dist/clis → clis}/weread/private-api-regression.test.js +0 -0
- /package/{dist/clis → clis}/weread/ranking.js +0 -0
- /package/{dist/clis → clis}/weread/search-regression.test.js +0 -0
- /package/{dist/clis → clis}/weread/search.js +0 -0
- /package/{dist/clis → clis}/weread/shelf.js +0 -0
- /package/{dist/clis → clis}/weread/utils.js +0 -0
- /package/{dist/clis → clis}/weread/utils.test.js +0 -0
- /package/{dist/clis → clis}/wikipedia/random.js +0 -0
- /package/{dist/clis → clis}/wikipedia/search.js +0 -0
- /package/{dist/clis → clis}/wikipedia/summary.js +0 -0
- /package/{dist/clis → clis}/wikipedia/trending.js +0 -0
- /package/{dist/clis → clis}/wikipedia/utils.js +0 -0
- /package/{dist/clis → clis}/xianyu/chat.js +0 -0
- /package/{dist/clis → clis}/xianyu/chat.test.js +0 -0
- /package/{dist/clis → clis}/xianyu/item.js +0 -0
- /package/{dist/clis → clis}/xianyu/item.test.js +0 -0
- /package/{dist/clis → clis}/xianyu/search.js +0 -0
- /package/{dist/clis → clis}/xianyu/search.test.js +0 -0
- /package/{dist/clis → clis}/xianyu/utils.js +0 -0
- /package/{dist/clis → clis}/xiaoe/catalog.js +0 -0
- /package/{dist/clis → clis}/xiaoe/content.js +0 -0
- /package/{dist/clis → clis}/xiaoe/courses.js +0 -0
- /package/{dist/clis → clis}/xiaoe/detail.js +0 -0
- /package/{dist/clis → clis}/xiaoe/play-url.js +0 -0
- /package/{dist/clis → clis}/xiaohongshu/comments.js +0 -0
- /package/{dist/clis → clis}/xiaohongshu/comments.test.js +0 -0
- /package/{dist/clis → clis}/xiaohongshu/creator-note-detail.js +0 -0
- /package/{dist/clis → clis}/xiaohongshu/creator-note-detail.test.js +0 -0
- /package/{dist/clis → clis}/xiaohongshu/creator-notes-summary.js +0 -0
- /package/{dist/clis → clis}/xiaohongshu/creator-notes-summary.test.js +0 -0
- /package/{dist/clis → clis}/xiaohongshu/creator-notes.js +0 -0
- /package/{dist/clis → clis}/xiaohongshu/creator-notes.test.js +0 -0
- /package/{dist/clis → clis}/xiaohongshu/creator-profile.js +0 -0
- /package/{dist/clis → clis}/xiaohongshu/creator-stats.js +0 -0
- /package/{dist/clis → clis}/xiaohongshu/download.js +0 -0
- /package/{dist/clis → clis}/xiaohongshu/download.test.js +0 -0
- /package/{dist/clis → clis}/xiaohongshu/feed.js +0 -0
- /package/{dist/clis → clis}/xiaohongshu/note-helpers.js +0 -0
- /package/{dist/clis → clis}/xiaohongshu/note.js +0 -0
- /package/{dist/clis → clis}/xiaohongshu/note.test.js +0 -0
- /package/{dist/clis → clis}/xiaohongshu/notifications.js +0 -0
- /package/{dist/clis → clis}/xiaohongshu/publish.js +0 -0
- /package/{dist/clis → clis}/xiaohongshu/publish.test.js +0 -0
- /package/{dist/clis → clis}/xiaohongshu/search.js +0 -0
- /package/{dist/clis → clis}/xiaohongshu/search.test.js +0 -0
- /package/{dist/clis → clis}/xiaohongshu/user-helpers.js +0 -0
- /package/{dist/clis → clis}/xiaohongshu/user-helpers.test.js +0 -0
- /package/{dist/clis → clis}/xiaohongshu/user.js +0 -0
- /package/{dist/clis → clis}/xiaoyuzhou/episode.js +0 -0
- /package/{dist/clis → clis}/xiaoyuzhou/podcast-episodes.js +0 -0
- /package/{dist/clis → clis}/xiaoyuzhou/podcast.js +0 -0
- /package/{dist/clis → clis}/xiaoyuzhou/utils.js +0 -0
- /package/{dist/clis → clis}/xiaoyuzhou/utils.test.js +0 -0
- /package/{dist/clis → clis}/xueqiu/comments.js +0 -0
- /package/{dist/clis → clis}/xueqiu/comments.test.js +0 -0
- /package/{dist/clis → clis}/xueqiu/danjuan-utils.js +0 -0
- /package/{dist/clis → clis}/xueqiu/danjuan-utils.test.js +0 -0
- /package/{dist/clis → clis}/xueqiu/fund-holdings.js +0 -0
- /package/{dist/clis → clis}/xueqiu/fund-snapshot.js +0 -0
- /package/{dist/clis → clis}/yollomi/background.js +0 -0
- /package/{dist/clis → clis}/yollomi/edit.js +0 -0
- /package/{dist/clis → clis}/yollomi/face-swap.js +0 -0
- /package/{dist/clis → clis}/yollomi/generate.js +0 -0
- /package/{dist/clis → clis}/yollomi/models.js +0 -0
- /package/{dist/clis → clis}/yollomi/object-remover.js +0 -0
- /package/{dist/clis → clis}/yollomi/remove-bg.js +0 -0
- /package/{dist/clis → clis}/yollomi/restore.js +0 -0
- /package/{dist/clis → clis}/yollomi/try-on.js +0 -0
- /package/{dist/clis → clis}/yollomi/upload.js +0 -0
- /package/{dist/clis → clis}/yollomi/upscale.js +0 -0
- /package/{dist/clis → clis}/yollomi/utils.js +0 -0
- /package/{dist/clis → clis}/yollomi/video.js +0 -0
- /package/{dist/clis → clis}/youtube/channel.js +0 -0
- /package/{dist/clis → clis}/youtube/comments.js +0 -0
- /package/{dist/clis → clis}/youtube/search.js +0 -0
- /package/{dist/clis → clis}/youtube/transcript-group.js +0 -0
- /package/{dist/clis → clis}/youtube/transcript-group.test.js +0 -0
- /package/{dist/clis → clis}/youtube/transcript.js +0 -0
- /package/{dist/clis → clis}/youtube/utils.js +0 -0
- /package/{dist/clis → clis}/youtube/utils.test.js +0 -0
- /package/{dist/clis → clis}/youtube/video.js +0 -0
- /package/{dist/clis → clis}/yuanbao/ask.js +0 -0
- /package/{dist/clis → clis}/yuanbao/ask.test.js +0 -0
- /package/{dist/clis → clis}/yuanbao/new.js +0 -0
- /package/{dist/clis → clis}/yuanbao/new.test.js +0 -0
- /package/{dist/clis → clis}/yuanbao/shared.js +0 -0
- /package/{dist/clis → clis}/zhihu/answer.js +0 -0
- /package/{dist/clis → clis}/zhihu/answer.test.js +0 -0
- /package/{dist/clis → clis}/zhihu/comment.js +0 -0
- /package/{dist/clis → clis}/zhihu/comment.test.js +0 -0
- /package/{dist/clis → clis}/zhihu/download.js +0 -0
- /package/{dist/clis → clis}/zhihu/download.test.js +0 -0
- /package/{dist/clis → clis}/zhihu/favorite.js +0 -0
- /package/{dist/clis → clis}/zhihu/favorite.test.js +0 -0
- /package/{dist/clis → clis}/zhihu/follow.js +0 -0
- /package/{dist/clis → clis}/zhihu/follow.test.js +0 -0
- /package/{dist/clis → clis}/zhihu/hot.js +0 -0
- /package/{dist/clis → clis}/zhihu/like.js +0 -0
- /package/{dist/clis → clis}/zhihu/like.test.js +0 -0
- /package/{dist/clis → clis}/zhihu/question.js +0 -0
- /package/{dist/clis → clis}/zhihu/question.test.js +0 -0
- /package/{dist/clis → clis}/zhihu/search.js +0 -0
- /package/{dist/clis → clis}/zhihu/target.js +0 -0
- /package/{dist/clis → clis}/zhihu/target.test.js +0 -0
- /package/{dist/clis → clis}/zhihu/write-shared.js +0 -0
- /package/{dist/clis → clis}/zhihu/write-shared.test.js +0 -0
- /package/{dist/clis → clis}/zsxq/dynamics.js +0 -0
- /package/{dist/clis → clis}/zsxq/groups.js +0 -0
- /package/{dist/clis → clis}/zsxq/search.js +0 -0
- /package/{dist/clis → clis}/zsxq/search.test.js +0 -0
- /package/{dist/clis → clis}/zsxq/topics.js +0 -0
- /package/{dist/clis → clis}/zsxq/topics.test.js +0 -0
package/dist/src/errors.d.ts
CHANGED
|
@@ -70,7 +70,21 @@ export declare class EmptyResultError extends CliError {
|
|
|
70
70
|
export declare class SelectorError extends CliError {
|
|
71
71
|
constructor(selector: string, hint?: string);
|
|
72
72
|
}
|
|
73
|
+
export declare class PluginError extends CliError {
|
|
74
|
+
constructor(message: string, hint?: string);
|
|
75
|
+
}
|
|
76
|
+
/** Structured error output — unified contract for all consumers (AI agents, scripts, humans). */
|
|
77
|
+
export interface ErrorEnvelope {
|
|
78
|
+
ok: false;
|
|
79
|
+
error: {
|
|
80
|
+
code: string;
|
|
81
|
+
message: string;
|
|
82
|
+
help?: string;
|
|
83
|
+
exitCode: number;
|
|
84
|
+
stack?: string;
|
|
85
|
+
};
|
|
86
|
+
}
|
|
73
87
|
/** Extract a human-readable message from an unknown caught value. */
|
|
74
88
|
export declare function getErrorMessage(error: unknown): string;
|
|
75
|
-
/**
|
|
76
|
-
export declare
|
|
89
|
+
/** Build an ErrorEnvelope from any caught value. */
|
|
90
|
+
export declare function toEnvelope(err: unknown): ErrorEnvelope;
|
package/dist/src/errors.js
CHANGED
|
@@ -96,24 +96,36 @@ export class SelectorError extends CliError {
|
|
|
96
96
|
super('SELECTOR', `Could not find element: ${selector}`, hint ?? 'The page UI may have changed. Please report this issue.', EXIT_CODES.GENERIC_ERROR);
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
|
+
export class PluginError extends CliError {
|
|
100
|
+
constructor(message, hint) {
|
|
101
|
+
super('PLUGIN', message, hint, EXIT_CODES.GENERIC_ERROR);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
99
104
|
// ── Utilities ───────────────────────────────────────────────────────────────
|
|
100
105
|
/** Extract a human-readable message from an unknown caught value. */
|
|
101
106
|
export function getErrorMessage(error) {
|
|
102
107
|
return error instanceof Error ? error.message : String(error);
|
|
103
108
|
}
|
|
104
|
-
/**
|
|
105
|
-
export
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
109
|
+
/** Build an ErrorEnvelope from any caught value. */
|
|
110
|
+
export function toEnvelope(err) {
|
|
111
|
+
if (err instanceof CliError) {
|
|
112
|
+
return {
|
|
113
|
+
ok: false,
|
|
114
|
+
error: {
|
|
115
|
+
code: err.code,
|
|
116
|
+
message: err.message,
|
|
117
|
+
...(err.hint ? { help: err.hint } : {}),
|
|
118
|
+
exitCode: err.exitCode,
|
|
119
|
+
},
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
const msg = getErrorMessage(err);
|
|
123
|
+
return {
|
|
124
|
+
ok: false,
|
|
125
|
+
error: {
|
|
126
|
+
code: 'UNKNOWN',
|
|
127
|
+
message: msg,
|
|
128
|
+
exitCode: EXIT_CODES.GENERIC_ERROR,
|
|
129
|
+
},
|
|
130
|
+
};
|
|
131
|
+
}
|
package/dist/src/errors.test.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { CliError, BrowserConnectError, AdapterLoadError, CommandExecutionError, ConfigError, AuthRequiredError, TimeoutError, ArgumentError, EmptyResultError, SelectorError, } from './errors.js';
|
|
2
|
+
import { CliError, BrowserConnectError, AdapterLoadError, CommandExecutionError, ConfigError, AuthRequiredError, TimeoutError, ArgumentError, EmptyResultError, SelectorError, toEnvelope, } from './errors.js';
|
|
3
3
|
describe('Error type hierarchy', () => {
|
|
4
4
|
it('all error types extend CliError', () => {
|
|
5
5
|
const errors = [
|
|
@@ -57,3 +57,40 @@ describe('Error type hierarchy', () => {
|
|
|
57
57
|
expect(err.code).toBe('BROWSER_CONNECT');
|
|
58
58
|
});
|
|
59
59
|
});
|
|
60
|
+
describe('toEnvelope', () => {
|
|
61
|
+
it('converts CliError to structured envelope', () => {
|
|
62
|
+
const err = new AuthRequiredError('bilibili.com');
|
|
63
|
+
const envelope = toEnvelope(err);
|
|
64
|
+
expect(envelope).toEqual({
|
|
65
|
+
ok: false,
|
|
66
|
+
error: {
|
|
67
|
+
code: 'AUTH_REQUIRED',
|
|
68
|
+
message: 'Not logged in to bilibili.com',
|
|
69
|
+
help: expect.stringContaining('https://bilibili.com'),
|
|
70
|
+
exitCode: 77,
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
it('converts CliError without hint (omits help field)', () => {
|
|
75
|
+
const err = new CommandExecutionError('Something broke');
|
|
76
|
+
const envelope = toEnvelope(err);
|
|
77
|
+
expect(envelope.error.code).toBe('COMMAND_EXEC');
|
|
78
|
+
expect(envelope.error).not.toHaveProperty('help');
|
|
79
|
+
});
|
|
80
|
+
it('converts unknown Error to UNKNOWN envelope', () => {
|
|
81
|
+
const envelope = toEnvelope(new Error('random failure'));
|
|
82
|
+
expect(envelope).toEqual({
|
|
83
|
+
ok: false,
|
|
84
|
+
error: {
|
|
85
|
+
code: 'UNKNOWN',
|
|
86
|
+
message: 'random failure',
|
|
87
|
+
exitCode: 1,
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
it('converts non-Error values to UNKNOWN envelope', () => {
|
|
92
|
+
const envelope = toEnvelope('string error');
|
|
93
|
+
expect(envelope.error.code).toBe('UNKNOWN');
|
|
94
|
+
expect(envelope.error.message).toBe('string error');
|
|
95
|
+
});
|
|
96
|
+
});
|
package/dist/src/execution.d.ts
CHANGED
|
@@ -11,4 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { type CliCommand, type Arg, type CommandArgs } from './registry.js';
|
|
13
13
|
export declare function coerceAndValidateArgs(cmdArgs: Arg[], kwargs: CommandArgs): CommandArgs;
|
|
14
|
-
export declare function executeCommand(cmd: CliCommand, rawKwargs: CommandArgs, debug?: boolean
|
|
14
|
+
export declare function executeCommand(cmd: CliCommand, rawKwargs: CommandArgs, debug?: boolean, opts?: {
|
|
15
|
+
prepared?: boolean;
|
|
16
|
+
}): Promise<unknown>;
|
|
17
|
+
export declare function prepareCommandArgs(cmd: CliCommand, rawKwargs: CommandArgs): CommandArgs;
|
package/dist/src/execution.js
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* 5. Lazy-loading of TS modules from manifest
|
|
10
10
|
* 6. Lifecycle hooks (onBeforeExecute / onAfterExecute)
|
|
11
11
|
*/
|
|
12
|
-
import {
|
|
12
|
+
import { getRegistry, fullName } from './registry.js';
|
|
13
13
|
import { pathToFileURL } from 'node:url';
|
|
14
14
|
import { executePipeline } from './pipeline/index.js';
|
|
15
15
|
import { AdapterLoadError, ArgumentError, CommandExecutionError, getErrorMessage } from './errors.js';
|
|
@@ -97,9 +97,7 @@ function resolvePreNav(cmd) {
|
|
|
97
97
|
return null;
|
|
98
98
|
if (typeof cmd.navigateBefore === 'string')
|
|
99
99
|
return cmd.navigateBefore;
|
|
100
|
-
|
|
101
|
-
return `https://${cmd.domain}`;
|
|
102
|
-
}
|
|
100
|
+
// strategy → navigateBefore expansion already happened in normalizeCommand().
|
|
103
101
|
return null;
|
|
104
102
|
}
|
|
105
103
|
function ensureRequiredEnv(cmd) {
|
|
@@ -111,11 +109,10 @@ function ensureRequiredEnv(cmd) {
|
|
|
111
109
|
return;
|
|
112
110
|
throw new CommandExecutionError(`Command ${fullName(cmd)} requires environment variable ${missing.name}.`, missing.help ?? `Set ${missing.name} before running ${fullName(cmd)}.`);
|
|
113
111
|
}
|
|
114
|
-
export async function executeCommand(cmd, rawKwargs, debug = false) {
|
|
112
|
+
export async function executeCommand(cmd, rawKwargs, debug = false, opts = {}) {
|
|
115
113
|
let kwargs;
|
|
116
114
|
try {
|
|
117
|
-
kwargs =
|
|
118
|
-
cmd.validateArgs?.(kwargs);
|
|
115
|
+
kwargs = opts.prepared ? rawKwargs : prepareCommandArgs(cmd, rawKwargs);
|
|
119
116
|
}
|
|
120
117
|
catch (err) {
|
|
121
118
|
if (err instanceof ArgumentError)
|
|
@@ -162,8 +159,7 @@ export async function executeCommand(cmd, rawKwargs, debug = false) {
|
|
|
162
159
|
await page.goto(preNavUrl);
|
|
163
160
|
}
|
|
164
161
|
catch (err) {
|
|
165
|
-
|
|
166
|
-
log.debug(`[pre-nav] Failed to navigate to ${preNavUrl}: ${err instanceof Error ? err.message : err}`);
|
|
162
|
+
log.warn(`Pre-navigation to ${preNavUrl} failed: ${err instanceof Error ? err.message : err}`);
|
|
167
163
|
}
|
|
168
164
|
}
|
|
169
165
|
try {
|
|
@@ -220,3 +216,8 @@ export async function executeCommand(cmd, rawKwargs, debug = false) {
|
|
|
220
216
|
await emitHook('onAfterExecute', hookCtx, result);
|
|
221
217
|
return result;
|
|
222
218
|
}
|
|
219
|
+
export function prepareCommandArgs(cmd, rawKwargs) {
|
|
220
|
+
const kwargs = coerceAndValidateArgs(cmd.args, rawKwargs);
|
|
221
|
+
cmd.validateArgs?.(kwargs);
|
|
222
|
+
return kwargs;
|
|
223
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { executeCommand } from './execution.js';
|
|
1
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
2
|
+
import { executeCommand, prepareCommandArgs } from './execution.js';
|
|
3
3
|
import { TimeoutError } from './errors.js';
|
|
4
4
|
import { cli, Strategy } from './registry.js';
|
|
5
5
|
import { withTimeoutMs } from './runtime.js';
|
|
@@ -37,4 +37,20 @@ describe('executeCommand — non-browser timeout', () => {
|
|
|
37
37
|
// With timeout guard skipped, the sentinel fires instead.
|
|
38
38
|
await expect(withTimeoutMs(executeCommand(cmd, {}), 50, 'sentinel timeout')).rejects.toThrow('sentinel timeout');
|
|
39
39
|
});
|
|
40
|
+
it('does not re-run custom validation when args are already prepared', async () => {
|
|
41
|
+
const validateArgs = vi.fn();
|
|
42
|
+
const cmd = {
|
|
43
|
+
site: 'test-execution',
|
|
44
|
+
name: 'prepared-validation',
|
|
45
|
+
description: 'test prepared validation path',
|
|
46
|
+
browser: false,
|
|
47
|
+
strategy: Strategy.PUBLIC,
|
|
48
|
+
args: [],
|
|
49
|
+
validateArgs,
|
|
50
|
+
func: async () => [],
|
|
51
|
+
};
|
|
52
|
+
const kwargs = prepareCommandArgs(cmd, {});
|
|
53
|
+
await executeCommand(cmd, kwargs, false, { prepared: true });
|
|
54
|
+
expect(validateArgs).toHaveBeenCalledTimes(1);
|
|
55
|
+
});
|
|
40
56
|
});
|
package/dist/src/external.js
CHANGED
|
@@ -4,7 +4,6 @@ import * as os from 'node:os';
|
|
|
4
4
|
import { fileURLToPath } from 'node:url';
|
|
5
5
|
import { spawnSync, execFileSync } from 'node:child_process';
|
|
6
6
|
import yaml from 'js-yaml';
|
|
7
|
-
import chalk from 'chalk';
|
|
8
7
|
import { log } from './logger.js';
|
|
9
8
|
import { EXIT_CODES, getErrorMessage } from './errors.js';
|
|
10
9
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
@@ -120,26 +119,26 @@ function runInstallCommand(cmd) {
|
|
|
120
119
|
}
|
|
121
120
|
export function installExternalCli(cli) {
|
|
122
121
|
if (!cli.install) {
|
|
123
|
-
|
|
124
|
-
|
|
122
|
+
log.error(`No auto-install command configured for '${cli.name}'.`);
|
|
123
|
+
log.info(`Please install '${cli.binary}' manually.`);
|
|
125
124
|
return false;
|
|
126
125
|
}
|
|
127
126
|
const cmd = getInstallCmd(cli.install);
|
|
128
127
|
if (!cmd) {
|
|
129
|
-
|
|
128
|
+
log.error(`No install command for your platform (${os.platform()}) for '${cli.name}'.`);
|
|
130
129
|
if (cli.homepage)
|
|
131
|
-
|
|
130
|
+
log.info(`See: ${cli.homepage}`);
|
|
132
131
|
return false;
|
|
133
132
|
}
|
|
134
|
-
|
|
135
|
-
|
|
133
|
+
log.info(`'${cli.name}' is not installed. Auto-installing...`);
|
|
134
|
+
log.verbose(`$ ${cmd}`);
|
|
136
135
|
try {
|
|
137
136
|
runInstallCommand(cmd);
|
|
138
|
-
|
|
137
|
+
log.success(`Installed '${cli.name}' successfully.`);
|
|
139
138
|
return true;
|
|
140
139
|
}
|
|
141
140
|
catch (err) {
|
|
142
|
-
|
|
141
|
+
log.error(`Failed to install '${cli.name}': ${getErrorMessage(err)}`);
|
|
143
142
|
return false;
|
|
144
143
|
}
|
|
145
144
|
}
|
|
@@ -161,7 +160,7 @@ export function executeExternalCli(name, args, preloaded) {
|
|
|
161
160
|
// 3. Passthrough execution with stdio inherited
|
|
162
161
|
const result = spawnSync(cli.binary, args, { stdio: 'inherit' });
|
|
163
162
|
if (result.error) {
|
|
164
|
-
|
|
163
|
+
log.error(`Failed to execute '${cli.binary}': ${result.error.message}`);
|
|
165
164
|
process.exitCode = EXIT_CODES.GENERIC_ERROR;
|
|
166
165
|
return;
|
|
167
166
|
}
|
|
@@ -196,14 +195,14 @@ export function registerExternalCli(name, opts) {
|
|
|
196
195
|
newItem.install = { default: opts.install };
|
|
197
196
|
if (existingIndex >= 0) {
|
|
198
197
|
items[existingIndex] = { ...items[existingIndex], ...newItem };
|
|
199
|
-
|
|
198
|
+
log.success(`Updated '${name}' in user registry.`);
|
|
200
199
|
}
|
|
201
200
|
else {
|
|
202
201
|
items.push(newItem);
|
|
203
|
-
|
|
202
|
+
log.success(`Registered '${name}' in user registry.`);
|
|
204
203
|
}
|
|
205
204
|
const dump = yaml.dump(items, { indent: 2, sortKeys: true });
|
|
206
205
|
fs.writeFileSync(userPath, dump, 'utf8');
|
|
207
206
|
_cachedExternalClis = null; // Invalidate cache so next load reflects the change
|
|
208
|
-
|
|
207
|
+
log.verbose(userPath);
|
|
209
208
|
}
|
|
@@ -239,7 +239,7 @@ async function probeCandidateStrategy(page, endpointUrl) {
|
|
|
239
239
|
return parseSupportedStrategy(success?.strategy);
|
|
240
240
|
}
|
|
241
241
|
// ── Artifact persistence ──────────────────────────────────────────────────────
|
|
242
|
-
function
|
|
242
|
+
function candidateToJs(candidate) {
|
|
243
243
|
const strategyMap = {
|
|
244
244
|
public: 'Strategy.PUBLIC',
|
|
245
245
|
cookie: 'Strategy.COOKIE',
|
|
@@ -250,9 +250,9 @@ function candidateToTs(candidate) {
|
|
|
250
250
|
const stratEnum = strategyMap[candidate.strategy?.toLowerCase()] ?? 'Strategy.COOKIE';
|
|
251
251
|
const browser = detectBrowserFlag(candidate);
|
|
252
252
|
const argsArray = Object.entries(candidate.args ?? {}).map(([name, def]) => {
|
|
253
|
-
const parts = [`name: '${name}'`];
|
|
253
|
+
const parts = [`name: '${name.replace(/'/g, "\\'")}'`];
|
|
254
254
|
if (def.type && def.type !== 'str')
|
|
255
|
-
parts.push(`type: '${def.type}'`);
|
|
255
|
+
parts.push(`type: '${def.type.replace(/'/g, "\\'")}'`);
|
|
256
256
|
if (def.required)
|
|
257
257
|
parts.push('required: true');
|
|
258
258
|
if (def.default !== undefined)
|
|
@@ -293,12 +293,12 @@ function candidateToTs(candidate) {
|
|
|
293
293
|
lines.push("import { cli, Strategy } from '@jackwener/opencli/registry';");
|
|
294
294
|
lines.push('');
|
|
295
295
|
lines.push('cli({');
|
|
296
|
-
lines.push(` site: '${candidate.site}',`);
|
|
297
|
-
lines.push(` name: '${candidate.name}',`);
|
|
296
|
+
lines.push(` site: '${candidate.site.replace(/'/g, "\\'")}',`);
|
|
297
|
+
lines.push(` name: '${candidate.name.replace(/'/g, "\\'")}',`);
|
|
298
298
|
if (candidate.description)
|
|
299
299
|
lines.push(` description: '${candidate.description.replace(/'/g, "\\'")}',`);
|
|
300
300
|
if (candidate.domain)
|
|
301
|
-
lines.push(` domain: '${candidate.domain}',`);
|
|
301
|
+
lines.push(` domain: '${candidate.domain.replace(/'/g, "\\'")}',`);
|
|
302
302
|
lines.push(` strategy: ${stratEnum},`);
|
|
303
303
|
lines.push(` browser: ${browser},`);
|
|
304
304
|
if (argsArray.length > 0) {
|
|
@@ -320,20 +320,20 @@ function candidateToTs(candidate) {
|
|
|
320
320
|
}
|
|
321
321
|
async function registerVerifiedAdapter(candidate, metadata) {
|
|
322
322
|
const siteDir = path.join(USER_CLIS_DIR, candidate.site);
|
|
323
|
-
const adapterPath = path.join(siteDir, `${candidate.name}.
|
|
323
|
+
const adapterPath = path.join(siteDir, `${candidate.name}.js`);
|
|
324
324
|
const metadataPath = path.join(siteDir, `${candidate.name}.meta.json`);
|
|
325
325
|
await fs.promises.mkdir(siteDir, { recursive: true });
|
|
326
|
-
await fs.promises.writeFile(adapterPath,
|
|
326
|
+
await fs.promises.writeFile(adapterPath, candidateToJs(candidate));
|
|
327
327
|
await fs.promises.writeFile(metadataPath, JSON.stringify(metadata, null, 2));
|
|
328
328
|
registerCommand(candidateToCommand(candidate, adapterPath));
|
|
329
329
|
return { adapterPath, metadataPath };
|
|
330
330
|
}
|
|
331
331
|
async function writeVerifiedArtifact(candidate, exploreDir, metadata) {
|
|
332
332
|
const outDir = path.join(exploreDir, 'verified');
|
|
333
|
-
const adapterPath = path.join(outDir, `${candidate.name}.verified.
|
|
333
|
+
const adapterPath = path.join(outDir, `${candidate.name}.verified.js`);
|
|
334
334
|
const metadataPath = path.join(outDir, `${candidate.name}.verified.meta.json`);
|
|
335
335
|
await fs.promises.mkdir(outDir, { recursive: true });
|
|
336
|
-
await fs.promises.writeFile(adapterPath,
|
|
336
|
+
await fs.promises.writeFile(adapterPath, candidateToJs(candidate));
|
|
337
337
|
await fs.promises.writeFile(metadataPath, JSON.stringify(metadata, null, 2));
|
|
338
338
|
return { adapterPath, metadataPath };
|
|
339
339
|
}
|
|
@@ -367,7 +367,7 @@ describe('generateVerifiedFromUrl', () => {
|
|
|
367
367
|
noRegister: true,
|
|
368
368
|
});
|
|
369
369
|
expect(result.status).toBe('success');
|
|
370
|
-
expect(path.normalize(result.adapter.path).endsWith(path.join('verified', 'search.verified.
|
|
370
|
+
expect(path.normalize(result.adapter.path).endsWith(path.join('verified', 'search.verified.js'))).toBe(true);
|
|
371
371
|
expect(result.adapter?.path).not.toBe(candidatePath);
|
|
372
372
|
expect(path.normalize(result.adapter.metadata_path).endsWith(path.join('verified', 'search.verified.meta.json'))).toBe(true);
|
|
373
373
|
expect(fs.existsSync(result.adapter.path)).toBe(true);
|
package/dist/src/logger.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* All framework output (warnings, debug info, errors) should go through
|
|
5
5
|
* this module so that verbosity levels are respected consistently.
|
|
6
6
|
*/
|
|
7
|
-
import
|
|
7
|
+
import { styleText } from 'node:util';
|
|
8
8
|
function isVerbose() {
|
|
9
9
|
return !!process.env.OPENCLI_VERBOSE;
|
|
10
10
|
}
|
|
@@ -14,42 +14,42 @@ function isDebug() {
|
|
|
14
14
|
export const log = {
|
|
15
15
|
/** Informational message (always shown) */
|
|
16
16
|
info(msg) {
|
|
17
|
-
process.stderr.write(`${
|
|
17
|
+
process.stderr.write(`${styleText('blue', 'ℹ')} ${msg}\n`);
|
|
18
18
|
},
|
|
19
19
|
/** Lightweight status line for adapter progress updates */
|
|
20
20
|
status(msg) {
|
|
21
|
-
process.stderr.write(`${
|
|
21
|
+
process.stderr.write(`${styleText('dim', msg)}\n`);
|
|
22
22
|
},
|
|
23
23
|
/** Positive completion/status line without the heavier info prefix */
|
|
24
24
|
success(msg) {
|
|
25
|
-
process.stderr.write(`${
|
|
25
|
+
process.stderr.write(`${styleText('green', msg)}\n`);
|
|
26
26
|
},
|
|
27
27
|
/** Warning (always shown) */
|
|
28
28
|
warn(msg) {
|
|
29
|
-
process.stderr.write(`${
|
|
29
|
+
process.stderr.write(`${styleText('yellow', '⚠')} ${msg}\n`);
|
|
30
30
|
},
|
|
31
31
|
/** Error (always shown) */
|
|
32
32
|
error(msg) {
|
|
33
|
-
process.stderr.write(`${
|
|
33
|
+
process.stderr.write(`${styleText('red', '✖')} ${msg}\n`);
|
|
34
34
|
},
|
|
35
35
|
/** Verbose output (only when OPENCLI_VERBOSE is set or -v flag) */
|
|
36
36
|
verbose(msg) {
|
|
37
37
|
if (isVerbose()) {
|
|
38
|
-
process.stderr.write(`${
|
|
38
|
+
process.stderr.write(`${styleText('dim', '[verbose]')} ${msg}\n`);
|
|
39
39
|
}
|
|
40
40
|
},
|
|
41
41
|
/** Debug output (only when DEBUG includes 'opencli') */
|
|
42
42
|
debug(msg) {
|
|
43
43
|
if (isDebug()) {
|
|
44
|
-
process.stderr.write(`${
|
|
44
|
+
process.stderr.write(`${styleText('dim', '[debug]')} ${msg}\n`);
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
47
|
/** Step-style debug (for pipeline steps, etc.) */
|
|
48
48
|
step(stepNum, total, op, preview = '') {
|
|
49
|
-
process.stderr.write(` ${
|
|
49
|
+
process.stderr.write(` ${styleText('dim', `[${stepNum}/${total}]`)} ${styleText(['bold', 'cyan'], op)}${preview}\n`);
|
|
50
50
|
},
|
|
51
51
|
/** Step result summary */
|
|
52
52
|
stepResult(summary) {
|
|
53
|
-
process.stderr.write(` ${
|
|
53
|
+
process.stderr.write(` ${styleText('dim', `→ ${summary}`)}\n`);
|
|
54
54
|
},
|
|
55
55
|
};
|
package/dist/src/main.js
CHANGED
|
@@ -17,12 +17,14 @@ import * as os from 'node:os';
|
|
|
17
17
|
import * as path from 'node:path';
|
|
18
18
|
import { fileURLToPath } from 'node:url';
|
|
19
19
|
import { getCompletionsFromManifest, hasAllManifests, printCompletionScriptFast } from './completion-fast.js';
|
|
20
|
-
import { getCliManifestPath } from './package-paths.js';
|
|
20
|
+
import { findPackageRoot, getCliManifestPath } from './package-paths.js';
|
|
21
21
|
import { PKG_VERSION } from './version.js';
|
|
22
22
|
import { EXIT_CODES } from './errors.js';
|
|
23
23
|
const __filename = fileURLToPath(import.meta.url);
|
|
24
24
|
const __dirname = path.dirname(__filename);
|
|
25
|
-
|
|
25
|
+
// Adapters are JS-first and live at <package-root>/clis/.
|
|
26
|
+
// Use findPackageRoot so the path works both in dev (src/main.ts) and prod (dist/src/main.js).
|
|
27
|
+
const BUILTIN_CLIS = path.join(findPackageRoot(__filename), 'clis');
|
|
26
28
|
const USER_CLIS = path.join(os.homedir(), '.opencli', 'clis');
|
|
27
29
|
// ── Ultra-fast path: lightweight commands bypass full discovery ──────────
|
|
28
30
|
// These are high-frequency or trivial paths that must not pay the startup tax.
|
|
@@ -43,14 +45,15 @@ if (argv[0] === 'completion' && argv.length >= 2) {
|
|
|
43
45
|
// Fast path: --get-completions — read from manifest, skip discovery
|
|
44
46
|
const getCompIdx = process.argv.indexOf('--get-completions');
|
|
45
47
|
if (getCompIdx !== -1) {
|
|
46
|
-
// Only
|
|
47
|
-
//
|
|
48
|
+
// Only include manifests that actually exist on disk.
|
|
49
|
+
// With sparse override, the user clis dir may exist but have no manifest.
|
|
48
50
|
const manifestPaths = [getCliManifestPath(BUILTIN_CLIS)];
|
|
51
|
+
const userManifest = getCliManifestPath(USER_CLIS);
|
|
49
52
|
try {
|
|
50
|
-
fs.accessSync(
|
|
51
|
-
manifestPaths.push(
|
|
53
|
+
fs.accessSync(userManifest);
|
|
54
|
+
manifestPaths.push(userManifest);
|
|
52
55
|
}
|
|
53
|
-
catch { /* no user
|
|
56
|
+
catch { /* no user manifest */ }
|
|
54
57
|
if (hasAllManifests(manifestPaths)) {
|
|
55
58
|
const rest = process.argv.slice(getCompIdx + 1);
|
|
56
59
|
let cursor;
|
|
@@ -81,10 +84,20 @@ const { emitHook } = await import('./hooks.js');
|
|
|
81
84
|
const { installNodeNetwork } = await import('./node-network.js');
|
|
82
85
|
const { registerUpdateNoticeOnExit, checkForUpdateBackground } = await import('./update-check.js');
|
|
83
86
|
installNodeNetwork();
|
|
84
|
-
//
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
87
|
+
// Parallelise independent startup I/O:
|
|
88
|
+
// - Built-in adapter discovery has no dependency on user-dir setup.
|
|
89
|
+
// - ensureUserCliCompatShims and ensureUserAdapters operate on different paths
|
|
90
|
+
// (~/.opencli/node_modules/ vs ~/.opencli/clis/ + adapter-manifest.json).
|
|
91
|
+
// - registerCommand() overwrites on name collision (see registry.ts), so
|
|
92
|
+
// user-CLI discovery MUST run after built-in discovery to preserve the
|
|
93
|
+
// intended override order (user adapters override built-in ones).
|
|
94
|
+
// - discoverPlugins runs last: plugins may override both built-in and user CLIs.
|
|
95
|
+
const [, ,] = await Promise.all([
|
|
96
|
+
ensureUserCliCompatShims(),
|
|
97
|
+
ensureUserAdapters(),
|
|
98
|
+
discoverClis(BUILTIN_CLIS),
|
|
99
|
+
]);
|
|
100
|
+
await discoverClis(USER_CLIS);
|
|
88
101
|
await discoverPlugins();
|
|
89
102
|
// Register exit hook: notice appears after command output (same as npm/gh/yarn)
|
|
90
103
|
registerUpdateNoticeOnExit();
|
package/dist/src/output.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Output formatting: table, JSON, Markdown, CSV, YAML.
|
|
3
3
|
*/
|
|
4
|
-
import
|
|
4
|
+
import { styleText } from 'node:util';
|
|
5
5
|
import Table from 'cli-table3';
|
|
6
6
|
import yaml from 'js-yaml';
|
|
7
7
|
function normalizeRows(data) {
|
|
@@ -55,13 +55,13 @@ export function render(data, opts = {}) {
|
|
|
55
55
|
function renderTable(data, opts) {
|
|
56
56
|
const rows = normalizeRows(data);
|
|
57
57
|
if (!rows.length) {
|
|
58
|
-
console.log(
|
|
58
|
+
console.log(styleText('dim', '(no data)'));
|
|
59
59
|
return;
|
|
60
60
|
}
|
|
61
61
|
const columns = resolveColumns(rows, opts);
|
|
62
62
|
const header = columns.map(c => capitalize(c));
|
|
63
63
|
const table = new Table({
|
|
64
|
-
head: header.map(h =>
|
|
64
|
+
head: header.map(h => styleText('bold', h)),
|
|
65
65
|
style: { head: [], border: [] },
|
|
66
66
|
wordWrap: true,
|
|
67
67
|
wrapOnWordBoundary: true,
|
|
@@ -74,7 +74,7 @@ function renderTable(data, opts) {
|
|
|
74
74
|
}
|
|
75
75
|
console.log();
|
|
76
76
|
if (opts.title)
|
|
77
|
-
console.log(
|
|
77
|
+
console.log(styleText('dim', ` ${opts.title}`));
|
|
78
78
|
console.log(table.toString());
|
|
79
79
|
const footer = [];
|
|
80
80
|
footer.push(`${rows.length} items`);
|
|
@@ -84,7 +84,7 @@ function renderTable(data, opts) {
|
|
|
84
84
|
footer.push(opts.source);
|
|
85
85
|
if (opts.footerExtra)
|
|
86
86
|
footer.push(opts.footerExtra);
|
|
87
|
-
console.log(
|
|
87
|
+
console.log(styleText('dim', footer.join(' · ')));
|
|
88
88
|
}
|
|
89
89
|
function renderJson(data) {
|
|
90
90
|
console.log(JSON.stringify(data, null, 2));
|
|
@@ -14,16 +14,16 @@ import ts from 'typescript';
|
|
|
14
14
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
15
15
|
const ROOT = path.resolve(__dirname, '..');
|
|
16
16
|
const CLIS_DIR = path.join(ROOT, 'clis');
|
|
17
|
-
/** Recursively collect all
|
|
18
|
-
function
|
|
17
|
+
/** Recursively collect all JS adapter files in a directory. */
|
|
18
|
+
function collectAdapterFiles(dir, opts) {
|
|
19
19
|
const results = [];
|
|
20
20
|
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
21
21
|
const full = path.join(dir, entry.name);
|
|
22
22
|
if (entry.isDirectory()) {
|
|
23
|
-
results.push(...
|
|
23
|
+
results.push(...collectAdapterFiles(full, opts));
|
|
24
24
|
}
|
|
25
|
-
else if (entry.name.endsWith('.
|
|
26
|
-
if (opts?.excludeTests && (entry.name.endsWith('.test.
|
|
25
|
+
else if (entry.name.endsWith('.js') && !entry.name.endsWith('.d.js')) {
|
|
26
|
+
if (opts?.excludeTests && (entry.name.endsWith('.test.js') || entry.name.startsWith('test-')))
|
|
27
27
|
continue;
|
|
28
28
|
results.push(full);
|
|
29
29
|
}
|
|
@@ -53,8 +53,8 @@ const FORBIDDEN_PATTERNS = [
|
|
|
53
53
|
/(?:from|mock|importActual)\s*\(?['"](?:\.\.\/)+pipeline\//,
|
|
54
54
|
];
|
|
55
55
|
describe('adapter imports use package exports', () => {
|
|
56
|
-
const adapterFiles =
|
|
57
|
-
const runtimeAdapterFiles =
|
|
56
|
+
const adapterFiles = collectAdapterFiles(CLIS_DIR);
|
|
57
|
+
const runtimeAdapterFiles = collectAdapterFiles(CLIS_DIR, { excludeTests: true });
|
|
58
58
|
it('found adapter files to check', () => {
|
|
59
59
|
expect(adapterFiles.length).toBeGreaterThan(100);
|
|
60
60
|
});
|
|
@@ -76,7 +76,7 @@ describe('adapter imports use package exports', () => {
|
|
|
76
76
|
const violations = [];
|
|
77
77
|
for (const file of runtimeAdapterFiles) {
|
|
78
78
|
const source = fs.readFileSync(file, 'utf-8');
|
|
79
|
-
const module = ts.createSourceFile(file, source, ts.ScriptTarget.Latest, true, ts.ScriptKind.
|
|
79
|
+
const module = ts.createSourceFile(file, source, ts.ScriptTarget.Latest, true, ts.ScriptKind.JS);
|
|
80
80
|
for (const stmt of module.statements) {
|
|
81
81
|
if (!ts.isImportDeclaration(stmt) && !ts.isExportDeclaration(stmt))
|
|
82
82
|
continue;
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import { render } from '../template.js';
|
|
12
12
|
import { generateTapInterceptorJs } from '../../interceptor.js';
|
|
13
|
+
import { CliError } from '../../errors.js';
|
|
13
14
|
export async function stepTap(page, params, data, args) {
|
|
14
15
|
const cfg = typeof params === 'object' && params !== null ? params : {};
|
|
15
16
|
const storeName = String(render(cfg.store ?? '', { args, data }));
|
|
@@ -20,7 +21,7 @@ export async function stepTap(page, params, data, args) {
|
|
|
20
21
|
const framework = cfg.framework ?? null;
|
|
21
22
|
const actionArgs = cfg.args ?? [];
|
|
22
23
|
if (!storeName || !actionName)
|
|
23
|
-
throw new
|
|
24
|
+
throw new CliError('TAP_MISSING_PARAMS', 'tap: store and action are required');
|
|
24
25
|
// Build select chain for the captured response
|
|
25
26
|
const selectChain = selectPath
|
|
26
27
|
? selectPath.split('.').map((p) => `?.[${JSON.stringify(p)}]`).join('')
|