@mherod/get-cookie 2.0.0-rc.9 → 2.1.1

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 (77) hide show
  1. package/.idea/runConfigurations/build.xml +12 -0
  2. package/.parcelrc +12 -0
  3. package/.prettierignore +5 -0
  4. package/.prettierrc +12 -0
  5. package/.terserrc +26 -0
  6. package/README.md +2 -2
  7. package/build-indexes.ts +108 -0
  8. package/dist/cli.js +2 -0
  9. package/dist/index.js +1235 -621
  10. package/dist/index.js.map +1 -0
  11. package/dist/module.js +1446 -0
  12. package/dist/module.js.map +1 -0
  13. package/dist/prompt.2b8c61c0.js +40 -0
  14. package/dist/prompt.536a2c51.js +40 -0
  15. package/dist/prompt.fb2c7dad.js.map +1 -0
  16. package/dist/types.d.ts +30 -0
  17. package/dist/types.d.ts.map +1 -0
  18. package/jest.config.ts +14 -0
  19. package/package-lock.json +3862 -8098
  20. package/package.json +46 -34
  21. package/src/CookieRow.ts +8 -0
  22. package/src/CookieSpec.ts +20 -0
  23. package/src/CookieStore.ts +24 -7
  24. package/src/ExportedCookie.ts +12 -0
  25. package/src/FetchResponse.ts +1 -3
  26. package/src/FileCookieStore.ts +178 -0
  27. package/src/StringToRegex.ts +10 -0
  28. package/src/argv.ts +27 -2
  29. package/src/browsers/CompositeCookieQueryStrategy.ts +36 -38
  30. package/src/browsers/CookieQueryStrategy.ts +1 -0
  31. package/src/browsers/CookieStoreQueryStrategy.ts +29 -22
  32. package/src/browsers/QuerySqliteThenTransform.ts +85 -0
  33. package/src/browsers/chrome/ChromeApplicationSupport.ts +10 -0
  34. package/src/browsers/chrome/ChromeCookieQueryStrategy.ts +131 -0
  35. package/src/browsers/chrome/decrypt.ts +118 -0
  36. package/src/browsers/chrome/getChromePassword.ts +11 -0
  37. package/src/browsers/{FirefoxCookieQueryStrategy.ts → firefox/FirefoxCookieQueryStrategy.ts} +19 -16
  38. package/src/browsers/getEncryptedChromeCookie.ts +87 -0
  39. package/src/browsers/index.ts +12 -0
  40. package/src/browsers/mock/MockCookieQueryStrategy.ts +18 -0
  41. package/src/browsers/{SafariCookieQueryStrategy.ts → safari/SafariCookieQueryStrategy.ts} +3 -2
  42. package/src/cli.ts +43 -67
  43. package/src/cliQueryCookies.ts +55 -0
  44. package/src/comboQueryCookieSpec.test.ts +92 -0
  45. package/src/comboQueryCookieSpec.ts +29 -0
  46. package/src/cookieQueryOptions.ts +20 -0
  47. package/src/cookieSpecsFromUrl.test.ts +65 -0
  48. package/src/cookieSpecsFromUrl.ts +27 -0
  49. package/src/execSimple.ts +13 -0
  50. package/src/fetchWithCookies.test.ts +32 -0
  51. package/src/fetchWithCookies.ts +123 -49
  52. package/src/findAllFiles.ts +25 -49
  53. package/src/getChromeCookie.ts +6 -4
  54. package/src/getCookie.ts +6 -3
  55. package/src/getFirefoxCookie.ts +6 -4
  56. package/src/getGroupedRenderedCookies.ts +7 -17
  57. package/src/getMergedRenderedCookies.test.ts +43 -0
  58. package/src/getMergedRenderedCookies.ts +13 -21
  59. package/src/global.ts +1 -1
  60. package/src/index.ts +0 -7
  61. package/src/isValidJwt.ts +2 -2
  62. package/src/listChromeProfiles.ts +45 -0
  63. package/src/logger.ts +13 -0
  64. package/src/processBeforeReturn.ts +26 -0
  65. package/src/queryCookies.ts +11 -3
  66. package/src/util/flatMapAsync.test.ts +55 -0
  67. package/src/util/flatMapAsync.ts +37 -0
  68. package/src/util/index.ts +1 -0
  69. package/tsconfig.json +14 -11
  70. package/.github/dependabot.yml +0 -6
  71. package/.prettierrc.json +0 -1
  72. package/src/IsCookieRow.ts +0 -9
  73. package/src/IsExportedCookie.ts +0 -9
  74. package/src/browsers/ChromeCookieQueryStrategy.ts +0 -343
  75. package/src/doSqliteQuery1.ts +0 -47
  76. package/src/doSqliteQuery1Params.ts +0 -7
  77. package/src/utils.ts +0 -25
package/dist/index.js CHANGED
@@ -1,122 +1,197 @@
1
- #!/usr/bin/env node
2
- var $7oI3p$lodash = require("lodash");
3
- var $7oI3p$minimist = require("minimist");
4
- var $7oI3p$lrucache = require("lru-cache");
5
- var $7oI3p$colorette = require("colorette");
6
- var $7oI3p$fs = require("fs");
7
- var $7oI3p$crypto = require("crypto");
8
- var $7oI3p$path = require("path");
9
- var $7oI3p$sqlite3 = require("sqlite3");
10
- var $7oI3p$child_process = require("child_process");
11
- var $7oI3p$toughcookie = require("tough-cookie");
12
- var $7oI3p$toughcookiefilestore = require("tough-cookie-file-store");
13
- var $7oI3p$jsonwebtoken = require("jsonwebtoken");
14
- var $7oI3p$crossfetch = require("cross-fetch");
15
- var $7oI3p$destr = require("destr");
16
- var $7oI3p$useragents = require("user-agents");
1
+ var $cDXzb$lodash = require("lodash");
2
+ var $cDXzb$minimist = require("minimist");
3
+ var $cDXzb$lrucache = require("lru-cache");
4
+ var $cDXzb$consola = require("consola");
5
+ var $cDXzb$path = require("path");
6
+ var $cDXzb$crypto = require("crypto");
7
+ var $cDXzb$fs = require("fs");
8
+ var $cDXzb$fastglob = require("fast-glob");
9
+ var $cDXzb$child_process = require("child_process");
10
+ var $cDXzb$sqlite3 = require("sqlite3");
11
+ var $cDXzb$jsonwebtoken = require("jsonwebtoken");
12
+ var $cDXzb$crossfetch = require("cross-fetch");
13
+ var $cDXzb$destr = require("destr");
14
+
17
15
 
18
16
  function $parcel$export(e, n, v, s) {
19
17
  Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
20
18
  }
21
- function $parcel$exportWildcard(dest, source) {
22
- Object.keys(source).forEach(function(key) {
23
- if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {
24
- return;
25
- }
26
-
27
- Object.defineProperty(dest, key, {
28
- enumerable: true,
29
- get: function get() {
30
- return source[key];
31
- }
32
- });
33
- });
34
19
 
35
- return dest;
36
- }
37
20
  function $parcel$interopDefault(a) {
38
21
  return a && a.__esModule ? a.default : a;
39
22
  }
40
23
 
41
- $parcel$export(module.exports, "getCookie", () => $8481e2034946cc4b$export$4be65e66cfa2648a);
42
- $parcel$export(module.exports, "getChromeCookie", () => $1a92ef2038b55530$export$e5637297e9eb6f2e);
43
- $parcel$export(module.exports, "getFirefoxCookie", () => $f9b70200901ad17d$export$c44c5fdef43f0941);
44
- $parcel$export(module.exports, "getMergedRenderedCookies", () => $4ffeaeb7bb3c0319$export$cfc0723de5712e57);
45
- $parcel$export(module.exports, "getGroupedRenderedCookies", () => $300d8b33187a203c$export$4d2e9997e2c23417);
46
- $parcel$export(module.exports, "fetchWithCookies", () => $cfc07ae4aa2c7e44$export$b24a545a0b39f491);
24
+ $parcel$export(module.exports, "getCookie", () => $d281d3a55494cb83$export$4be65e66cfa2648a);
25
+ $parcel$export(module.exports, "getChromeCookie", () => $52913203ed6cd470$export$e5637297e9eb6f2e);
26
+ $parcel$export(module.exports, "getFirefoxCookie", () => $e815b5ca89da9daf$export$c44c5fdef43f0941);
27
+ $parcel$export(module.exports, "getMergedRenderedCookies", () => $0ac28e04b308724d$export$cfc0723de5712e57);
28
+ $parcel$export(module.exports, "getGroupedRenderedCookies", () => $429525b331c0e3ef$export$4d2e9997e2c23417);
29
+ $parcel$export(module.exports, "fetchWithCookies", () => $9f9fb10cbd238704$export$b24a545a0b39f491);
30
+
31
+
32
+
33
+ var $7157583128e389c3$var$_a;
34
+ const $7157583128e389c3$export$6f4ae1207c703045 = ($7157583128e389c3$var$_a = process.argv) !== null && $7157583128e389c3$var$_a !== void 0 ? $7157583128e389c3$var$_a : [];
35
+ const $7157583128e389c3$var$minimistArgs = (0, ($parcel$interopDefault($cDXzb$minimist)))($7157583128e389c3$export$6f4ae1207c703045.slice(2));
36
+ const $7157583128e389c3$var$defaultOptions = {
37
+ verbose: false
38
+ };
39
+ const $7157583128e389c3$export$c348dfaf65040d9b = (0, $cDXzb$lodash.merge)($7157583128e389c3$var$defaultOptions, $7157583128e389c3$var$minimistArgs);
40
+
41
+
42
+ function $e23e66d99bb02a67$export$bc926c43858bd3cb(obj) {
43
+ return obj.domain !== undefined && obj.name !== undefined && obj.value !== undefined;
44
+ }
45
+
46
+
47
47
 
48
48
 
49
- const $ef3d5dc2fd8022f5$export$6f4ae1207c703045 = process.argv ?? [];
50
- const $ef3d5dc2fd8022f5$export$c348dfaf65040d9b = (0, ($parcel$interopDefault($7oI3p$minimist)))($ef3d5dc2fd8022f5$export$6f4ae1207c703045.slice(2));
49
+ var $9d2024493eb3a873$var$_a;
50
+ const $9d2024493eb3a873$export$a7b6bc01c63cdfc3 = {};
51
+ (0, $cDXzb$lodash.merge)($9d2024493eb3a873$export$a7b6bc01c63cdfc3, ($9d2024493eb3a873$var$_a = process === null || process === void 0 ? void 0 : process.env) !== null && $9d2024493eb3a873$var$_a !== void 0 ? $9d2024493eb3a873$var$_a : {});
52
+ const $9d2024493eb3a873$export$a7c5707626fc90f = $9d2024493eb3a873$export$a7b6bc01c63cdfc3["HOME"];
53
+ if (!$9d2024493eb3a873$export$a7c5707626fc90f) throw new Error("HOME environment variable is not set");
51
54
 
52
55
 
56
+ const $30db1db573c27007$export$6c123efa52771cfa = (0, $cDXzb$path.join)((0, $9d2024493eb3a873$export$a7c5707626fc90f), "Library", "Application Support", "Google", "Chrome");
53
57
 
54
- async function $25b78d6746d4ad48$export$8d71c74f97c0202e(command) {
55
- return new Promise((resolve, reject)=>{
56
- (0, $7oI3p$child_process.exec)(command, {
57
- encoding: "binary",
58
- maxBuffer: 5120
59
- }, (error, stdout, stderr)=>{
60
- if (error) {
61
- reject(error);
62
- return;
58
+
59
+
60
+
61
+
62
+ const $81e88cf6c8a47bdb$var$consola = (0, $cDXzb$consola.createConsola)({
63
+ fancy: true,
64
+ formatOptions: {
65
+ showLogLevel: true,
66
+ colors: true,
67
+ date: false
68
+ }
69
+ });
70
+ $81e88cf6c8a47bdb$var$consola.wrapConsole();
71
+ var $81e88cf6c8a47bdb$export$2e2bcd8739ae039 = $81e88cf6c8a47bdb$var$consola;
72
+
73
+
74
+ var $e75b5fff4f5fb7ef$var$__awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {
75
+ function adopt(value) {
76
+ return value instanceof P ? value : new P(function(resolve) {
77
+ resolve(value);
78
+ });
79
+ }
80
+ return new (P || (P = Promise))(function(resolve, reject) {
81
+ function fulfilled(value) {
82
+ try {
83
+ step(generator.next(value));
84
+ } catch (e) {
85
+ reject(e);
63
86
  }
64
- if (stderr) {
65
- reject(error);
66
- return;
87
+ }
88
+ function rejected(value) {
89
+ try {
90
+ step(generator["throw"](value));
91
+ } catch (e) {
92
+ reject(e);
67
93
  }
68
- if (stdout) resolve(stdout.trim());
94
+ }
95
+ function step(result) {
96
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
97
+ }
98
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
99
+ });
100
+ };
101
+ function $e75b5fff4f5fb7ef$export$e85a0c9a1067c5d3(password, encryptedData) {
102
+ return $e75b5fff4f5fb7ef$var$__awaiter(this, void 0, void 0, function*() {
103
+ // Returns a promise that resolves with the decrypted string
104
+ // Check if password is a string
105
+ if (typeof password !== "string") throw new Error("password must be a string: " + password);
106
+ let encryptedData1;
107
+ encryptedData1 = encryptedData;
108
+ // Check if encryptedData is an object
109
+ if (encryptedData1 == null || typeof encryptedData1 !== "object") throw new Error("encryptedData must be a object: " + encryptedData1);
110
+ // Check if encryptedData is a Buffer or an array of Buffers
111
+ if (!(encryptedData1 instanceof Buffer)) {
112
+ if (Array.isArray(encryptedData1) && encryptedData1[0] instanceof Buffer) {
113
+ [encryptedData1] = encryptedData1;
114
+ // Log if encryptedData is an array of buffers
115
+ if ((0, $7157583128e389c3$export$c348dfaf65040d9b).verbose) console.log(`encryptedData is an array of buffers, selected first: ${encryptedData1}`);
116
+ } else throw new Error("encryptedData must be a Buffer: " + encryptedData1);
117
+ encryptedData1 = Buffer.from(encryptedData1);
118
+ }
119
+ // Log the password being used for decryption
120
+ if ((0, $7157583128e389c3$export$c348dfaf65040d9b).verbose) (0, $81e88cf6c8a47bdb$export$2e2bcd8739ae039).start(`Trying to decrypt with password: ${password}`);
121
+ // Return a promise that resolves with the decrypted string
122
+ return new Promise((resolve, reject)=>{
123
+ // Use pbkdf2 to derive a key from the password
124
+ (0, $cDXzb$crypto.pbkdf2)(password, "saltysalt", 1003, 16, "sha1", (error, buffer)=>{
125
+ try {
126
+ // Handle any errors from pbkdf2
127
+ if (error) {
128
+ if ((0, $7157583128e389c3$export$c348dfaf65040d9b).verbose) console.log("Error doing pbkdf2", error);
129
+ reject(error);
130
+ return;
131
+ }
132
+ // Check if the buffer length is 16
133
+ if (buffer.length !== 16) {
134
+ if ((0, $7157583128e389c3$export$c348dfaf65040d9b).verbose) console.log("Error doing pbkdf2, buffer length is not 16", buffer.length);
135
+ reject(new Error("Buffer length is not 16"));
136
+ return;
137
+ }
138
+ // Create an initialization vector
139
+ const str = new Array(17).join(" ");
140
+ const iv = Buffer.from(str, "binary");
141
+ // Create a decipher using the derived key and initialization vector
142
+ const decipher = (0, $cDXzb$crypto.createDecipheriv)("aes-128-cbc", buffer, iv);
143
+ decipher.setAutoPadding(false);
144
+ // Remove the first 3 bytes from the encrypted data
145
+ if (encryptedData1 && encryptedData1.slice) encryptedData1 = encryptedData1.slice(3);
146
+ // Check if the encrypted data length is a multiple of 16
147
+ if (encryptedData1.length % 16 !== 0) {
148
+ if ((0, $7157583128e389c3$export$c348dfaf65040d9b).verbose) console.log("Error doing pbkdf2, encryptedData length is not a multiple of 16", encryptedData1.length);
149
+ reject(new Error("encryptedData length is not a multiple of 16"));
150
+ return;
151
+ }
152
+ // Update the decipher with the encrypted data
153
+ let decoded = decipher.update(encryptedData1);
154
+ try {
155
+ // Finalize the decipher
156
+ decipher.final("utf-8");
157
+ } catch (e) {
158
+ if ((0, $7157583128e389c3$export$c348dfaf65040d9b).verbose) console.log("Error doing decipher.final()", e);
159
+ reject(e);
160
+ return;
161
+ }
162
+ // Remove padding from the decoded data
163
+ const padding = decoded[decoded.length - 1];
164
+ if (padding) decoded = decoded.slice(0, 0 - padding);
165
+ // Convert the decoded data to a string
166
+ const decodedString = decoded.toString("utf8");
167
+ // Resolve the promise with the decrypted string
168
+ resolve(decodedString);
169
+ } catch (e) {
170
+ // Reject the promise if there is an error
171
+ reject(e);
172
+ }
173
+ });
69
174
  });
70
175
  });
71
176
  }
72
177
 
73
178
 
74
179
 
75
- const $fac425c10fbbada5$export$a7b6bc01c63cdfc3 = {};
76
- (0, $7oI3p$lodash.merge)($fac425c10fbbada5$export$a7b6bc01c63cdfc3, process.env);
77
- const $fac425c10fbbada5$export$a7c5707626fc90f = $fac425c10fbbada5$export$a7b6bc01c63cdfc3["HOME"];
78
- if (!$fac425c10fbbada5$export$a7c5707626fc90f) throw new Error("HOME environment variable is not set");
79
180
 
80
181
 
81
182
 
82
183
 
83
-
84
- async function $e62c2c56eb720f29$export$2c9faf86071156ae({ path: path , name: name , maxDepth: maxDepth = 2 }) {
85
- const rootSegments = path.split("/").length;
86
- const files = [];
87
- let readdirSync;
88
- try {
89
- readdirSync = $7oI3p$fs.readdirSync(path);
90
- } catch (e) {
91
- if ((0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b).verbose) console.log(`Error reading ${path}`, e);
92
- return [];
93
- }
94
- for (const file of readdirSync){
95
- const filePath = path + "/" + file;
96
- let stat;
97
- try {
98
- stat = $7oI3p$fs.statSync(filePath);
99
- } catch (e1) {
100
- if ((0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b).verbose) console.error(`Error getting stat for ${filePath}`, e1);
101
- continue;
102
- }
103
- if (stat.isDirectory()) {
104
- if (filePath.split("/").length < rootSegments + maxDepth) try {
105
- const subFiles = await $e62c2c56eb720f29$export$2c9faf86071156ae({
106
- path: filePath,
107
- name: name,
108
- maxDepth: 2
109
- });
110
- files.push(...subFiles);
111
- } catch (e2) {
112
- if ((0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b).verbose) console.error(e2);
113
- }
114
- } else if (file === name) files.push(filePath);
115
- }
116
- if ((0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b).verbose) {
184
+ function $7fc3e7715e6e0e1c$export$2c9faf86071156ae({ path: path, name: name, maxDepth: maxDepth = 2 }) {
185
+ if (!(0, $cDXzb$fs.existsSync)(path)) throw new Error(`Path ${path} does not exist`);
186
+ if ((0, $7157583128e389c3$export$c348dfaf65040d9b).verbose) (0, ($parcel$interopDefault($cDXzb$consola))).start(`Searching for ${name} files in ${path}`);
187
+ const files = (0, $cDXzb$fastglob.sync)(`${path}/**/${name}`, {
188
+ onlyFiles: true,
189
+ deep: maxDepth
190
+ });
191
+ if ((0, $7157583128e389c3$export$c348dfaf65040d9b).verbose) {
117
192
  if (files.length > 0) {
118
- console.log(`Found ${files.length} ${name} files`);
119
- console.log(files);
193
+ (0, ($parcel$interopDefault($cDXzb$consola))).success(`Found ${files.length} ${name} files`);
194
+ (0, ($parcel$interopDefault($cDXzb$consola))).info(files);
120
195
  }
121
196
  }
122
197
  return files;
@@ -124,237 +199,210 @@ async function $e62c2c56eb720f29$export$2c9faf86071156ae({ path: path , name: na
124
199
 
125
200
 
126
201
 
127
-
128
-
129
- function $af69dfb8766652d8$export$bc926c43858bd3cb(obj) {
130
- return obj.domain !== undefined && obj.name !== undefined && obj.value !== undefined;
202
+ var $6175c00ac8ec42e0$var$__awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {
203
+ function adopt(value) {
204
+ return value instanceof P ? value : new P(function(resolve) {
205
+ resolve(value);
206
+ });
207
+ }
208
+ return new (P || (P = Promise))(function(resolve, reject) {
209
+ function fulfilled(value) {
210
+ try {
211
+ step(generator.next(value));
212
+ } catch (e) {
213
+ reject(e);
214
+ }
215
+ }
216
+ function rejected(value) {
217
+ try {
218
+ step(generator["throw"](value));
219
+ } catch (e) {
220
+ reject(e);
221
+ }
222
+ }
223
+ function step(result) {
224
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
225
+ }
226
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
227
+ });
228
+ };
229
+ function $6175c00ac8ec42e0$export$8d71c74f97c0202e(command) {
230
+ return $6175c00ac8ec42e0$var$__awaiter(this, void 0, void 0, function*() {
231
+ try {
232
+ const stdout = (0, $cDXzb$child_process.execSync)(command, {
233
+ encoding: "binary",
234
+ maxBuffer: 5120
235
+ });
236
+ return stdout.trim();
237
+ } catch (error) {
238
+ throw error;
239
+ }
240
+ });
131
241
  }
132
242
 
133
243
 
134
- function $d66f40b581ba8bfa$export$963c8d651337e4a4(obj) {
135
- return obj.domain !== undefined && obj.name !== undefined && obj.value !== undefined;
244
+ var $3cac3879f6b768c1$var$__awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {
245
+ function adopt(value) {
246
+ return value instanceof P ? value : new P(function(resolve) {
247
+ resolve(value);
248
+ });
249
+ }
250
+ return new (P || (P = Promise))(function(resolve, reject) {
251
+ function fulfilled(value) {
252
+ try {
253
+ step(generator.next(value));
254
+ } catch (e) {
255
+ reject(e);
256
+ }
257
+ }
258
+ function rejected(value) {
259
+ try {
260
+ step(generator["throw"](value));
261
+ } catch (e) {
262
+ reject(e);
263
+ }
264
+ }
265
+ function step(result) {
266
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
267
+ }
268
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
269
+ });
270
+ };
271
+ // top level so it's only called once and cached
272
+ const $3cac3879f6b768c1$var$chromePassword = process.platform == "darwin" ? (0, $6175c00ac8ec42e0$export$8d71c74f97c0202e)('security find-generic-password -w -s "Chrome Safe Storage"') : Promise.reject(new Error("This only works on macOS"));
273
+ function $3cac3879f6b768c1$export$91552cff7edf316() {
274
+ return $3cac3879f6b768c1$var$__awaiter(this, void 0, void 0, function*() {
275
+ return yield $3cac3879f6b768c1$var$chromePassword;
276
+ });
136
277
  }
137
278
 
138
279
 
139
- function $68c0ed99fadee6ca$export$4eadcf0bf35a2ddb(s) {
140
- const s1 = s.replaceAll(/\./gi, ".");
141
- const s2 = s1.replace(/%/g, ".*");
142
- const s3 = s2.replace(/\*/g, ".*");
143
- return new RegExp(s3);
280
+ function $f95e0f6bbc85fb44$export$963c8d651337e4a4(obj) {
281
+ return typeof obj.domain === "string" && typeof obj.name === "string" && typeof obj.value === "string" && (obj.expiry === undefined || obj.expiry instanceof Date || obj.expiry === "Infinity") && (obj.meta === undefined || typeof obj.meta === "object");
144
282
  }
145
283
 
146
284
 
147
285
 
148
286
 
149
-
150
- class $269fe42bfd555305$export$2e2bcd8739ae039 {
151
- browserName = "Chrome";
152
- async queryCookies(name, domain) {
153
- if (process.platform !== "darwin") throw new Error("This only works on macOS");
154
- if ((0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3).FIREFOX_ONLY) return [];
155
- return $269fe42bfd555305$var$getChromeCookies({
156
- requireJwt: false,
157
- name: name,
158
- domain: domain
287
+ // This utility function applies an async callback to each element of the input array (just like Array.prototype.map),
288
+ // waits for all resulting promises to fulfill (similar to Promise.all), and then flattens the resulting array (like Array.prototype.flat).
289
+ var $5e9b668b7878158a$var$__awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {
290
+ function adopt(value) {
291
+ return value instanceof P ? value : new P(function(resolve) {
292
+ resolve(value);
159
293
  });
160
294
  }
295
+ return new (P || (P = Promise))(function(resolve, reject) {
296
+ function fulfilled(value) {
297
+ try {
298
+ step(generator.next(value));
299
+ } catch (e) {
300
+ reject(e);
301
+ }
302
+ }
303
+ function rejected(value) {
304
+ try {
305
+ step(generator["throw"](value));
306
+ } catch (e) {
307
+ reject(e);
308
+ }
309
+ }
310
+ function step(result) {
311
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
312
+ }
313
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
314
+ });
315
+ };
316
+ function $5e9b668b7878158a$export$4c17d5aa5c0915ca(array, callback, or) {
317
+ return $5e9b668b7878158a$var$__awaiter(this, void 0, void 0, function*() {
318
+ if (or) return $5e9b668b7878158a$export$4c17d5aa5c0915ca(array, (value, index, array)=>$5e9b668b7878158a$var$__awaiter(this, void 0, void 0, function*() {
319
+ try {
320
+ return yield callback(value, index, array);
321
+ } catch (error) {
322
+ return typeof or == "function" ? or(error) : or;
323
+ }
324
+ }));
325
+ // Step 1: Use Array.prototype.map to transform each element of the input array with the provided callback.
326
+ // This will result in an array of promises.
327
+ const ps = array.map(callback);
328
+ // Step 2: Use Promise.all to wait for all promises in the array to fulfill.
329
+ // This will give us an array of fulfilled promise values.
330
+ const awaitedAll = yield Promise.all(ps);
331
+ // Step 3: Flatten the array of fulfilled promise values into a single array.
332
+ // Note: The '@ts-ignore' comment is used to suppress TypeScript compiler warnings, as .flat() method might not be recognized
333
+ // as a valid method for an array of Awaited<O> instances. However, this code assumes that the result of Promise.all
334
+ // is indeed an array that can be flattened.
335
+ // @ts-ignore
336
+ return awaitedAll.flat();
337
+ });
161
338
  }
162
- async function $269fe42bfd555305$var$getPromise1(name, domain, file) {
163
- try {
164
- return await $269fe42bfd555305$var$getEncryptedChromeCookie({
165
- name: name,
166
- domain: domain,
167
- file: file
339
+
340
+
341
+
342
+
343
+
344
+
345
+
346
+
347
+ var $d14be1ef1a9958a3$var$__awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {
348
+ function adopt(value) {
349
+ return value instanceof P ? value : new P(function(resolve) {
350
+ resolve(value);
168
351
  });
169
- } catch (e) {
170
- if ((0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b).verbose) console.log("Error getting encrypted cookie", e);
171
- return [];
172
352
  }
173
- }
174
- async function $269fe42bfd555305$var$getPromise(name, domain) {
175
- try {
176
- const files = await (0, $e62c2c56eb720f29$export$2c9faf86071156ae)({
177
- path: $269fe42bfd555305$var$chromeLocal,
178
- name: "Cookies"
179
- });
180
- const promises = files.map((file)=>$269fe42bfd555305$var$getPromise1(name, domain, file));
181
- const results1 = await Promise.all(promises);
182
- return results1.flat().filter((0, $af69dfb8766652d8$export$bc926c43858bd3cb));
183
- } catch (error) {
184
- if ((0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b).verbose) console.log("error", error);
185
- return [];
186
- }
187
- }
188
- async function $269fe42bfd555305$var$decryptValue(password, encryptedValue) {
189
- let d;
190
- try {
191
- d = await $269fe42bfd555305$var$decrypt(password, encryptedValue);
192
- } catch (e) {
193
- if ((0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b).verbose) console.log("Error decrypting cookie", e);
194
- d = null;
195
- }
196
- return d ?? encryptedValue.toString("utf-8");
197
- }
198
- async function $269fe42bfd555305$var$getChromeCookies({ name: name , domain: domain = "%" , requireJwt: requireJwt = false }) {
199
- const encryptedDataItems = await $269fe42bfd555305$var$getPromise(name, domain);
200
- const password = await $269fe42bfd555305$var$getChromePassword();
201
- const decrypted = encryptedDataItems.filter(({ value: value })=>value != null && value.length > 0).map(async (cookieRow)=>{
202
- const encryptedValue = cookieRow.value;
203
- const decryptedValue = await $269fe42bfd555305$var$decryptValue(password, encryptedValue);
204
- const meta = {};
205
- (0, $7oI3p$lodash.merge)(meta, cookieRow.meta ?? {});
206
- const exportedCookie = {
207
- domain: cookieRow.domain,
208
- name: cookieRow.name,
209
- value: decryptedValue,
210
- meta: meta
211
- };
212
- const expiry = cookieRow.expiry;
213
- if (expiry) (0, $7oI3p$lodash.merge)(exportedCookie, {
214
- expiry: new Date(expiry)
215
- });
216
- return exportedCookie;
217
- });
218
- const results = (await Promise.all(decrypted)).filter((0, $d66f40b581ba8bfa$export$963c8d651337e4a4));
219
- if ((0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b).verbose) console.log("results", results);
220
- return results;
221
- }
222
- const $269fe42bfd555305$var$chromeLocal = $7oI3p$path.join((0, $fac425c10fbbada5$export$a7c5707626fc90f), "Library", "Application Support", "Google", "Chrome");
223
- async function $269fe42bfd555305$var$getEncryptedChromeCookie({ name: name , domain: domain , file: file = $7oI3p$path.join($269fe42bfd555305$var$chromeLocal, "Default", "Cookies") }) {
224
- if (!(0, $7oI3p$fs.existsSync)(file)) throw new Error(`File ${file} does not exist`);
225
- if ((0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b).verbose) {
226
- const s = file.split("/").slice(-3).join("/");
227
- console.log(`Trying Chrome (at ${s}) cookie ${name} for domain ${domain}`);
228
- }
229
- let sql;
230
- //language=SQL
231
- sql = "SELECT * FROM cookies";
232
- // sql = "SELECT encrypted_value, name, host_key FROM cookies";
233
- const wildcardRegexp = /^([*%])$/i;
234
- const specifiedName = name.match(wildcardRegexp) == null;
235
- const specifiedDomain = domain.match(wildcardRegexp) == null;
236
- const wildcardDomain = domain.match(/[%*]/) != null;
237
- const queryDomain = specifiedDomain && !wildcardDomain;
238
- // if we have a wildcard domain, we need to use a regexp
239
- if (specifiedName || queryDomain) {
240
- sql += ` WHERE `;
241
- if (specifiedName) {
242
- sql += `name = '${name}'`;
243
- if (queryDomain) sql += ` AND `;
244
- }
245
- if (queryDomain) {
246
- // leading dot replaced with % to match subdomains
247
- const sqlEmbedDomain = domain.replace(/^[.%]?/, "%");
248
- sql += `host_key LIKE '${sqlEmbedDomain}';`;
353
+ return new (P || (P = Promise))(function(resolve, reject) {
354
+ function fulfilled(value) {
355
+ try {
356
+ step(generator.next(value));
357
+ } catch (e) {
358
+ reject(e);
359
+ }
249
360
  }
250
- }
251
- const sqliteQuery1 = await $269fe42bfd555305$export$bd52b72df8d0d261({
252
- file: file,
253
- sql: sql,
254
- rowTransform: (row)=>{
255
- const cookieRow = {
256
- expiry: (row["expires_utc"] / 1000000 - 11644473600) * 1000,
257
- domain: row["host_key"],
258
- name: row["name"],
259
- value: row["encrypted_value"]
260
- };
261
- if ((0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b).verbose) console.log("CookieRow", cookieRow);
262
- return cookieRow;
361
+ function rejected(value) {
362
+ try {
363
+ step(generator["throw"](value));
364
+ } catch (e) {
365
+ reject(e);
366
+ }
263
367
  }
368
+ function step(result) {
369
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
370
+ }
371
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
264
372
  });
265
- return sqliteQuery1.filter((row)=>{
266
- return row.domain.match((0, $68c0ed99fadee6ca$export$4eadcf0bf35a2ddb)(domain)) != null;
267
- });
373
+ };
374
+ function $d14be1ef1a9958a3$var$checkFileExistence(file) {
375
+ if (!file || !(0, ($parcel$interopDefault($cDXzb$fs))).existsSync(file)) throw new Error(`File ${file} does not exist`);
268
376
  }
269
- async function $269fe42bfd555305$var$getChromePassword() {
270
- return (0, $25b78d6746d4ad48$export$8d71c74f97c0202e)('security find-generic-password -w -s "Chrome Safe Storage"');
377
+ function $d14be1ef1a9958a3$var$createDatabase(file) {
378
+ return new (0, $cDXzb$sqlite3.Database)(file);
271
379
  }
272
- async function $269fe42bfd555305$var$decrypt(password, encryptedData) {
273
- if (typeof password !== "string") throw new Error("password must be a string: " + password);
274
- let encryptedData1;
275
- encryptedData1 = encryptedData;
276
- if (encryptedData1 == null || typeof encryptedData1 !== "object") throw new Error("encryptedData must be a object: " + encryptedData1);
277
- if (!(encryptedData1 instanceof Buffer)) {
278
- if (Array.isArray(encryptedData1) && encryptedData1[0] instanceof Buffer) {
279
- [encryptedData1] = encryptedData1;
280
- if ((0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b).verbose) console.log(`encryptedData is an array of buffers, selected first: ${encryptedData1}`);
281
- } else throw new Error("encryptedData must be a Buffer: " + encryptedData1);
282
- encryptedData1 = Buffer.from(encryptedData1);
283
- }
284
- if ((0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b).verbose) console.log(`Trying to decrypt with password ${password}`);
285
- return new Promise((resolve, reject)=>{
286
- $7oI3p$crypto.pbkdf2(password, "saltysalt", 1003, 16, "sha1", (error, buffer)=>{
287
- try {
288
- if (error) {
289
- if ((0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b).verbose) console.log("Error doing pbkdf2", error);
290
- reject(error);
291
- return;
292
- }
293
- if (buffer.length !== 16) {
294
- if ((0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b).verbose) console.log("Error doing pbkdf2, buffer length is not 16", buffer.length);
295
- reject(new Error("Buffer length is not 16"));
296
- return;
297
- }
298
- const str = new Array(17).join(" ");
299
- const iv = Buffer.from(str, "binary");
300
- const decipher = $7oI3p$crypto.createDecipheriv("aes-128-cbc", buffer, iv);
301
- decipher.setAutoPadding(false);
302
- if (encryptedData1 && encryptedData1.slice) encryptedData1 = encryptedData1.slice(3);
303
- if (encryptedData1.length % 16 !== 0) {
304
- if ((0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b).verbose) console.log("Error doing pbkdf2, encryptedData length is not a multiple of 16", encryptedData1.length);
305
- reject(new Error("encryptedData length is not a multiple of 16"));
306
- return;
307
- }
308
- let decoded = decipher.update(encryptedData1);
309
- try {
310
- decipher.final("utf-8");
311
- } catch (e) {
312
- if ((0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b).verbose) console.log("Error doing decipher.final()", e);
313
- reject(e);
314
- return;
315
- }
316
- const padding = decoded[decoded.length - 1];
317
- if (padding) decoded = decoded.slice(0, 0 - padding);
318
- // noinspection JSCheckFunctionSignatures
319
- const decodedString = decoded.toString("utf8");
320
- resolve(decodedString);
321
- } catch (e1) {
322
- reject(e1);
323
- }
324
- });
325
- });
326
- }
327
- async function $269fe42bfd555305$export$bd52b72df8d0d261({ file: file , sql: sql , rowTransform: rowTransform }) {
328
- if (!file || file && !(0, ($parcel$interopDefault($7oI3p$fs))).existsSync(file)) throw new Error(`doSqliteQuery1: file ${file} does not exist`);
329
- const db = new $7oI3p$sqlite3.Database(file);
330
- return new Promise((resolve, reject)=>{
331
- db.all(sql, (err, rows)=>{
332
- if (err) {
333
- reject(err);
334
- return;
335
- }
336
- const rows1 = rows;
337
- if (rows1 == null || rows1.length === 0) {
338
- resolve([]);
339
- return;
340
- }
341
- if (Array.isArray(rows1)) {
342
- const cookieRows = rows1.map((row)=>{
343
- const newVar = {
344
- meta: {
345
- file: file
346
- }
347
- };
348
- const cookieRow = rowTransform(row);
349
- return (0, $7oI3p$lodash.merge)(newVar, cookieRow);
350
- });
351
- resolve(cookieRows);
352
- return;
380
+ function $d14be1ef1a9958a3$var$transformRows(//
381
+ rows, rowFilter, rowTransform, file) {
382
+ return rows.filter(rowFilter).map((row)=>{
383
+ const metaData = {
384
+ meta: {
385
+ file: file
353
386
  }
354
- if ((0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b).verbose) console.log(`doSqliteQuery1: rows ${JSON.stringify(rows1)}`);
355
- resolve([
356
- rows1
357
- ]);
387
+ };
388
+ const cookieRow = rowTransform(row);
389
+ return (0, $cDXzb$lodash.merge)(metaData, cookieRow);
390
+ });
391
+ }
392
+ function $d14be1ef1a9958a3$export$f2540d44620bb212(//
393
+ { file: //
394
+ file, sql: sql, rowFilter: rowFilter = ()=>true, rowTransform: rowTransform }) {
395
+ return $d14be1ef1a9958a3$var$__awaiter(this, void 0, void 0, function*() {
396
+ $d14be1ef1a9958a3$var$checkFileExistence(file);
397
+ const db = $d14be1ef1a9958a3$var$createDatabase(file);
398
+ return new Promise((resolve, reject)=>{
399
+ db.all(sql, (err, rows)=>{
400
+ if (err) return reject(err);
401
+ if (!rows || rows.length === 0) return resolve([]);
402
+ const cookieRows = $d14be1ef1a9958a3$var$transformRows(rows, rowFilter, rowTransform, file);
403
+ if ((0, $7157583128e389c3$export$c348dfaf65040d9b).verbose) (0, $81e88cf6c8a47bdb$export$2e2bcd8739ae039).log(`Rows: ${JSON.stringify(rows)}`);
404
+ return resolve(cookieRows);
405
+ });
358
406
  });
359
407
  });
360
408
  }
@@ -363,48 +411,239 @@ async function $269fe42bfd555305$export$bd52b72df8d0d261({ file: file , sql: sql
363
411
 
364
412
 
365
413
 
414
+ // This function converts a string into a regular expression
415
+ function $9e90da30fe7d2aa3$export$4eadcf0bf35a2ddb(s) {
416
+ // Replace all occurrences of '.' with a literal '.'
417
+ const s1 = s.replaceAll(/\./gi, ".");
418
+ // Replace all occurrences of '%' with '.*' to match any number of any characters
419
+ const s2 = s1.replace(/%/g, ".*");
420
+ // Replace all occurrences of '*' with '.*' to match any number of any characters
421
+ const s3 = s2.replace(/\*/g, ".*");
422
+ // Return the new string as a RegExp object
423
+ return new RegExp(s3);
424
+ } /*
425
+ %.example.com -> .*\.example\.com
426
+ example.com -> example\.com
427
+ */
366
428
 
367
429
 
368
430
 
431
+ var $6d541fb88d38bdf4$var$__awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {
432
+ function adopt(value) {
433
+ return value instanceof P ? value : new P(function(resolve) {
434
+ resolve(value);
435
+ });
436
+ }
437
+ return new (P || (P = Promise))(function(resolve, reject) {
438
+ function fulfilled(value) {
439
+ try {
440
+ step(generator.next(value));
441
+ } catch (e) {
442
+ reject(e);
443
+ }
444
+ }
445
+ function rejected(value) {
446
+ try {
447
+ step(generator["throw"](value));
448
+ } catch (e) {
449
+ reject(e);
450
+ }
451
+ }
452
+ function step(result) {
453
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
454
+ }
455
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
456
+ });
457
+ };
458
+ function $6d541fb88d38bdf4$export$16e9dfd2b3be0e1c({ name: name, domain: domain, file: file = (0, $cDXzb$path.join)((0, $30db1db573c27007$export$6c123efa52771cfa), "Default", "Cookies") }) {
459
+ return $6d541fb88d38bdf4$var$__awaiter(this, void 0, void 0, function*() {
460
+ if (!(0, $cDXzb$fs.existsSync)(file)) throw new Error(`File ${file} does not exist`);
461
+ if ((0, $7157583128e389c3$export$c348dfaf65040d9b).verbose) {
462
+ const s = file.split("/").slice(-3).join("/");
463
+ (0, $81e88cf6c8a47bdb$export$2e2bcd8739ae039).start(`Trying Chrome (at ${s}) cookie ${name} for domain ${domain}`);
464
+ }
465
+ let sql;
466
+ //language=SQL
467
+ sql = "SELECT encrypted_value, name, host_key, expires_utc FROM cookies";
468
+ // Define a regular expression to match wildcard characters
469
+ const wildcardRegexp = /^([*%])$/i;
470
+ // Check if the name does not contain wildcard characters
471
+ const specifiedName = name.match(wildcardRegexp) == null;
472
+ // Check if the domain does not contain wildcard characters
473
+ const specifiedDomain = domain.match(wildcardRegexp) == null;
474
+ // Check if the domain contains wildcard characters
475
+ const wildcardDomain = domain.match(/[%*]/) != null;
476
+ // Determine if we should query the domain based on the previous checks
477
+ const queryDomain = specifiedDomain && !wildcardDomain;
478
+ // if we have a wildcard domain, we need to use a regexp
479
+ // If the name is specified or we need to query the domain, we add a WHERE clause to the SQL query
480
+ if (specifiedName || queryDomain) {
481
+ sql += ` WHERE `;
482
+ // If the name is specified, we add a condition to the SQL query to match the name
483
+ if (specifiedName) {
484
+ sql += `name = '${name}'`;
485
+ // If we also need to query the domain, we add an AND operator to the SQL query
486
+ if (queryDomain) sql += ` AND `;
487
+ }
488
+ // If we need to query the domain, we add a condition to the SQL query to match the domain
489
+ if (queryDomain) {
490
+ // The leading dot is replaced with % to match subdomains
491
+ const sqlEmbedDomain = domain.replace(/^[.%]?/, "%");
492
+ sql += `host_key LIKE '${sqlEmbedDomain}';`;
493
+ }
494
+ }
495
+ if ((0, $7157583128e389c3$export$c348dfaf65040d9b).verbose) (0, $81e88cf6c8a47bdb$export$2e2bcd8739ae039).info("Querying:", sql);
496
+ const domainRegexp = (0, $9e90da30fe7d2aa3$export$4eadcf0bf35a2ddb)(domain);
497
+ const sqliteQuery1 = yield (0, $d14be1ef1a9958a3$export$f2540d44620bb212)({
498
+ file: file,
499
+ sql: sql,
500
+ rowFilter: (row)=>{
501
+ return row["host_key"].match(domainRegexp) != null;
502
+ },
503
+ rowTransform: (row)=>{
504
+ const cookieRow = {
505
+ expiry: (row["expires_utc"] / 1000000 - 11644473600) * 1000,
506
+ domain: row["host_key"],
507
+ name: row["name"],
508
+ value: row["encrypted_value"]
509
+ };
510
+ if ((0, $7157583128e389c3$export$c348dfaf65040d9b).verbose) (0, $81e88cf6c8a47bdb$export$2e2bcd8739ae039).info("Found", cookieRow);
511
+ return cookieRow;
512
+ }
513
+ });
514
+ return sqliteQuery1.filter((row)=>{
515
+ // TODO: is this needed?
516
+ return row.domain.match(domainRegexp) != null;
517
+ });
518
+ });
519
+ }
369
520
 
370
521
 
371
- async function $a085b524d8ee9fce$export$f19f611d1fa7c6f3({ file: file , sql: sql , rowTransform: rowTransform }) {
372
- if (!file || file && !$7oI3p$fs.existsSync(file)) throw new Error(`doSqliteQuery1: file ${file} does not exist`);
373
- const db = new $7oI3p$sqlite3.Database(file);
374
- return new Promise((resolve, reject)=>{
375
- db.all(sql, (err, rows)=>{
376
- if (err) {
377
- reject(err);
378
- return;
379
- }
380
- const rows1 = rows;
381
- if (rows1 == null || rows1.length === 0) {
382
- resolve([]);
383
- return;
522
+
523
+ var $98086c00474b37ea$var$__awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {
524
+ function adopt(value) {
525
+ return value instanceof P ? value : new P(function(resolve) {
526
+ resolve(value);
527
+ });
528
+ }
529
+ return new (P || (P = Promise))(function(resolve, reject) {
530
+ function fulfilled(value) {
531
+ try {
532
+ step(generator.next(value));
533
+ } catch (e) {
534
+ reject(e);
384
535
  }
385
- if (Array.isArray(rows1)) {
386
- const cookieRows = rows1.map((row)=>{
387
- const newVar = {
388
- meta: {
389
- file: file
390
- }
391
- };
392
- const cookieRow = rowTransform(row);
393
- return (0, $7oI3p$lodash.merge)(newVar, cookieRow);
394
- });
395
- resolve(cookieRows);
396
- return;
536
+ }
537
+ function rejected(value) {
538
+ try {
539
+ step(generator["throw"](value));
540
+ } catch (e) {
541
+ reject(e);
397
542
  }
398
- if ((0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b).verbose) console.log(`doSqliteQuery1: rows ${JSON.stringify(rows1)}`);
399
- resolve([
400
- rows1
401
- ]);
543
+ }
544
+ function step(result) {
545
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
546
+ }
547
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
548
+ });
549
+ };
550
+ const $98086c00474b37ea$export$d0e46ecc2d3d1cd9 = (0, $81e88cf6c8a47bdb$export$2e2bcd8739ae039).withTag("ChromeCookieQueryStrategy");
551
+ class $98086c00474b37ea$export$2e2bcd8739ae039 {
552
+ constructor(){
553
+ this.browserName = "Chrome";
554
+ }
555
+ queryCookies(name, domain) {
556
+ return $98086c00474b37ea$var$__awaiter(this, void 0, void 0, function*() {
557
+ if (process.platform !== "darwin") throw new Error("This only works on macOS");
558
+ if ((0, $9d2024493eb3a873$export$a7b6bc01c63cdfc3).FIREFOX_ONLY) return [];
559
+ return $98086c00474b37ea$var$getChromeCookies({
560
+ requireJwt: false,
561
+ name: name,
562
+ domain: domain
563
+ });
402
564
  });
565
+ }
566
+ }
567
+ function $98086c00474b37ea$var$getPromise1(name, domain, file) {
568
+ return $98086c00474b37ea$var$__awaiter(this, void 0, void 0, function*() {
569
+ try {
570
+ return yield (0, $6d541fb88d38bdf4$export$16e9dfd2b3be0e1c)({
571
+ name: name,
572
+ domain: domain,
573
+ file: file
574
+ });
575
+ } catch (e) {
576
+ if ((0, $7157583128e389c3$export$c348dfaf65040d9b).verbose) console.log("Error getting encrypted cookie", e);
577
+ return [];
578
+ }
579
+ });
580
+ }
581
+ function $98086c00474b37ea$var$getPromise(name, domain) {
582
+ return $98086c00474b37ea$var$__awaiter(this, void 0, void 0, function*() {
583
+ try {
584
+ const files = (0, $7fc3e7715e6e0e1c$export$2c9faf86071156ae)({
585
+ path: (0, $30db1db573c27007$export$6c123efa52771cfa),
586
+ name: "Cookies"
587
+ });
588
+ const results1 = yield (0, $5e9b668b7878158a$export$4c17d5aa5c0915ca)(files, (file)=>$98086c00474b37ea$var$__awaiter(this, void 0, void 0, function*() {
589
+ return yield $98086c00474b37ea$var$getPromise1(name, domain, file);
590
+ }));
591
+ return results1.filter((0, $e23e66d99bb02a67$export$bc926c43858bd3cb));
592
+ } catch (error) {
593
+ if ((0, $7157583128e389c3$export$c348dfaf65040d9b).verbose) console.log("error", error);
594
+ return [];
595
+ }
596
+ });
597
+ }
598
+ function $98086c00474b37ea$var$decryptValue(password, encryptedValue) {
599
+ return $98086c00474b37ea$var$__awaiter(this, void 0, void 0, function*() {
600
+ let d;
601
+ try {
602
+ d = yield (0, $e75b5fff4f5fb7ef$export$e85a0c9a1067c5d3)(password, encryptedValue);
603
+ } catch (e) {
604
+ if ((0, $7157583128e389c3$export$c348dfaf65040d9b).verbose) console.log("Error decrypting cookie", e);
605
+ d = null;
606
+ }
607
+ return d !== null && d !== void 0 ? d : encryptedValue.toString("utf-8");
403
608
  });
404
609
  }
610
+ function $98086c00474b37ea$var$getChromeCookies({ name: name, domain: domain = "%", requireJwt: requireJwt = false }) {
611
+ return $98086c00474b37ea$var$__awaiter(this, void 0, void 0, function*() {
612
+ const encryptedDataItems = yield $98086c00474b37ea$var$getPromise(name, domain);
613
+ const password = yield (0, $3cac3879f6b768c1$export$91552cff7edf316)();
614
+ const decrypted = encryptedDataItems.filter(({ value: value })=>value != null && value.length > 0).map((cookieRow)=>$98086c00474b37ea$var$__awaiter(this, void 0, void 0, function*() {
615
+ var _a;
616
+ const encryptedValue = cookieRow.value;
617
+ const decryptedValue = yield $98086c00474b37ea$var$decryptValue(password, encryptedValue);
618
+ const meta = {};
619
+ (0, $cDXzb$lodash.merge)(meta, (_a = cookieRow.meta) !== null && _a !== void 0 ? _a : {});
620
+ const exportedCookie = {
621
+ domain: cookieRow.domain,
622
+ name: cookieRow.name,
623
+ value: decryptedValue,
624
+ meta: meta
625
+ };
626
+ const expiry = cookieRow.expiry;
627
+ const mergeExpiry = expiry != null && expiry > 0 ? {
628
+ expiry: new Date(expiry)
629
+ } : {
630
+ expiry: "Infinity"
631
+ };
632
+ (0, $cDXzb$lodash.merge)(exportedCookie, mergeExpiry);
633
+ return exportedCookie;
634
+ }));
635
+ const results = (yield Promise.all(decrypted)).filter((0, $f95e0f6bbc85fb44$export$963c8d651337e4a4));
636
+ if ((0, $7157583128e389c3$export$c348dfaf65040d9b).verbose) console.log("results", results);
637
+ return results;
638
+ });
639
+ }
640
+
641
+
405
642
 
406
643
 
407
- function $b744d19cc39f964e$export$da22813e5a2ec500({ name: name , domain: domain }) {
644
+
645
+
646
+ function $42f062ccbc5d3597$export$da22813e5a2ec500({ name: name, domain: domain }) {
408
647
  const wildcardRegexp = /^([*%])$/i;
409
648
  return {
410
649
  specifiedName: name.match(wildcardRegexp) == null,
@@ -413,52 +652,96 @@ function $b744d19cc39f964e$export$da22813e5a2ec500({ name: name , domain: domain
413
652
  }
414
653
 
415
654
 
416
- class $7bb7da9a77b2fd99$export$2e2bcd8739ae039 {
417
- browserName = "Firefox";
418
- async queryCookies(name, domain) {
419
- if (process.platform !== "darwin") throw new Error("This only works on macOS");
420
- if ((0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3).CHROME_ONLY) return [];
421
- const cookies = await this.#getFirefoxCookie({
422
- name: name,
423
- domain: domain
655
+
656
+
657
+ var $30ef0e3ec1246110$var$__awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {
658
+ function adopt(value) {
659
+ return value instanceof P ? value : new P(function(resolve) {
660
+ resolve(value);
424
661
  });
425
- if (Array.isArray(cookies)) return cookies.map((cookie)=>{
426
- return {
427
- domain: cookie.domain,
428
- name: cookie.name,
429
- value: cookie.value.toString("utf8")
430
- };
662
+ }
663
+ return new (P || (P = Promise))(function(resolve, reject) {
664
+ function fulfilled(value) {
665
+ try {
666
+ step(generator.next(value));
667
+ } catch (e) {
668
+ reject(e);
669
+ }
670
+ }
671
+ function rejected(value) {
672
+ try {
673
+ step(generator["throw"](value));
674
+ } catch (e) {
675
+ reject(e);
676
+ }
677
+ }
678
+ function step(result) {
679
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
680
+ }
681
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
682
+ });
683
+ };
684
+ var $30ef0e3ec1246110$var$__classPrivateFieldGet = undefined && undefined.__classPrivateFieldGet || function(receiver, state, kind, f) {
685
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
686
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
687
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
688
+ };
689
+ var $30ef0e3ec1246110$var$_FirefoxCookieQueryStrategy_instances, $30ef0e3ec1246110$var$_FirefoxCookieQueryStrategy_getFirefoxCookie, $30ef0e3ec1246110$var$_FirefoxCookieQueryStrategy_queryCookiesDb;
690
+ class $30ef0e3ec1246110$var$FirefoxCookieQueryStrategy {
691
+ constructor(){
692
+ $30ef0e3ec1246110$var$_FirefoxCookieQueryStrategy_instances.add(this);
693
+ this.browserName = "Firefox";
694
+ }
695
+ queryCookies(name, domain) {
696
+ return $30ef0e3ec1246110$var$__awaiter(this, void 0, void 0, function*() {
697
+ if (process.platform !== "darwin") // TODO: implement
698
+ return [];
699
+ if ((0, $7157583128e389c3$export$c348dfaf65040d9b).browser !== "firefox") return [];
700
+ const cookies = yield $30ef0e3ec1246110$var$__classPrivateFieldGet(this, $30ef0e3ec1246110$var$_FirefoxCookieQueryStrategy_instances, "m", $30ef0e3ec1246110$var$_FirefoxCookieQueryStrategy_getFirefoxCookie).call(this, {
701
+ name: name,
702
+ domain: domain
703
+ });
704
+ if (Array.isArray(cookies)) return cookies.map((cookie)=>{
705
+ return {
706
+ domain: cookie.domain,
707
+ name: cookie.name,
708
+ value: cookie.value.toString("utf8")
709
+ };
710
+ });
711
+ else return [];
431
712
  });
432
- else return [];
433
713
  }
434
- async #getFirefoxCookie({ name: name , domain: domain } //
435
- ) {
436
- const files = await (0, $e62c2c56eb720f29$export$2c9faf86071156ae)({
437
- path: $7oI3p$path.join((0, $fac425c10fbbada5$export$a7c5707626fc90f), "Library", "Application Support", "Firefox", "Profiles"),
714
+ }
715
+ $30ef0e3ec1246110$var$_FirefoxCookieQueryStrategy_instances = new WeakSet(), $30ef0e3ec1246110$var$_FirefoxCookieQueryStrategy_getFirefoxCookie = function _FirefoxCookieQueryStrategy_getFirefoxCookie({ name: name, domain: domain }) {
716
+ return $30ef0e3ec1246110$var$__awaiter(this, void 0, void 0, function*() {
717
+ const files = (0, $7fc3e7715e6e0e1c$export$2c9faf86071156ae)({
718
+ path: $cDXzb$path.join((0, $9d2024493eb3a873$export$a7c5707626fc90f), "Library", "Application Support", "Firefox", "Profiles"),
438
719
  name: "cookies.sqlite"
439
720
  });
440
- const fn = async (file)=>{
441
- return await this.#queryCookiesDb(file, name, domain);
442
- };
443
- const all = await Promise.all(files.map(fn));
721
+ const fn = (file)=>$30ef0e3ec1246110$var$__awaiter(this, void 0, void 0, function*() {
722
+ return yield $30ef0e3ec1246110$var$__classPrivateFieldGet(this, $30ef0e3ec1246110$var$_FirefoxCookieQueryStrategy_instances, "m", $30ef0e3ec1246110$var$_FirefoxCookieQueryStrategy_queryCookiesDb).call(this, file, name, domain);
723
+ });
724
+ const all = yield Promise.all(files.map(fn));
725
+ // flatten
444
726
  return all.flat();
445
- }
446
- async #queryCookiesDb(file, name1, domain1) {
447
- if (file && !(0, $7oI3p$fs.existsSync)(file)) throw new Error(`File ${file} does not exist`);
727
+ });
728
+ }, $30ef0e3ec1246110$var$_FirefoxCookieQueryStrategy_queryCookiesDb = function _FirefoxCookieQueryStrategy_queryCookiesDb(file, name, domain) {
729
+ return $30ef0e3ec1246110$var$__awaiter(this, void 0, void 0, function*() {
730
+ if (file && !(0, $cDXzb$fs.existsSync)(file)) throw new Error(`File ${file} does not exist`);
448
731
  let sql;
449
732
  //language=SQL
450
733
  sql = "SELECT value, name, host FROM moz_cookies";
451
- const { specifiedName: specifiedName , specifiedDomain: specifiedDomain } = (0, $b744d19cc39f964e$export$da22813e5a2ec500)({
452
- name: name1,
453
- domain: domain1
734
+ const { specifiedName: specifiedName, specifiedDomain: specifiedDomain } = (0, $42f062ccbc5d3597$export$da22813e5a2ec500)({
735
+ name: name,
736
+ domain: domain
454
737
  });
455
738
  if (specifiedName || specifiedDomain) {
456
739
  sql += ` WHERE `;
457
740
  if (specifiedName) {
458
- sql += `name = '${name1}'`;
741
+ sql += `name = '${name}'`;
459
742
  if (specifiedDomain) sql += ` AND `;
460
743
  }
461
- if (specifiedDomain) sql += `host LIKE '${domain1}';`;
744
+ if (specifiedDomain) sql += `host LIKE '${domain}';`;
462
745
  }
463
746
  const rowTransform = (row)=>{
464
747
  // row is object key by column name
@@ -470,7 +753,7 @@ class $7bb7da9a77b2fd99$export$2e2bcd8739ae039 {
470
753
  };
471
754
  };
472
755
  try {
473
- return await (0, $a085b524d8ee9fce$export$f19f611d1fa7c6f3)({
756
+ return yield (0, $d14be1ef1a9958a3$export$f2540d44620bb212)({
474
757
  file: file,
475
758
  sql: sql,
476
759
  rowTransform: rowTransform
@@ -479,90 +762,46 @@ class $7bb7da9a77b2fd99$export$2e2bcd8739ae039 {
479
762
  console.error(`Error querying ${file}`, e);
480
763
  return [];
481
764
  }
482
- }
483
- }
484
-
485
-
486
- class $fad6f51bd5c7bae2$export$2e2bcd8739ae039 {
487
- browserName = "Safari";
488
- async queryCookies(name, domain) {
489
- return [];
490
- }
491
- }
492
-
493
-
494
-
495
-
496
-
497
-
498
- var $53a3bcc99a05dfcf$require$FileCookieStore = $7oI3p$toughcookiefilestore.FileCookieStore;
499
- const $53a3bcc99a05dfcf$export$6c62df16f2e9c7e8 = new $53a3bcc99a05dfcf$require$FileCookieStore(`${(0, $fac425c10fbbada5$export$a7b6bc01c63cdfc3)["HOME"]}/cookie-star.json`);
500
- const $53a3bcc99a05dfcf$export$928a906645f9d018 = new (0, $7oI3p$toughcookie.CookieJar)($53a3bcc99a05dfcf$export$6c62df16f2e9c7e8);
501
-
765
+ });
766
+ };
767
+ var $30ef0e3ec1246110$export$2e2bcd8739ae039 = $30ef0e3ec1246110$var$FirefoxCookieQueryStrategy;
502
768
 
503
769
 
504
- class $e4efb16e005540de$export$2e2bcd8739ae039 {
505
- browserName = "internal";
506
- async queryCookies(name, domain) {
507
- const exportedCookies = [];
508
- // if (name.match(/[%*]/) || domain.match(/[%*]/)) {
509
- const cookies = await this.#getAllCookies();
510
- const allExportedCookies = cookies.map((cookie)=>{
511
- return this.#extracted(cookie, {
512
- name: name,
513
- domain: domain
514
- });
515
- });
516
- exportedCookies.push(...allExportedCookies);
517
- // }
518
- const wildcardRegexp = /^([*%])$/i;
519
- if (name.match(wildcardRegexp) && domain.match(wildcardRegexp)) return exportedCookies;
520
- const path = "/";
521
- if (domain != "%") {
522
- const domain1 = domain.match(/(\w+.+\w+)/gi)?.pop() ?? domain;
523
- const url = new URL("https://" + domain1);
524
- url.pathname = path;
525
- const cookies1 = await this.#getCookies(url.href);
526
- const domainCookies = cookies1.map((cookie)=>{
527
- return this.#extracted(cookie, {
528
- domain: domain,
529
- name: name
530
- });
531
- });
532
- exportedCookies.push(...domainCookies);
533
- }
534
- if (name == "%") return exportedCookies;
535
- return exportedCookies.filter((cookie)=>{
536
- return cookie.name.match((0, $68c0ed99fadee6ca$export$4eadcf0bf35a2ddb)(name)) && cookie.domain.match((0, $68c0ed99fadee6ca$export$4eadcf0bf35a2ddb)(domain));
770
+ var $2c97527478d831a2$var$__awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {
771
+ function adopt(value) {
772
+ return value instanceof P ? value : new P(function(resolve) {
773
+ resolve(value);
537
774
  });
538
775
  }
539
- #extracted(cookie, cookieSpec) {
540
- return {
541
- domain: cookie.domain ?? cookieSpec.domain,
542
- name: cookie.key ?? cookieSpec.name,
543
- value: cookie.value,
544
- expiry: cookie.expires ?? Infinity,
545
- meta: {
546
- file: "tough-cookie"
776
+ return new (P || (P = Promise))(function(resolve, reject) {
777
+ function fulfilled(value) {
778
+ try {
779
+ step(generator.next(value));
780
+ } catch (e) {
781
+ reject(e);
547
782
  }
548
- };
549
- }
550
- #getCookies(url) {
551
- return new Promise((resolve, reject)=>{
552
- // @ts-ignore
553
- return (0, $53a3bcc99a05dfcf$export$928a906645f9d018).getCookies(url, (err, cookies)=>{
554
- if (err) reject(err);
555
- else resolve(cookies ?? []);
556
- });
557
- });
783
+ }
784
+ function rejected(value) {
785
+ try {
786
+ step(generator["throw"](value));
787
+ } catch (e) {
788
+ reject(e);
789
+ }
790
+ }
791
+ function step(result) {
792
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
793
+ }
794
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
795
+ });
796
+ };
797
+ class $2c97527478d831a2$export$2e2bcd8739ae039 {
798
+ constructor(){
799
+ this.browserName = "Safari";
558
800
  }
559
- #getAllCookies() {
560
- return new Promise((resolve, reject)=>{
561
- // @ts-ignore
562
- return (0, $53a3bcc99a05dfcf$export$6c62df16f2e9c7e8).getAllCookies((err, cookies)=>{
563
- if (err) reject(err);
564
- else resolve(cookies ?? []);
565
- });
801
+ queryCookies(name, domain) {
802
+ return $2c97527478d831a2$var$__awaiter(this, void 0, void 0, function*() {
803
+ // TODO: implement
804
+ return [];
566
805
  });
567
806
  }
568
807
  }
@@ -571,60 +810,90 @@ class $e4efb16e005540de$export$2e2bcd8739ae039 {
571
810
 
572
811
 
573
812
 
574
- const $f72befa528c23ca7$var$cache = new (0, ($parcel$interopDefault($7oI3p$lrucache)))({
575
- ttl: 2000,
813
+
814
+
815
+ var $25f0c12ee73e61dc$var$__awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {
816
+ function adopt(value) {
817
+ return value instanceof P ? value : new P(function(resolve) {
818
+ resolve(value);
819
+ });
820
+ }
821
+ return new (P || (P = Promise))(function(resolve, reject) {
822
+ function fulfilled(value) {
823
+ try {
824
+ step(generator.next(value));
825
+ } catch (e) {
826
+ reject(e);
827
+ }
828
+ }
829
+ function rejected(value) {
830
+ try {
831
+ step(generator["throw"](value));
832
+ } catch (e) {
833
+ reject(e);
834
+ }
835
+ }
836
+ function step(result) {
837
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
838
+ }
839
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
840
+ });
841
+ };
842
+ const $25f0c12ee73e61dc$var$cache = new (0, ($parcel$interopDefault($cDXzb$lrucache)))({
843
+ ttl: 10000,
576
844
  max: 10
577
845
  });
578
- class $f72befa528c23ca7$export$2e2bcd8739ae039 {
579
- browserName = "all";
580
- #strategies;
846
+ class $25f0c12ee73e61dc$export$2e2bcd8739ae039 {
581
847
  constructor(){
582
- this.#strategies = [
583
- (0, $e4efb16e005540de$export$2e2bcd8739ae039),
584
- (0, $269fe42bfd555305$export$2e2bcd8739ae039),
585
- (0, $7bb7da9a77b2fd99$export$2e2bcd8739ae039),
586
- (0, $fad6f51bd5c7bae2$export$2e2bcd8739ae039),
848
+ this.browserName = "all";
849
+ this.strategies = [
850
+ // CookieStoreQueryStrategy,
851
+ (0, $98086c00474b37ea$export$2e2bcd8739ae039),
852
+ (0, $30ef0e3ec1246110$export$2e2bcd8739ae039),
853
+ (0, $2c97527478d831a2$export$2e2bcd8739ae039)
587
854
  ].map((strategy)=>{
588
855
  return new strategy();
589
856
  });
590
857
  }
591
- async queryCookies(name, domain) {
592
- // domain = domain.match(/(\w+.+\w+)/gi)?.pop() ?? domain;
593
- const key = `${name}:${domain}`;
594
- const cached = $f72befa528c23ca7$var$cache.get(key);
595
- if (cached) return cached;
596
- if ((0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b).verbose) console.log("Querying cookies:", name, domain);
597
- const results = await Promise.all(this.#strategies.map(async (strategy)=>{
598
- // @ts-ignore
599
- return strategy.queryCookies(name, domain).then((cookies)=>{
600
- return cookies.map((cookie)=>{
601
- return (0, $7oI3p$lodash.merge)(cookie, {
602
- meta: {
603
- browser: strategy.browserName
604
- }
858
+ queryCookies(name, domain) {
859
+ return $25f0c12ee73e61dc$var$__awaiter(this, void 0, void 0, function*() {
860
+ // domain = domain.match(/(\w+.+\w+)/gi)?.pop() ?? domain;
861
+ const key = `${name}:${domain}`;
862
+ if ($25f0c12ee73e61dc$var$cache.has(key)) {
863
+ const cached = $25f0c12ee73e61dc$var$cache.get(key);
864
+ if (cached) return cached;
865
+ }
866
+ if ((0, $7157583128e389c3$export$c348dfaf65040d9b).verbose) (0, ($parcel$interopDefault($cDXzb$consola))).log("Querying cookies:", name, domain);
867
+ const results = yield (0, $5e9b668b7878158a$export$4c17d5aa5c0915ca)(this.strategies, (strategy)=>$25f0c12ee73e61dc$var$__awaiter(this, void 0, void 0, function*() {
868
+ return strategy.queryCookies(name, domain).then((cookies)=>{
869
+ return cookies.map((cookie)=>{
870
+ return (0, $cDXzb$lodash.merge)(cookie, {
871
+ meta: {
872
+ browser: strategy.browserName
873
+ }
874
+ });
875
+ });
876
+ }).catch((e)=>{
877
+ (0, ($parcel$interopDefault($cDXzb$consola))).error(`Error querying ${strategy.browserName} cookies`, e);
878
+ return [];
605
879
  });
606
- });
607
- }).catch((e)=>{
608
- console.log((0, $7oI3p$colorette.red)(`Error querying ${strategy.browserName} cookies`), e);
609
- return [];
610
- });
611
- }));
612
- const flat = results.flat();
613
- $f72befa528c23ca7$var$cache.set(`${name}:${domain}`, flat);
614
- return flat;
880
+ }));
881
+ $25f0c12ee73e61dc$var$cache.set(`${name}:${domain}`, results);
882
+ return results;
883
+ });
615
884
  }
616
885
  }
617
886
 
618
887
 
619
888
 
620
889
 
621
- function $9a6b2ace073cf1d7$export$2e2bcd8739ae039(token) {
890
+ function $1436e053d2eaa797$export$2e2bcd8739ae039(token) {
622
891
  try {
623
- const result = (0, ($parcel$interopDefault($7oI3p$jsonwebtoken))).decode(token, {
892
+ const result = (0, ($parcel$interopDefault($cDXzb$jsonwebtoken))).decode(token, {
624
893
  complete: true
625
894
  });
626
- if ((0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b).verbose && result) console.log(result);
627
- const payload = result?.payload;
895
+ if ((0, $7157583128e389c3$export$c348dfaf65040d9b).verbose && result) console.debug(result);
896
+ const payload = result === null || result === void 0 ? void 0 : result.payload;
628
897
  if (payload) {
629
898
  const exp = payload.exp;
630
899
  if (exp) {
@@ -639,208 +908,553 @@ function $9a6b2ace073cf1d7$export$2e2bcd8739ae039(token) {
639
908
  }
640
909
 
641
910
 
642
- async function $7a068a32d4710f0b$export$e6d428437cf2cacb({ name: name , domain: domain }, strategy = new (0, $f72befa528c23ca7$export$2e2bcd8739ae039)()) {
643
- const results = await strategy.queryCookies(name, domain);
644
- const allCookies = (0, $7oI3p$lodash.uniqBy)(results, JSON.stringify);
645
- if ((0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b)["require-jwt"]) {
646
- const jwtCookies = [];
647
- for (const result of allCookies){
648
- const value = result.value;
649
- if ((0, $9a6b2ace073cf1d7$export$2e2bcd8739ae039)(value)) jwtCookies.push(result);
911
+ var $8b1cf34eddfb2268$var$__awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {
912
+ function adopt(value) {
913
+ return value instanceof P ? value : new P(function(resolve) {
914
+ resolve(value);
915
+ });
916
+ }
917
+ return new (P || (P = Promise))(function(resolve, reject) {
918
+ function fulfilled(value) {
919
+ try {
920
+ step(generator.next(value));
921
+ } catch (e) {
922
+ reject(e);
923
+ }
650
924
  }
651
- return (0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b)["single"] ? [
652
- jwtCookies[0]
653
- ] : jwtCookies;
654
- } else return (0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b)["single"] ? [
655
- allCookies[0]
656
- ] : allCookies;
925
+ function rejected(value) {
926
+ try {
927
+ step(generator["throw"](value));
928
+ } catch (e) {
929
+ reject(e);
930
+ }
931
+ }
932
+ function step(result) {
933
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
934
+ }
935
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
936
+ });
937
+ };
938
+ function $8b1cf34eddfb2268$export$e6d428437cf2cacb({ name: name, domain: domain }, options) {
939
+ return $8b1cf34eddfb2268$var$__awaiter(this, void 0, void 0, function*() {
940
+ const strategy = (options === null || options === void 0 ? void 0 : options.strategy) || new (0, $25f0c12ee73e61dc$export$2e2bcd8739ae039)();
941
+ //
942
+ const results = yield strategy.queryCookies(name, domain);
943
+ const allCookies = (0, $cDXzb$lodash.uniqBy)(results, JSON.stringify);
944
+ if ((0, $7157583128e389c3$export$c348dfaf65040d9b)["require-jwt"]) {
945
+ const jwtCookies = [];
946
+ for (const result of allCookies){
947
+ const value = result.value;
948
+ if ((0, $1436e053d2eaa797$export$2e2bcd8739ae039)(value)) jwtCookies.push(result);
949
+ }
950
+ return (0, $7157583128e389c3$export$c348dfaf65040d9b)["single"] ? [
951
+ jwtCookies[0]
952
+ ] : jwtCookies;
953
+ } else return (0, $7157583128e389c3$export$c348dfaf65040d9b)["single"] ? [
954
+ allCookies[0]
955
+ ] : allCookies;
956
+ });
657
957
  }
658
958
 
659
959
 
660
960
 
661
- async function $8481e2034946cc4b$export$4be65e66cfa2648a(params) {
662
- const cookies = await (0, $7a068a32d4710f0b$export$e6d428437cf2cacb)(params, new (0, $f72befa528c23ca7$export$2e2bcd8739ae039)());
663
- if (Array.isArray(cookies) && cookies.length > 0) return cookies.find((cookie)=>cookie != null);
664
- else throw new Error("Cookie not found");
961
+ var $d281d3a55494cb83$var$__awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {
962
+ function adopt(value) {
963
+ return value instanceof P ? value : new P(function(resolve) {
964
+ resolve(value);
965
+ });
966
+ }
967
+ return new (P || (P = Promise))(function(resolve, reject) {
968
+ function fulfilled(value) {
969
+ try {
970
+ step(generator.next(value));
971
+ } catch (e) {
972
+ reject(e);
973
+ }
974
+ }
975
+ function rejected(value) {
976
+ try {
977
+ step(generator["throw"](value));
978
+ } catch (e) {
979
+ reject(e);
980
+ }
981
+ }
982
+ function step(result) {
983
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
984
+ }
985
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
986
+ });
987
+ };
988
+ function $d281d3a55494cb83$export$4be65e66cfa2648a(params) {
989
+ return $d281d3a55494cb83$var$__awaiter(this, void 0, void 0, function*() {
990
+ //
991
+ const cookies = yield (0, $8b1cf34eddfb2268$export$e6d428437cf2cacb)(params, {
992
+ strategy: new (0, $25f0c12ee73e61dc$export$2e2bcd8739ae039)()
993
+ });
994
+ if (Array.isArray(cookies) && cookies.length > 0) return cookies.find((cookie)=>cookie != null);
995
+ else throw new Error("Cookie not found");
996
+ });
665
997
  }
666
998
 
667
999
 
668
1000
 
669
1001
 
670
1002
 
671
- async function $1a92ef2038b55530$export$e5637297e9eb6f2e(params) {
672
- const cookies = await (0, $7a068a32d4710f0b$export$e6d428437cf2cacb)(params, new (0, $269fe42bfd555305$export$2e2bcd8739ae039)());
673
- if (cookies.length == 0) throw new Error("Cookie not found");
674
- return cookies.find((0, $d66f40b581ba8bfa$export$963c8d651337e4a4));
1003
+ var $52913203ed6cd470$var$__awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {
1004
+ function adopt(value) {
1005
+ return value instanceof P ? value : new P(function(resolve) {
1006
+ resolve(value);
1007
+ });
1008
+ }
1009
+ return new (P || (P = Promise))(function(resolve, reject) {
1010
+ function fulfilled(value) {
1011
+ try {
1012
+ step(generator.next(value));
1013
+ } catch (e) {
1014
+ reject(e);
1015
+ }
1016
+ }
1017
+ function rejected(value) {
1018
+ try {
1019
+ step(generator["throw"](value));
1020
+ } catch (e) {
1021
+ reject(e);
1022
+ }
1023
+ }
1024
+ function step(result) {
1025
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
1026
+ }
1027
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
1028
+ });
1029
+ };
1030
+ function $52913203ed6cd470$export$e5637297e9eb6f2e(params) {
1031
+ return $52913203ed6cd470$var$__awaiter(this, void 0, void 0, function*() {
1032
+ const cookies = yield (0, $8b1cf34eddfb2268$export$e6d428437cf2cacb)(params, {
1033
+ strategy: new (0, $98086c00474b37ea$export$2e2bcd8739ae039)()
1034
+ });
1035
+ if (cookies.length == 0) throw new Error("Cookie not found");
1036
+ return cookies.find((0, $f95e0f6bbc85fb44$export$963c8d651337e4a4));
1037
+ });
675
1038
  }
676
1039
 
677
1040
 
678
1041
 
679
1042
 
680
- async function $f9b70200901ad17d$export$c44c5fdef43f0941(params) {
681
- const cookies = await (0, $7a068a32d4710f0b$export$e6d428437cf2cacb)(params, new (0, $7bb7da9a77b2fd99$export$2e2bcd8739ae039)());
682
- if (Array.isArray(cookies) && cookies.length > 0) return cookies.find((cookie)=>cookie != null);
683
- else throw new Error("Cookie not found");
1043
+ var $e815b5ca89da9daf$var$__awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {
1044
+ function adopt(value) {
1045
+ return value instanceof P ? value : new P(function(resolve) {
1046
+ resolve(value);
1047
+ });
1048
+ }
1049
+ return new (P || (P = Promise))(function(resolve, reject) {
1050
+ function fulfilled(value) {
1051
+ try {
1052
+ step(generator.next(value));
1053
+ } catch (e) {
1054
+ reject(e);
1055
+ }
1056
+ }
1057
+ function rejected(value) {
1058
+ try {
1059
+ step(generator["throw"](value));
1060
+ } catch (e) {
1061
+ reject(e);
1062
+ }
1063
+ }
1064
+ function step(result) {
1065
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
1066
+ }
1067
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
1068
+ });
1069
+ };
1070
+ function $e815b5ca89da9daf$export$c44c5fdef43f0941(params) {
1071
+ return $e815b5ca89da9daf$var$__awaiter(this, void 0, void 0, function*() {
1072
+ const cookies = yield (0, $8b1cf34eddfb2268$export$e6d428437cf2cacb)(params, {
1073
+ strategy: new (0, $30ef0e3ec1246110$export$2e2bcd8739ae039)()
1074
+ });
1075
+ if (Array.isArray(cookies) && cookies.length > 0) return cookies.find((cookie)=>cookie != null);
1076
+ else throw new Error("Cookie not found");
1077
+ });
684
1078
  }
685
1079
 
686
1080
 
687
1081
 
688
1082
 
689
-
690
- function $9c43c2ed82e63570$export$9abc0a414b0d8b8f(results) {
1083
+ function $664bd69618c869a2$export$9abc0a414b0d8b8f(results) {
691
1084
  // sort by name and expiry descending
692
1085
  // takes the latest expiry for each name
693
- const orderedResults = (0, $7oI3p$lodash.orderBy)(results, [
1086
+ const orderedResults = (0, $cDXzb$lodash.orderBy)(results, [
694
1087
  "name",
695
1088
  "expiry"
696
1089
  ], [
697
1090
  "asc",
698
1091
  "desc"
699
1092
  ]);
700
- return (0, $7oI3p$lodash.uniqBy)(orderedResults, (r)=>r.name).map((r)=>r.name + "=" + r.value).join("; ");
1093
+ return (0, $cDXzb$lodash.uniqBy)(orderedResults, (r)=>r.name).map((r)=>r.name + "=" + r.value).join("; ");
701
1094
  }
702
1095
 
703
1096
 
704
1097
 
705
- async function $300d8b33187a203c$export$4d2e9997e2c23417({ name: name , domain: domain }) {
706
- const cookies = await (0, $7a068a32d4710f0b$export$e6d428437cf2cacb)({
707
- name: name,
708
- domain: domain
709
- }, new (0, $f72befa528c23ca7$export$2e2bcd8739ae039)());
710
- if (cookies.length == 0) throw new Error("Cookie not found");
711
- const results = await (0, $7a068a32d4710f0b$export$e6d428437cf2cacb)({
712
- name: name,
713
- domain: domain
714
- });
715
- const groupedByFile = (0, $7oI3p$lodash.groupBy)(results, (r)=>r.meta?.file);
716
- return Object.keys(groupedByFile).map((file)=>{
717
- const results = groupedByFile[file];
718
- return (0, $9c43c2ed82e63570$export$9abc0a414b0d8b8f)(results);
719
- });
720
- }
721
1098
 
722
1099
 
723
1100
 
724
1101
 
725
1102
 
726
- async function $4ffeaeb7bb3c0319$export$cfc0723de5712e57({ name: name , domain: domain }) {
727
- const cookies = await (0, $7a068a32d4710f0b$export$e6d428437cf2cacb)({
728
- name: name,
729
- domain: domain
730
- }, new (0, $f72befa528c23ca7$export$2e2bcd8739ae039)());
731
- if (cookies.length == 0) throw new Error("Cookie not found");
732
- const results = await (0, $7a068a32d4710f0b$export$e6d428437cf2cacb)({
733
- name: name,
734
- domain: domain
735
- });
736
- return (0, $9c43c2ed82e63570$export$9abc0a414b0d8b8f)(results);
1103
+ const $acbfc7a2071b8ab3$export$91893587392f8cd6 = {
1104
+ strategy: new (0, $25f0c12ee73e61dc$export$2e2bcd8739ae039)()
1105
+ };
1106
+ function $acbfc7a2071b8ab3$export$e2c944565c7d91c0(options) {
1107
+ return (0, $cDXzb$lodash.merge)($acbfc7a2071b8ab3$export$91893587392f8cd6, options);
737
1108
  }
738
1109
 
739
1110
 
740
1111
 
1112
+ function $2ad1e2cf1e6114b4$export$dc0c2da7e018aa1(cookies, options) {
1113
+ if (options === null || options === void 0 ? void 0 : options.removeExpired) return cookies.filter((c)=>{
1114
+ const expiry = c.expiry;
1115
+ if (expiry === undefined) return true;
1116
+ else if (expiry === "Infinity") return true;
1117
+ else return expiry.getTime() > Date.now();
1118
+ });
1119
+ if (options === null || options === void 0 ? void 0 : options.limit) return cookies.slice(0, options.limit);
1120
+ return (0, $cDXzb$lodash.uniqBy)(cookies, JSON.stringify);
1121
+ }
1122
+
1123
+
1124
+ var $024af89e32b5c6e2$var$__awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {
1125
+ function adopt(value) {
1126
+ return value instanceof P ? value : new P(function(resolve) {
1127
+ resolve(value);
1128
+ });
1129
+ }
1130
+ return new (P || (P = Promise))(function(resolve, reject) {
1131
+ function fulfilled(value) {
1132
+ try {
1133
+ step(generator.next(value));
1134
+ } catch (e) {
1135
+ reject(e);
1136
+ }
1137
+ }
1138
+ function rejected(value) {
1139
+ try {
1140
+ step(generator["throw"](value));
1141
+ } catch (e) {
1142
+ reject(e);
1143
+ }
1144
+ }
1145
+ function step(result) {
1146
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
1147
+ }
1148
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
1149
+ });
1150
+ };
1151
+ function $024af89e32b5c6e2$export$a65902517ae87ba8(cookieSpec, options) {
1152
+ return $024af89e32b5c6e2$var$__awaiter(this, void 0, void 0, function*() {
1153
+ const optsWithDefaults = (0, $acbfc7a2071b8ab3$export$e2c944565c7d91c0)(options);
1154
+ const fn = (cs)=>(0, $8b1cf34eddfb2268$export$e6d428437cf2cacb)(cs, optsWithDefaults);
1155
+ if (Array.isArray(cookieSpec)) {
1156
+ const cookiesForMultiSpec = yield (0, $5e9b668b7878158a$export$4c17d5aa5c0915ca)(cookieSpec, (cs)=>$024af89e32b5c6e2$var$__awaiter(this, void 0, void 0, function*() {
1157
+ return yield fn(cs);
1158
+ }));
1159
+ return (0, $2ad1e2cf1e6114b4$export$dc0c2da7e018aa1)(cookiesForMultiSpec, options);
1160
+ } else {
1161
+ const cookiesForSingleSpec = yield fn(cookieSpec);
1162
+ return (0, $2ad1e2cf1e6114b4$export$dc0c2da7e018aa1)(cookiesForSingleSpec, options);
1163
+ }
1164
+ });
1165
+ }
741
1166
 
742
1167
 
1168
+ var $429525b331c0e3ef$var$__awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {
1169
+ function adopt(value) {
1170
+ return value instanceof P ? value : new P(function(resolve) {
1171
+ resolve(value);
1172
+ });
1173
+ }
1174
+ return new (P || (P = Promise))(function(resolve, reject) {
1175
+ function fulfilled(value) {
1176
+ try {
1177
+ step(generator.next(value));
1178
+ } catch (e) {
1179
+ reject(e);
1180
+ }
1181
+ }
1182
+ function rejected(value) {
1183
+ try {
1184
+ step(generator["throw"](value));
1185
+ } catch (e) {
1186
+ reject(e);
1187
+ }
1188
+ }
1189
+ function step(result) {
1190
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
1191
+ }
1192
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
1193
+ });
1194
+ };
1195
+ function $429525b331c0e3ef$export$4d2e9997e2c23417(cookieSpec) {
1196
+ return $429525b331c0e3ef$var$__awaiter(this, void 0, void 0, function*() {
1197
+ const cookies = yield (0, $024af89e32b5c6e2$export$a65902517ae87ba8)(cookieSpec);
1198
+ if (cookies.length == 0) throw new Error("Cookie not found");
1199
+ const groupedByFile = (0, $cDXzb$lodash.groupBy)(cookies, (r)=>{
1200
+ var _a;
1201
+ return (_a = r.meta) === null || _a === void 0 ? void 0 : _a.file;
1202
+ });
1203
+ return Object.keys(groupedByFile).map((file)=>{
1204
+ const results = groupedByFile[file];
1205
+ return (0, $664bd69618c869a2$export$9abc0a414b0d8b8f)(results);
1206
+ });
1207
+ });
1208
+ }
743
1209
 
744
1210
 
745
1211
 
746
1212
 
747
1213
 
748
- async function $cfc07ae4aa2c7e44$export$b24a545a0b39f491(url, options = {}, fetch = (0, $7oI3p$crossfetch.fetch)) {
749
- const defaultOptions = {
750
- headers: {
751
- "User-Agent": new (0, ($parcel$interopDefault($7oI3p$useragents)))().toString()
752
- },
753
- redirect: "manual"
754
- };
755
- const url2 = `${url}`;
756
- const url1 = new URL(url2);
757
- const domain = url1.hostname.replace(/^.*(\.\w+\.\w+)$/, (match, p1)=>{
758
- return `%${p1}`;
759
- });
760
- const cookieSpec = {
761
- name: "%",
762
- domain: domain
763
- };
764
- // const cookies: string[] = await getGroupedRenderedCookies(cookieSpec).catch(
765
- // () => []
766
- // );
767
- // const cookie = cookies.pop();
768
- const cookie = await (0, $4ffeaeb7bb3c0319$export$cfc0723de5712e57)(cookieSpec).catch(()=>"");
769
- const headers = {};
770
- if (cookie.length > 0) (0, $7oI3p$lodash.merge)(headers, {
771
- Cookie: cookie
772
- });
773
- const newOptions1 = (0, $7oI3p$lodash.merge)(defaultOptions, options, {
774
- headers: headers
775
- });
776
- try {
777
- const res = await fetch(url2, newOptions1);
778
- const headers1 = [];
779
- res.headers.forEach((value, key)=>{
780
- headers1.push([
781
- key,
782
- value
783
- ]);
784
- });
785
- for (const [key, value] of headers1)if (key === "set-cookie") {
786
- await (0, $53a3bcc99a05dfcf$export$928a906645f9d018).setCookie(value, url2);
787
- if ((0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b).verbose) console.log((0, $7oI3p$colorette.blue)(`Set-Cookie: ${(0, $7oI3p$colorette.yellow)(value)} ${(0, $7oI3p$colorette.yellow)(url2)}`));
788
- // const cookie = tough.parse(value);
789
- // if (cookie instanceof Cookie) {
790
- // await memoryCookieStore.putCookie(cookie);
791
- // }
792
- }
793
- const newUrl = res.headers.get("location");
794
- if (res.redirected || newUrl && newUrl !== url2) {
795
- if ((0, $ef3d5dc2fd8022f5$export$c348dfaf65040d9b).verbose) console.log((0, $7oI3p$colorette.blue)(`Redirected to `), (0, $7oI3p$colorette.yellow)(newUrl));
796
- return $cfc07ae4aa2c7e44$export$b24a545a0b39f491(newUrl, newOptions1);
797
- }
798
- const arrayBuffer1 = res.arrayBuffer();
799
- async function arrayBuffer() {
800
- return arrayBuffer1;
801
- }
802
- async function buffer() {
803
- return arrayBuffer().then(Buffer.from);
804
- }
805
- async function text() {
806
- return buffer().then((buffer)=>buffer.toString("utf8"));
807
- }
808
- async function json() {
809
- return text().then((text)=>(0, ($parcel$interopDefault($7oI3p$destr)))(text));
810
- }
811
- async function formData() {
812
- const urlSearchParams = await text().then((text)=>new URLSearchParams(text));
813
- const formData = new FormData();
814
- for (const [key, value] of urlSearchParams.entries())formData.append(key, value);
815
- return formData;
816
- }
817
- const res1 = res;
818
- const source2 = {
819
- arrayBuffer: arrayBuffer,
820
- text: text,
821
- json: json,
822
- buffer: buffer,
823
- formData: formData
824
- };
825
- return (0, $7oI3p$lodash.merge)(res1, source2);
826
- } catch (e) {
827
- throw e;
1214
+ var $0ac28e04b308724d$var$__awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {
1215
+ function adopt(value) {
1216
+ return value instanceof P ? value : new P(function(resolve) {
1217
+ resolve(value);
1218
+ });
828
1219
  }
1220
+ return new (P || (P = Promise))(function(resolve, reject) {
1221
+ function fulfilled(value) {
1222
+ try {
1223
+ step(generator.next(value));
1224
+ } catch (e) {
1225
+ reject(e);
1226
+ }
1227
+ }
1228
+ function rejected(value) {
1229
+ try {
1230
+ step(generator["throw"](value));
1231
+ } catch (e) {
1232
+ reject(e);
1233
+ }
1234
+ }
1235
+ function step(result) {
1236
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
1237
+ }
1238
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
1239
+ });
1240
+ };
1241
+ function $0ac28e04b308724d$export$cfc0723de5712e57(cookieSpec, strategy = new (0, $25f0c12ee73e61dc$export$2e2bcd8739ae039)()) {
1242
+ return $0ac28e04b308724d$var$__awaiter(this, void 0, void 0, function*() {
1243
+ const cookies = yield (0, $024af89e32b5c6e2$export$a65902517ae87ba8)(cookieSpec, {
1244
+ strategy: strategy
1245
+ });
1246
+ return cookies.length > 0 ? (0, $664bd69618c869a2$export$9abc0a414b0d8b8f)(cookies) : "";
1247
+ });
829
1248
  }
830
1249
 
831
1250
 
832
- var $d5b6386167d289d2$exports = {};
1251
+ // noinspection JSUnusedGlobalSymbols,ExceptionCaughtLocallyJS
833
1252
 
834
1253
 
835
- var $3d7e27b54f670f46$exports = {};
836
1254
 
837
1255
 
838
- var $6c197c88880e045c$exports = {};
839
1256
 
840
1257
 
841
- $parcel$exportWildcard(module.exports, $d5b6386167d289d2$exports);
842
- $parcel$exportWildcard(module.exports, $3d7e27b54f670f46$exports);
843
- $parcel$exportWildcard(module.exports, $6c197c88880e045c$exports);
1258
+ function $ab89e6095fce7dcd$export$f266452a5050185d(url) {
1259
+ if (!url || url === "") return [];
1260
+ const urlObj = typeof url === "string" ? new URL(url) : url;
1261
+ const hostnameParts = urlObj.hostname.split(".");
1262
+ const topLevelDomain = hostnameParts.slice(-2).join(".");
1263
+ const cookieSpecs = [
1264
+ {
1265
+ name: "%",
1266
+ domain: `%.${topLevelDomain}`
1267
+ },
1268
+ {
1269
+ name: "%",
1270
+ domain: urlObj.hostname
1271
+ },
1272
+ {
1273
+ name: "%",
1274
+ domain: topLevelDomain
1275
+ }
1276
+ ];
1277
+ return (0, $cDXzb$lodash.uniqBy)(cookieSpecs, JSON.stringify);
1278
+ }
1279
+
1280
+
1281
+
1282
+ var $9f9fb10cbd238704$var$__awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {
1283
+ function adopt(value) {
1284
+ return value instanceof P ? value : new P(function(resolve) {
1285
+ resolve(value);
1286
+ });
1287
+ }
1288
+ return new (P || (P = Promise))(function(resolve, reject) {
1289
+ function fulfilled(value) {
1290
+ try {
1291
+ step(generator.next(value));
1292
+ } catch (e) {
1293
+ reject(e);
1294
+ }
1295
+ }
1296
+ function rejected(value) {
1297
+ try {
1298
+ step(generator["throw"](value));
1299
+ } catch (e) {
1300
+ reject(e);
1301
+ }
1302
+ }
1303
+ function step(result) {
1304
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
1305
+ }
1306
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
1307
+ });
1308
+ };
1309
+ if (typeof (0, $cDXzb$crossfetch.fetch) !== "function") throw new Error("fetch is not a function");
1310
+ function $9f9fb10cbd238704$var$constructUserAgent(platform = "Macintosh; Intel Mac OS X 10_15_7", engine = "AppleWebKit/537.36 (KHTML, like Gecko)", browser = "Chrome/118.0.0.0", layout = "Safari/537.36") {
1311
+ return [
1312
+ platform,
1313
+ engine,
1314
+ browser,
1315
+ layout
1316
+ ].join(" ");
1317
+ }
1318
+ const $9f9fb10cbd238704$var$userAgent = $9f9fb10cbd238704$var$constructUserAgent();
1319
+ function $9f9fb10cbd238704$export$b24a545a0b39f491(url, options = {}, fetch = (0, $cDXzb$crossfetch.fetch), originalRequest) {
1320
+ var _a;
1321
+ return $9f9fb10cbd238704$var$__awaiter(this, void 0, void 0, function*() {
1322
+ if (typeof fetch !== "function") {
1323
+ const message = "fetch is not a function";
1324
+ (0, ($parcel$interopDefault($cDXzb$consola))).error(message);
1325
+ throw new Error(message);
1326
+ }
1327
+ const originalRequest1 = originalRequest || {
1328
+ url: url,
1329
+ options: options
1330
+ };
1331
+ const headers = {
1332
+ "User-Agent": $9f9fb10cbd238704$var$userAgent
1333
+ };
1334
+ const defaultOptions = {
1335
+ headers: headers,
1336
+ redirect: "manual"
1337
+ };
1338
+ const url2 = `${url}`;
1339
+ const url1 = new URL(url2);
1340
+ (0, ($parcel$interopDefault($cDXzb$consola))).start("fetchWithCookies", url2);
1341
+ const cookieSpecs = (0, $ab89e6095fce7dcd$export$f266452a5050185d)(url1);
1342
+ const renderedCookie = yield (0, $0ac28e04b308724d$export$cfc0723de5712e57)(cookieSpecs).catch((err)=>{
1343
+ (0, ($parcel$interopDefault($cDXzb$consola))).error(err);
1344
+ return "";
1345
+ });
1346
+ if (renderedCookie) headers["Cookie"] = renderedCookie;
1347
+ else (0, ($parcel$interopDefault($cDXzb$consola))).info("No cookies found for this request");
1348
+ if ((0, $7157583128e389c3$export$c348dfaf65040d9b)["dump-request-headers"]) {
1349
+ (0, ($parcel$interopDefault($cDXzb$consola))).info("Request URL:", url1.href);
1350
+ (0, ($parcel$interopDefault($cDXzb$consola))).info("Request headers:", headers);
1351
+ }
1352
+ const newOptions1 = (0, $cDXzb$lodash.merge)(defaultOptions, {
1353
+ headers: headers
1354
+ }, options);
1355
+ try {
1356
+ const res = yield fetch(url1, newOptions1);
1357
+ // noinspection JSMismatchedCollectionQueryUpdate
1358
+ const headers = [];
1359
+ res.headers.forEach((value, key)=>{
1360
+ headers.push([
1361
+ key,
1362
+ value
1363
+ ]);
1364
+ });
1365
+ // for (const [key, value] of headers) {
1366
+ // if (key === "set-cookie") {
1367
+ // const cookieJar1 = await cookieJarPromise;
1368
+ // await cookieJar1.setCookie(value, url2);
1369
+ // if (parsedArgs.verbose) {
1370
+ // console.log(blue(`Set-Cookie:`), yellow(value), yellow(url2));
1371
+ // }
1372
+ // }
1373
+ // }
1374
+ const newUrl = (_a = res.headers.get("location")) !== null && _a !== void 0 ? _a : res.url;
1375
+ // const sameHost = new URL(newUrl).host === url1.host;
1376
+ if (res.status == 301 || res.status == 302) // follow the redirect
1377
+ {
1378
+ if (newUrl && newUrl !== url2) {
1379
+ if ((0, $7157583128e389c3$export$c348dfaf65040d9b).verbose || (0, $7157583128e389c3$export$c348dfaf65040d9b)["dump-response-headers"]) (0, ($parcel$interopDefault($cDXzb$consola))).info(`Redirected to `, newUrl);
1380
+ return $9f9fb10cbd238704$export$b24a545a0b39f491(//
1381
+ newUrl, newOptions1, fetch, originalRequest1);
1382
+ }
1383
+ }
1384
+ if (res.status == 303 && newUrl && newUrl !== url2) {
1385
+ // follow the redirect with GET
1386
+ let newOptions2 = {};
1387
+ switch(newOptions1.method){
1388
+ case "POST":
1389
+ case "PUT":
1390
+ case "DELETE":
1391
+ (0, $cDXzb$lodash.merge)(newOptions2, newOptions1, {
1392
+ method: "GET"
1393
+ });
1394
+ newOptions2.body = undefined; // TODO: is this needed?
1395
+ break;
1396
+ case "HEAD":
1397
+ case "GET":
1398
+ (0, $cDXzb$lodash.merge)(newOptions2, newOptions1);
1399
+ newOptions2.body = undefined; // TODO: is this needed?
1400
+ break;
1401
+ default:
1402
+ (0, $cDXzb$lodash.merge)(newOptions2, newOptions1);
1403
+ break;
1404
+ }
1405
+ if ((0, $7157583128e389c3$export$c348dfaf65040d9b).verbose) console.log(`Redirected to `, newUrl);
1406
+ return $9f9fb10cbd238704$export$b24a545a0b39f491(//
1407
+ newUrl, newOptions2, fetch, originalRequest1);
1408
+ }
1409
+ // all deserialize functions will use the arraybuffer
1410
+ const arrayBufferPromise = res.arrayBuffer();
1411
+ const bufferPromise = arrayBufferPromise.then(Buffer.from);
1412
+ function arrayBuffer() {
1413
+ return $9f9fb10cbd238704$var$__awaiter(this, void 0, void 0, function*() {
1414
+ return arrayBufferPromise;
1415
+ });
1416
+ }
1417
+ function buffer() {
1418
+ return $9f9fb10cbd238704$var$__awaiter(this, void 0, void 0, function*() {
1419
+ return bufferPromise;
1420
+ });
1421
+ }
1422
+ function text() {
1423
+ return $9f9fb10cbd238704$var$__awaiter(this, void 0, void 0, function*() {
1424
+ const buffer1 = yield bufferPromise;
1425
+ return buffer1.toString("utf8");
1426
+ });
1427
+ }
1428
+ function json() {
1429
+ return $9f9fb10cbd238704$var$__awaiter(this, void 0, void 0, function*() {
1430
+ const text1 = yield text();
1431
+ return (0, ($parcel$interopDefault($cDXzb$destr)))(text1);
1432
+ });
1433
+ }
1434
+ function formData() {
1435
+ return $9f9fb10cbd238704$var$__awaiter(this, void 0, void 0, function*() {
1436
+ const urlSearchParams = yield text().then((text)=>new URLSearchParams(text));
1437
+ const formData = new FormData();
1438
+ for (const [key, value] of urlSearchParams.entries())formData.append(key, value);
1439
+ return formData;
1440
+ });
1441
+ }
1442
+ const res1 = res;
1443
+ const source2 = {
1444
+ arrayBuffer: arrayBuffer,
1445
+ text: text,
1446
+ json: json,
1447
+ buffer: buffer,
1448
+ formData: formData
1449
+ };
1450
+ return (0, $cDXzb$lodash.merge)(res1, source2);
1451
+ } catch (e) {
1452
+ throw e;
1453
+ }
1454
+ });
1455
+ }
1456
+
1457
+
844
1458
 
845
1459
 
846
1460
  //# sourceMappingURL=index.js.map