{ "name": "rsshub", "version": "1.0.0", "description": "Make RSS Great Again!", "keywords": [ "RSS" ], "homepage": "https://github.com/DIYgod/RSSHub#readme", "bugs": { "url": "https://github.com/DIYgod/RSSHub/issues" }, "repository": { "type": "git", "url": "git+https://github.com/DIYgod/RSSHub.git" }, "license": "MIT", "author": "DIYgod", "type": "module", "main": "lib/pkg.ts", "files": [ "lib" ], "scripts": { "build": "tsx scripts/workflow/build-routes.ts", "build:docs": "tsx scripts/workflow/build-docs.ts", "dev": "cross-env NODE_ENV=dev tsx watch --inspect --clear-screen=false lib/index.ts", "dev:cache": "cross-env NODE_ENV=production tsx watch --clear-screen=false lib/index.ts", "format": "prettier \"**/*.{ts,tsx,js,json}\" --write && eslint --cache --fix \"**/*.{ts,tsx,js,yml}\"", "format:check": "prettier \"**/*.{ts,tsx,js,json}\" --check && eslint --cache \"**/*.{ts,tsx,js,yml}\"", "format:staged": "lint-staged", "lint": "eslint --cache .", "prepare": "husky || true", "profiling": "cross-env NODE_ENV=production tsx --prof lib/index.ts", "start": "cross-env NODE_ENV=production tsx lib/index.ts", "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" }, "lint-staged": { "*.js": [ "prettier --ignore-unknown --ignore-path ./.gitignore --write", "eslint --cache --fix" ], "*.{ts,tsx}": [ "prettier --ignore-unknown --ignore-path ./.gitignore --write", "eslint --cache --fix" ], "*.yml": "eslint --cache --fix" }, "dependencies": { "@bbob/html": "4.2.0", "@bbob/preset-html5": "4.2.0", "@hono/node-server": "1.14.0", "@hono/zod-openapi": "0.19.4", "@notionhq/client": "2.3.0", "@opentelemetry/api": "1.9.0", "@opentelemetry/exporter-prometheus": "0.200.0", "@opentelemetry/exporter-trace-otlp-http": "0.200.0", "@opentelemetry/resources": "2.0.0", "@opentelemetry/sdk-metrics": "2.0.0", "@opentelemetry/sdk-trace-base": "2.0.0", "@opentelemetry/semantic-conventions": "1.32.0", "@postlight/parser": "2.2.3", "@rss3/sdk": "0.0.25", "@scalar/hono-api-reference": "0.8.0", "@sentry/node": "9.12.0", "@tonyrl/rand-user-agent": "2.0.83", "aes-js": "3.1.2", "art-template": "4.13.2", "cheerio": "1.0.0", "chrono-node": "2.8.0", "city-timezones": "1.3.1", "cross-env": "7.0.3", "crypto-js": "4.2.0", "currency-symbol-map": "5.1.0", "dayjs": "1.11.8", "destr": "2.0.5", "directory-import": "3.3.2", "dotenv": "16.5.0", "entities": "6.0.0", "etag": "1.8.1", "fanfou-sdk": "5.0.0", "form-data": "4.0.2", "googleapis": "148.0.0", "hono": "4.7.6", "html-to-text": "9.0.5", "http-cookie-agent": "6.0.8", "https-proxy-agent": "7.0.6", "iconv-lite": "0.6.3", "imapflow": "1.0.184", "instagram-private-api": "1.46.1", "ioredis": "5.6.1", "ip-regex": "5.0.0", "jsdom": "26.0.0", "json-bigint": "1.0.0", "jsonpath-plus": "10.3.0", "jsrsasign": "10.9.0", "lru-cache": "11.1.0", "lz-string": "1.5.0", "mailparser": "3.7.2", "markdown-it": "14.1.0", "module-alias": "2.2.3", "narou": "1.1.0", "notion-to-md": "3.1.7", "oauth-1.0a": "2.2.6", "ofetch": "1.4.1", "otplib": "12.0.1", "pac-proxy-agent": "7.2.0", "proxy-chain": "2.5.8", "puppeteer": "22.6.2", "puppeteer-extra": "3.3.6", "puppeteer-extra-plugin-stealth": "2.11.2", "puppeteer-extra-plugin-user-data-dir": "2.4.1", "puppeteer-extra-plugin-user-preferences": "2.4.1", "query-string": "9.1.1", "rate-limiter-flexible": "7.0.0", "re2js": "1.1.0", "rfc4648": "1.5.4", "rss-parser": "3.13.0", "sanitize-html": "2.15.0", "simplecc-wasm": "1.1.0", "socks-proxy-agent": "8.0.5", "source-map": "0.7.4", "telegram": "2.26.22", "tiny-async-pool": "2.1.0", "title": "4.0.1", "tldts": "6.1.85", "tosource": "2.0.0-alpha.3", "tough-cookie": "5.1.2", "tsx": "4.19.3", "twitter-api-v2": "1.22.0", "ufo": "1.6.1", "undici": "6.21.2", "uuid": "11.1.0", "winston": "3.17.0", "xxhash-wasm": "1.1.0", "zod": "3.24.2" }, "devDependencies": { "@babel/preset-env": "7.26.9", "@babel/preset-typescript": "7.27.0", "@bbob/types": "4.2.0", "@eslint/eslintrc": "3.3.1", "@eslint/js": "9.24.0", "@microsoft/eslint-formatter-sarif": "3.1.0", "@stylistic/eslint-plugin": "4.2.0", "@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.3", "@types/fs-extra": "11.0.4", "@types/html-to-text": "9.0.4", "@types/imapflow": "1.0.20", "@types/js-beautify": "1.14.3", "@types/jsdom": "21.1.7", "@types/json-bigint": "1.0.4", "@types/jsrsasign": "10.5.13", "@types/lint-staged": "13.3.0", "@types/mailparser": "3.4.5", "@types/markdown-it": "14.1.2", "@types/module-alias": "2.0.4", "@types/node": "22.14.1", "@types/sanitize-html": "2.15.0", "@types/supertest": "6.0.3", "@types/tiny-async-pool": "2.0.3", "@types/title": "3.4.3", "@types/uuid": "10.0.0", "@typescript-eslint/eslint-plugin": "8.29.1", "@typescript-eslint/parser": "8.29.1", "@vercel/nft": "0.29.2", "@vitest/coverage-v8": "2.1.9", "discord-api-types": "0.37.120", "eslint": "9.24.0", "eslint-config-prettier": "10.1.2", "eslint-nibble": "8.1.0", "eslint-plugin-n": "17.17.0", "eslint-plugin-prettier": "5.2.6", "eslint-plugin-unicorn": "58.0.0", "eslint-plugin-yml": "1.17.0", "fs-extra": "11.3.0", "globals": "16.0.0", "got": "14.4.7", "husky": "9.1.7", "js-beautify": "1.15.4", "lint-staged": "15.5.0", "mockdate": "3.0.5", "msw": "2.4.3", "node-network-devtools": "1.0.25", "prettier": "3.5.3", "remark-parse": "11.0.0", "supertest": "7.1.0", "typescript": "5.8.3", "unified": "11.0.5", "vite-tsconfig-paths": "5.1.4", "vitest": "2.1.9", "yaml-eslint-parser": "1.3.0" }, "packageManager": "pnpm@9.15.9+sha512.68046141893c66fad01c079231128e9afb89ef87e2691d69e4d40eee228988295fd4682181bae55b58418c3a253bde65a505ec7c5f9403ece5cc3cd37dcf2531", "engines": { "node": ">=22" }, "pnpm": { "onlyBuiltDependencies": [ "bufferutil", "core-js", "es5-ext", "esbuild", "msw", "protobufjs", "puppeteer", "utf-8-validate", "vue-demi" ], "overrides": { "art-template@4.13.2>html-minifier": "~4.0.0", "difflib": "https://codeload.github.com/postlight/difflib.js/tar.gz/32e8e38c7fcd935241b9baab71bb432fd9b166ed", "es-set-tostringtag": "npm:@nolyfill/es-set-tostringtag@^1", "is-core-module": "npm:@nolyfill/is-core-module@^1", "safe-buffer": "npm:@nolyfill/safe-buffer@^1", "safer-buffer": "npm:@nolyfill/safer-buffer@^1", "side-channel": "npm:@nolyfill/side-channel@^1" } } }