@mherod/get-cookie 1.3.0 → 2.0.0-beta.10

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.
Files changed (43) hide show
  1. package/.idea/codeStyles/Project.xml +59 -0
  2. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  3. package/.idea/get-cookie.iml +1 -0
  4. package/.prettierrc.json +1 -0
  5. package/dist/cli.js +1 -1
  6. package/dist/cli.js.map +1 -1
  7. package/dist/index.js +563 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/module.js +533 -0
  10. package/dist/module.js.map +1 -0
  11. package/dist/types.d.ts +35 -0
  12. package/dist/types.d.ts.map +1 -0
  13. package/package.json +38 -13
  14. package/src/CookieRequest.ts +4 -0
  15. package/src/CookieRow.ts +6 -0
  16. package/src/ExportedCookie.ts +6 -0
  17. package/src/IsCookieRow.ts +5 -0
  18. package/src/IsExportedCookie.ts +5 -0
  19. package/src/argv.ts +1 -0
  20. package/src/browsers/ChromeCookieQueryStrategy.ts +259 -0
  21. package/src/browsers/CompositeCookieQueryStrategy.ts +30 -0
  22. package/src/browsers/CookieQueryStrategy.ts +5 -0
  23. package/src/browsers/FirefoxCookieQueryStrategy.ts +92 -0
  24. package/src/browsers/SafariCookieQueryStrategy.ts +8 -0
  25. package/src/cli.ts +82 -0
  26. package/src/doSqliteQuery1.ts +41 -0
  27. package/src/fetchResponse.ts +11 -0
  28. package/src/fetchWithCookies.ts +62 -0
  29. package/src/findAllFiles.ts +68 -0
  30. package/src/getGroupedRenderedCookies.ts +32 -0
  31. package/src/global.ts +7 -0
  32. package/src/index.ts +59 -0
  33. package/src/isValidJwt.ts +14 -0
  34. package/src/queryCookies.ts +27 -0
  35. package/src/resultsRendered.ts +8 -0
  36. package/src/utils.ts +56 -0
  37. package/tsconfig.json +23 -0
  38. package/dist/main.js +0 -430
  39. package/dist/main.js.map +0 -1
  40. package/src/cli.js +0 -58
  41. package/src/global.js +0 -3
  42. package/src/index.js +0 -462
  43. package/src/utils.js +0 -185
package/dist/index.js ADDED
@@ -0,0 +1,563 @@
1
+ #!/usr/bin/env node
2
+ var $7oI3p$lodash = require("lodash");
3
+ var $7oI3p$fs = require("fs");
4
+ var $7oI3p$crypto = require("crypto");
5
+ var $7oI3p$path = require("path");
6
+ var $7oI3p$child_process = require("child_process");
7
+ var $7oI3p$sqlite3 = require("sqlite3");
8
+ var $7oI3p$jsonwebtoken = require("jsonwebtoken");
9
+ var $7oI3p$crossfetch = require("cross-fetch");
10
+ var $7oI3p$destr = require("destr");
11
+
12
+ function $parcel$export(e, n, v, s) {
13
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
14
+ }
15
+ function $parcel$exportWildcard(dest, source) {
16
+ Object.keys(source).forEach(function(key) {
17
+ if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {
18
+ return;
19
+ }
20
+
21
+ Object.defineProperty(dest, key, {
22
+ enumerable: true,
23
+ get: function get() {
24
+ return source[key];
25
+ }
26
+ });
27
+ });
28
+
29
+ return dest;
30
+ }
31
+ function $parcel$interopDefault(a) {
32
+ return a && a.__esModule ? a.default : a;
33
+ }
34
+
35
+ $parcel$export(module.exports, "getCookie", () => $cd1ba0160120c006$export$4be65e66cfa2648a);
36
+ $parcel$export(module.exports, "getFirefoxCookie", () => $cd1ba0160120c006$export$c44c5fdef43f0941);
37
+ $parcel$export(module.exports, "getChromeCookie", () => $cd1ba0160120c006$export$e5637297e9eb6f2e);
38
+ $parcel$export(module.exports, "getGroupedRenderedCookies", () => $300d8b33187a203c$export$4d2e9997e2c23417);
39
+ $parcel$export(module.exports, "fetchWithCookies", () => $cfc07ae4aa2c7e44$export$b24a545a0b39f491);
40
+
41
+ var $fac425c10fbbada5$require$merge = $7oI3p$lodash.merge;
42
+ const $fac425c10fbbada5$export$a7b6bc01c63cdfc3 = {};
43
+ $fac425c10fbbada5$require$merge($fac425c10fbbada5$export$a7b6bc01c63cdfc3, process.env);
44
+ const $fac425c10fbbada5$export$a7c5707626fc90f = $fac425c10fbbada5$export$a7b6bc01c63cdfc3["HOME"];
45
+ if (!$fac425c10fbbada5$export$a7c5707626fc90f) throw new Error("HOME environment variable is not set");
46
+
47
+
48
+
49
+
50
+ async function $25b78d6746d4ad48$export$8d71c74f97c0202e(command) {
51
+ return new Promise((resolve, reject)=>{
52
+ (0, $7oI3p$child_process.exec)(command, {
53
+ encoding: "binary",
54
+ maxBuffer: 5120
55
+ }, (error, stdout, stderr)=>{
56
+ if (error) {
57
+ reject(error);
58
+ return;
59
+ }
60
+ if (stderr) {
61
+ reject(error);
62
+ return;
63
+ }
64
+ if (stdout) resolve(stdout.trim());
65
+ });
66
+ });
67
+ }
68
+ function $25b78d6746d4ad48$export$d53bf2de587a369(result) {
69
+ if (result == null) return null;
70
+ if (process.env.VERBOSE) console.log("result", result);
71
+ if (typeof result === "string" && result.length > 0) return result;
72
+ if (result.slice && result.toString) // noinspection JSCheckFunctionSignatures
73
+ return result.toString("utf8");
74
+ return null;
75
+ }
76
+ function $25b78d6746d4ad48$export$99ce3e33a555daf1(input) {
77
+ return typeof input !== "string" || input.length === 0;
78
+ }
79
+ function $25b78d6746d4ad48$export$5348b46700dd771c(input) {
80
+ return typeof input == "string" && input.length > 0;
81
+ }
82
+
83
+
84
+
85
+
86
+
87
+
88
+ async function $e62c2c56eb720f29$export$2c9faf86071156ae({ path: path , name: name , maxDepth: maxDepth = 2 }) {
89
+ const rootSegments = path.split("/").length;
90
+ if ((0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3).VERBOSE) console.log(`Searching for ${name} in ${path}`);
91
+ const files = [];
92
+ let readdirSync;
93
+ try {
94
+ readdirSync = $7oI3p$fs.readdirSync(path);
95
+ } catch (e) {
96
+ if ((0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3).VERBOSE) console.log(`Error reading ${path}`, e);
97
+ return [];
98
+ }
99
+ for (const file of readdirSync){
100
+ const filePath = path + "/" + file;
101
+ let stat;
102
+ try {
103
+ stat = $7oI3p$fs.statSync(filePath);
104
+ } catch (e1) {
105
+ if ((0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3).VERBOSE) console.error(`Error getting stat for ${filePath}`, e1);
106
+ continue;
107
+ }
108
+ if (stat.isDirectory()) {
109
+ if (filePath.split("/").length < rootSegments + maxDepth) try {
110
+ const subFiles = await $e62c2c56eb720f29$export$2c9faf86071156ae({
111
+ path: filePath,
112
+ name: name,
113
+ maxDepth: 2
114
+ });
115
+ files.push(...subFiles);
116
+ } catch (e2) {
117
+ if ((0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3).VERBOSE) console.error(e2);
118
+ }
119
+ } else if (file === name) files.push(filePath);
120
+ }
121
+ if ((0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3).VERBOSE) {
122
+ if (files.length > 0) {
123
+ console.log(`Found ${files.length} ${name} files`);
124
+ console.log(files);
125
+ }
126
+ }
127
+ return files;
128
+ }
129
+
130
+
131
+
132
+
133
+
134
+
135
+ async function $a085b524d8ee9fce$export$f19f611d1fa7c6f3(file, sql) {
136
+ if (!$7oI3p$fs.existsSync(file)) throw new Error(`doSqliteQuery1: file ${file} does not exist`);
137
+ const db = new $7oI3p$sqlite3.Database(file);
138
+ return new Promise((resolve, reject)=>{
139
+ db.all(sql, (err, rows)=>{
140
+ if (err) {
141
+ reject(err);
142
+ return;
143
+ }
144
+ const rows1 = rows;
145
+ if (rows1 == null || rows1.length === 0) {
146
+ resolve([]);
147
+ return;
148
+ }
149
+ if (Array.isArray(rows1)) {
150
+ const cookieRows = rows1.map((row)=>{
151
+ return {
152
+ domain: row["host_key"],
153
+ name: row["name"],
154
+ value: row["encrypted_value"],
155
+ meta: {
156
+ file: file
157
+ }
158
+ };
159
+ });
160
+ resolve(cookieRows);
161
+ return;
162
+ }
163
+ if (process.env.VERBOSE) console.log(`doSqliteQuery1: rows ${JSON.stringify(rows1)}`);
164
+ resolve([
165
+ rows1
166
+ ]);
167
+ });
168
+ });
169
+ }
170
+
171
+
172
+
173
+ function $af69dfb8766652d8$export$bc926c43858bd3cb(obj) {
174
+ return obj.domain !== undefined && obj.name !== undefined && obj.value !== undefined;
175
+ }
176
+
177
+
178
+ function $d66f40b581ba8bfa$export$963c8d651337e4a4(obj) {
179
+ return obj.domain !== undefined && obj.name !== undefined && obj.value !== undefined;
180
+ }
181
+
182
+
183
+ class $269fe42bfd555305$export$2e2bcd8739ae039 {
184
+ async queryCookies(name, domain) {
185
+ if (process.platform !== "darwin") throw new Error("This only works on macOS");
186
+ if ((0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3).FIREFOX_ONLY) return [];
187
+ return $269fe42bfd555305$var$getChromeCookies({
188
+ requireJwt: false,
189
+ name: name,
190
+ domain: domain
191
+ });
192
+ }
193
+ }
194
+ async function $269fe42bfd555305$var$getPromise1(name, domain, file) {
195
+ try {
196
+ return await $269fe42bfd555305$var$getEncryptedChromeCookie({
197
+ name: name,
198
+ domain: domain,
199
+ file: file
200
+ });
201
+ } catch (e) {
202
+ if ((0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3).VERBOSE) console.log("Error getting encrypted cookie", e);
203
+ return [];
204
+ }
205
+ }
206
+ async function $269fe42bfd555305$var$getPromise(name, domain) {
207
+ try {
208
+ const files = await (0, $e62c2c56eb720f29$export$2c9faf86071156ae)({
209
+ path: $269fe42bfd555305$var$chromeLocal,
210
+ name: "Cookies"
211
+ });
212
+ const promises = files.map((file)=>$269fe42bfd555305$var$getPromise1(name, domain, file));
213
+ const results1 = await Promise.all(promises);
214
+ return results1.flat().filter((0, $af69dfb8766652d8$export$bc926c43858bd3cb));
215
+ } catch (error) {
216
+ if ((0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3).VERBOSE) console.log("error", error);
217
+ return [];
218
+ }
219
+ }
220
+ async function $269fe42bfd555305$var$decryptValue(password, encryptedValue) {
221
+ let d;
222
+ try {
223
+ d = await $269fe42bfd555305$var$decrypt(password, encryptedValue);
224
+ } catch (e) {
225
+ if ((0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3).VERBOSE) console.log("Error decrypting cookie", e);
226
+ d = null;
227
+ }
228
+ return d ?? encryptedValue.toString("utf-8");
229
+ }
230
+ async function $269fe42bfd555305$var$getChromeCookies({ name: name , domain: domain = "%" , requireJwt: requireJwt = false }) {
231
+ const encryptedDataItems = await $269fe42bfd555305$var$getPromise(name, domain);
232
+ const password = await $269fe42bfd555305$var$getChromePassword();
233
+ const decrypted = encryptedDataItems.filter(({ value: value })=>value != null && value.length > 0).map(async (cookieRow)=>{
234
+ const encryptedValue = cookieRow.value;
235
+ const decryptedValue = await $269fe42bfd555305$var$decryptValue(password, encryptedValue);
236
+ const meta = {};
237
+ (0, $7oI3p$lodash.merge)(meta, cookieRow.meta ?? {});
238
+ return {
239
+ domain: cookieRow.domain,
240
+ name: cookieRow.name,
241
+ value: decryptedValue,
242
+ meta: meta
243
+ };
244
+ });
245
+ const results = (await Promise.all(decrypted)).filter((0, $d66f40b581ba8bfa$export$963c8d651337e4a4));
246
+ if ((0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3).VERBOSE) console.log("results", results);
247
+ return results;
248
+ }
249
+ const $269fe42bfd555305$var$chromeLocal = $7oI3p$path.join((0, $fac425c10fbbada5$export$a7c5707626fc90f), "Library", "Application Support", "Google", "Chrome");
250
+ async function $269fe42bfd555305$var$getEncryptedChromeCookie({ name: name , domain: domain , file: file = $7oI3p$path.join($269fe42bfd555305$var$chromeLocal, "Default", "Cookies") }) {
251
+ if (!(0, $7oI3p$fs.existsSync)(file)) throw new Error(`File ${file} does not exist`);
252
+ if ((0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3).VERBOSE) {
253
+ const s = file.split("/").slice(-3).join("/");
254
+ console.log(`Trying Chrome (at ${s}) cookie ${name} for domain ${domain}`);
255
+ }
256
+ let sql;
257
+ sql = `SELECT encrypted_value, name, host_key FROM cookies`;
258
+ const wildcardRegexp = /^([*%])$/i;
259
+ const specifiedName = name.match(wildcardRegexp) == null;
260
+ const specifiedDomain = domain.match(wildcardRegexp) == null;
261
+ if (specifiedName || specifiedDomain) {
262
+ sql += ` WHERE `;
263
+ if (specifiedName) {
264
+ sql += `name = '${name}'`;
265
+ if (specifiedDomain) sql += ` AND `;
266
+ }
267
+ if (specifiedDomain) sql += `host_key LIKE '${domain}';`;
268
+ }
269
+ return (0, $a085b524d8ee9fce$export$f19f611d1fa7c6f3)(file, sql);
270
+ }
271
+ async function $269fe42bfd555305$var$getChromePassword() {
272
+ return (0, $25b78d6746d4ad48$export$8d71c74f97c0202e)('security find-generic-password -w -s "Chrome Safe Storage"');
273
+ }
274
+ async function $269fe42bfd555305$var$decrypt(password, encryptedData) {
275
+ if (typeof password !== "string") throw new Error("password must be a string: " + password);
276
+ let encryptedData1;
277
+ encryptedData1 = encryptedData;
278
+ if (encryptedData1 == null || typeof encryptedData1 !== "object") throw new Error("encryptedData must be a object: " + encryptedData1);
279
+ if (!(encryptedData1 instanceof Buffer)) {
280
+ if (Array.isArray(encryptedData1) && encryptedData1[0] instanceof Buffer) {
281
+ [encryptedData1] = encryptedData1;
282
+ if ((0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3).VERBOSE) console.log(`encryptedData is an array of buffers, selected first: ${encryptedData1}`);
283
+ } else throw new Error("encryptedData must be a Buffer: " + encryptedData1);
284
+ encryptedData1 = Buffer.from(encryptedData1);
285
+ }
286
+ if ((0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3).VERBOSE) console.log(`Trying to decrypt with password ${password}`);
287
+ return new Promise((resolve, reject)=>{
288
+ $7oI3p$crypto.pbkdf2(password, "saltysalt", 1003, 16, "sha1", (error, buffer)=>{
289
+ try {
290
+ if (error) {
291
+ if ((0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3).VERBOSE) console.log("Error doing pbkdf2", error);
292
+ reject(error);
293
+ return;
294
+ }
295
+ if (buffer.length !== 16) {
296
+ if ((0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3).VERBOSE) console.log("Error doing pbkdf2, buffer length is not 16", buffer.length);
297
+ reject(new Error("Buffer length is not 16"));
298
+ return;
299
+ }
300
+ const str = new Array(17).join(" ");
301
+ const iv = Buffer.from(str, "binary");
302
+ const decipher = $7oI3p$crypto.createDecipheriv("aes-128-cbc", buffer, iv);
303
+ decipher.setAutoPadding(false);
304
+ if (encryptedData1 && encryptedData1.slice) encryptedData1 = encryptedData1.slice(3);
305
+ if (encryptedData1.length % 16 !== 0) {
306
+ if ((0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3).VERBOSE) console.log("Error doing pbkdf2, encryptedData length is not a multiple of 16", encryptedData1.length);
307
+ reject(new Error("encryptedData length is not a multiple of 16"));
308
+ return;
309
+ }
310
+ let decoded = decipher.update(encryptedData1);
311
+ try {
312
+ decipher.final("utf-8");
313
+ } catch (e) {
314
+ if ((0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3).VERBOSE) console.log("Error doing decipher.final()", e);
315
+ reject(e);
316
+ return;
317
+ }
318
+ const padding = decoded[decoded.length - 1];
319
+ if (padding) decoded = decoded.slice(0, 0 - padding);
320
+ // noinspection JSCheckFunctionSignatures
321
+ const decodedString = decoded.toString("utf8");
322
+ resolve(decodedString);
323
+ } catch (e1) {
324
+ reject(e1);
325
+ }
326
+ });
327
+ });
328
+ }
329
+
330
+
331
+
332
+
333
+
334
+
335
+
336
+
337
+ class $7bb7da9a77b2fd99$export$2e2bcd8739ae039 {
338
+ async queryCookies(name, domain) {
339
+ if (process.platform !== "darwin") throw new Error("This only works on macOS");
340
+ if ((0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3).CHROME_ONLY) return [];
341
+ const cookies = await this.#getFirefoxCookie({
342
+ name: name,
343
+ domain: domain
344
+ });
345
+ return Array.isArray(cookies) ? cookies.map((0, $25b78d6746d4ad48$export$d53bf2de587a369)) : [];
346
+ }
347
+ /**
348
+ *
349
+ * @param name
350
+ * @param domain
351
+ * @returns {Promise<Buffer>}
352
+ */ async #getFirefoxCookie(//
353
+ { name: name , domain: domain }) {
354
+ const files = await (0, $e62c2c56eb720f29$export$2c9faf86071156ae)({
355
+ path: $7oI3p$path.join((0, $fac425c10fbbada5$export$a7c5707626fc90f), "Library", "Application Support", "Firefox", "Profiles"),
356
+ name: "cookies.sqlite"
357
+ });
358
+ const all = await Promise.all(files.map((file)=>{
359
+ return this.#queryCookiesDb(file, name, domain);
360
+ }));
361
+ return all.flat();
362
+ }
363
+ #queryCookiesDb(file, name1, domain1) {
364
+ if (file && !(0, $7oI3p$fs.existsSync)(file)) throw new Error(`File ${file} does not exist`);
365
+ if ((0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3).VERBOSE) console.log(`Trying Firefox cookie ${name1} for domain ${domain1}`);
366
+ let sql;
367
+ //language=SQL
368
+ sql = "SELECT value FROM moz_cookies";
369
+ if (typeof name1 === "string" || typeof domain1 === "string") {
370
+ sql += ` WHERE `;
371
+ if (typeof name1 === "string") {
372
+ sql += `name = '${name1}'`;
373
+ if (typeof domain1 === "string") sql += ` AND `;
374
+ }
375
+ if (typeof domain1 === "string") sql += `host LIKE '${domain1}';`;
376
+ }
377
+ return (0, $a085b524d8ee9fce$export$f19f611d1fa7c6f3)(file, sql).then((rows)=>{
378
+ return rows.map((row)=>{
379
+ return {
380
+ domain: row.domain,
381
+ name: row.name,
382
+ value: row.value.toString("utf8")
383
+ };
384
+ });
385
+ }).catch(()=>[]);
386
+ }
387
+ }
388
+
389
+
390
+ class $fad6f51bd5c7bae2$export$2e2bcd8739ae039 {
391
+ async queryCookies(name, domain) {
392
+ return [];
393
+ }
394
+ }
395
+
396
+
397
+ class $f72befa528c23ca7$export$2e2bcd8739ae039 {
398
+ #strategies;
399
+ constructor(){
400
+ this.#strategies = [
401
+ (0, $269fe42bfd555305$export$2e2bcd8739ae039),
402
+ (0, $7bb7da9a77b2fd99$export$2e2bcd8739ae039),
403
+ (0, $fad6f51bd5c7bae2$export$2e2bcd8739ae039),
404
+ ].map((strategy)=>{
405
+ return new strategy();
406
+ });
407
+ }
408
+ async queryCookies(name, domain) {
409
+ const results = await Promise.all(this.#strategies.map(async (strategy)=>{
410
+ // @ts-ignore
411
+ const cookies = strategy.queryCookies(name, domain);
412
+ return cookies.catch(()=>[]);
413
+ }));
414
+ return results.flat();
415
+ }
416
+ }
417
+
418
+
419
+
420
+
421
+ function $9a6b2ace073cf1d7$export$2e2bcd8739ae039(token) {
422
+ try {
423
+ const result = (0, ($parcel$interopDefault($7oI3p$jsonwebtoken))).decode(token, {
424
+ complete: true
425
+ });
426
+ if ((0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3).VERBOSE) console.log(result);
427
+ return true;
428
+ } catch (err) {
429
+ return false;
430
+ }
431
+ }
432
+
433
+
434
+ async function $7a068a32d4710f0b$export$e6d428437cf2cacb({ name: name , domain: domain }, strategy = new (0, $f72befa528c23ca7$export$2e2bcd8739ae039)()) {
435
+ const results = await strategy.queryCookies(name, domain);
436
+ const results1 = (0, $7oI3p$lodash.uniqBy)(results, JSON.stringify);
437
+ const jwtCookies = [];
438
+ for (const result of results1){
439
+ const value = result.value;
440
+ if ((0, $9a6b2ace073cf1d7$export$2e2bcd8739ae039)(value)) jwtCookies.push(result);
441
+ }
442
+ const resultsUniq = (0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3).REQUIRE_JWT ? jwtCookies : results1;
443
+ return (0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3).SINGLE ? [
444
+ resultsUniq[0]
445
+ ] : resultsUniq;
446
+ }
447
+
448
+
449
+
450
+
451
+
452
+
453
+
454
+
455
+
456
+ function $9c43c2ed82e63570$export$9abc0a414b0d8b8f(results) {
457
+ return (0, $7oI3p$lodash.uniqBy)(results, (r)=>r.name).map((r)=>r.name + "=" + r.value).join("; ");
458
+ }
459
+
460
+
461
+ async function $300d8b33187a203c$export$4d2e9997e2c23417(//
462
+ { name: name , domain: domain }) {
463
+ const cookies = await (0, $7a068a32d4710f0b$export$e6d428437cf2cacb)({
464
+ name: name,
465
+ domain: domain
466
+ }, new (0, $f72befa528c23ca7$export$2e2bcd8739ae039)());
467
+ if (Array.isArray(cookies) && cookies.length > 0) {
468
+ const results = await (0, $7a068a32d4710f0b$export$e6d428437cf2cacb)({
469
+ name: name,
470
+ domain: domain
471
+ });
472
+ const groupedByFile = (0, $7oI3p$lodash.groupBy)(results, (r)=>r.meta?.file);
473
+ return Object.keys(groupedByFile).map((file)=>{
474
+ const results = groupedByFile[file];
475
+ return (0, $9c43c2ed82e63570$export$9abc0a414b0d8b8f)(results);
476
+ });
477
+ } else throw new Error("Cookie not found");
478
+ }
479
+
480
+
481
+
482
+
483
+
484
+
485
+ async function $cfc07ae4aa2c7e44$export$b24a545a0b39f491(url, options = {}) {
486
+ const defaultOptions = {
487
+ headers: {
488
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"
489
+ },
490
+ redirect: "manual"
491
+ };
492
+ const url2 = `${url}`;
493
+ const url1 = new URL(url2);
494
+ const domain = url1.hostname.replace(/^.*(\.\w+\.\w+)$/, (match, p1)=>{
495
+ return `%${p1}`;
496
+ });
497
+ const cookies = await (0, $300d8b33187a203c$export$4d2e9997e2c23417)({
498
+ name: "%",
499
+ domain: domain
500
+ });
501
+ const cookie = cookies.pop();
502
+ const newOptions1 = (0, $7oI3p$lodash.merge)(defaultOptions, options, {
503
+ headers: {
504
+ Cookie: cookie
505
+ }
506
+ });
507
+ try {
508
+ const res = await (0, $7oI3p$crossfetch.fetch)(url2, newOptions1);
509
+ const newUrl = res.headers.get("location");
510
+ if (res.redirected || newUrl && newUrl !== url2) return $cfc07ae4aa2c7e44$export$b24a545a0b39f491(newUrl, newOptions1);
511
+ const arrayBuffer1 = res.arrayBuffer();
512
+ const arrayBuffer = async ()=>arrayBuffer1;
513
+ const buffer = async ()=>arrayBuffer().then(Buffer.from);
514
+ const text = async ()=>buffer().then((buffer)=>buffer.toString("utf8"));
515
+ const json = async ()=>text().then((0, ($parcel$interopDefault($7oI3p$destr))));
516
+ const formData = async ()=>text().then((text)=>new URLSearchParams(text));
517
+ const source2 = {
518
+ status: res.status,
519
+ statusText: res.statusText,
520
+ headers: res.headers,
521
+ arrayBuffer: arrayBuffer,
522
+ buffer: buffer,
523
+ text: text,
524
+ json: json,
525
+ formData: formData
526
+ };
527
+ return (0, $7oI3p$lodash.merge)({}, res, source2);
528
+ } catch (e) {
529
+ throw e;
530
+ }
531
+ }
532
+
533
+
534
+ var $d2b0e8c8c0378e21$exports = {};
535
+
536
+
537
+ var $3d7e27b54f670f46$exports = {};
538
+
539
+
540
+ var $6c197c88880e045c$exports = {};
541
+
542
+
543
+ async function $cd1ba0160120c006$export$4be65e66cfa2648a(params) {
544
+ const cookies = await (0, $7a068a32d4710f0b$export$e6d428437cf2cacb)(params, new (0, $f72befa528c23ca7$export$2e2bcd8739ae039)());
545
+ if (Array.isArray(cookies) && cookies.length > 0) return cookies.find((cookie)=>cookie != null);
546
+ else throw new Error("Cookie not found");
547
+ }
548
+ async function $cd1ba0160120c006$export$c44c5fdef43f0941(params) {
549
+ const cookies = await (0, $7a068a32d4710f0b$export$e6d428437cf2cacb)(params, new (0, $7bb7da9a77b2fd99$export$2e2bcd8739ae039)());
550
+ if (Array.isArray(cookies) && cookies.length > 0) return cookies.find((cookie)=>cookie != null);
551
+ else throw new Error("Cookie not found");
552
+ }
553
+ async function $cd1ba0160120c006$export$e5637297e9eb6f2e(params) {
554
+ const cookies = await (0, $7a068a32d4710f0b$export$e6d428437cf2cacb)(params, new (0, $269fe42bfd555305$export$2e2bcd8739ae039)());
555
+ if (Array.isArray(cookies) && cookies.length > 0) return cookies.find((cookie)=>cookie != null);
556
+ else throw new Error("Cookie not found");
557
+ }
558
+ $parcel$exportWildcard(module.exports, $3d7e27b54f670f46$exports);
559
+ $parcel$exportWildcard(module.exports, $d2b0e8c8c0378e21$exports);
560
+ $parcel$exportWildcard(module.exports, $6c197c88880e045c$exports);
561
+
562
+
563
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
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","src/fetchWithCookies.ts","src/CookieRequest.ts","src/CookieRow.ts","src/ExportedCookie.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 { CookieRequest } from \"./CookieRequest\";\nimport { ExportedCookie } from \"./ExportedCookie\";\nimport { getGroupedRenderedCookies } from \"./getGroupedRenderedCookies\";\nimport { fetchWithCookies } from \"./fetchWithCookies\";\n\nexport async function getCookie(params: CookieRequest): Promise<ExportedCookie | undefined> {\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\nexport async function getFirefoxCookie(params: CookieRequest): Promise<ExportedCookie | undefined> {\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\nexport async function getChromeCookie(params: CookieRequest): Promise<ExportedCookie | undefined> {\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 {\n getGroupedRenderedCookies,\n fetchWithCookies,\n};\n\nexport * from \"./CookieRequest\";\nexport * from \"./CookieRow\";\nexport * from \"./ExportedCookie\";\n","import { env } from \"./global\";\nimport { uniqBy } from \"lodash\";\nimport CompositeCookieQueryStrategy from \"./browsers/CompositeCookieQueryStrategy\";\nimport CookieQueryStrategy from \"./browsers/CookieQueryStrategy\";\nimport isValidJwt from \"./isValidJwt\";\nimport { CookieRequest } from \"./CookieRequest\";\nimport { ExportedCookie } from \"./ExportedCookie\";\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 { doSqliteQuery1 } from \"../doSqliteQuery1\";\nimport { merge } from \"lodash\";\nimport { isCookieRow } from \"../IsCookieRow\";\nimport { isExportedCookie } from \"../IsExportedCookie\";\nimport { CookieRow } from \"../CookieRow\";\nimport { ExportedCookie } from \"../ExportedCookie\";\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 { queryCookies } from \"./queryCookies\";\nimport CompositeCookieQueryStrategy from \"./browsers/CompositeCookieQueryStrategy\";\nimport { groupBy } from \"lodash\";\nimport { resultsRendered } from \"./resultsRendered\";\nimport { CookieRequest } from \"./CookieRequest\";\nimport { ExportedCookie } from \"./ExportedCookie\";\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 { uniqBy } from \"lodash\";\nimport { ExportedCookie } from \"./ExportedCookie\";\n\nexport function resultsRendered(results: ExportedCookie[]) {\n return uniqBy(results, (r) => r.name)\n .map((r) => r.name + \"=\" + r.value)\n .join(\"; \");\n}\n","// noinspection JSUnusedGlobalSymbols\n\nimport { fetch } from \"cross-fetch\";\nimport { merge } from \"lodash\";\n// noinspection SpellCheckingInspection\nimport destr from \"destr\";\nimport FetchResponse from \"./fetchResponse\";\nimport { getGroupedRenderedCookies } from \"./getGroupedRenderedCookies\";\n\nexport async function fetchWithCookies(\n url: RequestInfo | URL,\n options: RequestInit | undefined = {}\n): Promise<FetchResponse> {\n const defaultOptions: RequestInit = {\n headers: {\n \"User-Agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36\"\n },\n redirect: \"manual\"\n };\n const url2: string = `${url}`;\n const url1: URL = new URL(url2);\n const domain = url1.hostname.replace(/^.*(\\.\\w+\\.\\w+)$/, (match, p1) => {\n return `%${p1}`;\n });\n const cookies: string[] = await getGroupedRenderedCookies({\n name: \"%\",\n domain: domain\n });\n const cookie = cookies.pop();\n const newOptions1: RequestInit = merge(defaultOptions, options, {\n headers: {\n Cookie: cookie\n }\n });\n try {\n const res = await fetch(url2, newOptions1);\n const newUrl = res.headers.get(\"location\") as string;\n if (res.redirected || newUrl && newUrl !== url2) {\n return fetchWithCookies(newUrl, newOptions1);\n }\n const arrayBuffer1 = res.arrayBuffer();\n const arrayBuffer = async () => arrayBuffer1;\n const buffer = async () => arrayBuffer().then(Buffer.from);\n const text = async () => buffer().then((buffer) => buffer.toString(\"utf8\"));\n const json = async () => text().then(destr);\n const formData = async () => text().then((text) => new URLSearchParams(text));\n const source2 = {\n status: res.status,\n statusText: res.statusText,\n headers: res.headers,\n arrayBuffer,\n buffer,\n text,\n json,\n formData\n //\n };\n return merge({}, res, source2);\n } catch (e) {\n throw e;\n }\n}\n","export interface CookieRequest {\n name: string;\n domain: string;\n}\n","export interface CookieRow {\n domain: string;\n name: string;\n value: Buffer;\n meta?: any;\n}\n","export interface ExportedCookie {\n domain: string;\n name: string;\n value: string;\n meta?: any;\n}\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../"}