rsshub
Version:
Make RSS Great Again!
213 lines • 7.49 kB
JSON
{
"name": "rsshub",
"version": "1.0.0-master.f30f27b",
"description": "Make RSS Great Again!",
"keywords": [
"RSS"
],
"homepage": "https://github.com/DIYgod/RSSHub#readme",
"bugs": {
"url": "https://github.com/DIYgod/RSSHub/issues"
},
"license": "AGPL-3.0",
"author": "DIYgod",
"repository": {
"type": "git",
"url": "git+https://github.com/DIYgod/RSSHub.git"
},
"files": [
"dist-lib"
],
"type": "module",
"exports": {
".": {
"types": "./dist-lib/pkg.d.mts",
"import": "./dist-lib/pkg.mjs"
}
},
"dependencies": {
"@bbob/html": "4.3.1",
"@bbob/plugin-helper": "4.3.1",
"@bbob/preset-html5": "4.3.1",
"@hono/node-server": "1.19.9",
"@hono/zod-openapi": "1.2.1",
"@notionhq/client": "5.9.0",
"@opentelemetry/api": "1.9.0",
"@opentelemetry/exporter-prometheus": "0.211.0",
"@opentelemetry/exporter-trace-otlp-http": "0.211.0",
"@opentelemetry/resources": "2.5.0",
"@opentelemetry/sdk-metrics": "2.5.0",
"@opentelemetry/sdk-trace-base": "2.5.0",
"@opentelemetry/semantic-conventions": "1.39.0",
"@postlight/parser": "2.2.3",
"@rss3/sdk": "0.0.25",
"@scalar/hono-api-reference": "0.9.40",
"@sentry/node": "10.38.0",
"aes-js": "3.1.2",
"cheerio": "1.2.0",
"city-timezones": "1.3.3",
"cross-env": "10.1.0",
"crypto-js": "4.2.0",
"currency-symbol-map": "5.1.0",
"dayjs": "1.11.8",
"destr": "2.0.5",
"dotenv": "17.2.3",
"entities": "7.0.1",
"etag": "1.8.1",
"fanfou-sdk": "6.0.0",
"form-data": "4.0.5",
"google-play-scraper": "10.1.2",
"googleapis": "171.2.0",
"header-generator": "2.1.80",
"hono": "4.11.7",
"html-to-text": "9.0.5",
"http-cookie-agent": "7.0.3",
"https-proxy-agent": "7.0.6",
"iconv-lite": "0.7.2",
"imapflow": "1.2.8",
"instagram-private-api": "1.46.1",
"ioredis": "5.9.2",
"ip-regex": "5.0.0",
"jsdom": "27.0.0",
"json-bigint": "1.0.0",
"jsonpath-plus": "10.3.0",
"jsrsasign": "10.9.0",
"lru-cache": "11.2.5",
"lz-string": "1.5.0",
"mailparser": "3.9.3",
"markdown-it": "14.1.0",
"mixi2": "0.2.2",
"narou": "2.0.1",
"notion-to-md": "3.1.9",
"oauth-1.0a": "2.2.6",
"ofetch": "1.5.1",
"otplib": "13.2.1",
"p-map": "7.0.4",
"pac-proxy-agent": "7.2.0",
"proxy-chain": "2.7.1",
"puppeteer-real-browser": "1.4.4",
"query-string": "9.3.1",
"rate-limiter-flexible": "9.1.0",
"re2js": "1.2.1",
"rebrowser-puppeteer": "24.8.1",
"rfc4648": "1.5.4",
"rss-parser": "3.13.0",
"sanitize-html": "2.17.0",
"simplecc-wasm": "1.1.1",
"socks-proxy-agent": "8.0.5",
"source-map": "0.7.6",
"telegram": "2.26.22",
"title": "4.0.1",
"tldts": "7.0.22",
"tosource": "2.0.0-alpha.3",
"tough-cookie": "6.0.0",
"tsx": "4.21.0",
"twitter-api-v2": "1.29.0",
"ufo": "1.6.3",
"undici": "7.20.0",
"uuid": "13.0.0",
"winston": "3.19.0",
"xxhash-wasm": "1.1.0",
"youtube-caption-extractor": "1.9.1",
"youtubei.js": "16.0.1",
"zod": "4.3.6"
},
"devDependencies": {
"@bbob/types": "4.3.1",
"@cloudflare/containers": "0.1.0",
"@cloudflare/puppeteer": "1.0.6",
"@cloudflare/workers-types": "4.20260205.0",
"@eslint/eslintrc": "3.3.3",
"@eslint/js": "9.39.2",
"@stylistic/eslint-plugin": "5.7.1",
"@types/aes-js": "3.1.4",
"@types/babel__preset-env": "7.10.0",
"@types/crypto-js": "4.2.2",
"@types/eslint": "9.6.1",
"@types/etag": "1.8.4",
"@types/fs-extra": "11.0.4",
"@types/html-to-text": "9.0.4",
"@types/js-beautify": "1.14.3",
"@types/jsdom": "27.0.0",
"@types/json-bigint": "1.0.4",
"@types/jsrsasign": "10.5.13",
"@types/mailparser": "3.4.6",
"@types/markdown-it": "14.1.2",
"@types/module-alias": "2.0.4",
"@types/node": "25.2.0",
"@types/sanitize-html": "2.16.0",
"@types/supertest": "6.0.3",
"@typescript-eslint/eslint-plugin": "8.54.0",
"@typescript-eslint/parser": "8.54.0",
"@vercel/nft": "1.3.0",
"@vitest/coverage-v8": "4.0.9",
"discord-api-types": "0.38.38",
"domhandler": "5.0.3",
"eslint": "9.39.2",
"eslint-nibble": "9.1.1",
"eslint-plugin-import-x": "4.16.1",
"eslint-plugin-n": "17.23.2",
"eslint-plugin-simple-import-sort": "12.1.1",
"eslint-plugin-unicorn": "62.0.0",
"eslint-plugin-yml": "3.0.0",
"fs-extra": "11.3.3",
"globals": "17.3.0",
"got": "14.6.6",
"husky": "9.1.7",
"js-beautify": "1.15.4",
"lint-staged": "16.2.7",
"magic-string": "0.30.21",
"mockdate": "3.0.5",
"msw": "2.4.3",
"node-network-devtools": "1.0.29",
"oxfmt": "0.28.0",
"remark-parse": "11.0.0",
"supertest": "7.2.2",
"tsdown": "0.20.0",
"typescript": "5.9.3",
"unified": "11.0.5",
"vite-tsconfig-paths": "6.0.5",
"vitest": "4.0.9",
"wrangler": "4.62.0",
"yaml-eslint-parser": "2.0.0"
},
"lint-staged": {
"!(*.ts|*.tsx|*.js|*.yml)": [
"oxfmt --no-error-on-unmatched-pattern"
],
"*.{ts,tsx,js,yml}": [
"eslint --cache --fix --concurrency auto",
"oxfmt --no-error-on-unmatched-pattern"
]
},
"engines": {
"node": "^22.20.0 || ^24"
},
"scripts": {
"build": "npm run build:routes && tsdown",
"build:docs": "npm run build:routes && tsx scripts/workflow/build-docs.ts",
"build:lib": "npm run build:routes && tsdown --config ./tsdown-lib.config.ts",
"build:routes": "cross-env NODE_ENV=dev tsx scripts/workflow/build-routes.ts",
"vercel-build": "npm run build:routes && tsdown --config ./tsdown-vercel.config.ts",
"build:routes:worker": "cross-env NODE_ENV=dev WORKER_BUILD=true tsx scripts/workflow/build-routes.ts",
"worker-build": "npm run build:routes:worker && tsdown --config ./tsdown-worker.config.ts",
"worker-dev": "npm run worker-build && wrangler dev",
"worker-deploy": "npm run worker-build && wrangler deploy",
"worker-test": "npm run worker-build && vitest run lib/worker.worker.test.ts",
"container-build": "tsdown --config ./tsdown-container.config.ts",
"container-deploy": "npm run container-build && wrangler deploy --config wrangler-container.toml --containers-rollout=immediate",
"dev": "cross-env NODE_ENV=dev NODE_OPTIONS='--max-http-header-size=32768' tsx watch --inspect --clear-screen=false lib/index.ts",
"dev:cache": "cross-env NODE_ENV=production NODE_OPTIONS='--max-http-header-size=32768' tsx watch --clear-screen=false lib/index.ts",
"format": "eslint --cache --fix \"**/*.{ts,tsx,js,yml}\" --concurrency auto && oxfmt .",
"format:check": "eslint --cache \"**/*.{ts,tsx,js,yml}\" --concurrency auto && oxfmt . --check",
"format:staged": "lint-staged",
"lint": "eslint --cache . --concurrency auto",
"profiling": "cross-env NODE_ENV=production tsx --prof lib/index.ts",
"start": "cross-env NODE_ENV=production NODE_OPTIONS='--max-http-header-size=32768' node dist/index.mjs",
"test": "npm run format:check && npm run vitest:coverage",
"vitest": "cross-env NODE_ENV=test vitest",
"vitest:coverage": "cross-env NODE_ENV=test vitest --coverage.enabled --reporter=junit",
"vitest:fullroutes": "cross-env NODE_ENV=test FULL_ROUTES_TEST=true vitest --reporter=json --reporter=default --outputFile=\"./assets/build/test-full-routes.json\" routes",
"vitest:watch": "cross-env NODE_ENV=test vitest --watch"
}
}