@mherod/get-cookie 2.0.0-beta.4 → 2.0.0-beta.6

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/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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","sources":["src/index.ts","src/queryCookies.ts","src/browsers/CompositeCookieQueryStrategy.ts","src/browsers/ChromeCookieQueryStrategy.ts","src/browsers/AbstractCookieQueryStrategy.ts","src/utils.ts","src/global.ts","src/findAllFiles.ts","src/CookieRow.ts","src/doSqliteQuery1.ts","src/browsers/FirefoxCookieQueryStrategy.ts","src/browsers/SafariCookieQueryStrategy.ts","src/isValidJwt.ts"],"sourcesContent":["#!/usr/bin/env node\n// noinspection JSUnusedGlobalSymbols\n\nimport { queryCookies } from \"./queryCookies\";\nimport FirefoxCookieQueryStrategy from \"./browsers/FirefoxCookieQueryStrategy\";\nimport ChromeCookieQueryStrategy from \"./browsers/ChromeCookieQueryStrategy\";\nimport CompositeCookieQueryStrategy from \"./browsers/CompositeCookieQueryStrategy\";\n\nexport async function getCookie(params: { name: string; domain: string; }) {\n const cookies = await queryCookies(\n params,\n new CompositeCookieQueryStrategy()\n //\n );\n if (Array.isArray(cookies) && cookies.length > 0) {\n return cookies.find((cookie) => cookie != null);\n } else {\n throw new Error(\"Cookie not found\");\n }\n}\n\n/**\n *\n * @param params\n * @returns {Promise<*>}\n */\nexport async function getFirefoxCookie(params: { name: string; domain: string; }) {\n const cookies = await queryCookies(\n params,\n new FirefoxCookieQueryStrategy()\n //\n );\n if (Array.isArray(cookies) && cookies.length > 0) {\n return cookies.find((cookie) => cookie != null);\n } else {\n throw new Error(\"Cookie not found\");\n }\n}\n\n/**\n *\n * @param params\n * @returns {Promise<*>}\n */\nexport async function getChromeCookie(params: { name: string; domain: string; }) {\n const cookies = await queryCookies(\n params,\n new ChromeCookieQueryStrategy()\n //\n );\n if (Array.isArray(cookies) && cookies.length > 0) {\n return cookies.find((cookie) => cookie != null);\n } else {\n throw new Error(\"Cookie not found\");\n }\n}\n","import CompositeCookieQueryStrategy from \"./browsers/CompositeCookieQueryStrategy\";\nimport { uniqBy } from \"lodash\";\nimport { env } from \"./global\";\nimport isValidJwt from \"./isValidJwt\";\nimport { ExportedCookie } from \"./CookieRow\";\nimport AbstractCookieQueryStrategy from \"./browsers/AbstractCookieQueryStrategy\";\n\nexport async function queryCookies(\n {\n name,\n domain\n }: {\n name: string;\n domain: string;\n },\n strategy: AbstractCookieQueryStrategy = new CompositeCookieQueryStrategy()\n) {\n const results: ExportedCookie[] = await strategy.queryCookies(name, domain);\n const results1: ExportedCookie[] = uniqBy(results, JSON.stringify);\n const jwtCookies = [];\n for (const result of results1) {\n const value = result.value;\n if (isValidJwt(value)) {\n jwtCookies.push(result);\n }\n }\n const resultsUniq = env.REQUIRE_JWT ? jwtCookies : results1;\n return env.SINGLE ? [resultsUniq[0]] : resultsUniq;\n}\n","import ChromeCookieQueryStrategy from \"./ChromeCookieQueryStrategy\";\nimport FirefoxCookieQueryStrategy from \"./FirefoxCookieQueryStrategy\";\nimport SafariCookieQueryStrategy from \"./SafariCookieQueryStrategy\";\nimport AbstractCookieQueryStrategy from \"./AbstractCookieQueryStrategy\";\nimport {ExportedCookie} from \"../CookieRow\";\n\nexport default class CompositeCookieQueryStrategy extends AbstractCookieQueryStrategy {\n #strategies;\n\n constructor() {\n super();\n this.#strategies = [\n ChromeCookieQueryStrategy,\n FirefoxCookieQueryStrategy,\n SafariCookieQueryStrategy,\n ].map((strategy) => {\n return new strategy();\n });\n }\n\n async queryCookies(name: string, domain: string): Promise<ExportedCookie[]> {\n const results = await Promise.all(\n this.#strategies.map(async (strategy) => {\n // @ts-ignore\n const cookies: Promise<ExportedCookie[]> = strategy.queryCookies(name, domain);\n return cookies.catch(() => []);\n })\n );\n return results.flat();\n }\n}\n","import AbstractCookieQueryStrategy from \"./AbstractCookieQueryStrategy\";\nimport { execSimple } from \"../utils\";\nimport { env, HOME } from \"../global\";\nimport { existsSync } from \"fs\";\nimport { findAllFiles } from \"../findAllFiles\";\nimport * as crypto from \"crypto\";\nimport * as path from \"path\";\nimport { CookieRow, ExportedCookie, isCookieRow, isExportedCookie } from \"../CookieRow\";\nimport { doSqliteQuery1 } from \"../doSqliteQuery1\";\nimport { merge } from \"lodash\";\n\nexport default class ChromeCookieQueryStrategy extends AbstractCookieQueryStrategy {\n async queryCookies(name: string, domain: string): Promise<ExportedCookie[]> {\n if (process.platform !== \"darwin\") {\n throw new Error(\"This only works on macOS\");\n }\n if (env.FIREFOX_ONLY) {\n return [];\n }\n return getChromeCookies({\n requireJwt: false,\n name,\n domain\n });\n }\n}\n\nasync function getPromise1(name: string, domain: string, file: string): Promise<CookieRow[]> {\n try {\n return await getEncryptedChromeCookie({\n name: name,\n domain: domain,\n file: file\n });\n } catch (e) {\n if (env.VERBOSE) {\n console.log(\"Error getting encrypted cookie\", e);\n }\n return [];\n }\n}\n\nasync function getPromise(name: string, domain: string): Promise<CookieRow[]> {\n try {\n const files: string[] = await findAllFiles({\n path: chromeLocal,\n name: \"Cookies\"\n });\n const promises: Promise<CookieRow[]>[] = files.map((file) => getPromise1(name, domain, file));\n const results1: Awaited<CookieRow[]>[] = await Promise.all(promises);\n return results1.flat().filter(isCookieRow);\n } catch (error) {\n if (env.VERBOSE) {\n console.log(\"error\", error);\n }\n return [];\n }\n}\n\nasync function decryptValue(password: string, encryptedValue: Buffer) {\n let d: string | null;\n try {\n d = await decrypt(password, encryptedValue);\n } catch (e) {\n if (env.VERBOSE) {\n console.log(\"Error decrypting cookie\", e);\n }\n d = null;\n }\n return d ?? encryptedValue.toString(\"utf-8\");\n}\n\nasync function getChromeCookies(\n {\n name,\n domain = \"%\",\n requireJwt = false\n }: {\n name: string;\n domain: string;\n requireJwt: boolean | undefined;\n //\n }\n //\n): Promise<ExportedCookie[]> {\n const encryptedDataItems: CookieRow[] = await getPromise(name, domain);\n const password: string = await getChromePassword();\n const decrypted: Promise<ExportedCookie | null>[] = encryptedDataItems\n .filter(({ value }) => value != null && value.length > 0)\n .map(async (cookieRow: CookieRow) => {\n const encryptedValue: Buffer = cookieRow.value;\n const decryptedValue = await decryptValue(password, encryptedValue);\n const meta = {};\n merge(meta, cookieRow.meta ?? {});\n return {\n domain: cookieRow.domain,\n name: cookieRow.name,\n value: decryptedValue,\n meta: meta\n };\n });\n const results: ExportedCookie[] = (await Promise.all(decrypted)).filter(isExportedCookie);\n if (env.VERBOSE) {\n console.log(\"results\", results);\n }\n return results;\n}\n\nconst chromeLocal = path.join(\n HOME,\n \"Library\",\n \"Application Support\",\n \"Google\",\n \"Chrome\"\n);\n\nasync function getEncryptedChromeCookie(\n {\n name,\n domain,\n file = path.join(chromeLocal, \"Default\", \"Cookies\")\n //\n }: {\n name: string;\n domain: string;\n file: string;\n }): Promise<CookieRow[]> {\n if (!existsSync(file)) {\n throw new Error(`File ${file} does not exist`);\n }\n if (env.VERBOSE) {\n const s = file.split(\"/\").slice(-3).join(\"/\");\n console.log(`Trying Chrome (at ${s}) cookie ${name} for domain ${domain}`);\n }\n let sql;\n sql = `SELECT encrypted_value, name, host_key FROM cookies`;\n const wildcardRegexp = /^([*%])$/i;\n const specifiedName = name.match(wildcardRegexp) == null;\n const specifiedDomain = domain.match(wildcardRegexp) == null;\n if (specifiedName || specifiedDomain) {\n sql += ` WHERE `;\n if (specifiedName) {\n sql += `name = '${name}'`;\n if (specifiedDomain) {\n sql += ` AND `;\n }\n }\n if (specifiedDomain) {\n sql += `host_key LIKE '${domain}';`;\n }\n }\n return doSqliteQuery1(file, sql);\n}\n\nasync function getChromePassword(): Promise<string> {\n return execSimple(\n \"security find-generic-password -w -s \\\"Chrome Safe Storage\\\"\"\n );\n}\n\nasync function decrypt(password: crypto.BinaryLike, encryptedData: Buffer): Promise<string> {\n if (typeof password !== \"string\") {\n throw new Error(\"password must be a string: \" + password);\n }\n let encryptedData1: any;\n encryptedData1 = encryptedData;\n if (encryptedData1 == null || typeof encryptedData1 !== \"object\") {\n throw new Error(\"encryptedData must be a object: \" + encryptedData1);\n }\n if (!(encryptedData1 instanceof Buffer)) {\n if (Array.isArray(encryptedData1) && encryptedData1[0] instanceof Buffer) {\n [encryptedData1] = encryptedData1;\n if (env.VERBOSE) {\n console.log(\n `encryptedData is an array of buffers, selected first: ${encryptedData1}`\n );\n }\n } else {\n throw new Error(\"encryptedData must be a Buffer: \" + encryptedData1);\n }\n encryptedData1 = Buffer.from(encryptedData1);\n }\n if (env.VERBOSE) {\n console.log(`Trying to decrypt with password ${password}`);\n }\n return new Promise((resolve, reject) => {\n crypto.pbkdf2(password,\n \"saltysalt\",\n 1003,\n 16,\n \"sha1\",\n (error, buffer) => {\n try {\n if (error) {\n if (env.VERBOSE) {\n console.log(\"Error doing pbkdf2\", error);\n }\n reject(error);\n return;\n }\n\n if (buffer.length !== 16) {\n if (env.VERBOSE) {\n console.log(\n \"Error doing pbkdf2, buffer length is not 16\",\n buffer.length\n );\n }\n reject(new Error(\"Buffer length is not 16\"));\n return;\n }\n\n const str = new Array(17).join(\" \");\n const iv = Buffer.from(str, \"binary\");\n const decipher = crypto.createDecipheriv(\"aes-128-cbc\", buffer, iv);\n decipher.setAutoPadding(false);\n\n if (encryptedData1 && encryptedData1.slice) {\n encryptedData1 = encryptedData1.slice(3);\n }\n\n if (encryptedData1.length % 16 !== 0) {\n if (env.VERBOSE) {\n console.log(\n \"Error doing pbkdf2, encryptedData length is not a multiple of 16\",\n encryptedData1.length\n );\n }\n reject(new Error(\"encryptedData length is not a multiple of 16\"));\n return;\n }\n\n let decoded = decipher.update(encryptedData1);\n try {\n decipher.final(\"utf-8\");\n } catch (e) {\n if (env.VERBOSE) {\n console.log(\"Error doing decipher.final()\", e);\n }\n reject(e);\n return;\n }\n\n const padding = decoded[decoded.length - 1];\n if (padding) {\n decoded = decoded.slice(0, 0 - padding);\n }\n // noinspection JSCheckFunctionSignatures\n const decodedString = decoded.toString(\"utf8\");\n resolve(decodedString);\n } catch (e) {\n reject(e);\n }\n });\n });\n}\n","import {ExportedCookie} from \"../CookieRow\";\n\nexport default class AbstractCookieQueryStrategy {\n async queryCookies(name: string, domain: string): Promise<ExportedCookie[]> {\n if (process.env.NODE_ENV === \"development\") {\n console.log(\"queryCookie\", name, domain);\n }\n return [];\n }\n}\n","// noinspection JSUnusedGlobalSymbols\n\nimport {exec, ExecException} from \"child_process\";\n\nexport async function execSimple(command: string): Promise<string> {\n if (process.env.VERBOSE) {\n console.log(command);\n }\n return new Promise((resolve, reject) => {\n exec(\n command,\n { encoding: \"binary\", maxBuffer: 5 * 1024 },\n (error: ExecException | null, stdout: string, stderr: string) => {\n if (error) {\n reject(error);\n return;\n }\n if (stderr) {\n reject(error);\n return;\n }\n if (stdout) {\n resolve(stdout.trim());\n }\n }\n );\n });\n}\n\n// export async function execAsBuffer(command: string) {\n// if (process.env.VERBOSE) {\n// console.log(command);\n// }\n// return await new Promise((resolve, reject) => {\n// exec(\n// command,\n// { encoding: \"binary\", maxBuffer: 5 * 1024 },\n// (error: ExecException | null, stdout: string, stderr: string) => {\n// if (error) {\n// reject(error);\n// return;\n// }\n// if (stderr) {\n// reject(error);\n// return;\n// }\n// let stdoutAsBuffer: string = stdout;\n// if (typeof stdoutAsBuffer === \"string\" && stdoutAsBuffer.length > 0) {\n// // noinspection JSCheckFunctionSignatures\n// stdoutAsBuffer = Buffer.from(stdoutAsBuffer, \"binary\").slice(0, -1);\n// }\n// if (stdoutAsBuffer && stdoutAsBuffer.length > 0) {\n// resolve(stdoutAsBuffer);\n// }\n// }\n// );\n// });\n// }\n\n// @ts-ignore\nexport function toStringValue(r: any): string {\n if (process.env.VERBOSE) {\n console.log(\"Printing value\", r);\n }\n if (r) {\n if (typeof r === \"string\") {\n return r;\n } else if (r.toString) {\n // noinspection JSCheckFunctionSignatures\n return r.toString(\"utf8\");\n }\n }\n}\n\nexport function printStringValue(r: any) {\n if (process.env.VERBOSE) {\n console.log(\"Printing value\", r);\n }\n if (r) {\n if (typeof r === \"string\") {\n console.log(r);\n } else if (r.toString) {\n // noinspection JSCheckFunctionSignatures\n console.log(r.toString(\"utf8\"));\n }\n }\n}\n\n/**\n *\n * @param result\n * @returns {string|null}\n */\nexport function toStringOrNull(result: any) {\n if (result == null) {\n return null;\n }\n if (process.env.VERBOSE) {\n console.log(\"result\", result);\n }\n if (typeof result === \"string\" && result.length > 0) {\n return result;\n }\n if (result.slice && result.toString) {\n // noinspection JSCheckFunctionSignatures\n return result.toString(\"utf8\");\n }\n return null;\n}\n\nexport function invalidString(input: any): boolean {\n return typeof input !== \"string\" || input.length === 0;\n}\n\n\nexport function validString(input: any): input is string {\n return typeof input == \"string\" && input.length > 0;\n}\n","const { merge } = require(\"lodash\");\nexport const env: any = {};\nmerge(env, process.env);\nexport const HOME: string = env[\"HOME\"];\nif (!HOME) {\n throw new Error(\"HOME environment variable is not set\");\n}\n","import { env } from \"./global\";\nimport * as fs from \"fs\";\n\nexport async function findAllFiles(\n {\n path,\n name,\n maxDepth = 2\n//\n }: {\n path: string;\n name: string;\n maxDepth?: number;\n }\n): Promise<string[]> {\n const rootSegments = path.split(\"/\").length;\n\n if (env.VERBOSE) {\n console.log(`Searching for ${name} in ${path}`);\n }\n const files: string[] = [];\n let readdirSync;\n try {\n readdirSync = fs.readdirSync(path);\n } catch (e) {\n if (env.VERBOSE) {\n console.log(`Error reading ${path}`, e);\n }\n return [];\n }\n for (const file of readdirSync) {\n const filePath = path + \"/\" + file;\n let stat;\n try {\n stat = fs.statSync(filePath);\n } catch (e) {\n if (env.VERBOSE) {\n console.error(`Error getting stat for ${filePath}`, e);\n }\n continue;\n }\n if (stat.isDirectory()) {\n if (filePath.split(\"/\").length < rootSegments + maxDepth) {\n try {\n const subFiles = await findAllFiles({\n path: filePath,\n name: name,\n maxDepth: 2\n });\n files.push(...subFiles);\n } catch (e) {\n if (env.VERBOSE) {\n console.error(e);\n }\n }\n }\n } else if (file === name) {\n files.push(filePath);\n }\n }\n if (env.VERBOSE) {\n if (files.length > 0) {\n console.log(`Found ${files.length} ${name} files`);\n console.log(files);\n }\n }\n return files;\n}\n","export interface CookieRow {\n domain: string;\n name: string;\n value: Buffer;\n meta?: any;\n}\n\nexport function isCookieRow(obj: any): obj is CookieRow {\n return obj.domain !== undefined && obj.name !== undefined && obj.value !== undefined;\n}\n\nexport interface ExportedCookie {\n domain: string;\n name: string;\n value: string;\n meta?: any;\n}\n\nexport function isExportedCookie(obj: any): obj is ExportedCookie {\n return obj.domain !== undefined && obj.name !== undefined && obj.value !== undefined;\n}\n","import * as fs from \"fs\";\nimport * as sqlite3 from \"sqlite3\";\nimport {CookieRow} from \"./CookieRow\";\n\nexport async function doSqliteQuery1(file: string, sql: string): Promise<CookieRow[]> {\n if (!fs.existsSync(file)) {\n throw new Error(`doSqliteQuery1: file ${file} does not exist`);\n }\n const db = new sqlite3.Database(file);\n return new Promise((resolve, reject) => {\n db.all(sql, (err: Error, rows: any[]) => {\n if (err) {\n if (process.env.VERBOSE) {\n console.log(`doSqliteQuery1: error ${err}`);\n }\n reject(err);\n return;\n }\n const rows1: any[] = rows;\n if (rows1 == null || rows1.length === 0) {\n if (process.env.VERBOSE) {\n console.log(`doSqliteQuery1: no rows`);\n }\n resolve([]);\n return;\n }\n if (Array.isArray(rows1)) {\n const cookieRows: CookieRow[] = rows1.map((row) => {\n return {\n domain: row[\"host_key\"],\n name: row[\"name\"],\n value: row[\"encrypted_value\"],\n meta: {\n file: file\n }\n }\n })\n resolve(cookieRows);\n return;\n }\n if (process.env.VERBOSE) {\n console.log(`doSqliteQuery1: rows ${JSON.stringify(rows1)}`);\n }\n resolve([rows1]);\n });\n });\n}\n","import AbstractCookieQueryStrategy from \"./AbstractCookieQueryStrategy\";\nimport { env, HOME } from \"../global\";\nimport { existsSync } from \"fs\";\nimport { toStringOrNull } from \"../utils\";\nimport { findAllFiles } from \"../findAllFiles\";\nimport * as path from \"path\";\nimport { doSqliteQuery1 } from \"../doSqliteQuery1\";\nimport { ExportedCookie } from \"../CookieRow\";\n\nexport default class FirefoxCookieQueryStrategy extends AbstractCookieQueryStrategy {\n async queryCookies(name: string, domain: string): Promise<ExportedCookie[]> {\n if (process.platform !== \"darwin\") {\n throw new Error(\"This only works on macOS\");\n }\n if (env.CHROME_ONLY) {\n return [];\n }\n const cookies = await this.#getFirefoxCookie({ name, domain });\n return Array.isArray(cookies) ? cookies.map(toStringOrNull) : [];\n }\n\n /**\n *\n * @param name\n * @param domain\n * @returns {Promise<Buffer>}\n */\n async #getFirefoxCookie(\n //\n {\n name,\n domain\n }: {\n name: string,\n domain: string\n //\n }\n //\n ) {\n const files: string[] = await findAllFiles({\n path: path.join(\n HOME,\n \"Library\",\n \"Application Support\",\n \"Firefox\",\n \"Profiles\"\n ),\n name: \"cookies.sqlite\"\n });\n const all = await Promise.all(\n files.map((file) => {\n return this.#queryCookiesDb(file, name, domain);\n })\n );\n return all.flat();\n }\n\n #queryCookiesDb(file: string, name: string, domain: string) {\n if (file && !existsSync(file)) {\n throw new Error(`File ${file} does not exist`);\n }\n if (env.VERBOSE) {\n console.log(`Trying Firefox cookie ${name} for domain ${domain}`);\n }\n let sql;\n //language=SQL\n sql = \"SELECT value FROM moz_cookies\";\n if (typeof name === \"string\" || typeof domain === \"string\") {\n sql += ` WHERE `;\n if (typeof name === \"string\") {\n sql += `name = '${name}'`;\n if (typeof domain === \"string\") {\n sql += ` AND `;\n }\n }\n if (typeof domain === \"string\") {\n sql += `host LIKE '${domain}';`;\n }\n }\n return doSqliteQuery1(file, sql)\n .then((rows) => {\n return rows.map((row) => {\n return {\n domain: row.domain,\n name: row.name,\n value: row.value.toString(\"utf8\")\n };\n });\n })\n .catch(() => []);\n }\n}\n","import AbstractCookieQueryStrategy from \"./AbstractCookieQueryStrategy\";\n\nexport default class SafariCookieQueryStrategy extends AbstractCookieQueryStrategy {}\n","import jsonwebtoken from \"jsonwebtoken\";\nimport { env } from \"./global\";\n\nexport default function isValidJwt(token: any) {\n try {\n const result = jsonwebtoken.decode(token, { complete: true });\n if (env.VERBOSE) {\n console.log(result);\n }\n return true;\n } catch (err) {\n return false;\n }\n}\n"],"names":[],"version":3,"file":"main.js.map","sourceRoot":"../"}
1
+ {"mappings":"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","sources":["src/index.ts","src/queryCookies.ts","src/global.ts","src/browsers/CompositeCookieQueryStrategy.ts","src/browsers/ChromeCookieQueryStrategy.ts","src/utils.ts","src/findAllFiles.ts","src/doSqliteQuery1.ts","src/IsCookieRow.ts","src/IsExportedCookie.ts","src/browsers/FirefoxCookieQueryStrategy.ts","src/browsers/SafariCookieQueryStrategy.ts","src/isValidJwt.ts","src/getGroupedRenderedCookies.ts","src/resultsRendered.ts"],"sourcesContent":["#!/usr/bin/env node\n// noinspection JSUnusedGlobalSymbols\n\nimport { queryCookies } from \"./queryCookies\";\nimport FirefoxCookieQueryStrategy from \"./browsers/FirefoxCookieQueryStrategy\";\nimport ChromeCookieQueryStrategy from \"./browsers/ChromeCookieQueryStrategy\";\nimport CompositeCookieQueryStrategy from \"./browsers/CompositeCookieQueryStrategy\";\nimport { getGroupedRenderedCookies } from \"./getGroupedRenderedCookies\";\n\nexport async function getCookie(params: { name: string; domain: string; }) {\n const cookies = await queryCookies(\n params,\n new CompositeCookieQueryStrategy()\n //\n );\n if (Array.isArray(cookies) && cookies.length > 0) {\n return cookies.find((cookie) => cookie != null);\n } else {\n throw new Error(\"Cookie not found\");\n }\n}\n\n/**\n *\n * @param params\n * @returns {Promise<*>}\n */\nexport async function getFirefoxCookie(params: { name: string; domain: string; }) {\n const cookies = await queryCookies(\n params,\n new FirefoxCookieQueryStrategy()\n //\n );\n if (Array.isArray(cookies) && cookies.length > 0) {\n return cookies.find((cookie) => cookie != null);\n } else {\n throw new Error(\"Cookie not found\");\n }\n}\n\n/**\n *\n * @param params\n * @returns {Promise<*>}\n */\nexport async function getChromeCookie(params: { name: string; domain: string; }) {\n const cookies = await queryCookies(\n params,\n new ChromeCookieQueryStrategy()\n //\n );\n if (Array.isArray(cookies) && cookies.length > 0) {\n return cookies.find((cookie) => cookie != null);\n } else {\n throw new Error(\"Cookie not found\");\n }\n}\n\nexport default {\n getCookie,\n getFirefoxCookie,\n getChromeCookie,\n getGroupedRenderedCookies,\n}\n","import { env } from \"./global\";\nimport { uniqBy } from \"lodash\";\nimport CompositeCookieQueryStrategy from \"./browsers/CompositeCookieQueryStrategy\";\nimport CookieQueryStrategy from \"./browsers/CookieQueryStrategy\";\nimport isValidJwt from \"./isValidJwt\";\nimport ExportedCookie from \"./ExportedCookie\";\nimport CookieRequest from \"./CookieRequest\";\n\nexport async function queryCookies(\n {\n name,\n domain\n }: CookieRequest,\n strategy: CookieQueryStrategy = new CompositeCookieQueryStrategy()\n) {\n const results: ExportedCookie[] = await strategy.queryCookies(name, domain);\n const results1: ExportedCookie[] = uniqBy(results, JSON.stringify);\n const jwtCookies = [];\n for (const result of results1) {\n const value = result.value;\n if (isValidJwt(value)) {\n jwtCookies.push(result);\n }\n }\n const resultsUniq = env.REQUIRE_JWT ? jwtCookies : results1;\n return env.SINGLE ? [resultsUniq[0]] : resultsUniq;\n}\n","const { merge } = require(\"lodash\");\nexport const env: any = {};\nmerge(env, process.env);\nexport const HOME: string = env[\"HOME\"];\nif (!HOME) {\n throw new Error(\"HOME environment variable is not set\");\n}\n","import ChromeCookieQueryStrategy from \"./ChromeCookieQueryStrategy\";\nimport FirefoxCookieQueryStrategy from \"./FirefoxCookieQueryStrategy\";\nimport SafariCookieQueryStrategy from \"./SafariCookieQueryStrategy\";\nimport CookieQueryStrategy from \"./CookieQueryStrategy\";\nimport ExportedCookie from \"../ExportedCookie\";\n\nexport default class CompositeCookieQueryStrategy implements CookieQueryStrategy {\n #strategies;\n\n constructor() {\n this.#strategies = [\n ChromeCookieQueryStrategy,\n FirefoxCookieQueryStrategy,\n SafariCookieQueryStrategy,\n ].map((strategy) => {\n return new strategy();\n });\n }\n\n async queryCookies(name: string, domain: string): Promise<ExportedCookie[]> {\n const results = await Promise.all(\n this.#strategies.map(async (strategy) => {\n // @ts-ignore\n const cookies: Promise<ExportedCookie[]> = strategy.queryCookies(name, domain);\n return cookies.catch(() => []);\n })\n );\n return results.flat();\n }\n}\n","import CookieQueryStrategy from \"./CookieQueryStrategy\";\nimport { execSimple } from \"../utils\";\nimport { env, HOME } from \"../global\";\nimport { existsSync } from \"fs\";\nimport { findAllFiles } from \"../findAllFiles\";\nimport * as crypto from \"crypto\";\nimport * as path from \"path\";\nimport CookieRow from \"../CookieRow\";\nimport ExportedCookie from \"../ExportedCookie\";\nimport { doSqliteQuery1 } from \"../doSqliteQuery1\";\nimport { merge } from \"lodash\";\nimport { isCookieRow } from \"../IsCookieRow\";\nimport { isExportedCookie } from \"../IsExportedCookie\";\n\nexport default class ChromeCookieQueryStrategy implements CookieQueryStrategy {\n async queryCookies(name: string, domain: string): Promise<ExportedCookie[]> {\n if (process.platform !== \"darwin\") {\n throw new Error(\"This only works on macOS\");\n }\n if (env.FIREFOX_ONLY) {\n return [];\n }\n return getChromeCookies({\n requireJwt: false,\n name,\n domain\n });\n }\n}\n\nasync function getPromise1(name: string, domain: string, file: string): Promise<CookieRow[]> {\n try {\n return await getEncryptedChromeCookie({\n name: name,\n domain: domain,\n file: file\n });\n } catch (e) {\n if (env.VERBOSE) {\n console.log(\"Error getting encrypted cookie\", e);\n }\n return [];\n }\n}\n\nasync function getPromise(name: string, domain: string): Promise<CookieRow[]> {\n try {\n const files: string[] = await findAllFiles({\n path: chromeLocal,\n name: \"Cookies\"\n });\n const promises: Promise<CookieRow[]>[] = files.map((file) => getPromise1(name, domain, file));\n const results1: Awaited<CookieRow[]>[] = await Promise.all(promises);\n return results1.flat().filter(isCookieRow);\n } catch (error) {\n if (env.VERBOSE) {\n console.log(\"error\", error);\n }\n return [];\n }\n}\n\nasync function decryptValue(password: string, encryptedValue: Buffer) {\n let d: string | null;\n try {\n d = await decrypt(password, encryptedValue);\n } catch (e) {\n if (env.VERBOSE) {\n console.log(\"Error decrypting cookie\", e);\n }\n d = null;\n }\n return d ?? encryptedValue.toString(\"utf-8\");\n}\n\nasync function getChromeCookies(\n {\n name,\n domain = \"%\",\n requireJwt = false\n }: {\n name: string;\n domain: string;\n requireJwt: boolean | undefined;\n //\n }\n //\n): Promise<ExportedCookie[]> {\n const encryptedDataItems: CookieRow[] = await getPromise(name, domain);\n const password: string = await getChromePassword();\n const decrypted: Promise<ExportedCookie | null>[] = encryptedDataItems\n .filter(({ value }) => value != null && value.length > 0)\n .map(async (cookieRow: CookieRow) => {\n const encryptedValue: Buffer = cookieRow.value;\n const decryptedValue = await decryptValue(password, encryptedValue);\n const meta = {};\n merge(meta, cookieRow.meta ?? {});\n return {\n domain: cookieRow.domain,\n name: cookieRow.name,\n value: decryptedValue,\n meta: meta\n };\n });\n const results: ExportedCookie[] = (await Promise.all(decrypted)).filter(isExportedCookie);\n if (env.VERBOSE) {\n console.log(\"results\", results);\n }\n return results;\n}\n\nconst chromeLocal = path.join(\n HOME,\n \"Library\",\n \"Application Support\",\n \"Google\",\n \"Chrome\"\n);\n\nasync function getEncryptedChromeCookie(\n {\n name,\n domain,\n file = path.join(chromeLocal, \"Default\", \"Cookies\")\n //\n }: {\n name: string;\n domain: string;\n file: string;\n }): Promise<CookieRow[]> {\n if (!existsSync(file)) {\n throw new Error(`File ${file} does not exist`);\n }\n if (env.VERBOSE) {\n const s = file.split(\"/\").slice(-3).join(\"/\");\n console.log(`Trying Chrome (at ${s}) cookie ${name} for domain ${domain}`);\n }\n let sql;\n sql = `SELECT encrypted_value, name, host_key FROM cookies`;\n const wildcardRegexp = /^([*%])$/i;\n const specifiedName = name.match(wildcardRegexp) == null;\n const specifiedDomain = domain.match(wildcardRegexp) == null;\n if (specifiedName || specifiedDomain) {\n sql += ` WHERE `;\n if (specifiedName) {\n sql += `name = '${name}'`;\n if (specifiedDomain) {\n sql += ` AND `;\n }\n }\n if (specifiedDomain) {\n sql += `host_key LIKE '${domain}';`;\n }\n }\n return doSqliteQuery1(file, sql);\n}\n\nasync function getChromePassword(): Promise<string> {\n return execSimple(\n \"security find-generic-password -w -s \\\"Chrome Safe Storage\\\"\"\n );\n}\n\nasync function decrypt(password: crypto.BinaryLike, encryptedData: Buffer): Promise<string> {\n if (typeof password !== \"string\") {\n throw new Error(\"password must be a string: \" + password);\n }\n let encryptedData1: any;\n encryptedData1 = encryptedData;\n if (encryptedData1 == null || typeof encryptedData1 !== \"object\") {\n throw new Error(\"encryptedData must be a object: \" + encryptedData1);\n }\n if (!(encryptedData1 instanceof Buffer)) {\n if (Array.isArray(encryptedData1) && encryptedData1[0] instanceof Buffer) {\n [encryptedData1] = encryptedData1;\n if (env.VERBOSE) {\n console.log(\n `encryptedData is an array of buffers, selected first: ${encryptedData1}`\n );\n }\n } else {\n throw new Error(\"encryptedData must be a Buffer: \" + encryptedData1);\n }\n encryptedData1 = Buffer.from(encryptedData1);\n }\n if (env.VERBOSE) {\n console.log(`Trying to decrypt with password ${password}`);\n }\n return new Promise((resolve, reject) => {\n crypto.pbkdf2(password,\n \"saltysalt\",\n 1003,\n 16,\n \"sha1\",\n (error, buffer) => {\n try {\n if (error) {\n if (env.VERBOSE) {\n console.log(\"Error doing pbkdf2\", error);\n }\n reject(error);\n return;\n }\n\n if (buffer.length !== 16) {\n if (env.VERBOSE) {\n console.log(\n \"Error doing pbkdf2, buffer length is not 16\",\n buffer.length\n );\n }\n reject(new Error(\"Buffer length is not 16\"));\n return;\n }\n\n const str = new Array(17).join(\" \");\n const iv = Buffer.from(str, \"binary\");\n const decipher = crypto.createDecipheriv(\"aes-128-cbc\", buffer, iv);\n decipher.setAutoPadding(false);\n\n if (encryptedData1 && encryptedData1.slice) {\n encryptedData1 = encryptedData1.slice(3);\n }\n\n if (encryptedData1.length % 16 !== 0) {\n if (env.VERBOSE) {\n console.log(\n \"Error doing pbkdf2, encryptedData length is not a multiple of 16\",\n encryptedData1.length\n );\n }\n reject(new Error(\"encryptedData length is not a multiple of 16\"));\n return;\n }\n\n let decoded = decipher.update(encryptedData1);\n try {\n decipher.final(\"utf-8\");\n } catch (e) {\n if (env.VERBOSE) {\n console.log(\"Error doing decipher.final()\", e);\n }\n reject(e);\n return;\n }\n\n const padding = decoded[decoded.length - 1];\n if (padding) {\n decoded = decoded.slice(0, 0 - padding);\n }\n // noinspection JSCheckFunctionSignatures\n const decodedString = decoded.toString(\"utf8\");\n resolve(decodedString);\n } catch (e) {\n reject(e);\n }\n });\n });\n}\n","// noinspection JSUnusedGlobalSymbols\n\nimport {exec, ExecException} from \"child_process\";\n\nexport async function execSimple(command: string): Promise<string> {\n return new Promise((resolve, reject) => {\n exec(\n command,\n { encoding: \"binary\", maxBuffer: 5 * 1024 },\n (error: ExecException | null, stdout: string, stderr: string) => {\n if (error) {\n reject(error);\n return;\n }\n if (stderr) {\n reject(error);\n return;\n }\n if (stdout) {\n resolve(stdout.trim());\n }\n }\n );\n });\n}\n\n/**\n *\n * @param result\n * @returns {string|null}\n */\nexport function toStringOrNull(result: any) {\n if (result == null) {\n return null;\n }\n if (process.env.VERBOSE) {\n console.log(\"result\", result);\n }\n if (typeof result === \"string\" && result.length > 0) {\n return result;\n }\n if (result.slice && result.toString) {\n // noinspection JSCheckFunctionSignatures\n return result.toString(\"utf8\");\n }\n return null;\n}\n\nexport function invalidString(input: any): boolean {\n return typeof input !== \"string\" || input.length === 0;\n}\n\n\nexport function validString(input: any): input is string {\n return typeof input == \"string\" && input.length > 0;\n}\n","import { env } from \"./global\";\nimport * as fs from \"fs\";\n\nexport async function findAllFiles(\n {\n path,\n name,\n maxDepth = 2\n//\n }: {\n path: string;\n name: string;\n maxDepth?: number;\n }\n): Promise<string[]> {\n const rootSegments = path.split(\"/\").length;\n\n if (env.VERBOSE) {\n console.log(`Searching for ${name} in ${path}`);\n }\n const files: string[] = [];\n let readdirSync;\n try {\n readdirSync = fs.readdirSync(path);\n } catch (e) {\n if (env.VERBOSE) {\n console.log(`Error reading ${path}`, e);\n }\n return [];\n }\n for (const file of readdirSync) {\n const filePath = path + \"/\" + file;\n let stat;\n try {\n stat = fs.statSync(filePath);\n } catch (e) {\n if (env.VERBOSE) {\n console.error(`Error getting stat for ${filePath}`, e);\n }\n continue;\n }\n if (stat.isDirectory()) {\n if (filePath.split(\"/\").length < rootSegments + maxDepth) {\n try {\n const subFiles = await findAllFiles({\n path: filePath,\n name: name,\n maxDepth: 2\n });\n files.push(...subFiles);\n } catch (e) {\n if (env.VERBOSE) {\n console.error(e);\n }\n }\n }\n } else if (file === name) {\n files.push(filePath);\n }\n }\n if (env.VERBOSE) {\n if (files.length > 0) {\n console.log(`Found ${files.length} ${name} files`);\n console.log(files);\n }\n }\n return files;\n}\n","import * as fs from \"fs\";\nimport * as sqlite3 from \"sqlite3\";\nimport CookieRow from \"./CookieRow\";\n\nexport async function doSqliteQuery1(file: string, sql: string): Promise<CookieRow[]> {\n if (!fs.existsSync(file)) {\n throw new Error(`doSqliteQuery1: file ${file} does not exist`);\n }\n const db = new sqlite3.Database(file);\n return new Promise((resolve, reject) => {\n db.all(sql, (err: Error, rows: any[]) => {\n if (err) {\n reject(err);\n return;\n }\n const rows1: any[] = rows;\n if (rows1 == null || rows1.length === 0) {\n resolve([]);\n return;\n }\n if (Array.isArray(rows1)) {\n const cookieRows: CookieRow[] = rows1.map((row) => {\n return {\n domain: row[\"host_key\"],\n name: row[\"name\"],\n value: row[\"encrypted_value\"],\n meta: {\n file: file\n }\n };\n });\n resolve(cookieRows);\n return;\n }\n if (process.env.VERBOSE) {\n console.log(`doSqliteQuery1: rows ${JSON.stringify(rows1)}`);\n }\n resolve([rows1]);\n });\n });\n}\n","import CookieRow from \"./CookieRow\";\n\nexport function isCookieRow(obj: any): obj is CookieRow {\n return obj.domain !== undefined && obj.name !== undefined && obj.value !== undefined;\n}\n","import ExportedCookie from \"./ExportedCookie\";\n\nexport function isExportedCookie(obj: any): obj is ExportedCookie {\n return obj.domain !== undefined && obj.name !== undefined && obj.value !== undefined;\n}\n","import CookieQueryStrategy from \"./CookieQueryStrategy\";\nimport { env, HOME } from \"../global\";\nimport { existsSync } from \"fs\";\nimport { toStringOrNull } from \"../utils\";\nimport { findAllFiles } from \"../findAllFiles\";\nimport * as path from \"path\";\nimport { doSqliteQuery1 } from \"../doSqliteQuery1\";\nimport ExportedCookie from \"../ExportedCookie\";\n\nexport default class FirefoxCookieQueryStrategy implements CookieQueryStrategy {\n async queryCookies(name: string, domain: string): Promise<ExportedCookie[]> {\n if (process.platform !== \"darwin\") {\n throw new Error(\"This only works on macOS\");\n }\n if (env.CHROME_ONLY) {\n return [];\n }\n const cookies = await this.#getFirefoxCookie({ name, domain });\n return Array.isArray(cookies) ? cookies.map(toStringOrNull) : [];\n }\n\n /**\n *\n * @param name\n * @param domain\n * @returns {Promise<Buffer>}\n */\n async #getFirefoxCookie(\n //\n {\n name,\n domain\n }: {\n name: string,\n domain: string\n //\n }\n //\n ) {\n const files: string[] = await findAllFiles({\n path: path.join(\n HOME,\n \"Library\",\n \"Application Support\",\n \"Firefox\",\n \"Profiles\"\n ),\n name: \"cookies.sqlite\"\n });\n const all = await Promise.all(\n files.map((file) => {\n return this.#queryCookiesDb(file, name, domain);\n })\n );\n return all.flat();\n }\n\n #queryCookiesDb(file: string, name: string, domain: string) {\n if (file && !existsSync(file)) {\n throw new Error(`File ${file} does not exist`);\n }\n if (env.VERBOSE) {\n console.log(`Trying Firefox cookie ${name} for domain ${domain}`);\n }\n let sql;\n //language=SQL\n sql = \"SELECT value FROM moz_cookies\";\n if (typeof name === \"string\" || typeof domain === \"string\") {\n sql += ` WHERE `;\n if (typeof name === \"string\") {\n sql += `name = '${name}'`;\n if (typeof domain === \"string\") {\n sql += ` AND `;\n }\n }\n if (typeof domain === \"string\") {\n sql += `host LIKE '${domain}';`;\n }\n }\n return doSqliteQuery1(file, sql)\n .then((rows) => {\n return rows.map((row) => {\n return {\n domain: row.domain,\n name: row.name,\n value: row.value.toString(\"utf8\")\n };\n });\n })\n .catch(() => []);\n }\n}\n","import CookieQueryStrategy from \"./CookieQueryStrategy\";\nimport ExportedCookie from \"../ExportedCookie\";\n\nexport default class SafariCookieQueryStrategy implements CookieQueryStrategy {\n async queryCookies(name: string, domain: string): Promise<ExportedCookie[]> {\n return [];\n }\n}\n","import jsonwebtoken from \"jsonwebtoken\";\nimport { env } from \"./global\";\n\nexport default function isValidJwt(token: any) {\n try {\n const result = jsonwebtoken.decode(token, { complete: true });\n if (env.VERBOSE) {\n console.log(result);\n }\n return true;\n } catch (err) {\n return false;\n }\n}\n","import ExportedCookie from \"./ExportedCookie\";\nimport { queryCookies } from \"./queryCookies\";\nimport CompositeCookieQueryStrategy from \"./browsers/CompositeCookieQueryStrategy\";\nimport { groupBy } from \"lodash\";\nimport { resultsRendered } from \"./resultsRendered\";\nimport CookieRequest from \"./CookieRequest\";\n\nexport async function getGroupedRenderedCookies(\n //\n {\n name,\n domain\n //\n }: CookieRequest\n //\n): Promise<string[]> {\n const cookies: ExportedCookie[] = await queryCookies(\n { name, domain },\n new CompositeCookieQueryStrategy()\n //\n );\n if (Array.isArray(cookies) && cookies.length > 0) {\n const results: ExportedCookie[] = await queryCookies({ name, domain });\n const groupedByFile = groupBy(results, (r) => r.meta?.file);\n return Object.keys(groupedByFile).map((file: string) => {\n const results: ExportedCookie[] = groupedByFile[file];\n return resultsRendered(results);\n });\n } else {\n throw new Error(\"Cookie not found\");\n }\n}\n","import ExportedCookie from \"./ExportedCookie\";\nimport { uniqBy } from \"lodash\";\n\nexport function resultsRendered(results: ExportedCookie[]) {\n return uniqBy(results, (r) => r.name)\n .map((r) => r.name + \"=\" + r.value)\n .join(\"; \");\n}\n"],"names":[],"version":3,"file":"main.js.map","sourceRoot":"../"}
package/dist/module.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import {uniqBy as $cE5Fr$uniqBy, merge as $cE5Fr$merge} from "lodash";
2
+ import {uniqBy as $cE5Fr$uniqBy, merge as $cE5Fr$merge, groupBy as $cE5Fr$groupBy} from "lodash";
3
3
  import {existsSync as $cE5Fr$existsSync, readdirSync as $cE5Fr$readdirSync, statSync as $cE5Fr$statSync} from "fs";
4
4
  import {pbkdf2 as $cE5Fr$pbkdf2, createDecipheriv as $cE5Fr$createDecipheriv} from "crypto";
5
5
  import {join as $cE5Fr$join} from "path";
@@ -7,17 +7,17 @@ import {exec as $cE5Fr$exec} from "child_process";
7
7
  import {Database as $cE5Fr$Database} from "sqlite3";
8
8
  import $cE5Fr$jsonwebtoken from "jsonwebtoken";
9
9
 
10
- class $c55d640bfb5eb523$export$2e2bcd8739ae039 {
11
- async queryCookies(name, domain) {
12
- if (process.env.NODE_ENV === "development") console.log("queryCookie", name, domain);
13
- return [];
14
- }
15
- }
10
+
11
+ var $672ffeb43f5a0a33$require$merge = $cE5Fr$merge;
12
+ const $672ffeb43f5a0a33$export$a7b6bc01c63cdfc3 = {};
13
+ $672ffeb43f5a0a33$require$merge($672ffeb43f5a0a33$export$a7b6bc01c63cdfc3, process.env);
14
+ const $672ffeb43f5a0a33$export$a7c5707626fc90f = $672ffeb43f5a0a33$export$a7b6bc01c63cdfc3["HOME"];
15
+ if (!$672ffeb43f5a0a33$export$a7c5707626fc90f) throw new Error("HOME environment variable is not set");
16
+
16
17
 
17
18
 
18
19
 
19
20
  async function $94d34fb9fc1942e3$export$8d71c74f97c0202e(command) {
20
- if (process.env.VERBOSE) console.log(command);
21
21
  return new Promise((resolve, reject)=>{
22
22
  (0, $cE5Fr$exec)(command, {
23
23
  encoding: "binary",
@@ -35,22 +35,6 @@ async function $94d34fb9fc1942e3$export$8d71c74f97c0202e(command) {
35
35
  });
36
36
  });
37
37
  }
38
- function $94d34fb9fc1942e3$export$33d3adc27420eed5(r) {
39
- if (process.env.VERBOSE) console.log("Printing value", r);
40
- if (r) {
41
- if (typeof r === "string") return r;
42
- else if (r.toString) // noinspection JSCheckFunctionSignatures
43
- return r.toString("utf8");
44
- }
45
- }
46
- function $94d34fb9fc1942e3$export$1ed1ce2ec2b4f5a3(r) {
47
- if (process.env.VERBOSE) console.log("Printing value", r);
48
- if (r) {
49
- if (typeof r === "string") console.log(r);
50
- else if (r.toString) // noinspection JSCheckFunctionSignatures
51
- console.log(r.toString("utf8"));
52
- }
53
- }
54
38
  function $94d34fb9fc1942e3$export$d53bf2de587a369(result) {
55
39
  if (result == null) return null;
56
40
  if (process.env.VERBOSE) console.log("result", result);
@@ -68,13 +52,6 @@ function $94d34fb9fc1942e3$export$5348b46700dd771c(input) {
68
52
 
69
53
 
70
54
 
71
- var $672ffeb43f5a0a33$require$merge = $cE5Fr$merge;
72
- const $672ffeb43f5a0a33$export$a7b6bc01c63cdfc3 = {};
73
- $672ffeb43f5a0a33$require$merge($672ffeb43f5a0a33$export$a7b6bc01c63cdfc3, process.env);
74
- const $672ffeb43f5a0a33$export$a7c5707626fc90f = $672ffeb43f5a0a33$export$a7b6bc01c63cdfc3["HOME"];
75
- if (!$672ffeb43f5a0a33$export$a7c5707626fc90f) throw new Error("HOME environment variable is not set");
76
-
77
-
78
55
 
79
56
 
80
57
 
@@ -123,14 +100,6 @@ async function $1ad80752da39350f$export$2c9faf86071156ae({ path: path , name: na
123
100
 
124
101
 
125
102
 
126
- function $622a8580a5a4b38d$export$bc926c43858bd3cb(obj) {
127
- return obj.domain !== undefined && obj.name !== undefined && obj.value !== undefined;
128
- }
129
- function $622a8580a5a4b38d$export$963c8d651337e4a4(obj) {
130
- return obj.domain !== undefined && obj.name !== undefined && obj.value !== undefined;
131
- }
132
-
133
-
134
103
 
135
104
 
136
105
  async function $9d2c7aa42fa2ecf2$export$f19f611d1fa7c6f3(file, sql) {
@@ -139,13 +108,11 @@ async function $9d2c7aa42fa2ecf2$export$f19f611d1fa7c6f3(file, sql) {
139
108
  return new Promise((resolve, reject)=>{
140
109
  db.all(sql, (err, rows)=>{
141
110
  if (err) {
142
- if (process.env.VERBOSE) console.log(`doSqliteQuery1: error ${err}`);
143
111
  reject(err);
144
112
  return;
145
113
  }
146
114
  const rows1 = rows;
147
115
  if (rows1 == null || rows1.length === 0) {
148
- if (process.env.VERBOSE) console.log(`doSqliteQuery1: no rows`);
149
116
  resolve([]);
150
117
  return;
151
118
  }
@@ -173,7 +140,17 @@ async function $9d2c7aa42fa2ecf2$export$f19f611d1fa7c6f3(file, sql) {
173
140
 
174
141
 
175
142
 
176
- class $179cc8ad79464497$export$2e2bcd8739ae039 extends (0, $c55d640bfb5eb523$export$2e2bcd8739ae039) {
143
+ function $067a4422f38d620c$export$bc926c43858bd3cb(obj) {
144
+ return obj.domain !== undefined && obj.name !== undefined && obj.value !== undefined;
145
+ }
146
+
147
+
148
+ function $ee8f283dda227cbb$export$963c8d651337e4a4(obj) {
149
+ return obj.domain !== undefined && obj.name !== undefined && obj.value !== undefined;
150
+ }
151
+
152
+
153
+ class $179cc8ad79464497$export$2e2bcd8739ae039 {
177
154
  async queryCookies(name, domain) {
178
155
  if (process.platform !== "darwin") throw new Error("This only works on macOS");
179
156
  if ((0, $672ffeb43f5a0a33$export$a7b6bc01c63cdfc3).FIREFOX_ONLY) return [];
@@ -204,7 +181,7 @@ async function $179cc8ad79464497$var$getPromise(name, domain) {
204
181
  });
205
182
  const promises = files.map((file)=>$179cc8ad79464497$var$getPromise1(name, domain, file));
206
183
  const results1 = await Promise.all(promises);
207
- return results1.flat().filter((0, $622a8580a5a4b38d$export$bc926c43858bd3cb));
184
+ return results1.flat().filter((0, $067a4422f38d620c$export$bc926c43858bd3cb));
208
185
  } catch (error) {
209
186
  if ((0, $672ffeb43f5a0a33$export$a7b6bc01c63cdfc3).VERBOSE) console.log("error", error);
210
187
  return [];
@@ -235,7 +212,7 @@ async function $179cc8ad79464497$var$getChromeCookies({ name: name , domain: dom
235
212
  meta: meta
236
213
  };
237
214
  });
238
- const results = (await Promise.all(decrypted)).filter((0, $622a8580a5a4b38d$export$963c8d651337e4a4));
215
+ const results = (await Promise.all(decrypted)).filter((0, $ee8f283dda227cbb$export$963c8d651337e4a4));
239
216
  if ((0, $672ffeb43f5a0a33$export$a7b6bc01c63cdfc3).VERBOSE) console.log("results", results);
240
217
  return results;
241
218
  }
@@ -327,8 +304,7 @@ async function $179cc8ad79464497$var$decrypt(password, encryptedData) {
327
304
 
328
305
 
329
306
 
330
-
331
- class $e2bb11114a5548c6$export$2e2bcd8739ae039 extends (0, $c55d640bfb5eb523$export$2e2bcd8739ae039) {
307
+ class $e2bb11114a5548c6$export$2e2bcd8739ae039 {
332
308
  async queryCookies(name, domain) {
333
309
  if (process.platform !== "darwin") throw new Error("This only works on macOS");
334
310
  if ((0, $672ffeb43f5a0a33$export$a7b6bc01c63cdfc3).CHROME_ONLY) return [];
@@ -381,16 +357,16 @@ class $e2bb11114a5548c6$export$2e2bcd8739ae039 extends (0, $c55d640bfb5eb523$exp
381
357
  }
382
358
 
383
359
 
384
-
385
- class $ae426ef38848e3ae$export$2e2bcd8739ae039 extends (0, $c55d640bfb5eb523$export$2e2bcd8739ae039) {
360
+ class $ae426ef38848e3ae$export$2e2bcd8739ae039 {
361
+ async queryCookies(name, domain) {
362
+ return [];
363
+ }
386
364
  }
387
365
 
388
366
 
389
-
390
- class $e4dc93e15167afaf$export$2e2bcd8739ae039 extends (0, $c55d640bfb5eb523$export$2e2bcd8739ae039) {
367
+ class $e4dc93e15167afaf$export$2e2bcd8739ae039 {
391
368
  #strategies;
392
369
  constructor(){
393
- super();
394
370
  this.#strategies = [
395
371
  (0, $179cc8ad79464497$export$2e2bcd8739ae039),
396
372
  (0, $e2bb11114a5548c6$export$2e2bcd8739ae039),
@@ -412,8 +388,6 @@ class $e4dc93e15167afaf$export$2e2bcd8739ae039 extends (0, $c55d640bfb5eb523$exp
412
388
 
413
389
 
414
390
 
415
-
416
-
417
391
  function $c0e0097c98ba1117$export$2e2bcd8739ae039(token) {
418
392
  try {
419
393
  const result = (0, $cE5Fr$jsonwebtoken).decode(token, {
@@ -445,6 +419,35 @@ async function $bea00efd5f6bccda$export$e6d428437cf2cacb({ name: name , domain:
445
419
 
446
420
 
447
421
 
422
+
423
+
424
+
425
+
426
+ function $1b5a89e5cded5e9b$export$9abc0a414b0d8b8f(results) {
427
+ return (0, $cE5Fr$uniqBy)(results, (r)=>r.name).map((r)=>r.name + "=" + r.value).join("; ");
428
+ }
429
+
430
+
431
+ async function $33a47f8dcb902827$export$4d2e9997e2c23417(//
432
+ { name: name , domain: domain }) {
433
+ const cookies = await (0, $bea00efd5f6bccda$export$e6d428437cf2cacb)({
434
+ name: name,
435
+ domain: domain
436
+ }, new (0, $e4dc93e15167afaf$export$2e2bcd8739ae039)());
437
+ if (Array.isArray(cookies) && cookies.length > 0) {
438
+ const results = await (0, $bea00efd5f6bccda$export$e6d428437cf2cacb)({
439
+ name: name,
440
+ domain: domain
441
+ });
442
+ const groupedByFile = (0, $cE5Fr$groupBy)(results, (r)=>r.meta?.file);
443
+ return Object.keys(groupedByFile).map((file)=>{
444
+ const results = groupedByFile[file];
445
+ return (0, $1b5a89e5cded5e9b$export$9abc0a414b0d8b8f)(results);
446
+ });
447
+ } else throw new Error("Cookie not found");
448
+ }
449
+
450
+
448
451
  async function $32bf08fc0ad0b0fe$export$4be65e66cfa2648a(params) {
449
452
  const cookies = await (0, $bea00efd5f6bccda$export$e6d428437cf2cacb)(params, new (0, $e4dc93e15167afaf$export$2e2bcd8739ae039)());
450
453
  if (Array.isArray(cookies) && cookies.length > 0) return cookies.find((cookie)=>cookie != null);
@@ -460,7 +463,13 @@ async function $32bf08fc0ad0b0fe$export$e5637297e9eb6f2e(params) {
460
463
  if (Array.isArray(cookies) && cookies.length > 0) return cookies.find((cookie)=>cookie != null);
461
464
  else throw new Error("Cookie not found");
462
465
  }
466
+ var $32bf08fc0ad0b0fe$export$2e2bcd8739ae039 = {
467
+ getCookie: $32bf08fc0ad0b0fe$export$4be65e66cfa2648a,
468
+ getFirefoxCookie: $32bf08fc0ad0b0fe$export$c44c5fdef43f0941,
469
+ getChromeCookie: $32bf08fc0ad0b0fe$export$e5637297e9eb6f2e,
470
+ getGroupedRenderedCookies: $33a47f8dcb902827$export$4d2e9997e2c23417
471
+ };
463
472
 
464
473
 
465
- export {$32bf08fc0ad0b0fe$export$4be65e66cfa2648a as getCookie, $32bf08fc0ad0b0fe$export$c44c5fdef43f0941 as getFirefoxCookie, $32bf08fc0ad0b0fe$export$e5637297e9eb6f2e as getChromeCookie};
474
+ export {$32bf08fc0ad0b0fe$export$4be65e66cfa2648a as getCookie, $32bf08fc0ad0b0fe$export$c44c5fdef43f0941 as getFirefoxCookie, $32bf08fc0ad0b0fe$export$e5637297e9eb6f2e as getChromeCookie, $32bf08fc0ad0b0fe$export$2e2bcd8739ae039 as default};
466
475
  //# sourceMappingURL=module.js.map
@@ -1 +1 @@
1
- {"mappings":"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","sources":["src/index.ts","src/queryCookies.ts","src/browsers/CompositeCookieQueryStrategy.ts","src/browsers/ChromeCookieQueryStrategy.ts","src/browsers/AbstractCookieQueryStrategy.ts","src/utils.ts","src/global.ts","src/findAllFiles.ts","src/CookieRow.ts","src/doSqliteQuery1.ts","src/browsers/FirefoxCookieQueryStrategy.ts","src/browsers/SafariCookieQueryStrategy.ts","src/isValidJwt.ts"],"sourcesContent":["#!/usr/bin/env node\n// noinspection JSUnusedGlobalSymbols\n\nimport { queryCookies } from \"./queryCookies\";\nimport FirefoxCookieQueryStrategy from \"./browsers/FirefoxCookieQueryStrategy\";\nimport ChromeCookieQueryStrategy from \"./browsers/ChromeCookieQueryStrategy\";\nimport CompositeCookieQueryStrategy from \"./browsers/CompositeCookieQueryStrategy\";\n\nexport async function getCookie(params: { name: string; domain: string; }) {\n const cookies = await queryCookies(\n params,\n new CompositeCookieQueryStrategy()\n //\n );\n if (Array.isArray(cookies) && cookies.length > 0) {\n return cookies.find((cookie) => cookie != null);\n } else {\n throw new Error(\"Cookie not found\");\n }\n}\n\n/**\n *\n * @param params\n * @returns {Promise<*>}\n */\nexport async function getFirefoxCookie(params: { name: string; domain: string; }) {\n const cookies = await queryCookies(\n params,\n new FirefoxCookieQueryStrategy()\n //\n );\n if (Array.isArray(cookies) && cookies.length > 0) {\n return cookies.find((cookie) => cookie != null);\n } else {\n throw new Error(\"Cookie not found\");\n }\n}\n\n/**\n *\n * @param params\n * @returns {Promise<*>}\n */\nexport async function getChromeCookie(params: { name: string; domain: string; }) {\n const cookies = await queryCookies(\n params,\n new ChromeCookieQueryStrategy()\n //\n );\n if (Array.isArray(cookies) && cookies.length > 0) {\n return cookies.find((cookie) => cookie != null);\n } else {\n throw new Error(\"Cookie not found\");\n }\n}\n","import CompositeCookieQueryStrategy from \"./browsers/CompositeCookieQueryStrategy\";\nimport { uniqBy } from \"lodash\";\nimport { env } from \"./global\";\nimport isValidJwt from \"./isValidJwt\";\nimport { ExportedCookie } from \"./CookieRow\";\nimport AbstractCookieQueryStrategy from \"./browsers/AbstractCookieQueryStrategy\";\n\nexport async function queryCookies(\n {\n name,\n domain\n }: {\n name: string;\n domain: string;\n },\n strategy: AbstractCookieQueryStrategy = new CompositeCookieQueryStrategy()\n) {\n const results: ExportedCookie[] = await strategy.queryCookies(name, domain);\n const results1: ExportedCookie[] = uniqBy(results, JSON.stringify);\n const jwtCookies = [];\n for (const result of results1) {\n const value = result.value;\n if (isValidJwt(value)) {\n jwtCookies.push(result);\n }\n }\n const resultsUniq = env.REQUIRE_JWT ? jwtCookies : results1;\n return env.SINGLE ? [resultsUniq[0]] : resultsUniq;\n}\n","import ChromeCookieQueryStrategy from \"./ChromeCookieQueryStrategy\";\nimport FirefoxCookieQueryStrategy from \"./FirefoxCookieQueryStrategy\";\nimport SafariCookieQueryStrategy from \"./SafariCookieQueryStrategy\";\nimport AbstractCookieQueryStrategy from \"./AbstractCookieQueryStrategy\";\nimport {ExportedCookie} from \"../CookieRow\";\n\nexport default class CompositeCookieQueryStrategy extends AbstractCookieQueryStrategy {\n #strategies;\n\n constructor() {\n super();\n this.#strategies = [\n ChromeCookieQueryStrategy,\n FirefoxCookieQueryStrategy,\n SafariCookieQueryStrategy,\n ].map((strategy) => {\n return new strategy();\n });\n }\n\n async queryCookies(name: string, domain: string): Promise<ExportedCookie[]> {\n const results = await Promise.all(\n this.#strategies.map(async (strategy) => {\n // @ts-ignore\n const cookies: Promise<ExportedCookie[]> = strategy.queryCookies(name, domain);\n return cookies.catch(() => []);\n })\n );\n return results.flat();\n }\n}\n","import AbstractCookieQueryStrategy from \"./AbstractCookieQueryStrategy\";\nimport { execSimple } from \"../utils\";\nimport { env, HOME } from \"../global\";\nimport { existsSync } from \"fs\";\nimport { findAllFiles } from \"../findAllFiles\";\nimport * as crypto from \"crypto\";\nimport * as path from \"path\";\nimport { CookieRow, ExportedCookie, isCookieRow, isExportedCookie } from \"../CookieRow\";\nimport { doSqliteQuery1 } from \"../doSqliteQuery1\";\nimport { merge } from \"lodash\";\n\nexport default class ChromeCookieQueryStrategy extends AbstractCookieQueryStrategy {\n async queryCookies(name: string, domain: string): Promise<ExportedCookie[]> {\n if (process.platform !== \"darwin\") {\n throw new Error(\"This only works on macOS\");\n }\n if (env.FIREFOX_ONLY) {\n return [];\n }\n return getChromeCookies({\n requireJwt: false,\n name,\n domain\n });\n }\n}\n\nasync function getPromise1(name: string, domain: string, file: string): Promise<CookieRow[]> {\n try {\n return await getEncryptedChromeCookie({\n name: name,\n domain: domain,\n file: file\n });\n } catch (e) {\n if (env.VERBOSE) {\n console.log(\"Error getting encrypted cookie\", e);\n }\n return [];\n }\n}\n\nasync function getPromise(name: string, domain: string): Promise<CookieRow[]> {\n try {\n const files: string[] = await findAllFiles({\n path: chromeLocal,\n name: \"Cookies\"\n });\n const promises: Promise<CookieRow[]>[] = files.map((file) => getPromise1(name, domain, file));\n const results1: Awaited<CookieRow[]>[] = await Promise.all(promises);\n return results1.flat().filter(isCookieRow);\n } catch (error) {\n if (env.VERBOSE) {\n console.log(\"error\", error);\n }\n return [];\n }\n}\n\nasync function decryptValue(password: string, encryptedValue: Buffer) {\n let d: string | null;\n try {\n d = await decrypt(password, encryptedValue);\n } catch (e) {\n if (env.VERBOSE) {\n console.log(\"Error decrypting cookie\", e);\n }\n d = null;\n }\n return d ?? encryptedValue.toString(\"utf-8\");\n}\n\nasync function getChromeCookies(\n {\n name,\n domain = \"%\",\n requireJwt = false\n }: {\n name: string;\n domain: string;\n requireJwt: boolean | undefined;\n //\n }\n //\n): Promise<ExportedCookie[]> {\n const encryptedDataItems: CookieRow[] = await getPromise(name, domain);\n const password: string = await getChromePassword();\n const decrypted: Promise<ExportedCookie | null>[] = encryptedDataItems\n .filter(({ value }) => value != null && value.length > 0)\n .map(async (cookieRow: CookieRow) => {\n const encryptedValue: Buffer = cookieRow.value;\n const decryptedValue = await decryptValue(password, encryptedValue);\n const meta = {};\n merge(meta, cookieRow.meta ?? {});\n return {\n domain: cookieRow.domain,\n name: cookieRow.name,\n value: decryptedValue,\n meta: meta\n };\n });\n const results: ExportedCookie[] = (await Promise.all(decrypted)).filter(isExportedCookie);\n if (env.VERBOSE) {\n console.log(\"results\", results);\n }\n return results;\n}\n\nconst chromeLocal = path.join(\n HOME,\n \"Library\",\n \"Application Support\",\n \"Google\",\n \"Chrome\"\n);\n\nasync function getEncryptedChromeCookie(\n {\n name,\n domain,\n file = path.join(chromeLocal, \"Default\", \"Cookies\")\n //\n }: {\n name: string;\n domain: string;\n file: string;\n }): Promise<CookieRow[]> {\n if (!existsSync(file)) {\n throw new Error(`File ${file} does not exist`);\n }\n if (env.VERBOSE) {\n const s = file.split(\"/\").slice(-3).join(\"/\");\n console.log(`Trying Chrome (at ${s}) cookie ${name} for domain ${domain}`);\n }\n let sql;\n sql = `SELECT encrypted_value, name, host_key FROM cookies`;\n const wildcardRegexp = /^([*%])$/i;\n const specifiedName = name.match(wildcardRegexp) == null;\n const specifiedDomain = domain.match(wildcardRegexp) == null;\n if (specifiedName || specifiedDomain) {\n sql += ` WHERE `;\n if (specifiedName) {\n sql += `name = '${name}'`;\n if (specifiedDomain) {\n sql += ` AND `;\n }\n }\n if (specifiedDomain) {\n sql += `host_key LIKE '${domain}';`;\n }\n }\n return doSqliteQuery1(file, sql);\n}\n\nasync function getChromePassword(): Promise<string> {\n return execSimple(\n \"security find-generic-password -w -s \\\"Chrome Safe Storage\\\"\"\n );\n}\n\nasync function decrypt(password: crypto.BinaryLike, encryptedData: Buffer): Promise<string> {\n if (typeof password !== \"string\") {\n throw new Error(\"password must be a string: \" + password);\n }\n let encryptedData1: any;\n encryptedData1 = encryptedData;\n if (encryptedData1 == null || typeof encryptedData1 !== \"object\") {\n throw new Error(\"encryptedData must be a object: \" + encryptedData1);\n }\n if (!(encryptedData1 instanceof Buffer)) {\n if (Array.isArray(encryptedData1) && encryptedData1[0] instanceof Buffer) {\n [encryptedData1] = encryptedData1;\n if (env.VERBOSE) {\n console.log(\n `encryptedData is an array of buffers, selected first: ${encryptedData1}`\n );\n }\n } else {\n throw new Error(\"encryptedData must be a Buffer: \" + encryptedData1);\n }\n encryptedData1 = Buffer.from(encryptedData1);\n }\n if (env.VERBOSE) {\n console.log(`Trying to decrypt with password ${password}`);\n }\n return new Promise((resolve, reject) => {\n crypto.pbkdf2(password,\n \"saltysalt\",\n 1003,\n 16,\n \"sha1\",\n (error, buffer) => {\n try {\n if (error) {\n if (env.VERBOSE) {\n console.log(\"Error doing pbkdf2\", error);\n }\n reject(error);\n return;\n }\n\n if (buffer.length !== 16) {\n if (env.VERBOSE) {\n console.log(\n \"Error doing pbkdf2, buffer length is not 16\",\n buffer.length\n );\n }\n reject(new Error(\"Buffer length is not 16\"));\n return;\n }\n\n const str = new Array(17).join(\" \");\n const iv = Buffer.from(str, \"binary\");\n const decipher = crypto.createDecipheriv(\"aes-128-cbc\", buffer, iv);\n decipher.setAutoPadding(false);\n\n if (encryptedData1 && encryptedData1.slice) {\n encryptedData1 = encryptedData1.slice(3);\n }\n\n if (encryptedData1.length % 16 !== 0) {\n if (env.VERBOSE) {\n console.log(\n \"Error doing pbkdf2, encryptedData length is not a multiple of 16\",\n encryptedData1.length\n );\n }\n reject(new Error(\"encryptedData length is not a multiple of 16\"));\n return;\n }\n\n let decoded = decipher.update(encryptedData1);\n try {\n decipher.final(\"utf-8\");\n } catch (e) {\n if (env.VERBOSE) {\n console.log(\"Error doing decipher.final()\", e);\n }\n reject(e);\n return;\n }\n\n const padding = decoded[decoded.length - 1];\n if (padding) {\n decoded = decoded.slice(0, 0 - padding);\n }\n // noinspection JSCheckFunctionSignatures\n const decodedString = decoded.toString(\"utf8\");\n resolve(decodedString);\n } catch (e) {\n reject(e);\n }\n });\n });\n}\n","import {ExportedCookie} from \"../CookieRow\";\n\nexport default class AbstractCookieQueryStrategy {\n async queryCookies(name: string, domain: string): Promise<ExportedCookie[]> {\n if (process.env.NODE_ENV === \"development\") {\n console.log(\"queryCookie\", name, domain);\n }\n return [];\n }\n}\n","// noinspection JSUnusedGlobalSymbols\n\nimport {exec, ExecException} from \"child_process\";\n\nexport async function execSimple(command: string): Promise<string> {\n if (process.env.VERBOSE) {\n console.log(command);\n }\n return new Promise((resolve, reject) => {\n exec(\n command,\n { encoding: \"binary\", maxBuffer: 5 * 1024 },\n (error: ExecException | null, stdout: string, stderr: string) => {\n if (error) {\n reject(error);\n return;\n }\n if (stderr) {\n reject(error);\n return;\n }\n if (stdout) {\n resolve(stdout.trim());\n }\n }\n );\n });\n}\n\n// export async function execAsBuffer(command: string) {\n// if (process.env.VERBOSE) {\n// console.log(command);\n// }\n// return await new Promise((resolve, reject) => {\n// exec(\n// command,\n// { encoding: \"binary\", maxBuffer: 5 * 1024 },\n// (error: ExecException | null, stdout: string, stderr: string) => {\n// if (error) {\n// reject(error);\n// return;\n// }\n// if (stderr) {\n// reject(error);\n// return;\n// }\n// let stdoutAsBuffer: string = stdout;\n// if (typeof stdoutAsBuffer === \"string\" && stdoutAsBuffer.length > 0) {\n// // noinspection JSCheckFunctionSignatures\n// stdoutAsBuffer = Buffer.from(stdoutAsBuffer, \"binary\").slice(0, -1);\n// }\n// if (stdoutAsBuffer && stdoutAsBuffer.length > 0) {\n// resolve(stdoutAsBuffer);\n// }\n// }\n// );\n// });\n// }\n\n// @ts-ignore\nexport function toStringValue(r: any): string {\n if (process.env.VERBOSE) {\n console.log(\"Printing value\", r);\n }\n if (r) {\n if (typeof r === \"string\") {\n return r;\n } else if (r.toString) {\n // noinspection JSCheckFunctionSignatures\n return r.toString(\"utf8\");\n }\n }\n}\n\nexport function printStringValue(r: any) {\n if (process.env.VERBOSE) {\n console.log(\"Printing value\", r);\n }\n if (r) {\n if (typeof r === \"string\") {\n console.log(r);\n } else if (r.toString) {\n // noinspection JSCheckFunctionSignatures\n console.log(r.toString(\"utf8\"));\n }\n }\n}\n\n/**\n *\n * @param result\n * @returns {string|null}\n */\nexport function toStringOrNull(result: any) {\n if (result == null) {\n return null;\n }\n if (process.env.VERBOSE) {\n console.log(\"result\", result);\n }\n if (typeof result === \"string\" && result.length > 0) {\n return result;\n }\n if (result.slice && result.toString) {\n // noinspection JSCheckFunctionSignatures\n return result.toString(\"utf8\");\n }\n return null;\n}\n\nexport function invalidString(input: any): boolean {\n return typeof input !== \"string\" || input.length === 0;\n}\n\n\nexport function validString(input: any): input is string {\n return typeof input == \"string\" && input.length > 0;\n}\n","const { merge } = require(\"lodash\");\nexport const env: any = {};\nmerge(env, process.env);\nexport const HOME: string = env[\"HOME\"];\nif (!HOME) {\n throw new Error(\"HOME environment variable is not set\");\n}\n","import { env } from \"./global\";\nimport * as fs from \"fs\";\n\nexport async function findAllFiles(\n {\n path,\n name,\n maxDepth = 2\n//\n }: {\n path: string;\n name: string;\n maxDepth?: number;\n }\n): Promise<string[]> {\n const rootSegments = path.split(\"/\").length;\n\n if (env.VERBOSE) {\n console.log(`Searching for ${name} in ${path}`);\n }\n const files: string[] = [];\n let readdirSync;\n try {\n readdirSync = fs.readdirSync(path);\n } catch (e) {\n if (env.VERBOSE) {\n console.log(`Error reading ${path}`, e);\n }\n return [];\n }\n for (const file of readdirSync) {\n const filePath = path + \"/\" + file;\n let stat;\n try {\n stat = fs.statSync(filePath);\n } catch (e) {\n if (env.VERBOSE) {\n console.error(`Error getting stat for ${filePath}`, e);\n }\n continue;\n }\n if (stat.isDirectory()) {\n if (filePath.split(\"/\").length < rootSegments + maxDepth) {\n try {\n const subFiles = await findAllFiles({\n path: filePath,\n name: name,\n maxDepth: 2\n });\n files.push(...subFiles);\n } catch (e) {\n if (env.VERBOSE) {\n console.error(e);\n }\n }\n }\n } else if (file === name) {\n files.push(filePath);\n }\n }\n if (env.VERBOSE) {\n if (files.length > 0) {\n console.log(`Found ${files.length} ${name} files`);\n console.log(files);\n }\n }\n return files;\n}\n","export interface CookieRow {\n domain: string;\n name: string;\n value: Buffer;\n meta?: any;\n}\n\nexport function isCookieRow(obj: any): obj is CookieRow {\n return obj.domain !== undefined && obj.name !== undefined && obj.value !== undefined;\n}\n\nexport interface ExportedCookie {\n domain: string;\n name: string;\n value: string;\n meta?: any;\n}\n\nexport function isExportedCookie(obj: any): obj is ExportedCookie {\n return obj.domain !== undefined && obj.name !== undefined && obj.value !== undefined;\n}\n","import * as fs from \"fs\";\nimport * as sqlite3 from \"sqlite3\";\nimport {CookieRow} from \"./CookieRow\";\n\nexport async function doSqliteQuery1(file: string, sql: string): Promise<CookieRow[]> {\n if (!fs.existsSync(file)) {\n throw new Error(`doSqliteQuery1: file ${file} does not exist`);\n }\n const db = new sqlite3.Database(file);\n return new Promise((resolve, reject) => {\n db.all(sql, (err: Error, rows: any[]) => {\n if (err) {\n if (process.env.VERBOSE) {\n console.log(`doSqliteQuery1: error ${err}`);\n }\n reject(err);\n return;\n }\n const rows1: any[] = rows;\n if (rows1 == null || rows1.length === 0) {\n if (process.env.VERBOSE) {\n console.log(`doSqliteQuery1: no rows`);\n }\n resolve([]);\n return;\n }\n if (Array.isArray(rows1)) {\n const cookieRows: CookieRow[] = rows1.map((row) => {\n return {\n domain: row[\"host_key\"],\n name: row[\"name\"],\n value: row[\"encrypted_value\"],\n meta: {\n file: file\n }\n }\n })\n resolve(cookieRows);\n return;\n }\n if (process.env.VERBOSE) {\n console.log(`doSqliteQuery1: rows ${JSON.stringify(rows1)}`);\n }\n resolve([rows1]);\n });\n });\n}\n","import AbstractCookieQueryStrategy from \"./AbstractCookieQueryStrategy\";\nimport { env, HOME } from \"../global\";\nimport { existsSync } from \"fs\";\nimport { toStringOrNull } from \"../utils\";\nimport { findAllFiles } from \"../findAllFiles\";\nimport * as path from \"path\";\nimport { doSqliteQuery1 } from \"../doSqliteQuery1\";\nimport { ExportedCookie } from \"../CookieRow\";\n\nexport default class FirefoxCookieQueryStrategy extends AbstractCookieQueryStrategy {\n async queryCookies(name: string, domain: string): Promise<ExportedCookie[]> {\n if (process.platform !== \"darwin\") {\n throw new Error(\"This only works on macOS\");\n }\n if (env.CHROME_ONLY) {\n return [];\n }\n const cookies = await this.#getFirefoxCookie({ name, domain });\n return Array.isArray(cookies) ? cookies.map(toStringOrNull) : [];\n }\n\n /**\n *\n * @param name\n * @param domain\n * @returns {Promise<Buffer>}\n */\n async #getFirefoxCookie(\n //\n {\n name,\n domain\n }: {\n name: string,\n domain: string\n //\n }\n //\n ) {\n const files: string[] = await findAllFiles({\n path: path.join(\n HOME,\n \"Library\",\n \"Application Support\",\n \"Firefox\",\n \"Profiles\"\n ),\n name: \"cookies.sqlite\"\n });\n const all = await Promise.all(\n files.map((file) => {\n return this.#queryCookiesDb(file, name, domain);\n })\n );\n return all.flat();\n }\n\n #queryCookiesDb(file: string, name: string, domain: string) {\n if (file && !existsSync(file)) {\n throw new Error(`File ${file} does not exist`);\n }\n if (env.VERBOSE) {\n console.log(`Trying Firefox cookie ${name} for domain ${domain}`);\n }\n let sql;\n //language=SQL\n sql = \"SELECT value FROM moz_cookies\";\n if (typeof name === \"string\" || typeof domain === \"string\") {\n sql += ` WHERE `;\n if (typeof name === \"string\") {\n sql += `name = '${name}'`;\n if (typeof domain === \"string\") {\n sql += ` AND `;\n }\n }\n if (typeof domain === \"string\") {\n sql += `host LIKE '${domain}';`;\n }\n }\n return doSqliteQuery1(file, sql)\n .then((rows) => {\n return rows.map((row) => {\n return {\n domain: row.domain,\n name: row.name,\n value: row.value.toString(\"utf8\")\n };\n });\n })\n .catch(() => []);\n }\n}\n","import AbstractCookieQueryStrategy from \"./AbstractCookieQueryStrategy\";\n\nexport default class SafariCookieQueryStrategy extends AbstractCookieQueryStrategy {}\n","import jsonwebtoken from \"jsonwebtoken\";\nimport { env } from \"./global\";\n\nexport default function isValidJwt(token: any) {\n try {\n const result = jsonwebtoken.decode(token, { complete: true });\n if (env.VERBOSE) {\n console.log(result);\n }\n return true;\n } catch (err) {\n return false;\n }\n}\n"],"names":[],"version":3,"file":"module.js.map","sourceRoot":"../"}
1
+ {"mappings":"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","sources":["src/index.ts","src/queryCookies.ts","src/global.ts","src/browsers/CompositeCookieQueryStrategy.ts","src/browsers/ChromeCookieQueryStrategy.ts","src/utils.ts","src/findAllFiles.ts","src/doSqliteQuery1.ts","src/IsCookieRow.ts","src/IsExportedCookie.ts","src/browsers/FirefoxCookieQueryStrategy.ts","src/browsers/SafariCookieQueryStrategy.ts","src/isValidJwt.ts","src/getGroupedRenderedCookies.ts","src/resultsRendered.ts"],"sourcesContent":["#!/usr/bin/env node\n// noinspection JSUnusedGlobalSymbols\n\nimport { queryCookies } from \"./queryCookies\";\nimport FirefoxCookieQueryStrategy from \"./browsers/FirefoxCookieQueryStrategy\";\nimport ChromeCookieQueryStrategy from \"./browsers/ChromeCookieQueryStrategy\";\nimport CompositeCookieQueryStrategy from \"./browsers/CompositeCookieQueryStrategy\";\nimport { getGroupedRenderedCookies } from \"./getGroupedRenderedCookies\";\n\nexport async function getCookie(params: { name: string; domain: string; }) {\n const cookies = await queryCookies(\n params,\n new CompositeCookieQueryStrategy()\n //\n );\n if (Array.isArray(cookies) && cookies.length > 0) {\n return cookies.find((cookie) => cookie != null);\n } else {\n throw new Error(\"Cookie not found\");\n }\n}\n\n/**\n *\n * @param params\n * @returns {Promise<*>}\n */\nexport async function getFirefoxCookie(params: { name: string; domain: string; }) {\n const cookies = await queryCookies(\n params,\n new FirefoxCookieQueryStrategy()\n //\n );\n if (Array.isArray(cookies) && cookies.length > 0) {\n return cookies.find((cookie) => cookie != null);\n } else {\n throw new Error(\"Cookie not found\");\n }\n}\n\n/**\n *\n * @param params\n * @returns {Promise<*>}\n */\nexport async function getChromeCookie(params: { name: string; domain: string; }) {\n const cookies = await queryCookies(\n params,\n new ChromeCookieQueryStrategy()\n //\n );\n if (Array.isArray(cookies) && cookies.length > 0) {\n return cookies.find((cookie) => cookie != null);\n } else {\n throw new Error(\"Cookie not found\");\n }\n}\n\nexport default {\n getCookie,\n getFirefoxCookie,\n getChromeCookie,\n getGroupedRenderedCookies,\n}\n","import { env } from \"./global\";\nimport { uniqBy } from \"lodash\";\nimport CompositeCookieQueryStrategy from \"./browsers/CompositeCookieQueryStrategy\";\nimport CookieQueryStrategy from \"./browsers/CookieQueryStrategy\";\nimport isValidJwt from \"./isValidJwt\";\nimport ExportedCookie from \"./ExportedCookie\";\nimport CookieRequest from \"./CookieRequest\";\n\nexport async function queryCookies(\n {\n name,\n domain\n }: CookieRequest,\n strategy: CookieQueryStrategy = new CompositeCookieQueryStrategy()\n) {\n const results: ExportedCookie[] = await strategy.queryCookies(name, domain);\n const results1: ExportedCookie[] = uniqBy(results, JSON.stringify);\n const jwtCookies = [];\n for (const result of results1) {\n const value = result.value;\n if (isValidJwt(value)) {\n jwtCookies.push(result);\n }\n }\n const resultsUniq = env.REQUIRE_JWT ? jwtCookies : results1;\n return env.SINGLE ? [resultsUniq[0]] : resultsUniq;\n}\n","const { merge } = require(\"lodash\");\nexport const env: any = {};\nmerge(env, process.env);\nexport const HOME: string = env[\"HOME\"];\nif (!HOME) {\n throw new Error(\"HOME environment variable is not set\");\n}\n","import ChromeCookieQueryStrategy from \"./ChromeCookieQueryStrategy\";\nimport FirefoxCookieQueryStrategy from \"./FirefoxCookieQueryStrategy\";\nimport SafariCookieQueryStrategy from \"./SafariCookieQueryStrategy\";\nimport CookieQueryStrategy from \"./CookieQueryStrategy\";\nimport ExportedCookie from \"../ExportedCookie\";\n\nexport default class CompositeCookieQueryStrategy implements CookieQueryStrategy {\n #strategies;\n\n constructor() {\n this.#strategies = [\n ChromeCookieQueryStrategy,\n FirefoxCookieQueryStrategy,\n SafariCookieQueryStrategy,\n ].map((strategy) => {\n return new strategy();\n });\n }\n\n async queryCookies(name: string, domain: string): Promise<ExportedCookie[]> {\n const results = await Promise.all(\n this.#strategies.map(async (strategy) => {\n // @ts-ignore\n const cookies: Promise<ExportedCookie[]> = strategy.queryCookies(name, domain);\n return cookies.catch(() => []);\n })\n );\n return results.flat();\n }\n}\n","import CookieQueryStrategy from \"./CookieQueryStrategy\";\nimport { execSimple } from \"../utils\";\nimport { env, HOME } from \"../global\";\nimport { existsSync } from \"fs\";\nimport { findAllFiles } from \"../findAllFiles\";\nimport * as crypto from \"crypto\";\nimport * as path from \"path\";\nimport CookieRow from \"../CookieRow\";\nimport ExportedCookie from \"../ExportedCookie\";\nimport { doSqliteQuery1 } from \"../doSqliteQuery1\";\nimport { merge } from \"lodash\";\nimport { isCookieRow } from \"../IsCookieRow\";\nimport { isExportedCookie } from \"../IsExportedCookie\";\n\nexport default class ChromeCookieQueryStrategy implements CookieQueryStrategy {\n async queryCookies(name: string, domain: string): Promise<ExportedCookie[]> {\n if (process.platform !== \"darwin\") {\n throw new Error(\"This only works on macOS\");\n }\n if (env.FIREFOX_ONLY) {\n return [];\n }\n return getChromeCookies({\n requireJwt: false,\n name,\n domain\n });\n }\n}\n\nasync function getPromise1(name: string, domain: string, file: string): Promise<CookieRow[]> {\n try {\n return await getEncryptedChromeCookie({\n name: name,\n domain: domain,\n file: file\n });\n } catch (e) {\n if (env.VERBOSE) {\n console.log(\"Error getting encrypted cookie\", e);\n }\n return [];\n }\n}\n\nasync function getPromise(name: string, domain: string): Promise<CookieRow[]> {\n try {\n const files: string[] = await findAllFiles({\n path: chromeLocal,\n name: \"Cookies\"\n });\n const promises: Promise<CookieRow[]>[] = files.map((file) => getPromise1(name, domain, file));\n const results1: Awaited<CookieRow[]>[] = await Promise.all(promises);\n return results1.flat().filter(isCookieRow);\n } catch (error) {\n if (env.VERBOSE) {\n console.log(\"error\", error);\n }\n return [];\n }\n}\n\nasync function decryptValue(password: string, encryptedValue: Buffer) {\n let d: string | null;\n try {\n d = await decrypt(password, encryptedValue);\n } catch (e) {\n if (env.VERBOSE) {\n console.log(\"Error decrypting cookie\", e);\n }\n d = null;\n }\n return d ?? encryptedValue.toString(\"utf-8\");\n}\n\nasync function getChromeCookies(\n {\n name,\n domain = \"%\",\n requireJwt = false\n }: {\n name: string;\n domain: string;\n requireJwt: boolean | undefined;\n //\n }\n //\n): Promise<ExportedCookie[]> {\n const encryptedDataItems: CookieRow[] = await getPromise(name, domain);\n const password: string = await getChromePassword();\n const decrypted: Promise<ExportedCookie | null>[] = encryptedDataItems\n .filter(({ value }) => value != null && value.length > 0)\n .map(async (cookieRow: CookieRow) => {\n const encryptedValue: Buffer = cookieRow.value;\n const decryptedValue = await decryptValue(password, encryptedValue);\n const meta = {};\n merge(meta, cookieRow.meta ?? {});\n return {\n domain: cookieRow.domain,\n name: cookieRow.name,\n value: decryptedValue,\n meta: meta\n };\n });\n const results: ExportedCookie[] = (await Promise.all(decrypted)).filter(isExportedCookie);\n if (env.VERBOSE) {\n console.log(\"results\", results);\n }\n return results;\n}\n\nconst chromeLocal = path.join(\n HOME,\n \"Library\",\n \"Application Support\",\n \"Google\",\n \"Chrome\"\n);\n\nasync function getEncryptedChromeCookie(\n {\n name,\n domain,\n file = path.join(chromeLocal, \"Default\", \"Cookies\")\n //\n }: {\n name: string;\n domain: string;\n file: string;\n }): Promise<CookieRow[]> {\n if (!existsSync(file)) {\n throw new Error(`File ${file} does not exist`);\n }\n if (env.VERBOSE) {\n const s = file.split(\"/\").slice(-3).join(\"/\");\n console.log(`Trying Chrome (at ${s}) cookie ${name} for domain ${domain}`);\n }\n let sql;\n sql = `SELECT encrypted_value, name, host_key FROM cookies`;\n const wildcardRegexp = /^([*%])$/i;\n const specifiedName = name.match(wildcardRegexp) == null;\n const specifiedDomain = domain.match(wildcardRegexp) == null;\n if (specifiedName || specifiedDomain) {\n sql += ` WHERE `;\n if (specifiedName) {\n sql += `name = '${name}'`;\n if (specifiedDomain) {\n sql += ` AND `;\n }\n }\n if (specifiedDomain) {\n sql += `host_key LIKE '${domain}';`;\n }\n }\n return doSqliteQuery1(file, sql);\n}\n\nasync function getChromePassword(): Promise<string> {\n return execSimple(\n \"security find-generic-password -w -s \\\"Chrome Safe Storage\\\"\"\n );\n}\n\nasync function decrypt(password: crypto.BinaryLike, encryptedData: Buffer): Promise<string> {\n if (typeof password !== \"string\") {\n throw new Error(\"password must be a string: \" + password);\n }\n let encryptedData1: any;\n encryptedData1 = encryptedData;\n if (encryptedData1 == null || typeof encryptedData1 !== \"object\") {\n throw new Error(\"encryptedData must be a object: \" + encryptedData1);\n }\n if (!(encryptedData1 instanceof Buffer)) {\n if (Array.isArray(encryptedData1) && encryptedData1[0] instanceof Buffer) {\n [encryptedData1] = encryptedData1;\n if (env.VERBOSE) {\n console.log(\n `encryptedData is an array of buffers, selected first: ${encryptedData1}`\n );\n }\n } else {\n throw new Error(\"encryptedData must be a Buffer: \" + encryptedData1);\n }\n encryptedData1 = Buffer.from(encryptedData1);\n }\n if (env.VERBOSE) {\n console.log(`Trying to decrypt with password ${password}`);\n }\n return new Promise((resolve, reject) => {\n crypto.pbkdf2(password,\n \"saltysalt\",\n 1003,\n 16,\n \"sha1\",\n (error, buffer) => {\n try {\n if (error) {\n if (env.VERBOSE) {\n console.log(\"Error doing pbkdf2\", error);\n }\n reject(error);\n return;\n }\n\n if (buffer.length !== 16) {\n if (env.VERBOSE) {\n console.log(\n \"Error doing pbkdf2, buffer length is not 16\",\n buffer.length\n );\n }\n reject(new Error(\"Buffer length is not 16\"));\n return;\n }\n\n const str = new Array(17).join(\" \");\n const iv = Buffer.from(str, \"binary\");\n const decipher = crypto.createDecipheriv(\"aes-128-cbc\", buffer, iv);\n decipher.setAutoPadding(false);\n\n if (encryptedData1 && encryptedData1.slice) {\n encryptedData1 = encryptedData1.slice(3);\n }\n\n if (encryptedData1.length % 16 !== 0) {\n if (env.VERBOSE) {\n console.log(\n \"Error doing pbkdf2, encryptedData length is not a multiple of 16\",\n encryptedData1.length\n );\n }\n reject(new Error(\"encryptedData length is not a multiple of 16\"));\n return;\n }\n\n let decoded = decipher.update(encryptedData1);\n try {\n decipher.final(\"utf-8\");\n } catch (e) {\n if (env.VERBOSE) {\n console.log(\"Error doing decipher.final()\", e);\n }\n reject(e);\n return;\n }\n\n const padding = decoded[decoded.length - 1];\n if (padding) {\n decoded = decoded.slice(0, 0 - padding);\n }\n // noinspection JSCheckFunctionSignatures\n const decodedString = decoded.toString(\"utf8\");\n resolve(decodedString);\n } catch (e) {\n reject(e);\n }\n });\n });\n}\n","// noinspection JSUnusedGlobalSymbols\n\nimport {exec, ExecException} from \"child_process\";\n\nexport async function execSimple(command: string): Promise<string> {\n return new Promise((resolve, reject) => {\n exec(\n command,\n { encoding: \"binary\", maxBuffer: 5 * 1024 },\n (error: ExecException | null, stdout: string, stderr: string) => {\n if (error) {\n reject(error);\n return;\n }\n if (stderr) {\n reject(error);\n return;\n }\n if (stdout) {\n resolve(stdout.trim());\n }\n }\n );\n });\n}\n\n/**\n *\n * @param result\n * @returns {string|null}\n */\nexport function toStringOrNull(result: any) {\n if (result == null) {\n return null;\n }\n if (process.env.VERBOSE) {\n console.log(\"result\", result);\n }\n if (typeof result === \"string\" && result.length > 0) {\n return result;\n }\n if (result.slice && result.toString) {\n // noinspection JSCheckFunctionSignatures\n return result.toString(\"utf8\");\n }\n return null;\n}\n\nexport function invalidString(input: any): boolean {\n return typeof input !== \"string\" || input.length === 0;\n}\n\n\nexport function validString(input: any): input is string {\n return typeof input == \"string\" && input.length > 0;\n}\n","import { env } from \"./global\";\nimport * as fs from \"fs\";\n\nexport async function findAllFiles(\n {\n path,\n name,\n maxDepth = 2\n//\n }: {\n path: string;\n name: string;\n maxDepth?: number;\n }\n): Promise<string[]> {\n const rootSegments = path.split(\"/\").length;\n\n if (env.VERBOSE) {\n console.log(`Searching for ${name} in ${path}`);\n }\n const files: string[] = [];\n let readdirSync;\n try {\n readdirSync = fs.readdirSync(path);\n } catch (e) {\n if (env.VERBOSE) {\n console.log(`Error reading ${path}`, e);\n }\n return [];\n }\n for (const file of readdirSync) {\n const filePath = path + \"/\" + file;\n let stat;\n try {\n stat = fs.statSync(filePath);\n } catch (e) {\n if (env.VERBOSE) {\n console.error(`Error getting stat for ${filePath}`, e);\n }\n continue;\n }\n if (stat.isDirectory()) {\n if (filePath.split(\"/\").length < rootSegments + maxDepth) {\n try {\n const subFiles = await findAllFiles({\n path: filePath,\n name: name,\n maxDepth: 2\n });\n files.push(...subFiles);\n } catch (e) {\n if (env.VERBOSE) {\n console.error(e);\n }\n }\n }\n } else if (file === name) {\n files.push(filePath);\n }\n }\n if (env.VERBOSE) {\n if (files.length > 0) {\n console.log(`Found ${files.length} ${name} files`);\n console.log(files);\n }\n }\n return files;\n}\n","import * as fs from \"fs\";\nimport * as sqlite3 from \"sqlite3\";\nimport CookieRow from \"./CookieRow\";\n\nexport async function doSqliteQuery1(file: string, sql: string): Promise<CookieRow[]> {\n if (!fs.existsSync(file)) {\n throw new Error(`doSqliteQuery1: file ${file} does not exist`);\n }\n const db = new sqlite3.Database(file);\n return new Promise((resolve, reject) => {\n db.all(sql, (err: Error, rows: any[]) => {\n if (err) {\n reject(err);\n return;\n }\n const rows1: any[] = rows;\n if (rows1 == null || rows1.length === 0) {\n resolve([]);\n return;\n }\n if (Array.isArray(rows1)) {\n const cookieRows: CookieRow[] = rows1.map((row) => {\n return {\n domain: row[\"host_key\"],\n name: row[\"name\"],\n value: row[\"encrypted_value\"],\n meta: {\n file: file\n }\n };\n });\n resolve(cookieRows);\n return;\n }\n if (process.env.VERBOSE) {\n console.log(`doSqliteQuery1: rows ${JSON.stringify(rows1)}`);\n }\n resolve([rows1]);\n });\n });\n}\n","import CookieRow from \"./CookieRow\";\n\nexport function isCookieRow(obj: any): obj is CookieRow {\n return obj.domain !== undefined && obj.name !== undefined && obj.value !== undefined;\n}\n","import ExportedCookie from \"./ExportedCookie\";\n\nexport function isExportedCookie(obj: any): obj is ExportedCookie {\n return obj.domain !== undefined && obj.name !== undefined && obj.value !== undefined;\n}\n","import CookieQueryStrategy from \"./CookieQueryStrategy\";\nimport { env, HOME } from \"../global\";\nimport { existsSync } from \"fs\";\nimport { toStringOrNull } from \"../utils\";\nimport { findAllFiles } from \"../findAllFiles\";\nimport * as path from \"path\";\nimport { doSqliteQuery1 } from \"../doSqliteQuery1\";\nimport ExportedCookie from \"../ExportedCookie\";\n\nexport default class FirefoxCookieQueryStrategy implements CookieQueryStrategy {\n async queryCookies(name: string, domain: string): Promise<ExportedCookie[]> {\n if (process.platform !== \"darwin\") {\n throw new Error(\"This only works on macOS\");\n }\n if (env.CHROME_ONLY) {\n return [];\n }\n const cookies = await this.#getFirefoxCookie({ name, domain });\n return Array.isArray(cookies) ? cookies.map(toStringOrNull) : [];\n }\n\n /**\n *\n * @param name\n * @param domain\n * @returns {Promise<Buffer>}\n */\n async #getFirefoxCookie(\n //\n {\n name,\n domain\n }: {\n name: string,\n domain: string\n //\n }\n //\n ) {\n const files: string[] = await findAllFiles({\n path: path.join(\n HOME,\n \"Library\",\n \"Application Support\",\n \"Firefox\",\n \"Profiles\"\n ),\n name: \"cookies.sqlite\"\n });\n const all = await Promise.all(\n files.map((file) => {\n return this.#queryCookiesDb(file, name, domain);\n })\n );\n return all.flat();\n }\n\n #queryCookiesDb(file: string, name: string, domain: string) {\n if (file && !existsSync(file)) {\n throw new Error(`File ${file} does not exist`);\n }\n if (env.VERBOSE) {\n console.log(`Trying Firefox cookie ${name} for domain ${domain}`);\n }\n let sql;\n //language=SQL\n sql = \"SELECT value FROM moz_cookies\";\n if (typeof name === \"string\" || typeof domain === \"string\") {\n sql += ` WHERE `;\n if (typeof name === \"string\") {\n sql += `name = '${name}'`;\n if (typeof domain === \"string\") {\n sql += ` AND `;\n }\n }\n if (typeof domain === \"string\") {\n sql += `host LIKE '${domain}';`;\n }\n }\n return doSqliteQuery1(file, sql)\n .then((rows) => {\n return rows.map((row) => {\n return {\n domain: row.domain,\n name: row.name,\n value: row.value.toString(\"utf8\")\n };\n });\n })\n .catch(() => []);\n }\n}\n","import CookieQueryStrategy from \"./CookieQueryStrategy\";\nimport ExportedCookie from \"../ExportedCookie\";\n\nexport default class SafariCookieQueryStrategy implements CookieQueryStrategy {\n async queryCookies(name: string, domain: string): Promise<ExportedCookie[]> {\n return [];\n }\n}\n","import jsonwebtoken from \"jsonwebtoken\";\nimport { env } from \"./global\";\n\nexport default function isValidJwt(token: any) {\n try {\n const result = jsonwebtoken.decode(token, { complete: true });\n if (env.VERBOSE) {\n console.log(result);\n }\n return true;\n } catch (err) {\n return false;\n }\n}\n","import ExportedCookie from \"./ExportedCookie\";\nimport { queryCookies } from \"./queryCookies\";\nimport CompositeCookieQueryStrategy from \"./browsers/CompositeCookieQueryStrategy\";\nimport { groupBy } from \"lodash\";\nimport { resultsRendered } from \"./resultsRendered\";\nimport CookieRequest from \"./CookieRequest\";\n\nexport async function getGroupedRenderedCookies(\n //\n {\n name,\n domain\n //\n }: CookieRequest\n //\n): Promise<string[]> {\n const cookies: ExportedCookie[] = await queryCookies(\n { name, domain },\n new CompositeCookieQueryStrategy()\n //\n );\n if (Array.isArray(cookies) && cookies.length > 0) {\n const results: ExportedCookie[] = await queryCookies({ name, domain });\n const groupedByFile = groupBy(results, (r) => r.meta?.file);\n return Object.keys(groupedByFile).map((file: string) => {\n const results: ExportedCookie[] = groupedByFile[file];\n return resultsRendered(results);\n });\n } else {\n throw new Error(\"Cookie not found\");\n }\n}\n","import ExportedCookie from \"./ExportedCookie\";\nimport { uniqBy } from \"lodash\";\n\nexport function resultsRendered(results: ExportedCookie[]) {\n return uniqBy(results, (r) => r.name)\n .map((r) => r.name + \"=\" + r.value)\n .join(\"; \");\n}\n"],"names":[],"version":3,"file":"module.js.map","sourceRoot":"../"}