@eggjs/cookies 3.1.0 → 4.0.0-beta.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@eggjs/cookies",
3
- "version": "3.1.0",
3
+ "version": "4.0.0-beta.13",
4
4
  "engines": {
5
- "node": ">= 18.19.0"
5
+ "node": ">=22.18.0"
6
6
  },
7
7
  "publishConfig": {
8
8
  "access": "public"
@@ -10,64 +10,43 @@
10
10
  "description": "cookies module for egg",
11
11
  "dependencies": {
12
12
  "should-send-same-site-none": "^2.0.5",
13
- "utility": "^2.1.0"
13
+ "utility": "^2.5.0"
14
14
  },
15
15
  "devDependencies": {
16
16
  "beautify-benchmark": "^0.2.4",
17
17
  "benchmark": "^2.1.4",
18
- "cookies": "^0.7.1",
18
+ "cookies": "^0.9.1",
19
19
  "keygrip": "^1.0.2",
20
- "@arethetypeswrong/cli": "^0.15.3",
21
- "@eggjs/tsconfig": "1",
22
- "@types/node": "20",
23
- "@types/mocha": "10",
24
- "egg-bin": "6",
25
- "eslint": "8",
26
- "eslint-config-egg": "14",
27
- "tshy": "1",
28
- "tshy-after": "1",
29
- "typescript": "5"
20
+ "oxlint": "^1.18.0",
21
+ "typescript": "5.9.2",
22
+ "tsdown": "^0.15.4",
23
+ "@eggjs/tsconfig": "3.1.0-beta.13"
30
24
  },
31
25
  "repository": {
32
26
  "type": "git",
33
- "url": "git://github.com/eggjs/egg-cookies.git"
27
+ "url": "git://github.com/eggjs/egg.git",
28
+ "directory": "packages/cookies"
34
29
  },
35
- "homepage": "https://github.com/eggjs/egg-cookies",
30
+ "homepage": "https://github.com/eggjs/egg/tree/next/packages/cookies",
36
31
  "author": "fengmk2 <fengmk2@gmail.com> (https://github.com/fengmk2)",
37
32
  "license": "MIT",
38
- "scripts": {
39
- "lint": "eslint --cache src test --ext .ts",
40
- "test": "npm run lint -- --fix && egg-bin test",
41
- "ci": "npm run lint && egg-bin cov && npm run prepublishOnly && attw --pack",
42
- "prepublishOnly": "tshy && tshy-after"
43
- },
44
33
  "type": "module",
45
- "tshy": {
46
- "exports": {
47
- ".": "./src/index.ts",
48
- "./package.json": "./package.json"
49
- }
50
- },
34
+ "files": [
35
+ "dist"
36
+ ],
37
+ "main": "./dist/index.js",
38
+ "module": "./dist/index.js",
39
+ "types": "./dist/index.d.ts",
51
40
  "exports": {
52
- ".": {
53
- "import": {
54
- "source": "./src/index.ts",
55
- "types": "./dist/esm/index.d.ts",
56
- "default": "./dist/esm/index.js"
57
- },
58
- "require": {
59
- "source": "./src/index.ts",
60
- "types": "./dist/commonjs/index.d.ts",
61
- "default": "./dist/commonjs/index.js"
62
- }
63
- },
41
+ ".": "./dist/index.js",
64
42
  "./package.json": "./package.json"
65
43
  },
66
- "files": [
67
- "dist",
68
- "src"
69
- ],
70
- "types": "./dist/commonjs/index.d.ts",
71
- "main": "./dist/commonjs/index.js",
72
- "module": "./dist/esm/index.js"
73
- }
44
+ "scripts": {
45
+ "build": "tsdown",
46
+ "typecheck": "tsc --noEmit",
47
+ "lint": "oxlint --type-aware",
48
+ "lint:fix": "npm run lint -- --fix",
49
+ "test": "npm run lint:fix && vitest run",
50
+ "ci": "vitest run --coverage"
51
+ }
52
+ }
@@ -1,66 +0,0 @@
1
- export interface CookieSetOptions {
2
- /**
3
- * The path for the cookie to be set in
4
- */
5
- path?: string | null;
6
- /**
7
- * The domain for the cookie
8
- */
9
- domain?: string | (() => string);
10
- /**
11
- * Is overridable
12
- */
13
- overwrite?: boolean;
14
- /**
15
- * Is the same site
16
- */
17
- sameSite?: string | boolean;
18
- /**
19
- * Encrypt the cookie's value or not
20
- */
21
- encrypt?: boolean;
22
- /**
23
- * Max age for browsers
24
- */
25
- maxAge?: number;
26
- /**
27
- * Expire time
28
- */
29
- expires?: Date;
30
- /**
31
- * Is for http only
32
- */
33
- httpOnly?: boolean;
34
- /**
35
- * Encrypt the cookie's value or not
36
- */
37
- secure?: boolean;
38
- /**
39
- * Once `true` and secure set to `true`, ignore the secure error in a none-ssl environment.
40
- */
41
- ignoreSecureError?: boolean;
42
- /**
43
- * Is it signed or not.
44
- */
45
- signed?: boolean | number;
46
- /**
47
- * Is it partitioned or not.
48
- */
49
- partitioned?: boolean;
50
- /**
51
- * Remove unpartitioned same name cookie or not.
52
- */
53
- removeUnpartitioned?: boolean;
54
- /**
55
- * The cookie priority.
56
- */
57
- priority?: 'low' | 'medium' | 'high' | 'LOW' | 'MEDIUM' | 'HIGH';
58
- }
59
- export declare class Cookie {
60
- name: string;
61
- value: string;
62
- readonly attrs: CookieSetOptions;
63
- constructor(name: string, value?: string | null, attrs?: CookieSetOptions);
64
- toString(): string;
65
- toHeader(): string;
66
- }
@@ -1,101 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Cookie = void 0;
7
- const node_assert_1 = __importDefault(require("node:assert"));
8
- /**
9
- * RegExp to match field-content in RFC 7230 sec 3.2
10
- *
11
- * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]
12
- * field-vchar = VCHAR / obs-text
13
- * obs-text = %x80-FF
14
- */
15
- const fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/; // eslint-disable-line no-control-regex
16
- /**
17
- * RegExp to match Same-Site cookie attribute value.
18
- * https://en.wikipedia.org/wiki/HTTP_cookie#SameSite_cookie
19
- */
20
- const sameSiteRegExp = /^(?:none|lax|strict)$/i;
21
- /**
22
- * RegExp to match Priority cookie attribute value.
23
- */
24
- const PRIORITY_REGEXP = /^(?:low|medium|high)$/i;
25
- class Cookie {
26
- name;
27
- value;
28
- attrs;
29
- constructor(name, value, attrs) {
30
- (0, node_assert_1.default)(fieldContentRegExp.test(name), 'argument name is invalid');
31
- (0, node_assert_1.default)(!value || fieldContentRegExp.test(value), 'argument value is invalid');
32
- this.name = name;
33
- this.value = value ?? '';
34
- this.attrs = mergeDefaultAttrs(attrs);
35
- (0, node_assert_1.default)(!this.attrs.path || fieldContentRegExp.test(this.attrs.path), 'argument option path is invalid');
36
- if (typeof this.attrs.domain === 'function') {
37
- this.attrs.domain = this.attrs.domain();
38
- }
39
- (0, node_assert_1.default)(!this.attrs.domain || fieldContentRegExp.test(this.attrs.domain), 'argument option domain is invalid');
40
- (0, node_assert_1.default)(!this.attrs.sameSite || this.attrs.sameSite === true || sameSiteRegExp.test(this.attrs.sameSite), 'argument option sameSite is invalid');
41
- (0, node_assert_1.default)(!this.attrs.priority || PRIORITY_REGEXP.test(this.attrs.priority), 'argument option priority is invalid');
42
- if (!value) {
43
- this.attrs.expires = new Date(0);
44
- // make sure maxAge is empty
45
- this.attrs.maxAge = undefined;
46
- }
47
- }
48
- toString() {
49
- return this.name + '=' + this.value;
50
- }
51
- toHeader() {
52
- let header = this.toString();
53
- const attrs = this.attrs;
54
- if (attrs.path) {
55
- header += '; path=' + attrs.path;
56
- }
57
- const maxAge = typeof attrs.maxAge === 'string' ? parseInt(attrs.maxAge, 10) : attrs.maxAge;
58
- // ignore 0, `session` and other invalid maxAge
59
- if (maxAge) {
60
- header += '; max-age=' + Math.round(maxAge / 1000);
61
- attrs.expires = new Date(Date.now() + maxAge);
62
- }
63
- if (attrs.expires) {
64
- header += '; expires=' + attrs.expires.toUTCString();
65
- }
66
- if (attrs.domain) {
67
- header += '; domain=' + attrs.domain;
68
- }
69
- if (attrs.priority) {
70
- header += '; priority=' + attrs.priority.toLowerCase();
71
- }
72
- if (attrs.sameSite) {
73
- header += '; samesite=' + (attrs.sameSite === true ? 'strict' : attrs.sameSite.toLowerCase());
74
- }
75
- if (attrs.secure) {
76
- header += '; secure';
77
- }
78
- if (attrs.httpOnly) {
79
- header += '; httponly';
80
- }
81
- if (attrs.partitioned) {
82
- header += '; partitioned';
83
- }
84
- return header;
85
- }
86
- }
87
- exports.Cookie = Cookie;
88
- function mergeDefaultAttrs(attrs) {
89
- const merged = {
90
- path: '/',
91
- httpOnly: true,
92
- secure: false,
93
- overwrite: false,
94
- sameSite: false,
95
- partitioned: false,
96
- priority: undefined,
97
- ...attrs,
98
- };
99
- return merged;
100
- }
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nvb2tpZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw4REFBaUM7QUFFakM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxrQkFBa0IsR0FBRyx1Q0FBdUMsQ0FBQyxDQUFDLHVDQUF1QztBQUUzRzs7O0VBR0U7QUFDRixNQUFNLGNBQWMsR0FBRyx3QkFBd0IsQ0FBQztBQUVoRDs7R0FFRztBQUNILE1BQU0sZUFBZSxHQUFHLHdCQUF3QixDQUFDO0FBOERqRCxNQUFhLE1BQU07SUFDakIsSUFBSSxDQUFTO0lBQ2IsS0FBSyxDQUFTO0lBQ0wsS0FBSyxDQUFtQjtJQUVqQyxZQUFZLElBQVksRUFBRSxLQUFxQixFQUFFLEtBQXdCO1FBQ3ZFLElBQUEscUJBQU0sRUFBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztRQUNsRSxJQUFBLHFCQUFNLEVBQUMsQ0FBQyxLQUFLLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLDJCQUEyQixDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsSUFBQSxxQkFBTSxFQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQ2pFLGlDQUFpQyxDQUFDLENBQUM7UUFDckMsSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFB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
@@ -1,43 +0,0 @@
1
- import { Keygrip } from './keygrip.js';
2
- import { CookieSetOptions } from './cookie.js';
3
- export interface DefaultCookieOptions extends CookieSetOptions {
4
- /**
5
- * Auto get and set `_CHIPS-` prefix cookie to adaptation CHIPS mode (The default value is false).
6
- */
7
- autoChips?: boolean;
8
- }
9
- export interface CookieGetOptions {
10
- /**
11
- * Whether to sign or not (The default value is true).
12
- */
13
- signed?: boolean;
14
- /**
15
- * Encrypt the cookie's value or not (The default value is false).
16
- */
17
- encrypt?: boolean;
18
- }
19
- /**
20
- * cookies for egg
21
- * extend pillarjs/cookies, add encrypt and decrypt
22
- */
23
- export declare class Cookies {
24
- #private;
25
- readonly ctx: Record<string, any>;
26
- readonly app: Record<string, any>;
27
- readonly secure: boolean;
28
- constructor(ctx: Record<string, any>, keys: string[], defaultCookieOptions?: DefaultCookieOptions);
29
- get keys(): Keygrip;
30
- /**
31
- * get cookie value by name
32
- * @param {String} name - cookie's name
33
- * @param {Object} opts - cookies' options
34
- * - {Boolean} signed - default to true
35
- * - {Boolean} encrypt - default to false
36
- * @return {String} value - cookie's value
37
- */
38
- get(name: string, opts?: CookieGetOptions): string | undefined;
39
- _get(name: string, opts: CookieGetOptions): string | undefined;
40
- set(name: string, value: string | null, opts?: CookieSetOptions): this;
41
- isSameSiteNoneCompatible(userAgent: string): boolean;
42
- isPartitionedCompatible(userAgent: string): boolean;
43
- }
@@ -1,293 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Cookies = void 0;
7
- const node_assert_1 = __importDefault(require("node:assert"));
8
- const utility_1 = require("utility");
9
- const should_send_same_site_none_1 = require("should-send-same-site-none");
10
- const keygrip_js_1 = require("./keygrip.js");
11
- const cookie_js_1 = require("./cookie.js");
12
- const error_js_1 = require("./error.js");
13
- const keyCache = new Map();
14
- /**
15
- * cookies for egg
16
- * extend pillarjs/cookies, add encrypt and decrypt
17
- */
18
- class Cookies {
19
- #keysArray;
20
- #keys;
21
- #defaultCookieOptions;
22
- #autoChips;
23
- ctx;
24
- app;
25
- secure;
26
- #parseChromiumResult;
27
- constructor(ctx, keys, defaultCookieOptions) {
28
- this.#keysArray = keys;
29
- // default cookie options
30
- this.#defaultCookieOptions = defaultCookieOptions;
31
- this.#autoChips = defaultCookieOptions?.autoChips;
32
- this.ctx = ctx;
33
- this.secure = this.ctx.secure;
34
- this.app = ctx.app;
35
- }
36
- get keys() {
37
- if (!this.#keys) {
38
- (0, node_assert_1.default)(Array.isArray(this.#keysArray), '.keys required for encrypt/sign cookies');
39
- const cache = keyCache.get(this.#keysArray);
40
- if (cache) {
41
- this.#keys = cache;
42
- }
43
- else {
44
- this.#keys = new keygrip_js_1.Keygrip(this.#keysArray);
45
- keyCache.set(this.#keysArray, this.#keys);
46
- }
47
- }
48
- return this.#keys;
49
- }
50
- /**
51
- * get cookie value by name
52
- * @param {String} name - cookie's name
53
- * @param {Object} opts - cookies' options
54
- * - {Boolean} signed - default to true
55
- * - {Boolean} encrypt - default to false
56
- * @return {String} value - cookie's value
57
- */
58
- get(name, opts = {}) {
59
- let value = this._get(name, opts);
60
- if (value === undefined && this.#autoChips) {
61
- // try to read _CHIPS-${name} prefix cookie
62
- value = this._get(this.#formatChipsCookieName(name), opts);
63
- }
64
- return value;
65
- }
66
- _get(name, opts) {
67
- const signed = computeSigned(opts);
68
- const header = this.ctx.get('cookie');
69
- if (!header)
70
- return;
71
- const match = header.match(getPattern(name));
72
- if (!match)
73
- return;
74
- let value = match[1];
75
- if (!opts.encrypt && !signed)
76
- return value;
77
- // signed
78
- if (signed) {
79
- const sigName = name + '.sig';
80
- const sigValue = this.get(sigName, { signed: false });
81
- if (!sigValue)
82
- return;
83
- const raw = name + '=' + value;
84
- const index = this.keys.verify(raw, sigValue);
85
- if (index < 0) {
86
- // can not match any key, remove ${name}.sig
87
- this.set(sigName, null, { path: '/', signed: false, overwrite: true });
88
- return;
89
- }
90
- if (index > 0) {
91
- // not signed by the first key, update sigValue
92
- this.set(sigName, this.keys.sign(raw), { signed: false, overwrite: true });
93
- }
94
- return value;
95
- }
96
- // encrypt
97
- value = (0, utility_1.base64decode)(value, true, 'buffer');
98
- const res = this.keys.decrypt(value);
99
- return res ? res.value.toString() : undefined;
100
- }
101
- set(name, value, opts) {
102
- opts = {
103
- ...this.#defaultCookieOptions,
104
- ...opts,
105
- };
106
- const signed = computeSigned(opts);
107
- const shouldIgnoreSecureError = opts && opts.ignoreSecureError;
108
- value = value || '';
109
- if (!shouldIgnoreSecureError) {
110
- if (!this.secure && opts.secure) {
111
- throw new error_js_1.CookieError('Cannot send secure cookie over unencrypted connection');
112
- }
113
- }
114
- let headers = this.ctx.response.get('set-cookie') || [];
115
- if (!Array.isArray(headers)) {
116
- headers = [headers];
117
- }
118
- // encrypt
119
- if (opts.encrypt) {
120
- value = value && (0, utility_1.base64encode)(this.keys.encrypt(value), true);
121
- }
122
- // http://browsercookielimits.squawky.net/
123
- if (value.length > 4093) {
124
- this.app.emit('cookieLimitExceed', { name, value, ctx: this.ctx });
125
- }
126
- // https://github.com/linsight/should-send-same-site-none
127
- // fixed SameSite=None: Known Incompatible Clients
128
- const userAgent = this.ctx.get('user-agent');
129
- let isSameSiteNone = false;
130
- // disable autoChips if partitioned enable
131
- let autoChips = !opts.partitioned && this.#autoChips;
132
- if (opts.sameSite && typeof opts.sameSite === 'string' && opts.sameSite.toLowerCase() === 'none') {
133
- isSameSiteNone = true;
134
- if (opts.secure === false || !this.secure || (userAgent && !this.isSameSiteNoneCompatible(userAgent))) {
135
- // Non-secure context or Incompatible clients, don't send SameSite=None property
136
- opts.sameSite = false;
137
- isSameSiteNone = false;
138
- }
139
- }
140
- if (autoChips || opts.partitioned) {
141
- // allow to set partitioned: secure=true and sameSite=none and chrome >= 118
142
- if (!isSameSiteNone || opts.secure === false || !this.secure || (userAgent && !this.isPartitionedCompatible(userAgent))) {
143
- // Non-secure context or Incompatible clients, don't send partitioned property
144
- autoChips = false;
145
- opts.partitioned = false;
146
- }
147
- }
148
- // remove unpartitioned same name cookie first
149
- if (opts.partitioned && opts.removeUnpartitioned) {
150
- const overwrite = opts.overwrite;
151
- if (overwrite) {
152
- opts.overwrite = false;
153
- headers = ignoreCookiesByName(headers, name);
154
- }
155
- const removeCookieOpts = {
156
- ...opts,
157
- partitioned: false,
158
- };
159
- const removeUnpartitionedCookie = new cookie_js_1.Cookie(name, '', removeCookieOpts);
160
- // if user not set secure, reset secure to ctx.secure
161
- if (opts.secure === undefined) {
162
- removeUnpartitionedCookie.attrs.secure = this.secure;
163
- }
164
- headers = pushCookie(headers, removeUnpartitionedCookie);
165
- // signed
166
- if (signed) {
167
- removeUnpartitionedCookie.name += '.sig';
168
- headers = ignoreCookiesByNameAndPath(headers, removeUnpartitionedCookie.name, removeUnpartitionedCookie.attrs.path);
169
- headers = pushCookie(headers, removeUnpartitionedCookie);
170
- }
171
- }
172
- else if (autoChips) {
173
- // add _CHIPS-${name} prefix cookie
174
- const newCookieName = this.#formatChipsCookieName(name);
175
- const newCookieOpts = {
176
- ...opts,
177
- partitioned: true,
178
- };
179
- const newPartitionedCookie = new cookie_js_1.Cookie(newCookieName, value, newCookieOpts);
180
- // if user not set secure, reset secure to ctx.secure
181
- if (opts.secure === undefined)
182
- newPartitionedCookie.attrs.secure = this.secure;
183
- headers = pushCookie(headers, newPartitionedCookie);
184
- // signed
185
- if (signed) {
186
- newPartitionedCookie.value = value && this.keys.sign(newPartitionedCookie.toString());
187
- newPartitionedCookie.name += '.sig';
188
- headers = ignoreCookiesByNameAndPath(headers, newPartitionedCookie.name, newPartitionedCookie.attrs.path);
189
- headers = pushCookie(headers, newPartitionedCookie);
190
- }
191
- }
192
- const cookie = new cookie_js_1.Cookie(name, value, opts);
193
- // if user not set secure, reset secure to ctx.secure
194
- if (opts.secure === undefined) {
195
- cookie.attrs.secure = this.secure;
196
- }
197
- headers = pushCookie(headers, cookie);
198
- // signed
199
- if (signed) {
200
- cookie.value = value && this.keys.sign(cookie.toString());
201
- cookie.name += '.sig';
202
- headers = pushCookie(headers, cookie);
203
- }
204
- this.ctx.set('set-cookie', headers);
205
- return this;
206
- }
207
- #formatChipsCookieName(name) {
208
- return `_CHIPS-${name}`;
209
- }
210
- #parseChromiumAndMajorVersion(userAgent) {
211
- if (!this.#parseChromiumResult) {
212
- this.#parseChromiumResult = parseChromiumAndMajorVersion(userAgent);
213
- }
214
- return this.#parseChromiumResult;
215
- }
216
- isSameSiteNoneCompatible(userAgent) {
217
- // Chrome >= 80.0.0.0
218
- const result = this.#parseChromiumAndMajorVersion(userAgent);
219
- if (result.chromium) {
220
- return result.majorVersion >= 80;
221
- }
222
- return (0, should_send_same_site_none_1.isSameSiteNoneCompatible)(userAgent);
223
- }
224
- isPartitionedCompatible(userAgent) {
225
- // support: Chrome >= 114.0.0.0
226
- // default enable: Chrome >= 118.0.0.0
227
- // https://developers.google.com/privacy-sandbox/3pcd/chips
228
- const result = this.#parseChromiumAndMajorVersion(userAgent);
229
- if (result.chromium) {
230
- return result.majorVersion >= 118;
231
- }
232
- return false;
233
- }
234
- }
235
- exports.Cookies = Cookies;
236
- // https://github.com/linsight/should-send-same-site-none/blob/master/index.js#L86
237
- function parseChromiumAndMajorVersion(userAgent) {
238
- const m = /Chrom[^ /]{1,100}\/(\d{1,100}?)\./.exec(userAgent);
239
- if (!m) {
240
- return { chromium: false, majorVersion: 0 };
241
- }
242
- // Extract digits from first capturing group.
243
- return { chromium: true, majorVersion: parseInt(m[1]) };
244
- }
245
- const _patternCache = new Map();
246
- function getPattern(name) {
247
- const cache = _patternCache.get(name);
248
- if (cache) {
249
- return cache;
250
- }
251
- const reg = new RegExp('(?:^|;) *' +
252
- name.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') +
253
- '=([^;]*)');
254
- _patternCache.set(name, reg);
255
- return reg;
256
- }
257
- function computeSigned(opts) {
258
- // encrypt default to false, signed default to true.
259
- // disable singed when encrypt is true.
260
- if (opts.encrypt)
261
- return false;
262
- return opts.signed !== false;
263
- }
264
- function pushCookie(cookies, cookie) {
265
- if (cookie.attrs.overwrite) {
266
- cookies = ignoreCookiesByName(cookies, cookie.name);
267
- }
268
- cookies.push(cookie.toHeader());
269
- return cookies;
270
- }
271
- function ignoreCookiesByName(cookies, name) {
272
- const prefix = `${name}=`;
273
- return cookies.filter(c => !c.startsWith(prefix));
274
- }
275
- function ignoreCookiesByNameAndPath(cookies, name, path) {
276
- if (!path) {
277
- return ignoreCookiesByName(cookies, name);
278
- }
279
- const prefix = `${name}=`;
280
- // foo=hello; path=/path1; samesite=none
281
- const includedPath = `; path=${path};`;
282
- // foo=hello; path=/path1
283
- const endsWithPath = `; path=${path}`;
284
- return cookies.filter(c => {
285
- if (c.startsWith(prefix)) {
286
- if (c.includes(includedPath) || c.endsWith(endsWithPath)) {
287
- return false;
288
- }
289
- }
290
- return true;
291
- });
292
- }
293
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb29raWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhEQUFpQztBQUNqQyxxQ0FBcUQ7QUFDckQsMkVBQXNFO0FBQ3RFLDZDQUF1QztBQUN2QywyQ0FBdUQ7QUFDdkQseUNBQXlDO0FBRXpDLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxFQUFxQixDQUFDO0FBb0I5Qzs7O0dBR0c7QUFDSCxNQUFhLE9BQU87SUFDVCxVQUFVLENBQVc7SUFDOUIsS0FBSyxDQUFVO0lBQ04scUJBQXFCLENBQXdCO0lBQzdDLFVBQVUsQ0FBVztJQUNyQixHQUFHLENBQXNCO0lBQ3pCLEdBQUcsQ0FBc0I7SUFDekIsTUFBTSxDQUFVO0lBQ3pCLG9CQUFvQixDQUF1QjtJQUUzQyxZQUFZLEdBQXdCLEVBQUUsSUFBYyxFQUFFLG9CQUEyQztRQUMvRixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2Qix5QkFBeUI7UUFDekIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLG9CQUFvQixDQUFDO1FBQ2xELElBQUksQ0FBQyxVQUFVLEdBQUcsb0JBQW9CLEVBQUUsU0FBUyxDQUFDO1FBQ2xELElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUM5QixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsSUFBQSxxQkFBTSxFQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLHlDQUF5QyxDQUFDLENBQUM7WUFDbEYsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJ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
@@ -1,3 +0,0 @@
1
- export declare class CookieError extends Error {
2
- constructor(message: string, options?: ErrorOptions);
3
- }
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CookieError = void 0;
4
- class CookieError extends Error {
5
- constructor(message, options) {
6
- super(message, options);
7
- this.name = this.constructor.name;
8
- }
9
- }
10
- exports.CookieError = CookieError;
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsTUFBYSxXQUFZLFNBQVEsS0FBSztJQUNwQyxZQUFZLE9BQWUsRUFBRSxPQUFzQjtRQUNqRCxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDcEMsQ0FBQztDQUNGO0FBTEQsa0NBS0MifQ==
@@ -1,4 +0,0 @@
1
- export * from './cookies.js';
2
- export * from './cookie.js';
3
- export * from './error.js';
4
- export * from './keygrip.js';