Use cookie and set-cookie-parser

This commit is contained in:
MemeCornucopia
2024-01-29 13:43:32 -05:00
parent c8ad3387c5
commit 8b149458e0
3 changed files with 46 additions and 12 deletions

36
package-lock.json generated
View File

@@ -1,26 +1,30 @@
{
"name": "@movie-web/providers",
"version": "2.1.0",
"version": "2.1.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@movie-web/providers",
"version": "2.1.0",
"version": "2.1.1",
"license": "MIT",
"dependencies": {
"cheerio": "^1.0.0-rc.12",
"cookie": "^0.6.0",
"crypto-js": "^4.1.1",
"form-data": "^4.0.0",
"iso-639-1": "^3.1.0",
"nanoid": "^3.3.6",
"node-fetch": "^2.7.0",
"set-cookie-parser": "^2.6.0",
"unpacker": "^1.0.1"
},
"devDependencies": {
"@types/cookie": "^0.6.0",
"@types/crypto-js": "^4.1.1",
"@types/node-fetch": "^2.6.6",
"@types/randombytes": "^2.0.1",
"@types/set-cookie-parser": "^2.4.7",
"@types/spinnies": "^0.5.1",
"@typescript-eslint/eslint-plugin": "^5.60.0",
"@typescript-eslint/parser": "^5.60.0",
@@ -687,6 +691,12 @@
"@types/chai": "*"
}
},
"node_modules/@types/cookie": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz",
"integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==",
"dev": true
},
"node_modules/@types/crypto-js": {
"version": "4.2.1",
"dev": true,
@@ -751,6 +761,15 @@
"dev": true,
"license": "MIT"
},
"node_modules/@types/set-cookie-parser": {
"version": "2.4.7",
"resolved": "https://registry.npmjs.org/@types/set-cookie-parser/-/set-cookie-parser-2.4.7.tgz",
"integrity": "sha512-+ge/loa0oTozxip6zmhRIk8Z/boU51wl9Q6QdLZcokIGMzY5lFXYy/x7Htj2HTC6/KZP1hUbZ1ekx8DYXICvWg==",
"dev": true,
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/spinnies": {
"version": "0.5.3",
"dev": true,
@@ -1764,6 +1783,14 @@
"dev": true,
"license": "MIT"
},
"node_modules/cookie": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
"integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/cosmiconfig": {
"version": "8.3.6",
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
@@ -4789,6 +4816,11 @@
"node": ">=10"
}
},
"node_modules/set-cookie-parser": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz",
"integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ=="
},
"node_modules/set-function-length": {
"version": "1.1.1",
"dev": true,

View File

@@ -48,9 +48,11 @@
"prepublishOnly": "npm test && npm run lint"
},
"devDependencies": {
"@types/cookie": "^0.6.0",
"@types/crypto-js": "^4.1.1",
"@types/node-fetch": "^2.6.6",
"@types/randombytes": "^2.0.1",
"@types/set-cookie-parser": "^2.4.7",
"@types/spinnies": "^0.5.1",
"@typescript-eslint/eslint-plugin": "^5.60.0",
"@typescript-eslint/parser": "^5.60.0",
@@ -80,11 +82,13 @@
},
"dependencies": {
"cheerio": "^1.0.0-rc.12",
"cookie": "^0.6.0",
"crypto-js": "^4.1.1",
"form-data": "^4.0.0",
"iso-639-1": "^3.1.0",
"nanoid": "^3.3.6",
"node-fetch": "^2.7.0",
"set-cookie-parser": "^2.6.0",
"unpacker": "^1.0.1"
}
}

View File

@@ -1,3 +1,6 @@
import cookie from 'cookie';
import setCookieParser from 'set-cookie-parser';
export interface Cookie {
name: string;
value: string;
@@ -5,18 +8,13 @@ export interface Cookie {
export function makeCookieHeader(cookies: Record<string, string>): string {
return Object.entries(cookies)
.map(([name, value]) => `${name}=${value}`)
.map(([name, value]) => cookie.serialize(name, value))
.join('; ');
}
export function parseSetCookie(headerValue: string): Record<string, Cookie> {
const cookies: Record<string, Cookie> = {};
const parts = headerValue.split(/; */);
for (const part of parts) {
const [name, value] = part.split('=');
if (name && value) {
cookies[name] = { name, value };
}
}
return cookies;
const parsedCookies = setCookieParser.parse(headerValue, {
map: true,
});
return parsedCookies;
}