@cpu-utils/headless 1.0.2 → 1.1.0

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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=chromeFetch.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chromeFetch.test.d.ts","sourceRoot":"","sources":["../src/chromeFetch.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const node_test_1 = require("node:test");
37
+ const assert = __importStar(require("node:assert"));
38
+ // Mock chrome-cookies-secure before importing the module under test
39
+ const mockGetCookiesPromised = node_test_1.mock.fn(async (_url, _format, _profile) => 'session=abc123; token=xyz');
40
+ node_test_1.mock.module('chrome-cookies-secure', {
41
+ namedExports: {
42
+ getCookiesPromised: mockGetCookiesPromised,
43
+ },
44
+ });
45
+ (0, node_test_1.describe)('chromeFetch', () => {
46
+ (0, node_test_1.afterEach)(() => {
47
+ mockGetCookiesPromised.mock.resetCalls();
48
+ node_test_1.mock.restoreAll();
49
+ });
50
+ (0, node_test_1.it)('should fetch with Chrome cookies and default headers', async () => {
51
+ const { chromeFetch, CHROME_DEFAULT_HEADERS } = await Promise.resolve().then(() => __importStar(require('./chromeFetch')));
52
+ mockGetCookiesPromised.mock.mockImplementationOnce(async (_url, _format, _profile) => 'session=abc123; token=xyz; user=张三');
53
+ const mockFetch = node_test_1.mock.method(globalThis, 'fetch', async () => {
54
+ return new Response('ok', { status: 200 });
55
+ });
56
+ await chromeFetch('https://example.com');
57
+ // Verify getCookiesPromised was called
58
+ assert.strictEqual(mockGetCookiesPromised.mock.calls.length, 1);
59
+ assert.strictEqual(mockGetCookiesPromised.mock.calls[0].arguments[0], 'https://example.com');
60
+ // Verify fetch was called
61
+ assert.strictEqual(mockFetch.mock.calls.length, 1);
62
+ const [fetchUrl, fetchInit] = mockFetch.mock.calls[0].arguments;
63
+ assert.strictEqual(fetchUrl, 'https://example.com');
64
+ // Verify headers include defaults and encoded cookies
65
+ const headers = fetchInit?.headers;
66
+ // '张三' should be encoded to '%E5%BC%A0%E4%B8%89'
67
+ assert.strictEqual(headers['Cookie'], 'session=abc123; token=xyz; user=%E5%BC%A0%E4%B8%89');
68
+ assert.strictEqual(headers['User-Agent'], CHROME_DEFAULT_HEADERS['User-Agent']);
69
+ assert.strictEqual(headers['Accept-Language'], CHROME_DEFAULT_HEADERS['Accept-Language']);
70
+ });
71
+ (0, node_test_1.it)('should allow custom headers to override defaults', async () => {
72
+ const { chromeFetch } = await Promise.resolve().then(() => __importStar(require('./chromeFetch')));
73
+ const mockFetch = node_test_1.mock.method(globalThis, 'fetch', async () => {
74
+ return new Response('ok', { status: 200 });
75
+ });
76
+ await chromeFetch('https://example.com', {
77
+ headers: { 'Accept-Language': 'zh-CN,zh;q=0.9' },
78
+ });
79
+ const [, fetchInit] = mockFetch.mock.calls[0].arguments;
80
+ const headers = fetchInit?.headers;
81
+ assert.strictEqual(headers['Accept-Language'], 'zh-CN,zh;q=0.9');
82
+ });
83
+ (0, node_test_1.it)('should pass custom profile to getChromeCookie', async () => {
84
+ const { chromeFetch } = await Promise.resolve().then(() => __importStar(require('./chromeFetch')));
85
+ node_test_1.mock.method(globalThis, 'fetch', async () => {
86
+ return new Response('ok', { status: 200 });
87
+ });
88
+ await chromeFetch('https://example.com', undefined, 'Profile 1');
89
+ const call = mockGetCookiesPromised.mock.calls[0];
90
+ assert.strictEqual(call.arguments[2], 'Profile 1');
91
+ });
92
+ (0, node_test_1.it)('should pass through fetch init options like method and body', async () => {
93
+ const { chromeFetch } = await Promise.resolve().then(() => __importStar(require('./chromeFetch')));
94
+ const mockFetch = node_test_1.mock.method(globalThis, 'fetch', async () => {
95
+ return new Response('ok', { status: 200 });
96
+ });
97
+ await chromeFetch('https://example.com/api', {
98
+ method: 'POST',
99
+ body: JSON.stringify({ key: 'value' }),
100
+ });
101
+ const [, fetchInit] = mockFetch.mock.calls[0].arguments;
102
+ assert.strictEqual(fetchInit?.method, 'POST');
103
+ assert.strictEqual(fetchInit?.body, JSON.stringify({ key: 'value' }));
104
+ });
105
+ (0, node_test_1.it)('should export CHROME_DEFAULT_HEADERS', async () => {
106
+ const { CHROME_DEFAULT_HEADERS } = await Promise.resolve().then(() => __importStar(require('./chromeFetch')));
107
+ assert.ok(CHROME_DEFAULT_HEADERS);
108
+ assert.ok(CHROME_DEFAULT_HEADERS['User-Agent']);
109
+ assert.ok(CHROME_DEFAULT_HEADERS['Accept']);
110
+ assert.ok(CHROME_DEFAULT_HEADERS['Accept-Language']);
111
+ });
112
+ });
113
+ //# sourceMappingURL=chromeFetch.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chromeFetch.test.js","sourceRoot":"","sources":["../src/chromeFetch.test.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,9 @@
4
4
  * This reads the current user's Chrome cookie store and returns the cookies
5
5
  * associated with the given URL as a header string (e.g. "name=value; name2=value2").
6
6
  *
7
+ * Note: If cookies contain non-ASCII characters, the values are URL-encoded to ensure
8
+ * compatibility with HTTP header standards (ByteString), which is required by fetch.
9
+ *
7
10
  * @param url - The target URL to retrieve cookies for (e.g. "https://example.com")
8
11
  * @param profile - Chrome profile to use. Defaults to 'Default'.
9
12
  * Use 'Profile 1', 'Profile 2', etc. for additional Chrome profiles.
@@ -1 +1 @@
1
- {"version":3,"file":"getChromeCookie.d.ts","sourceRoot":"","sources":["../src/getChromeCookie.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,SAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAEvF"}
1
+ {"version":3,"file":"getChromeCookie.d.ts","sourceRoot":"","sources":["../src/getChromeCookie.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,OAAO,SAAY,GAClB,OAAO,CAAC,MAAM,CAAC,CA0BjB"}
@@ -8,12 +8,38 @@ const chrome_cookies_secure_1 = require("chrome-cookies-secure");
8
8
  * This reads the current user's Chrome cookie store and returns the cookies
9
9
  * associated with the given URL as a header string (e.g. "name=value; name2=value2").
10
10
  *
11
+ * Note: If cookies contain non-ASCII characters, the values are URL-encoded to ensure
12
+ * compatibility with HTTP header standards (ByteString), which is required by fetch.
13
+ *
11
14
  * @param url - The target URL to retrieve cookies for (e.g. "https://example.com")
12
15
  * @param profile - Chrome profile to use. Defaults to 'Default'.
13
16
  * Use 'Profile 1', 'Profile 2', etc. for additional Chrome profiles.
14
17
  * @returns A promise that resolves to the cookie header string.
15
18
  */
16
19
  async function getChromeCookie(url, profile = 'Default') {
17
- return (0, chrome_cookies_secure_1.getCookiesPromised)(url, 'header', profile);
20
+ const cookieString = await (0, chrome_cookies_secure_1.getCookiesPromised)(url, 'header', profile);
21
+ if (!cookieString)
22
+ return '';
23
+ // Ensure the cookie string is a valid ByteString (ASCII 0-255) for HTTP headers.
24
+ // If it contains Unicode characters (> 255), fetch/undici will throw an error.
25
+ return cookieString
26
+ .split('; ')
27
+ .map((pair) => {
28
+ const [name, ...valueParts] = pair.split('=');
29
+ const value = valueParts.join('=');
30
+ // Only encode if the value contains non-ASCII characters
31
+ // eslint-disable-next-line no-control-regex
32
+ if (/[^\x00-\x7F]/.test(value)) {
33
+ try {
34
+ return `${name}=${encodeURIComponent(value)}`;
35
+ }
36
+ catch (e) {
37
+ // Fallback to original if encoding fails
38
+ return pair;
39
+ }
40
+ }
41
+ return pair;
42
+ })
43
+ .join('; ');
18
44
  }
19
45
  //# sourceMappingURL=getChromeCookie.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getChromeCookie.js","sourceRoot":"","sources":["../src/getChromeCookie.ts"],"names":[],"mappings":";;AAaA,0CAEC;AAfD,iEAA2D;AAE3D;;;;;;;;;;GAUG;AACI,KAAK,UAAU,eAAe,CAAC,GAAW,EAAE,OAAO,GAAG,SAAS;IACpE,OAAO,IAAA,0CAAkB,EAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"getChromeCookie.js","sourceRoot":"","sources":["../src/getChromeCookie.ts"],"names":[],"mappings":";;AAgBA,0CA6BC;AA7CD,iEAA2D;AAE3D;;;;;;;;;;;;;GAaG;AACI,KAAK,UAAU,eAAe,CACnC,GAAW,EACX,OAAO,GAAG,SAAS;IAEnB,MAAM,YAAY,GAAW,MAAM,IAAA,0CAAkB,EAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE9E,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,CAAC;IAE7B,iFAAiF;IACjF,+EAA+E;IAC/E,OAAO,YAAY;SAChB,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEnC,yDAAyD;QACzD,4CAA4C;QAC5C,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,OAAO,GAAG,IAAI,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,yCAAyC;gBACzC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getChromeCookie.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getChromeCookie.test.d.ts","sourceRoot":"","sources":["../src/getChromeCookie.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const node_test_1 = require("node:test");
37
+ const assert = __importStar(require("node:assert"));
38
+ // Mock chrome-cookies-secure before importing the module under test
39
+ const mockGetCookiesPromised = node_test_1.mock.fn(async (_url, _format, _profile) => 'cookie1=value1; cookie2=value2');
40
+ node_test_1.mock.module('chrome-cookies-secure', {
41
+ namedExports: {
42
+ getCookiesPromised: mockGetCookiesPromised,
43
+ },
44
+ });
45
+ (0, node_test_1.describe)('getChromeCookie', () => {
46
+ (0, node_test_1.it)('should call getCookiesPromised with header format and default profile', async () => {
47
+ const { getChromeCookie } = await Promise.resolve().then(() => __importStar(require('./getChromeCookie')));
48
+ const result = await getChromeCookie('https://example.com');
49
+ assert.strictEqual(result, 'cookie1=value1; cookie2=value2');
50
+ assert.strictEqual(mockGetCookiesPromised.mock.calls.length, 1);
51
+ const call = mockGetCookiesPromised.mock.calls[0];
52
+ assert.strictEqual(call.arguments[0], 'https://example.com');
53
+ assert.strictEqual(call.arguments[1], 'header');
54
+ assert.strictEqual(call.arguments[2], 'Default');
55
+ });
56
+ (0, node_test_1.it)('should pass custom profile when provided', async () => {
57
+ mockGetCookiesPromised.mock.resetCalls();
58
+ const { getChromeCookie } = await Promise.resolve().then(() => __importStar(require('./getChromeCookie')));
59
+ await getChromeCookie('https://example.com', 'Profile 1');
60
+ const call = mockGetCookiesPromised.mock.calls[0];
61
+ assert.strictEqual(call.arguments[2], 'Profile 1');
62
+ });
63
+ });
64
+ //# sourceMappingURL=getChromeCookie.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getChromeCookie.test.js","sourceRoot":"","sources":["../src/getChromeCookie.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA+C;AAC/C,oDAAsC;AAEtC,oEAAoE;AACpE,MAAM,sBAAsB,GAAG,gBAAI,CAAC,EAAE,CACpC,KAAK,EAAE,IAAY,EAAE,OAAe,EAAE,QAAgB,EAAE,EAAE,CAAC,gCAAgC,CAC5F,CAAC;AAEF,gBAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE;IACnC,YAAY,EAAE;QACZ,kBAAkB,EAAE,sBAAsB;KAC3C;CACF,CAAC,CAAC;AAEH,IAAA,oBAAQ,EAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAA,cAAE,EAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,EAAE,eAAe,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;QAE9D,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,qBAAqB,CAAC,CAAC;QAE5D,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC;QAC7D,MAAM,CAAC,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAEhE,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;QAC7D,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,EAAE,eAAe,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;QAE9D,MAAM,eAAe,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cpu-utils/headless",
3
- "version": "1.0.2",
3
+ "version": "1.1.0",
4
4
  "description": "Headless browser utilities for the monorepo",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -8,7 +8,7 @@
8
8
  "scripts": {
9
9
  "build": "tsc",
10
10
  "build:watch": "tsc --watch",
11
- "test": "node --test dist/**/*.test.js",
11
+ "test": "tsc && node --test --experimental-test-module-mocks dist/**/*.test.js",
12
12
  "typecheck": "tsc --noEmit"
13
13
  },
14
14
  "dependencies": {