@jackwener/opencli 1.6.10 → 1.7.1
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 +27 -14
- package/README.zh-CN.md +25 -11
- package/cli-manifest.json +17151 -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/jianyu/detail.js +20 -0
- package/clis/jianyu/search.js +497 -0
- package/clis/jianyu/search.test.js +128 -0
- package/clis/jianyu/shared/china-bid-search.js +165 -0
- package/clis/jianyu/shared/procurement-contract.js +324 -0
- package/clis/jianyu/shared/procurement-contract.test.js +72 -0
- package/clis/jianyu/shared/procurement-detail.js +92 -0
- package/clis/jianyu/shared/procurement-detail.test.js +72 -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/{dist/clis → clis}/xiaoe/catalog.js +36 -0
- 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/src/browser/base-page.js +1 -1
- package/dist/src/browser/bridge.js +1 -1
- package/dist/src/browser/cdp.js +6 -4
- package/dist/src/browser/daemon-client.d.ts +2 -1
- package/dist/src/browser/daemon-client.js +3 -1
- package/dist/src/browser/daemon-client.test.js +0 -3
- package/dist/src/browser/stealth.d.ts +0 -5
- package/dist/src/browser/stealth.js +8 -2
- package/dist/src/browser.test.js +0 -1
- 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 +64 -70
- 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.d.ts +2 -6
- package/dist/src/commands/daemon.js +6 -62
- package/dist/src/commands/daemon.test.js +26 -131
- 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/constants.d.ts +0 -2
- package/dist/src/constants.js +0 -2
- package/dist/src/daemon.d.ts +1 -1
- package/dist/src/daemon.js +15 -23
- 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 +2 -2
- package/dist/src/discovery.js +12 -9
- 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 +4 -4
- 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 +15 -10
- 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 +18 -6
- 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 +6 -8
- 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 +82 -4
- 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/search.d.ts +0 -14
- package/dist/clis/jianyu/search.js +0 -135
- package/dist/clis/jianyu/search.test.d.ts +0 -1
- package/dist/clis/jianyu/search.test.js +0 -23
- 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/daemon.test.d.ts +0 -1
- package/dist/src/daemon.test.js +0 -65
- package/dist/src/idle-manager.d.ts +0 -19
- package/dist/src/idle-manager.js +0 -54
- 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}/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/feed.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/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/topic.js +0 -0
- /package/{dist/clis → clis}/zsxq/topic.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/clis → clis}/zsxq/utils.js +0 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { __test__ } from './search.js';
|
|
3
|
+
describe('jianyu search helpers', () => {
|
|
4
|
+
it('builds candidate URLs with supsearch as preferred entry', () => {
|
|
5
|
+
const candidates = __test__.buildSearchCandidates('procurement');
|
|
6
|
+
expect(candidates[0]).toContain('/jylab/supsearch/index.html');
|
|
7
|
+
expect(candidates[0]).toContain('keywords=procurement');
|
|
8
|
+
expect(candidates[0]).toContain('selectType=title');
|
|
9
|
+
expect(candidates[0]).toContain('searchGroup=1');
|
|
10
|
+
});
|
|
11
|
+
it('builds supsearch URL with required query params', () => {
|
|
12
|
+
const url = __test__.buildSearchUrl('procurement');
|
|
13
|
+
expect(url).toContain('keywords=procurement');
|
|
14
|
+
expect(url).toContain('selectType=title');
|
|
15
|
+
expect(url).toContain('searchGroup=1');
|
|
16
|
+
});
|
|
17
|
+
it('normalizes common date formats', () => {
|
|
18
|
+
expect(__test__.normalizeDate('2026-4-7')).toBe('2026-04-07');
|
|
19
|
+
expect(__test__.normalizeDate('2026年4月7日')).toBe('2026-04-07');
|
|
20
|
+
expect(__test__.normalizeDate('发布时间: 2026/04/07 09:00')).toBe('2026-04-07');
|
|
21
|
+
});
|
|
22
|
+
it('deduplicates by title and url', () => {
|
|
23
|
+
const deduped = __test__.dedupeCandidates([
|
|
24
|
+
{ title: 'A', url: 'https://example.com/1', date: '2026-04-07' },
|
|
25
|
+
{ title: 'A', url: 'https://example.com/1', date: '2026-04-07' },
|
|
26
|
+
{ title: 'A', url: 'https://example.com/2', date: '2026-04-07' },
|
|
27
|
+
]);
|
|
28
|
+
expect(deduped).toHaveLength(2);
|
|
29
|
+
});
|
|
30
|
+
it('filters obvious navigation rows before quality gate', () => {
|
|
31
|
+
const filtered = __test__.filterNavigationRows('电梯', [
|
|
32
|
+
{ title: '招标公告', url: 'https://www.jianyu360.cn/list/stype/ZBGG.html', date: '' },
|
|
33
|
+
{ title: '帮助中心', url: 'https://www.jianyu360.cn/helpCenter/index', date: '' },
|
|
34
|
+
{ title: '某项目电梯采购公告', url: 'https://www.jianyu360.cn/notice/detail/123', date: '2026-04-07' },
|
|
35
|
+
]);
|
|
36
|
+
expect(filtered).toHaveLength(1);
|
|
37
|
+
expect(filtered[0].title).toContain('电梯采购公告');
|
|
38
|
+
});
|
|
39
|
+
it('rejects procurement rows that do not contain query evidence', () => {
|
|
40
|
+
const filtered = __test__.filterNavigationRows('电梯', [
|
|
41
|
+
{
|
|
42
|
+
title: '某项目采购公告',
|
|
43
|
+
url: 'https://www.jianyu360.cn/notice/detail/123',
|
|
44
|
+
date: '2026-04-07',
|
|
45
|
+
contextText: '招标公告 项目编号:ABC-123',
|
|
46
|
+
},
|
|
47
|
+
]);
|
|
48
|
+
expect(filtered).toHaveLength(0);
|
|
49
|
+
});
|
|
50
|
+
it('parses search-index markdown headings', () => {
|
|
51
|
+
const rows = __test__.parseSearchIndexMarkdown(`
|
|
52
|
+
## [标题一](http://duckduckgo.com/l/?uddg=https%3A%2F%2Fbeijing.jianyu360.cn%2Fjybx%2F20260401_26033143187897.html)
|
|
53
|
+
## [标题二](https://www.jianyu360.cn/nologin/content/ABC.html)
|
|
54
|
+
`);
|
|
55
|
+
expect(rows).toHaveLength(2);
|
|
56
|
+
expect(rows[0].title).toBe('标题一');
|
|
57
|
+
expect(rows[1].url).toContain('jianyu360.cn/nologin/content');
|
|
58
|
+
});
|
|
59
|
+
it('unwraps duckduckgo redirect links', () => {
|
|
60
|
+
const direct = __test__.unwrapDuckDuckGoUrl('https://duckduckgo.com/l/?uddg=https%3A%2F%2Fwww.jianyu360.cn%2Fnologin%2Fcontent%2FXYZ.html');
|
|
61
|
+
expect(direct).toBe('https://www.jianyu360.cn/nologin/content/XYZ.html');
|
|
62
|
+
});
|
|
63
|
+
it('extracts publish date from jianyu jybx urls', () => {
|
|
64
|
+
const date = __test__.extractDateFromJianyuUrl('https://shandong.jianyu360.cn/jybx/20260310_26030938267551.html');
|
|
65
|
+
expect(date).toBe('2026-03-10');
|
|
66
|
+
});
|
|
67
|
+
it('normalizes api payload rows with fallback url/title fields', () => {
|
|
68
|
+
const normalized = __test__.normalizeApiRow({
|
|
69
|
+
noticeTitle: '某项目电梯采购公告',
|
|
70
|
+
detailUrl: '/jybx/20260310_26030938267551.html',
|
|
71
|
+
publishTime: '2026-03-10 09:00:00',
|
|
72
|
+
buyer: '测试单位',
|
|
73
|
+
});
|
|
74
|
+
expect(normalized).toBeTruthy();
|
|
75
|
+
expect(normalized?.title).toContain('电梯采购公告');
|
|
76
|
+
expect(normalized?.url).toContain('/jybx/20260310_26030938267551.html');
|
|
77
|
+
expect(normalized?.date).toBe('2026-03-10');
|
|
78
|
+
});
|
|
79
|
+
it('keeps later bucket unique api rows before final filtering and slice', async () => {
|
|
80
|
+
const page = {
|
|
81
|
+
goto: async () => { },
|
|
82
|
+
wait: async () => { },
|
|
83
|
+
evaluate: async () => ({
|
|
84
|
+
challenge: false,
|
|
85
|
+
responses: [
|
|
86
|
+
{
|
|
87
|
+
type: 'fType',
|
|
88
|
+
ok: true,
|
|
89
|
+
status: 200,
|
|
90
|
+
payload: {
|
|
91
|
+
list: [
|
|
92
|
+
{
|
|
93
|
+
noticeTitle: '某项目电梯采购公告',
|
|
94
|
+
detailUrl: '/jybx/20260310_26030938267551.html',
|
|
95
|
+
publishTime: '2026-03-10 09:00:00',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
noticeTitle: '某项目电梯采购公告',
|
|
99
|
+
detailUrl: '/jybx/20260310_26030938267551.html',
|
|
100
|
+
publishTime: '2026-03-10 09:00:00',
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
type: 'eType',
|
|
107
|
+
ok: true,
|
|
108
|
+
status: 200,
|
|
109
|
+
payload: {
|
|
110
|
+
list: [
|
|
111
|
+
{
|
|
112
|
+
noticeTitle: '另一条电梯采购公告',
|
|
113
|
+
detailUrl: '/jybx/20260311_26030938267552.html',
|
|
114
|
+
publishTime: '2026-03-11 09:00:00',
|
|
115
|
+
},
|
|
116
|
+
],
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
],
|
|
120
|
+
}),
|
|
121
|
+
};
|
|
122
|
+
const result = await __test__.fetchJianyuApiRows(page, '电梯', 1);
|
|
123
|
+
expect(result.challenge).toBe(false);
|
|
124
|
+
expect(result.rows).toHaveLength(2);
|
|
125
|
+
expect(result.rows[0].title).toContain('电梯采购公告');
|
|
126
|
+
expect(result.rows[1].title).toContain('另一条电梯采购公告');
|
|
127
|
+
});
|
|
128
|
+
});
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { cleanText, normalizeDate, } from './procurement-contract.js';
|
|
2
|
+
export { cleanText, normalizeDate };
|
|
3
|
+
export function dedupeCandidates(items) {
|
|
4
|
+
const deduped = [];
|
|
5
|
+
const seen = new Set();
|
|
6
|
+
for (const item of items) {
|
|
7
|
+
const key = `${cleanText(item.title)}\t${cleanText(item.url)}`;
|
|
8
|
+
if (seen.has(key))
|
|
9
|
+
continue;
|
|
10
|
+
seen.add(key);
|
|
11
|
+
deduped.push(item);
|
|
12
|
+
}
|
|
13
|
+
return deduped;
|
|
14
|
+
}
|
|
15
|
+
function withQuery(baseUrl, key, query) {
|
|
16
|
+
try {
|
|
17
|
+
const url = new URL(baseUrl);
|
|
18
|
+
url.searchParams.set(key, query);
|
|
19
|
+
return url.toString();
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export function buildSearchCandidates(query, baseEntries, queryKeys = ['keyword', 'keywords', 'q', 'search', 'title']) {
|
|
26
|
+
const keyword = cleanText(query);
|
|
27
|
+
const candidates = [];
|
|
28
|
+
if (keyword) {
|
|
29
|
+
for (const entry of baseEntries) {
|
|
30
|
+
for (const key of queryKeys) {
|
|
31
|
+
const withKeyword = withQuery(entry, key, keyword);
|
|
32
|
+
if (withKeyword)
|
|
33
|
+
candidates.push(withKeyword);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
candidates.push(...baseEntries);
|
|
38
|
+
const ordered = [];
|
|
39
|
+
const seen = new Set();
|
|
40
|
+
for (const item of candidates) {
|
|
41
|
+
const value = cleanText(item);
|
|
42
|
+
if (!value || seen.has(value))
|
|
43
|
+
continue;
|
|
44
|
+
seen.add(value);
|
|
45
|
+
ordered.push(value);
|
|
46
|
+
}
|
|
47
|
+
return ordered;
|
|
48
|
+
}
|
|
49
|
+
export async function detectAuthPrompt(page) {
|
|
50
|
+
const pageText = cleanText(await page.evaluate('document.body ? document.body.innerText : ""'));
|
|
51
|
+
return /(请先登录|未登录|登录后|验证码|人机验证|权限不足|无权限|请完善信息后访问)/.test(pageText);
|
|
52
|
+
}
|
|
53
|
+
export async function searchRowsFromEntries(page, { query, candidateUrls, allowedHostFragments, limit, }) {
|
|
54
|
+
const queryText = cleanText(query);
|
|
55
|
+
const rows = [];
|
|
56
|
+
for (const targetUrl of candidateUrls) {
|
|
57
|
+
await page.goto(targetUrl);
|
|
58
|
+
await page.wait(2);
|
|
59
|
+
const payload = await page.evaluate(`
|
|
60
|
+
(() => {
|
|
61
|
+
const clean = (value) => (value || '').replace(/\\s+/g, ' ').trim();
|
|
62
|
+
const parseDate = (text) => {
|
|
63
|
+
const normalized = clean(text);
|
|
64
|
+
const match = normalized.match(/(20\\d{2})[.\\-/年](\\d{1,2})[.\\-/月](\\d{1,2})/);
|
|
65
|
+
if (!match) return '';
|
|
66
|
+
return match[1] + '-' + String(match[2]).padStart(2, '0') + '-' + String(match[3]).padStart(2, '0');
|
|
67
|
+
};
|
|
68
|
+
const toAbsolute = (href) => {
|
|
69
|
+
if (!href) return '';
|
|
70
|
+
if (href.startsWith('http://') || href.startsWith('https://')) return href;
|
|
71
|
+
if (href.startsWith('/')) return new URL(href, window.location.origin).toString();
|
|
72
|
+
return '';
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const token = ${JSON.stringify(queryText)};
|
|
76
|
+
const tokenParts = token.split(/\\s+/).filter(Boolean).map((part) => part.toLowerCase());
|
|
77
|
+
const allowedHosts = ${JSON.stringify(allowedHostFragments.map((item) => item.toLowerCase()))};
|
|
78
|
+
const procurementHints = ['招标', '采购', '公告', '项目', '中标', '成交', '询价', '竞价', '比选', '投标', 'notice', 'tender', 'procurement', 'bidding'];
|
|
79
|
+
const rowSelectors = [
|
|
80
|
+
'table tbody tr',
|
|
81
|
+
'table tr',
|
|
82
|
+
'ul li',
|
|
83
|
+
'ol li',
|
|
84
|
+
'article',
|
|
85
|
+
'section',
|
|
86
|
+
'.list li',
|
|
87
|
+
'.notice li',
|
|
88
|
+
'[class*="list"] li',
|
|
89
|
+
'[class*="notice"] li',
|
|
90
|
+
'[class*="item"]',
|
|
91
|
+
'[class*="row"]',
|
|
92
|
+
];
|
|
93
|
+
|
|
94
|
+
const rowNodes = [];
|
|
95
|
+
const rowSeen = new Set();
|
|
96
|
+
for (const selector of rowSelectors) {
|
|
97
|
+
const nodes = Array.from(document.querySelectorAll(selector));
|
|
98
|
+
for (const node of nodes) {
|
|
99
|
+
const text = clean(node.innerText || node.textContent || '');
|
|
100
|
+
if (!text || text.length < 8) continue;
|
|
101
|
+
const lowerText = text.toLowerCase();
|
|
102
|
+
const hasDate = /(20\\d{2})[.\\-/年](\\d{1,2})[.\\-/月](\\d{1,2})/.test(text);
|
|
103
|
+
const hasHint = procurementHints.some((hint) => lowerText.includes(hint));
|
|
104
|
+
const hasQuery = tokenParts.length === 0 || tokenParts.some((part) => lowerText.includes(part));
|
|
105
|
+
if (!hasDate && !hasHint && !hasQuery) continue;
|
|
106
|
+
if (rowSeen.has(node)) continue;
|
|
107
|
+
rowSeen.add(node);
|
|
108
|
+
rowNodes.push(node);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
const rows = [];
|
|
113
|
+
const seen = new Set();
|
|
114
|
+
for (const node of rowNodes) {
|
|
115
|
+
const contextText = clean(node.innerText || node.textContent || '');
|
|
116
|
+
const contextLower = contextText.toLowerCase();
|
|
117
|
+
const hasHint = procurementHints.some((hint) => contextLower.includes(hint));
|
|
118
|
+
const hasQuery = tokenParts.length === 0 || tokenParts.some((part) => contextLower.includes(part));
|
|
119
|
+
if (!hasHint && !hasQuery) continue;
|
|
120
|
+
|
|
121
|
+
const anchors = Array.from(node.querySelectorAll('a[href]'));
|
|
122
|
+
for (const anchor of anchors) {
|
|
123
|
+
const title = clean(anchor.textContent || '');
|
|
124
|
+
if (!title || title.length < 4) continue;
|
|
125
|
+
const url = toAbsolute(anchor.getAttribute('href') || anchor.href || '');
|
|
126
|
+
if (!url) continue;
|
|
127
|
+
const lowerUrl = url.toLowerCase();
|
|
128
|
+
const hostMatched = allowedHosts.length === 0 || allowedHosts.some((item) => lowerUrl.includes(item));
|
|
129
|
+
if (!hostMatched) continue;
|
|
130
|
+
|
|
131
|
+
const key = title + '\\t' + url;
|
|
132
|
+
if (seen.has(key)) continue;
|
|
133
|
+
seen.add(key);
|
|
134
|
+
rows.push({
|
|
135
|
+
title,
|
|
136
|
+
url,
|
|
137
|
+
date: parseDate(contextText),
|
|
138
|
+
contextText,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return rows;
|
|
143
|
+
})()
|
|
144
|
+
`);
|
|
145
|
+
if (Array.isArray(payload)) {
|
|
146
|
+
for (const item of payload) {
|
|
147
|
+
if (!item || typeof item !== 'object')
|
|
148
|
+
continue;
|
|
149
|
+
const row = item;
|
|
150
|
+
const candidate = {
|
|
151
|
+
title: cleanText(row.title),
|
|
152
|
+
url: cleanText(row.url),
|
|
153
|
+
date: normalizeDate(cleanText(row.date)),
|
|
154
|
+
contextText: cleanText(row.contextText),
|
|
155
|
+
};
|
|
156
|
+
if (!candidate.title || !candidate.url)
|
|
157
|
+
continue;
|
|
158
|
+
rows.push(candidate);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
if (rows.length >= limit)
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
return dedupeCandidates(rows).slice(0, limit);
|
|
165
|
+
}
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
const PROCUREMENT_HINTS = [
|
|
2
|
+
'招标',
|
|
3
|
+
'采购',
|
|
4
|
+
'公告',
|
|
5
|
+
'项目',
|
|
6
|
+
'中标',
|
|
7
|
+
'成交',
|
|
8
|
+
'流标',
|
|
9
|
+
'终止',
|
|
10
|
+
'询价',
|
|
11
|
+
'竞价',
|
|
12
|
+
'比选',
|
|
13
|
+
'投标',
|
|
14
|
+
'tender',
|
|
15
|
+
'procurement',
|
|
16
|
+
'bidding',
|
|
17
|
+
'bid',
|
|
18
|
+
'notice',
|
|
19
|
+
];
|
|
20
|
+
const RESULT_HINTS = [
|
|
21
|
+
'中标',
|
|
22
|
+
'成交',
|
|
23
|
+
'结果',
|
|
24
|
+
'候选人',
|
|
25
|
+
'中选',
|
|
26
|
+
'定标',
|
|
27
|
+
'评标',
|
|
28
|
+
'award',
|
|
29
|
+
'winner',
|
|
30
|
+
];
|
|
31
|
+
const NOTICE_HINTS = [
|
|
32
|
+
'招标',
|
|
33
|
+
'采购',
|
|
34
|
+
'询价',
|
|
35
|
+
'比选',
|
|
36
|
+
'公告',
|
|
37
|
+
'竞争性',
|
|
38
|
+
'邀请',
|
|
39
|
+
'投标',
|
|
40
|
+
'tender',
|
|
41
|
+
'procurement',
|
|
42
|
+
'notice',
|
|
43
|
+
];
|
|
44
|
+
const NEWS_HINTS = [
|
|
45
|
+
'新闻',
|
|
46
|
+
'资讯',
|
|
47
|
+
'动态',
|
|
48
|
+
'政策',
|
|
49
|
+
'简讯',
|
|
50
|
+
'news',
|
|
51
|
+
'article',
|
|
52
|
+
];
|
|
53
|
+
const NAVIGATION_HINTS = [
|
|
54
|
+
'首页',
|
|
55
|
+
'官网',
|
|
56
|
+
'网站地图',
|
|
57
|
+
'联系我们',
|
|
58
|
+
'帮助中心',
|
|
59
|
+
'english',
|
|
60
|
+
'login',
|
|
61
|
+
'注册',
|
|
62
|
+
'导航',
|
|
63
|
+
'法规',
|
|
64
|
+
'政策文件',
|
|
65
|
+
'服务平台',
|
|
66
|
+
'信用中国',
|
|
67
|
+
];
|
|
68
|
+
const DETAIL_URL_HINTS = [
|
|
69
|
+
'/detail',
|
|
70
|
+
'/content',
|
|
71
|
+
'/jybx/',
|
|
72
|
+
'/notice',
|
|
73
|
+
'/article',
|
|
74
|
+
'/view',
|
|
75
|
+
'/project',
|
|
76
|
+
'/bid',
|
|
77
|
+
'detail=',
|
|
78
|
+
'id=',
|
|
79
|
+
];
|
|
80
|
+
const LIST_URL_HINTS = [
|
|
81
|
+
'/search',
|
|
82
|
+
'/list',
|
|
83
|
+
'/index',
|
|
84
|
+
'/home',
|
|
85
|
+
'/portal',
|
|
86
|
+
'/channel',
|
|
87
|
+
'page=',
|
|
88
|
+
];
|
|
89
|
+
const OWNER_PATTERNS = [
|
|
90
|
+
/(?:招标人|采购人|业主|建设单位|项目单位)\s*[::]\s*([^\n,。;]{2,60})/i,
|
|
91
|
+
];
|
|
92
|
+
const CODE_PATTERNS = [
|
|
93
|
+
/(?:项目编号|招标编号|采购编号|项目编码|项目代码|编号)\s*[::]\s*([A-Za-z0-9\-_/]{4,60})/i,
|
|
94
|
+
];
|
|
95
|
+
const BUDGET_PATTERNS = [
|
|
96
|
+
/(?:预算(?:金额)?|控制价|最高限价|限价|采购金额|合同估算价)\s*[::]\s*([^\n,。;]{2,80})/i,
|
|
97
|
+
];
|
|
98
|
+
const DEADLINE_PATTERNS = [
|
|
99
|
+
/(?:报名截止时间|投标截止时间|开标时间|响应文件递交截止时间|截止时间|开标日期)\s*[::]\s*([^\n,。;]{2,80})/i,
|
|
100
|
+
];
|
|
101
|
+
const DATE_PATTERN = /(20\d{2})[.\-/年](\d{1,2})[.\-/月](\d{1,2})/;
|
|
102
|
+
export function cleanText(value) {
|
|
103
|
+
return typeof value === 'string' ? value.replace(/\s+/g, ' ').trim() : '';
|
|
104
|
+
}
|
|
105
|
+
export function normalizeDate(raw) {
|
|
106
|
+
const normalized = cleanText(raw);
|
|
107
|
+
const match = normalized.match(DATE_PATTERN);
|
|
108
|
+
if (!match)
|
|
109
|
+
return '';
|
|
110
|
+
const year = match[1];
|
|
111
|
+
const month = match[2].padStart(2, '0');
|
|
112
|
+
const day = match[3].padStart(2, '0');
|
|
113
|
+
return `${year}-${month}-${day}`;
|
|
114
|
+
}
|
|
115
|
+
function uniqueInOrder(values) {
|
|
116
|
+
const ordered = [];
|
|
117
|
+
const seen = new Set();
|
|
118
|
+
for (const value of values) {
|
|
119
|
+
const text = cleanText(value);
|
|
120
|
+
if (!text || seen.has(text))
|
|
121
|
+
continue;
|
|
122
|
+
seen.add(text);
|
|
123
|
+
ordered.push(text);
|
|
124
|
+
}
|
|
125
|
+
return ordered;
|
|
126
|
+
}
|
|
127
|
+
function containsAny(haystack, needles) {
|
|
128
|
+
return needles.some((needle) => haystack.includes(needle.toLowerCase()));
|
|
129
|
+
}
|
|
130
|
+
function extractByPatterns(text, patterns) {
|
|
131
|
+
for (const pattern of patterns) {
|
|
132
|
+
const matched = text.match(pattern);
|
|
133
|
+
if (matched?.[1])
|
|
134
|
+
return cleanText(matched[1]);
|
|
135
|
+
}
|
|
136
|
+
return '';
|
|
137
|
+
}
|
|
138
|
+
function deriveSnippet(text) {
|
|
139
|
+
const normalized = cleanText(text);
|
|
140
|
+
if (!normalized)
|
|
141
|
+
return '';
|
|
142
|
+
return normalized.slice(0, 220);
|
|
143
|
+
}
|
|
144
|
+
function splitEvidenceBlocks(text, query) {
|
|
145
|
+
const normalized = cleanText(text);
|
|
146
|
+
if (!normalized)
|
|
147
|
+
return [];
|
|
148
|
+
const queryTokens = query
|
|
149
|
+
.split(/\s+/)
|
|
150
|
+
.map((item) => item.toLowerCase().trim())
|
|
151
|
+
.filter(Boolean);
|
|
152
|
+
const chunks = normalized
|
|
153
|
+
.split(/[。!?;\n]/)
|
|
154
|
+
.map((chunk) => cleanText(chunk))
|
|
155
|
+
.filter(Boolean);
|
|
156
|
+
const ranked = chunks
|
|
157
|
+
.map((chunk) => {
|
|
158
|
+
const lower = chunk.toLowerCase();
|
|
159
|
+
const tokenScore = queryTokens.length === 0
|
|
160
|
+
? 0
|
|
161
|
+
: queryTokens.reduce((score, token) => (lower.includes(token) ? score + 2 : score), 0);
|
|
162
|
+
const procurementScore = containsAny(lower, PROCUREMENT_HINTS) ? 1 : 0;
|
|
163
|
+
return {
|
|
164
|
+
chunk,
|
|
165
|
+
score: tokenScore + procurementScore,
|
|
166
|
+
};
|
|
167
|
+
})
|
|
168
|
+
.sort((a, b) => b.score - a.score || b.chunk.length - a.chunk.length)
|
|
169
|
+
.slice(0, 5)
|
|
170
|
+
.map((item) => item.chunk);
|
|
171
|
+
return uniqueInOrder(ranked);
|
|
172
|
+
}
|
|
173
|
+
function classifyContentType(title, url, contextText) {
|
|
174
|
+
const haystack = `${title} ${contextText} ${url}`.toLowerCase();
|
|
175
|
+
if (containsAny(haystack, RESULT_HINTS))
|
|
176
|
+
return 'result';
|
|
177
|
+
if (containsAny(haystack, NOTICE_HINTS))
|
|
178
|
+
return 'notice';
|
|
179
|
+
if (containsAny(haystack, NEWS_HINTS))
|
|
180
|
+
return 'news';
|
|
181
|
+
if (containsAny(haystack, NAVIGATION_HINTS))
|
|
182
|
+
return 'navigation';
|
|
183
|
+
return 'unknown';
|
|
184
|
+
}
|
|
185
|
+
function isDetailPage(url) {
|
|
186
|
+
const lower = cleanText(url).toLowerCase();
|
|
187
|
+
if (!lower)
|
|
188
|
+
return false;
|
|
189
|
+
const hasDetailToken = DETAIL_URL_HINTS.some((hint) => lower.includes(hint));
|
|
190
|
+
if (!hasDetailToken)
|
|
191
|
+
return false;
|
|
192
|
+
const hasListToken = LIST_URL_HINTS.some((hint) => lower.includes(hint));
|
|
193
|
+
return !hasListToken;
|
|
194
|
+
}
|
|
195
|
+
function buildQualityFlags(core) {
|
|
196
|
+
const flags = [];
|
|
197
|
+
if (!core.project_owner)
|
|
198
|
+
flags.push('missing_project_owner');
|
|
199
|
+
if (!core.project_code)
|
|
200
|
+
flags.push('missing_project_code');
|
|
201
|
+
if (!core.budget_or_limit)
|
|
202
|
+
flags.push('missing_budget');
|
|
203
|
+
if (!core.deadline_or_open_time)
|
|
204
|
+
flags.push('missing_deadline');
|
|
205
|
+
if (core.content_type === 'navigation')
|
|
206
|
+
flags.push('navigation_risk');
|
|
207
|
+
if (!core.is_detail_page)
|
|
208
|
+
flags.push('list_page_url');
|
|
209
|
+
return flags;
|
|
210
|
+
}
|
|
211
|
+
function queryMatched(text, query) {
|
|
212
|
+
const tokenParts = query
|
|
213
|
+
.split(/\s+/)
|
|
214
|
+
.map((part) => part.toLowerCase().trim())
|
|
215
|
+
.filter(Boolean);
|
|
216
|
+
if (tokenParts.length === 0)
|
|
217
|
+
return true;
|
|
218
|
+
const lower = text.toLowerCase();
|
|
219
|
+
return tokenParts.some((part) => lower.includes(part));
|
|
220
|
+
}
|
|
221
|
+
function normalizeCoreRecord(row, { sourceSite, }) {
|
|
222
|
+
const title = cleanText(row.title);
|
|
223
|
+
const url = cleanText(row.url);
|
|
224
|
+
const contextText = cleanText(row.contextText);
|
|
225
|
+
const date = normalizeDate(cleanText(row.date || contextText));
|
|
226
|
+
const publishTime = date;
|
|
227
|
+
const contentType = classifyContentType(title, url, contextText);
|
|
228
|
+
const projectOwner = extractByPatterns(contextText, OWNER_PATTERNS);
|
|
229
|
+
const projectCode = extractByPatterns(contextText, CODE_PATTERNS);
|
|
230
|
+
const budget = extractByPatterns(contextText, BUDGET_PATTERNS);
|
|
231
|
+
const deadline = extractByPatterns(contextText, DEADLINE_PATTERNS);
|
|
232
|
+
const snippet = deriveSnippet(contextText || title);
|
|
233
|
+
const core = {
|
|
234
|
+
title,
|
|
235
|
+
url,
|
|
236
|
+
date,
|
|
237
|
+
publish_time: publishTime,
|
|
238
|
+
source_site: sourceSite,
|
|
239
|
+
is_detail_page: isDetailPage(url),
|
|
240
|
+
content_type: contentType,
|
|
241
|
+
project_owner: projectOwner,
|
|
242
|
+
project_code: projectCode,
|
|
243
|
+
budget_or_limit: budget,
|
|
244
|
+
deadline_or_open_time: deadline,
|
|
245
|
+
snippet,
|
|
246
|
+
summary: snippet,
|
|
247
|
+
quality_flags: [],
|
|
248
|
+
};
|
|
249
|
+
core.quality_flags = buildQualityFlags(core);
|
|
250
|
+
return core;
|
|
251
|
+
}
|
|
252
|
+
function qualityRejectReason(core, query) {
|
|
253
|
+
if (!core.title || !core.url)
|
|
254
|
+
return 'missing_identity';
|
|
255
|
+
if (core.content_type === 'navigation')
|
|
256
|
+
return 'navigation_only';
|
|
257
|
+
const searchable = `${core.title} ${core.snippet} ${core.url}`.toLowerCase();
|
|
258
|
+
const hasQuery = queryMatched(searchable, query);
|
|
259
|
+
if (!hasQuery)
|
|
260
|
+
return 'query_mismatch';
|
|
261
|
+
return null;
|
|
262
|
+
}
|
|
263
|
+
function dedupeByTitleUrl(items) {
|
|
264
|
+
const deduped = [];
|
|
265
|
+
const seen = new Set();
|
|
266
|
+
for (const item of items) {
|
|
267
|
+
const key = `${item.title}\t${item.url}`;
|
|
268
|
+
if (seen.has(key))
|
|
269
|
+
continue;
|
|
270
|
+
seen.add(key);
|
|
271
|
+
deduped.push(item);
|
|
272
|
+
}
|
|
273
|
+
return deduped;
|
|
274
|
+
}
|
|
275
|
+
export function formatTaxonomyError(taxonomy, { site, command, detail, }) {
|
|
276
|
+
return `[taxonomy=${taxonomy}] site=${site} command=${command} ${cleanText(detail)}`;
|
|
277
|
+
}
|
|
278
|
+
export function taxonomyError(taxonomy, context) {
|
|
279
|
+
return new Error(formatTaxonomyError(taxonomy, context));
|
|
280
|
+
}
|
|
281
|
+
export function toProcurementSearchRecords(rows, { site, query, limit, }) {
|
|
282
|
+
const normalizedRows = dedupeByTitleUrl(rows.map((row) => normalizeCoreRecord(row, { sourceSite: site })));
|
|
283
|
+
const accepted = [];
|
|
284
|
+
for (const row of normalizedRows) {
|
|
285
|
+
const rejectReason = qualityRejectReason(row, query);
|
|
286
|
+
if (rejectReason)
|
|
287
|
+
continue;
|
|
288
|
+
accepted.push(row);
|
|
289
|
+
}
|
|
290
|
+
if (normalizedRows.length > 0 && accepted.length === 0) {
|
|
291
|
+
throw taxonomyError('extraction_drift', {
|
|
292
|
+
site,
|
|
293
|
+
command: 'search',
|
|
294
|
+
detail: `all rows rejected by quality gate (raw=${normalizedRows.length})`,
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
return accepted
|
|
298
|
+
.slice(0, Math.max(1, limit))
|
|
299
|
+
.map((row, index) => ({
|
|
300
|
+
rank: index + 1,
|
|
301
|
+
...row,
|
|
302
|
+
}));
|
|
303
|
+
}
|
|
304
|
+
export function toProcurementDetailRecord({ title, url, contextText, publishTime, }, { site, query = '', }) {
|
|
305
|
+
const core = normalizeCoreRecord({
|
|
306
|
+
title,
|
|
307
|
+
url,
|
|
308
|
+
date: publishTime,
|
|
309
|
+
contextText,
|
|
310
|
+
}, { sourceSite: site });
|
|
311
|
+
const detailText = cleanText(contextText).slice(0, 6000);
|
|
312
|
+
const evidenceBlocks = splitEvidenceBlocks(detailText, query);
|
|
313
|
+
return {
|
|
314
|
+
...core,
|
|
315
|
+
detail_text: detailText,
|
|
316
|
+
evidence_blocks: evidenceBlocks,
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
export const __test__ = {
|
|
320
|
+
classifyContentType,
|
|
321
|
+
isDetailPage,
|
|
322
|
+
splitEvidenceBlocks,
|
|
323
|
+
qualityRejectReason,
|
|
324
|
+
};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { __test__, toProcurementDetailRecord, toProcurementSearchRecords, } from './procurement-contract.js';
|
|
3
|
+
describe('procurement contract helpers', () => {
|
|
4
|
+
it('builds v2 search records with compatibility fields', () => {
|
|
5
|
+
const rows = toProcurementSearchRecords([
|
|
6
|
+
{
|
|
7
|
+
title: '某项目电梯采购公告',
|
|
8
|
+
url: 'https://example.com/notice/detail?id=1',
|
|
9
|
+
date: '2026-04-09',
|
|
10
|
+
contextText: '招标公告 项目编号:ABC-123 预算金额:100万元 投标截止时间:2026-04-30',
|
|
11
|
+
},
|
|
12
|
+
], {
|
|
13
|
+
site: 'jianyu',
|
|
14
|
+
query: '电梯',
|
|
15
|
+
limit: 10,
|
|
16
|
+
});
|
|
17
|
+
expect(rows).toHaveLength(1);
|
|
18
|
+
expect(rows[0].rank).toBe(1);
|
|
19
|
+
expect(rows[0].publish_time).toBe('2026-04-09');
|
|
20
|
+
expect(rows[0].date).toBe('2026-04-09');
|
|
21
|
+
expect(rows[0].summary).toBe(rows[0].snippet);
|
|
22
|
+
expect(rows[0].content_type).toBe('notice');
|
|
23
|
+
expect(rows[0].source_site).toBe('jianyu');
|
|
24
|
+
expect(rows[0].project_code).toContain('ABC-123');
|
|
25
|
+
});
|
|
26
|
+
it('throws extraction_drift when all rows are navigation noise', () => {
|
|
27
|
+
expect(() => toProcurementSearchRecords([
|
|
28
|
+
{
|
|
29
|
+
title: '官网首页',
|
|
30
|
+
url: 'https://example.com/index',
|
|
31
|
+
contextText: '官网首页 联系我们',
|
|
32
|
+
},
|
|
33
|
+
], {
|
|
34
|
+
site: 'ggzy',
|
|
35
|
+
query: '电梯',
|
|
36
|
+
limit: 10,
|
|
37
|
+
})).toThrow('[taxonomy=extraction_drift]');
|
|
38
|
+
});
|
|
39
|
+
it('rejects rows that look like procurement notices but miss the query', () => {
|
|
40
|
+
expect(() => toProcurementSearchRecords([
|
|
41
|
+
{
|
|
42
|
+
title: '某项目采购公告',
|
|
43
|
+
url: 'https://example.com/notice/detail?id=1',
|
|
44
|
+
contextText: '招标公告 项目编号:ABC-123 预算金额:100万元',
|
|
45
|
+
},
|
|
46
|
+
], {
|
|
47
|
+
site: 'jianyu',
|
|
48
|
+
query: '电梯',
|
|
49
|
+
limit: 10,
|
|
50
|
+
})).toThrow('[taxonomy=extraction_drift]');
|
|
51
|
+
});
|
|
52
|
+
it('builds detail record with evidence blocks', () => {
|
|
53
|
+
const detail = toProcurementDetailRecord({
|
|
54
|
+
title: '电梯采购公告',
|
|
55
|
+
url: 'https://example.com/notice/detail/100',
|
|
56
|
+
contextText: '项目编号:A-100。预算金额:200万元。投标截止时间:2026年04月30日。',
|
|
57
|
+
}, {
|
|
58
|
+
site: 'powerchina',
|
|
59
|
+
query: '电梯',
|
|
60
|
+
});
|
|
61
|
+
expect(detail.content_type).toBe('notice');
|
|
62
|
+
expect(detail.detail_text).toContain('预算金额');
|
|
63
|
+
expect(detail.evidence_blocks.length).toBeGreaterThan(0);
|
|
64
|
+
});
|
|
65
|
+
it('classifies detail urls and content type', () => {
|
|
66
|
+
expect(__test__.isDetailPage('https://a.com/notice/detail?id=1')).toBe(true);
|
|
67
|
+
expect(__test__.isDetailPage('https://shandong.jianyu360.cn/jybx/20260310_26030938267551.html')).toBe(true);
|
|
68
|
+
expect(__test__.isDetailPage('https://a.com/search?page=1')).toBe(false);
|
|
69
|
+
expect(__test__.classifyContentType('中标结果公告', 'https://a.com/detail/1', '中标候选人')).toBe('result');
|
|
70
|
+
expect(__test__.classifyContentType('电梯采购公告', 'https://shandong.jianyu360.cn/jybx/20260310_26030938267551.html', '首页 帮助中心 招标公告')).toBe('notice');
|
|
71
|
+
});
|
|
72
|
+
});
|