diff --git a/package-lock.json b/package-lock.json index f8d6ab0..6f1caf8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,8 +12,8 @@ "cheerio": "^1.0.0-rc.12", "crypto-js": "^4.1.1", "form-data": "^4.0.0", + "nanoid": "^5.0.1", "node-fetch": "^2.7.0", - "randombytes": "^2.1.0", "unpacker": "^1.0.1" }, "devDependencies": { @@ -4711,10 +4711,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "dev": true, + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.1.tgz", + "integrity": "sha512-vWeVtV5Cw68aML/QaZvqN/3QQXc6fBfIieAlu05m7FZW2Dgb+3f0xc0TTxuJW+7u30t7iSDTV/j3kVI0oJqIfQ==", "funding": [ { "type": "github", @@ -4722,10 +4721,10 @@ } ], "bin": { - "nanoid": "bin/nanoid.cjs" + "nanoid": "bin/nanoid.js" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": "^18 || >=20" } }, "node_modules/natural-compare": { @@ -5144,6 +5143,24 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss/node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -5257,14 +5274,6 @@ } ] }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", @@ -5435,25 +5444,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/safe-regex-test": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", diff --git a/package.json b/package.json index 9607c1a..142aa64 100644 --- a/package.json +++ b/package.json @@ -79,8 +79,8 @@ "cheerio": "^1.0.0-rc.12", "crypto-js": "^4.1.1", "form-data": "^4.0.0", + "nanoid": "^5.0.1", "node-fetch": "^2.7.0", - "randombytes": "^2.1.0", "unpacker": "^1.0.1" } } diff --git a/src/providers/sources/superstream/sendRequest.ts b/src/providers/sources/superstream/sendRequest.ts index 7c0122c..2f77767 100644 --- a/src/providers/sources/superstream/sendRequest.ts +++ b/src/providers/sources/superstream/sendRequest.ts @@ -1,11 +1,12 @@ import CryptoJS from 'crypto-js'; -import randomBytes from 'randombytes'; +import { customAlphabet } from 'nanoid'; import type { ScrapeContext } from '@/utils/context'; import { apiUrls, appId, appKey, key } from './common'; import { encrypt, getVerify } from './crypto'; +const randomId = customAlphabet('1234567890abcdef'); const expiry = () => Math.floor(Date.now() / 1000 + 60 * 60 * 12); export const sendRequest = async (ctx: ScrapeContext, data: object, altApi = false) => { @@ -39,7 +40,7 @@ export const sendRequest = async (ctx: ScrapeContext, data: object, altApi = fal formatted.append('platform', 'android'); formatted.append('version', '129'); formatted.append('medium', 'Website'); - formatted.append('token', randomBytes(16).toString('hex')); + formatted.append('token', randomId(32)); const requestUrl = altApi ? apiUrls[1] : apiUrls[0];