happy-dom 7.7.1 → 7.7.2

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.

Potentially problematic release.


This version of happy-dom might be problematic. Click here for more details.

@@ -0,0 +1,53 @@
1
+ /**
2
+ * Cookie.
3
+ */
4
+ export default class Cookie {
5
+ private pairs;
6
+ key: string;
7
+ value: string;
8
+ size: number;
9
+ domain: string;
10
+ path: string;
11
+ expriesOrMaxAge: Date;
12
+ httpOnly: boolean;
13
+ secure: boolean;
14
+ sameSite: string;
15
+ /**
16
+ * Constructor.
17
+ *
18
+ * @param cookie Cookie.
19
+ */
20
+ constructor(cookie: string);
21
+ /**
22
+ * Returns a raw string of the cookie.
23
+ */
24
+ rawString(): string;
25
+ /**
26
+ *
27
+ */
28
+ cookieString(): string;
29
+ /**
30
+ *
31
+ */
32
+ isExpired(): boolean;
33
+ /**
34
+ *
35
+ */
36
+ isHttpOnly(): boolean;
37
+ /**
38
+ *
39
+ */
40
+ isSecure(): boolean;
41
+ /**
42
+ * Parse a cookie string.
43
+ *
44
+ * @param cookieString
45
+ */
46
+ static parse(cookieString: string): Cookie;
47
+ /**
48
+ * Stringify a Cookie object.
49
+ *
50
+ * @param cookie
51
+ */
52
+ static stringify(cookie: Cookie): string;
53
+ }
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const CookiePairRegex = /([^=]+)(?:=([\s\S]*))?/;
4
+ /**
5
+ * Cookie.
6
+ */
7
+ class Cookie {
8
+ /**
9
+ * Constructor.
10
+ *
11
+ * @param cookie Cookie.
12
+ */
13
+ constructor(cookie) {
14
+ this.pairs = {};
15
+ //
16
+ this.key = '';
17
+ this.value = '';
18
+ this.size = 0;
19
+ // Optional
20
+ this.domain = '';
21
+ this.path = '';
22
+ this.expriesOrMaxAge = null;
23
+ this.httpOnly = false;
24
+ this.secure = false;
25
+ this.sameSite = '';
26
+ let match;
27
+ const parts = cookie.split(';').filter(Boolean);
28
+ // Part[0] is the key-value pair.
29
+ match = new RegExp(CookiePairRegex).exec(parts[0]);
30
+ if (!match) {
31
+ throw new Error(`Invalid cookie: ${cookie}`);
32
+ }
33
+ this.key = match[1].trim();
34
+ this.value = match[2];
35
+ // Set key is empty if match[2] is undefined.
36
+ if (!match[2]) {
37
+ this.value = this.key;
38
+ this.key = '';
39
+ }
40
+ this.pairs[this.key] = this.value;
41
+ this.size = this.key.length + this.value.length;
42
+ // Attribute.
43
+ for (const part of parts.slice(1)) {
44
+ match = new RegExp(CookiePairRegex).exec(part);
45
+ if (!match) {
46
+ throw new Error(`Invalid cookie: ${part}`);
47
+ }
48
+ const key = match[1].trim();
49
+ const value = match[2];
50
+ switch (key.toLowerCase()) {
51
+ case 'expires':
52
+ this.expriesOrMaxAge = new Date(value);
53
+ break;
54
+ case 'max-age':
55
+ this.expriesOrMaxAge = new Date(parseInt(value, 10) * 1000 + Date.now());
56
+ break;
57
+ case 'domain':
58
+ this.domain = value;
59
+ break;
60
+ case 'path':
61
+ this.path = value.startsWith('/') ? value : `/${value}`;
62
+ break;
63
+ case 'httponly':
64
+ this.httpOnly = true;
65
+ break;
66
+ case 'secure':
67
+ this.secure = true;
68
+ break;
69
+ case 'samesite':
70
+ this.sameSite = value;
71
+ break;
72
+ default:
73
+ continue; // Skip.
74
+ }
75
+ // Skip unknown key-value pair.
76
+ if (['expires', 'max-age', 'domain', 'path', 'httponly', 'secure', 'samesite'].indexOf(key.toLowerCase()) === -1) {
77
+ continue;
78
+ }
79
+ this.pairs[key] = value;
80
+ }
81
+ }
82
+ /**
83
+ * Returns a raw string of the cookie.
84
+ */
85
+ rawString() {
86
+ return Object.keys(this.pairs)
87
+ .map((key) => {
88
+ if (key) {
89
+ return `${key}=${this.pairs[key]}`;
90
+ }
91
+ return this.pairs[key];
92
+ })
93
+ .join('; ');
94
+ }
95
+ /**
96
+ *
97
+ */
98
+ cookieString() {
99
+ if (this.key) {
100
+ return `${this.key}=${this.value}`;
101
+ }
102
+ return this.value;
103
+ }
104
+ /**
105
+ *
106
+ */
107
+ isExpired() {
108
+ // If the expries/maxage is set, then determine whether it is expired.
109
+ if (this.expriesOrMaxAge && this.expriesOrMaxAge.getTime() < Date.now()) {
110
+ return true;
111
+ }
112
+ // If the expries/maxage is not set, it's a session-level cookie that will expire when the browser is closed.
113
+ // (it's never expired in happy-dom)
114
+ return false;
115
+ }
116
+ /**
117
+ *
118
+ */
119
+ isHttpOnly() {
120
+ return this.httpOnly;
121
+ }
122
+ /**
123
+ *
124
+ */
125
+ isSecure() {
126
+ return this.secure;
127
+ }
128
+ /**
129
+ * Parse a cookie string.
130
+ *
131
+ * @param cookieString
132
+ */
133
+ static parse(cookieString) {
134
+ return new Cookie(cookieString);
135
+ }
136
+ /**
137
+ * Stringify a Cookie object.
138
+ *
139
+ * @param cookie
140
+ */
141
+ static stringify(cookie) {
142
+ return cookie.toString();
143
+ }
144
+ }
145
+ exports.default = Cookie;
146
+ //# sourceMappingURL=Cookie.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cookie.js","sourceRoot":"","sources":["../../src/cookie/Cookie.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import Location from 'src/location/Location';
2
+ /**
3
+ * CookieJar.
4
+ *
5
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cookie.
6
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie.
7
+ */
8
+ export default class CookieJar {
9
+ private cookies;
10
+ /**
11
+ * Validate cookie.
12
+ *
13
+ * @param cookie
14
+ */
15
+ private validateCookie;
16
+ /**
17
+ * Set cookie.
18
+ *
19
+ * @param cookieString
20
+ */
21
+ setCookiesString(cookieString: string): void;
22
+ /**
23
+ * Get cookie.
24
+ *
25
+ * @param location Location.
26
+ * @param fromDocument If true, the caller is a document.
27
+ * @returns Cookie string.
28
+ */
29
+ getCookiesString(location: Location, fromDocument: boolean): string;
30
+ }
@@ -0,0 +1,84 @@
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
+ const Cookie_1 = __importDefault(require("./Cookie"));
7
+ /**
8
+ * CookieJar.
9
+ *
10
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cookie.
11
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie.
12
+ */
13
+ class CookieJar {
14
+ constructor() {
15
+ this.cookies = [];
16
+ }
17
+ /**
18
+ * Validate cookie.
19
+ *
20
+ * @param cookie
21
+ */
22
+ validateCookie(cookie) {
23
+ if (cookie.key.toLowerCase().startsWith('__secure-') && !cookie.isSecure()) {
24
+ return false;
25
+ }
26
+ if (cookie.key.toLowerCase().startsWith('__host-') &&
27
+ (!cookie.isSecure() || cookie.path !== '/' || cookie.domain)) {
28
+ return false;
29
+ }
30
+ return true;
31
+ }
32
+ /**
33
+ * Set cookie.
34
+ *
35
+ * @param cookieString
36
+ */
37
+ setCookiesString(cookieString) {
38
+ if (!cookieString) {
39
+ return;
40
+ }
41
+ const newCookie = new Cookie_1.default(cookieString);
42
+ if (!this.validateCookie(newCookie)) {
43
+ return;
44
+ }
45
+ this.cookies
46
+ .filter((cookie) => cookie.key === newCookie.key)
47
+ .forEach((cookie) => {
48
+ this.cookies.splice(this.cookies.indexOf(cookie), 1);
49
+ });
50
+ this.cookies.push(newCookie);
51
+ }
52
+ /**
53
+ * Get cookie.
54
+ *
55
+ * @param location Location.
56
+ * @param fromDocument If true, the caller is a document.
57
+ * @returns Cookie string.
58
+ */
59
+ getCookiesString(location, fromDocument) {
60
+ const cookies = this.cookies.filter((cookie) => {
61
+ // Skip when use document.cookie and the cookie is httponly.
62
+ if (fromDocument && cookie.isHttpOnly()) {
63
+ return false;
64
+ }
65
+ if (cookie.isExpired()) {
66
+ return false;
67
+ }
68
+ if (cookie.isSecure() && location.protocol !== 'https:') {
69
+ return false;
70
+ }
71
+ if (cookie.domain && !location.hostname.endsWith(cookie.domain)) {
72
+ return false;
73
+ }
74
+ if (cookie.path && !location.pathname.startsWith(cookie.path)) {
75
+ return false;
76
+ }
77
+ // TODO: check SameSite.
78
+ return true;
79
+ });
80
+ return cookies.map((cookie) => cookie.cookieString()).join('; ');
81
+ }
82
+ }
83
+ exports.default = CookieJar;
84
+ //# sourceMappingURL=CookieJar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CookieJar.js","sourceRoot":"","sources":["../../src/cookie/CookieJar.ts"],"names":[],"mappings":";;;;;AACA,sDAA8B;AAE9B;;;;;GAKG;AACH,MAAqB,SAAS;IAA9B;QACS,YAAO,GAAa,EAAE,CAAC;IAuEhC,CAAC;IArEA;;;;OAIG;IACK,cAAc,CAAC,MAAc;QACpC,IAAI,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE;YAC3E,OAAO,KAAK,CAAC;SACb;QACD,IACC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAC9C,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,MAAM,CAAC,IAAI,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,EAC3D;YACD,OAAO,KAAK,CAAC;SACb;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACI,gBAAgB,CAAC,YAAoB;QAC3C,IAAI,CAAC,YAAY,EAAE;YAClB,OAAO;SACP;QACD,MAAM,SAAS,GAAG,IAAI,gBAAM,CAAC,YAAY,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;YACpC,OAAO;SACP;QACD,IAAI,CAAC,OAAO;aACV,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,GAAG,CAAC;aAChD,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACnB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACI,gBAAgB,CAAC,QAAkB,EAAE,YAAqB;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YAC9C,4DAA4D;YAC5D,IAAI,YAAY,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;gBACxC,OAAO,KAAK,CAAC;aACb;YACD,IAAI,MAAM,CAAC,SAAS,EAAE,EAAE;gBACvB,OAAO,KAAK,CAAC;aACb;YACD,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBACxD,OAAO,KAAK,CAAC;aACb;YACD,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;gBAChE,OAAO,KAAK,CAAC;aACb;YACD,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBAC9D,OAAO,KAAK,CAAC;aACb;YACD,wBAAwB;YACxB,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;CACD;AAxED,4BAwEC"}
@@ -6,6 +6,7 @@ import DOMImplementation from '../../dom-implementation/DOMImplementation';
6
6
  import INodeFilter from '../../tree-walker/INodeFilter';
7
7
  import IDocument from './IDocument';
8
8
  import CSSStyleSheet from '../../css/CSSStyleSheet';
9
+ import CookieJar from '../../cookie/CookieJar';
9
10
  import IElement from '../element/IElement';
10
11
  import IHTMLScriptElement from '../html-script-element/IHTMLScriptElement';
11
12
  import IHTMLElement from '../html-element/IHTMLElement';
@@ -38,9 +39,9 @@ export default class Document extends Node implements IDocument {
38
39
  readonly _readyStateManager: DocumentReadyStateManager;
39
40
  _activeElement: IHTMLElement;
40
41
  _cacheID: number;
42
+ _cookie: CookieJar;
41
43
  protected _isFirstWrite: boolean;
42
44
  protected _isFirstWriteAfterOpen: boolean;
43
- private _cookie;
44
45
  private _selection;
45
46
  onreadystatechange: (event: Event) => void;
46
47
  onpointerlockchange: (event: Event) => void;
@@ -20,7 +20,7 @@ const DocumentType_1 = __importDefault(require("../document-type/DocumentType"))
20
20
  const ParentNodeUtility_1 = __importDefault(require("../parent-node/ParentNodeUtility"));
21
21
  const QuerySelector_1 = __importDefault(require("../../query-selector/QuerySelector"));
22
22
  const DOMException_1 = __importDefault(require("../../exception/DOMException"));
23
- const CookieUtility_1 = __importDefault(require("../../cookie/CookieUtility"));
23
+ const CookieJar_1 = __importDefault(require("../../cookie/CookieJar"));
24
24
  const HTMLCollectionFactory_1 = __importDefault(require("../element/HTMLCollectionFactory"));
25
25
  const DocumentReadyStateEnum_1 = __importDefault(require("./DocumentReadyStateEnum"));
26
26
  const DocumentReadyStateManager_1 = __importDefault(require("./DocumentReadyStateManager"));
@@ -46,9 +46,10 @@ class Document extends Node_1.default {
46
46
  this._activeElement = null;
47
47
  // Used as an unique identifier which is updated whenever the DOM gets modified.
48
48
  this._cacheID = 0;
49
+ // Public in order to be accessible by the fetch and xhr.
50
+ this._cookie = new CookieJar_1.default();
49
51
  this._isFirstWrite = true;
50
52
  this._isFirstWriteAfterOpen = false;
51
- this._cookie = '';
52
53
  this._selection = null;
53
54
  // Events
54
55
  this.onreadystatechange = null;
@@ -220,7 +221,7 @@ class Document extends Node_1.default {
220
221
  * @returns Cookie.
221
222
  */
222
223
  get cookie() {
223
- return this._cookie;
224
+ return this._cookie.getCookiesString(this.defaultView.location, true);
224
225
  }
225
226
  /**
226
227
  * Sets a cookie string.
@@ -228,7 +229,7 @@ class Document extends Node_1.default {
228
229
  * @param cookie Cookie string.
229
230
  */
230
231
  set cookie(cookie) {
231
- this._cookie = CookieUtility_1.default.getCookieString(this.defaultView.location, this._cookie, cookie);
232
+ this._cookie.setCookiesString(cookie);
232
233
  }
233
234
  /**
234
235
  * Node name.
@@ -1 +1 @@
1
- {"version":3,"file":"Document.js","sourceRoot":"","sources":["../../../src/nodes/document/Document.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Document.js","sourceRoot":"","sources":["../../../src/nodes/document/Document.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "happy-dom",
3
- "version": "7.7.1",
3
+ "version": "7.7.2",
4
4
  "license": "MIT",
5
5
  "homepage": "https://github.com/capricorn86/happy-dom",
6
6
  "repository": "https://github.com/capricorn86/happy-dom",
@@ -75,5 +75,5 @@
75
75
  "ts-jest": "^27.1.3",
76
76
  "typescript": "^4.6.2"
77
77
  },
78
- "gitHead": "f9e61f10ae1a1d9e1d05d6a2f1b4896dc9e2434a"
78
+ "gitHead": "093d64988c193f17a4fde5fb039ee88c8f2adaa0"
79
79
  }
@@ -0,0 +1,158 @@
1
+ const CookiePairRegex = /([^=]+)(?:=([\s\S]*))?/;
2
+
3
+ /**
4
+ * Cookie.
5
+ */
6
+ export default class Cookie {
7
+ private pairs: { [key: string]: string } = {};
8
+ //
9
+ public key = '';
10
+ public value = '';
11
+ public size = 0;
12
+ // Optional
13
+ public domain = '';
14
+ public path = '';
15
+ public expriesOrMaxAge: Date = null;
16
+ public httpOnly = false;
17
+ public secure = false;
18
+ public sameSite = '';
19
+
20
+ /**
21
+ * Constructor.
22
+ *
23
+ * @param cookie Cookie.
24
+ */
25
+ constructor(cookie: string) {
26
+ let match: RegExpExecArray | null;
27
+
28
+ const parts = cookie.split(';').filter(Boolean);
29
+
30
+ // Part[0] is the key-value pair.
31
+ match = new RegExp(CookiePairRegex).exec(parts[0]);
32
+ if (!match) {
33
+ throw new Error(`Invalid cookie: ${cookie}`);
34
+ }
35
+ this.key = match[1].trim();
36
+ this.value = match[2];
37
+ // Set key is empty if match[2] is undefined.
38
+ if (!match[2]) {
39
+ this.value = this.key;
40
+ this.key = '';
41
+ }
42
+ this.pairs[this.key] = this.value;
43
+ this.size = this.key.length + this.value.length;
44
+ // Attribute.
45
+ for (const part of parts.slice(1)) {
46
+ match = new RegExp(CookiePairRegex).exec(part);
47
+ if (!match) {
48
+ throw new Error(`Invalid cookie: ${part}`);
49
+ }
50
+ const key = match[1].trim();
51
+ const value = match[2];
52
+
53
+ switch (key.toLowerCase()) {
54
+ case 'expires':
55
+ this.expriesOrMaxAge = new Date(value);
56
+ break;
57
+ case 'max-age':
58
+ this.expriesOrMaxAge = new Date(parseInt(value, 10) * 1000 + Date.now());
59
+ break;
60
+ case 'domain':
61
+ this.domain = value;
62
+ break;
63
+ case 'path':
64
+ this.path = value.startsWith('/') ? value : `/${value}`;
65
+ break;
66
+ case 'httponly':
67
+ this.httpOnly = true;
68
+ break;
69
+ case 'secure':
70
+ this.secure = true;
71
+ break;
72
+ case 'samesite':
73
+ this.sameSite = value;
74
+ break;
75
+ default:
76
+ continue; // Skip.
77
+ }
78
+ // Skip unknown key-value pair.
79
+ if (
80
+ ['expires', 'max-age', 'domain', 'path', 'httponly', 'secure', 'samesite'].indexOf(
81
+ key.toLowerCase()
82
+ ) === -1
83
+ ) {
84
+ continue;
85
+ }
86
+ this.pairs[key] = value;
87
+ }
88
+ }
89
+
90
+ /**
91
+ * Returns a raw string of the cookie.
92
+ */
93
+ public rawString(): string {
94
+ return Object.keys(this.pairs)
95
+ .map((key) => {
96
+ if (key) {
97
+ return `${key}=${this.pairs[key]}`;
98
+ }
99
+ return this.pairs[key];
100
+ })
101
+ .join('; ');
102
+ }
103
+
104
+ /**
105
+ *
106
+ */
107
+ public cookieString(): string {
108
+ if (this.key) {
109
+ return `${this.key}=${this.value}`;
110
+ }
111
+ return this.value;
112
+ }
113
+
114
+ /**
115
+ *
116
+ */
117
+ public isExpired(): boolean {
118
+ // If the expries/maxage is set, then determine whether it is expired.
119
+ if (this.expriesOrMaxAge && this.expriesOrMaxAge.getTime() < Date.now()) {
120
+ return true;
121
+ }
122
+ // If the expries/maxage is not set, it's a session-level cookie that will expire when the browser is closed.
123
+ // (it's never expired in happy-dom)
124
+ return false;
125
+ }
126
+
127
+ /**
128
+ *
129
+ */
130
+ public isHttpOnly(): boolean {
131
+ return this.httpOnly;
132
+ }
133
+
134
+ /**
135
+ *
136
+ */
137
+ public isSecure(): boolean {
138
+ return this.secure;
139
+ }
140
+
141
+ /**
142
+ * Parse a cookie string.
143
+ *
144
+ * @param cookieString
145
+ */
146
+ public static parse(cookieString: string): Cookie {
147
+ return new Cookie(cookieString);
148
+ }
149
+
150
+ /**
151
+ * Stringify a Cookie object.
152
+ *
153
+ * @param cookie
154
+ */
155
+ public static stringify(cookie: Cookie): string {
156
+ return cookie.toString();
157
+ }
158
+ }
@@ -0,0 +1,82 @@
1
+ import Location from 'src/location/Location';
2
+ import Cookie from './Cookie';
3
+
4
+ /**
5
+ * CookieJar.
6
+ *
7
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cookie.
8
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie.
9
+ */
10
+ export default class CookieJar {
11
+ private cookies: Cookie[] = [];
12
+
13
+ /**
14
+ * Validate cookie.
15
+ *
16
+ * @param cookie
17
+ */
18
+ private validateCookie(cookie: Cookie): boolean {
19
+ if (cookie.key.toLowerCase().startsWith('__secure-') && !cookie.isSecure()) {
20
+ return false;
21
+ }
22
+ if (
23
+ cookie.key.toLowerCase().startsWith('__host-') &&
24
+ (!cookie.isSecure() || cookie.path !== '/' || cookie.domain)
25
+ ) {
26
+ return false;
27
+ }
28
+ return true;
29
+ }
30
+
31
+ /**
32
+ * Set cookie.
33
+ *
34
+ * @param cookieString
35
+ */
36
+ public setCookiesString(cookieString: string): void {
37
+ if (!cookieString) {
38
+ return;
39
+ }
40
+ const newCookie = new Cookie(cookieString);
41
+ if (!this.validateCookie(newCookie)) {
42
+ return;
43
+ }
44
+ this.cookies
45
+ .filter((cookie) => cookie.key === newCookie.key)
46
+ .forEach((cookie) => {
47
+ this.cookies.splice(this.cookies.indexOf(cookie), 1);
48
+ });
49
+ this.cookies.push(newCookie);
50
+ }
51
+
52
+ /**
53
+ * Get cookie.
54
+ *
55
+ * @param location Location.
56
+ * @param fromDocument If true, the caller is a document.
57
+ * @returns Cookie string.
58
+ */
59
+ public getCookiesString(location: Location, fromDocument: boolean): string {
60
+ const cookies = this.cookies.filter((cookie) => {
61
+ // Skip when use document.cookie and the cookie is httponly.
62
+ if (fromDocument && cookie.isHttpOnly()) {
63
+ return false;
64
+ }
65
+ if (cookie.isExpired()) {
66
+ return false;
67
+ }
68
+ if (cookie.isSecure() && location.protocol !== 'https:') {
69
+ return false;
70
+ }
71
+ if (cookie.domain && !location.hostname.endsWith(cookie.domain)) {
72
+ return false;
73
+ }
74
+ if (cookie.path && !location.pathname.startsWith(cookie.path)) {
75
+ return false;
76
+ }
77
+ // TODO: check SameSite.
78
+ return true;
79
+ });
80
+ return cookies.map((cookie) => cookie.cookieString()).join('; ');
81
+ }
82
+ }
@@ -19,7 +19,7 @@ import QuerySelector from '../../query-selector/QuerySelector';
19
19
  import IDocument from './IDocument';
20
20
  import CSSStyleSheet from '../../css/CSSStyleSheet';
21
21
  import DOMException from '../../exception/DOMException';
22
- import CookieUtility from '../../cookie/CookieUtility';
22
+ import CookieJar from '../../cookie/CookieJar';
23
23
  import IElement from '../element/IElement';
24
24
  import IHTMLScriptElement from '../html-script-element/IHTMLScriptElement';
25
25
  import IHTMLElement from '../html-element/IHTMLElement';
@@ -63,10 +63,12 @@ export default class Document extends Node implements IDocument {
63
63
 
64
64
  // Used as an unique identifier which is updated whenever the DOM gets modified.
65
65
  public _cacheID = 0;
66
+ // Public in order to be accessible by the fetch and xhr.
67
+ public _cookie = new CookieJar();
66
68
 
67
69
  protected _isFirstWrite = true;
68
70
  protected _isFirstWriteAfterOpen = false;
69
- private _cookie = '';
71
+
70
72
  private _selection: Selection = null;
71
73
 
72
74
  // Events
@@ -258,7 +260,7 @@ export default class Document extends Node implements IDocument {
258
260
  * @returns Cookie.
259
261
  */
260
262
  public get cookie(): string {
261
- return this._cookie;
263
+ return this._cookie.getCookiesString(this.defaultView.location, true);
262
264
  }
263
265
 
264
266
  /**
@@ -267,7 +269,7 @@ export default class Document extends Node implements IDocument {
267
269
  * @param cookie Cookie string.
268
270
  */
269
271
  public set cookie(cookie: string) {
270
- this._cookie = CookieUtility.getCookieString(this.defaultView.location, this._cookie, cookie);
272
+ this._cookie.setCookiesString(cookie);
271
273
  }
272
274
 
273
275
  /**
@@ -1,15 +0,0 @@
1
- import Location from '../location/Location';
2
- /**
3
- * Cookie utility.
4
- */
5
- export default class CookieUtility {
6
- /**
7
- * Returns a cookie string.
8
- *
9
- * @param location Location.
10
- * @param cookies Current cookie string.
11
- * @param newCookie New cookie string.
12
- * @returns Generated cookie string.
13
- */
14
- static getCookieString(location: Location, cookies: string, newCookie: any): string;
15
- }
@@ -1,83 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /**
4
- * Cookie utility.
5
- */
6
- class CookieUtility {
7
- /**
8
- * Returns a cookie string.
9
- *
10
- * @param location Location.
11
- * @param cookies Current cookie string.
12
- * @param newCookie New cookie string.
13
- * @returns Generated cookie string.
14
- */
15
- static getCookieString(location, cookies, newCookie) {
16
- const newCookieParts = newCookie.split(';');
17
- const [newCookieName, newCookieValue] = newCookieParts.shift().trim().split('=');
18
- let isExpired = false;
19
- for (const part of newCookieParts) {
20
- const [key, value] = part.trim().split('=');
21
- switch (key.toLowerCase()) {
22
- case 'expires':
23
- const expires = new Date(value).getTime();
24
- const now = Date.now();
25
- if (expires < now) {
26
- isExpired = true;
27
- break;
28
- }
29
- break;
30
- case 'domain':
31
- const hostnameParts = location.hostname.split('.');
32
- if (hostnameParts.length > 2) {
33
- hostnameParts.shift();
34
- }
35
- const currentDomain = hostnameParts.join('.');
36
- if (!value.endsWith(currentDomain)) {
37
- return cookies;
38
- }
39
- break;
40
- case 'path':
41
- const pathname = location.pathname;
42
- const currentPath = pathname.startsWith('/') ? pathname.replace('/', '') : pathname;
43
- const path = value.startsWith('/') ? value.replace('/', '') : value;
44
- if (path && !currentPath.startsWith(path)) {
45
- return cookies;
46
- }
47
- break;
48
- case 'max-age':
49
- if (parseInt(value) <= 0) {
50
- return cookies;
51
- }
52
- break;
53
- }
54
- }
55
- const newCookies = [];
56
- if (cookies) {
57
- for (const cookie of cookies.split(';')) {
58
- const [name, value] = cookie.trim().split('=');
59
- if ((name && name !== newCookieName) ||
60
- (!value && newCookieValue) ||
61
- (value && !newCookieValue)) {
62
- if (value) {
63
- newCookies.push(`${name}=${value}`);
64
- }
65
- else {
66
- newCookies.push(name);
67
- }
68
- }
69
- }
70
- }
71
- if (!isExpired) {
72
- if (newCookieValue) {
73
- newCookies.push(`${newCookieName}=${newCookieValue}`);
74
- }
75
- else {
76
- newCookies.push(newCookieName);
77
- }
78
- }
79
- return newCookies.join('; ');
80
- }
81
- }
82
- exports.default = CookieUtility;
83
- //# sourceMappingURL=CookieUtility.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CookieUtility.js","sourceRoot":"","sources":["../../src/cookie/CookieUtility.ts"],"names":[],"mappings":"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"}
@@ -1,87 +0,0 @@
1
- import Location from '../location/Location';
2
-
3
- /**
4
- * Cookie utility.
5
- */
6
- export default class CookieUtility {
7
- /**
8
- * Returns a cookie string.
9
- *
10
- * @param location Location.
11
- * @param cookies Current cookie string.
12
- * @param newCookie New cookie string.
13
- * @returns Generated cookie string.
14
- */
15
- public static getCookieString(location: Location, cookies: string, newCookie): string {
16
- const newCookieParts = newCookie.split(';');
17
- const [newCookieName, newCookieValue] = newCookieParts.shift().trim().split('=');
18
- let isExpired = false;
19
-
20
- for (const part of newCookieParts) {
21
- const [key, value] = part.trim().split('=');
22
-
23
- switch (key.toLowerCase()) {
24
- case 'expires':
25
- const expires = new Date(value).getTime();
26
- const now = Date.now();
27
- if (expires < now) {
28
- isExpired = true;
29
- break;
30
- }
31
- break;
32
- case 'domain':
33
- const hostnameParts = location.hostname.split('.');
34
- if (hostnameParts.length > 2) {
35
- hostnameParts.shift();
36
- }
37
- const currentDomain = hostnameParts.join('.');
38
- if (!value.endsWith(currentDomain)) {
39
- return cookies;
40
- }
41
- break;
42
- case 'path':
43
- const pathname = location.pathname;
44
- const currentPath = pathname.startsWith('/') ? pathname.replace('/', '') : pathname;
45
- const path = value.startsWith('/') ? value.replace('/', '') : value;
46
- if (path && !currentPath.startsWith(path)) {
47
- return cookies;
48
- }
49
- break;
50
- case 'max-age':
51
- if (parseInt(value) <= 0) {
52
- return cookies;
53
- }
54
- break;
55
- }
56
- }
57
-
58
- const newCookies = [];
59
-
60
- if (cookies) {
61
- for (const cookie of cookies.split(';')) {
62
- const [name, value] = cookie.trim().split('=');
63
- if (
64
- (name && name !== newCookieName) ||
65
- (!value && newCookieValue) ||
66
- (value && !newCookieValue)
67
- ) {
68
- if (value) {
69
- newCookies.push(`${name}=${value}`);
70
- } else {
71
- newCookies.push(name);
72
- }
73
- }
74
- }
75
- }
76
-
77
- if (!isExpired) {
78
- if (newCookieValue) {
79
- newCookies.push(`${newCookieName}=${newCookieValue}`);
80
- } else {
81
- newCookies.push(newCookieName);
82
- }
83
- }
84
-
85
- return newCookies.join('; ');
86
- }
87
- }