happy-dom 7.7.0 → 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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"}
@@ -6,10 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const DOMException_1 = __importDefault(require("../exception/DOMException"));
7
7
  const ATTRIBUTE_REGEXP = /\[([a-zA-Z0-9-_]+)\]|\[([a-zA-Z0-9-_]+)([~|^$*]{0,1})[ ]*=[ ]*["']{0,1}([^"']+)["']{0,1}\]/g;
8
8
  const ATTRIBUTE_NAME_REGEXP = /[^a-zA-Z0-9-_$]/;
9
- const PSUEDO_REGEXP = /:([a-zA-Z-]+)\(([0-9n+-]+|odd|even)\)|:not\(([^)]+)\)|:([a-zA-Z-]+)/g;
10
- const CLASS_REGEXP = /\.([a-zA-Z0-9-_$]+)/g;
9
+ const PSUEDO_REGEXP = /(?<!\\):([a-zA-Z-]+)\(([0-9n+-]+|odd|even)\)|(?<!\\):not\(([^)]+)\)|(?<!\\):([a-zA-Z-]+)/g;
10
+ const CLASS_REGEXP = /\.(([a-zA-Z0-9-_$]|\\.)+)/g;
11
11
  const TAG_NAME_REGEXP = /^[a-zA-Z0-9-]+/;
12
- const ID_REGEXP = /#[A-Za-z][-A-Za-z0-9_]*/g;
12
+ const ID_REGEXP = /(?<!\\)#[A-Za-z][-A-Za-z0-9_]*/g;
13
+ const CSS_ESCAPE_REGEXP = /(?<!\\):/g;
14
+ const CSS_ESCAPE_CHAR_REGEXP = /\\/g;
13
15
  /**
14
16
  * Selector item.
15
17
  */
@@ -22,8 +24,9 @@ class SelectorItem {
22
24
  constructor(selector) {
23
25
  this.tagName = null;
24
26
  const baseSelector = selector.replace(new RegExp(PSUEDO_REGEXP, 'g'), '');
27
+ const idMatch = !this.isAll && selector.includes('#') ? baseSelector.match(ID_REGEXP) : null;
25
28
  this.isAll = baseSelector === '*';
26
- this.isID = !this.isAll ? selector.indexOf('#') !== -1 : false;
29
+ this.isID = !!idMatch;
27
30
  this.isAttribute = !this.isAll && baseSelector.includes('[');
28
31
  // If baseSelector !== selector then some psuedo selector was replaced above
29
32
  this.isPseudo = !this.isAll && baseSelector !== selector;
@@ -32,13 +35,7 @@ class SelectorItem {
32
35
  this.tagName = this.tagName ? this.tagName[0].toUpperCase() : null;
33
36
  this.isTagName = this.tagName !== null;
34
37
  this.selector = selector;
35
- this.id = null;
36
- if (!this.isAll && this.isID) {
37
- const idMatches = baseSelector.match(ID_REGEXP);
38
- if (idMatches) {
39
- this.id = idMatches[0].replace('#', '');
40
- }
41
- }
38
+ this.id = idMatch ? idMatch[0].replace('#', '') : null;
42
39
  }
43
40
  /**
44
41
  * Matches a selector against an element.
@@ -247,12 +244,12 @@ class SelectorItem {
247
244
  matchesClass(element, selector) {
248
245
  const regexp = new RegExp(CLASS_REGEXP, 'g');
249
246
  const classList = element.className.split(' ');
250
- const classSelector = selector.split(':')[0];
247
+ const classSelector = selector.split(CSS_ESCAPE_REGEXP)[0];
251
248
  let priorityWeight = 0;
252
249
  let match;
253
250
  while ((match = regexp.exec(classSelector))) {
254
251
  priorityWeight += 10;
255
- if (!classList.includes(match[1])) {
252
+ if (!classList.includes(match[1].replace(CSS_ESCAPE_CHAR_REGEXP, ''))) {
256
253
  return { priorityWeight: 0, matches: false };
257
254
  }
258
255
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SelectorItem.js","sourceRoot":"","sources":["../../src/query-selector/SelectorItem.ts"],"names":[],"mappings":";;;;;AAAA,6EAAqD;AAIrD,MAAM,gBAAgB,GACrB,6FAA6F,CAAC;AAC/F,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;AAChD,MAAM,aAAa,GAAG,sEAAsE,CAAC;AAC7F,MAAM,YAAY,GAAG,sBAAsB,CAAC;AAC5C,MAAM,eAAe,GAAG,gBAAgB,CAAC;AACzC,MAAM,SAAS,GAAG,0BAA0B,CAAC;AAE7C;;GAEG;AACH,MAAqB,YAAY;IAWhC;;;;OAIG;IACH,YAAY,QAAgB;QATpB,YAAO,GAAG,IAAI,CAAC;QAUtB,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAE1E,IAAI,CAAC,KAAK,GAAG,YAAY,KAAK,GAAG,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/D,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC7D,4EAA4E;QAC5E,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,YAAY,KAAK,QAAQ,CAAC;QACzD,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/E,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACnE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QAEf,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE;YAC7B,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAChD,IAAI,SAAS,EAAE;gBACd,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;aACxC;SACD;IACF,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,OAAiB;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE/B,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,aAAa;QACb,IAAI,IAAI,CAAC,KAAK,EAAE;YACf,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;SAC5C;QAED,WAAW;QACX,IAAI,IAAI,CAAC,IAAI,EAAE;YACd,cAAc,IAAI,GAAG,CAAC;YAEtB,IAAI,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,EAAE;gBAC3B,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;aAC7C;SACD;QAED,iBAAiB;QACjB,IAAI,IAAI,CAAC,SAAS,EAAE;YACnB,cAAc,IAAI,CAAC,CAAC;YAEpB,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE;gBACrC,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;aAC7C;SACD;QAED,cAAc;QACd,IAAI,IAAI,CAAC,OAAO,EAAE;YACjB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACpD,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;gBACpB,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;aAC7C;SACD;QAED,eAAe;QACf,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;YAC5D,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;SAC7C;QAED,kBAAkB;QAClB,IAAI,IAAI,CAAC,WAAW,EAAE;YACrB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACxD,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;gBACpB,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;aAC7C;SACD;QAED,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACK,aAAa,CAAC,OAAiB,EAAE,QAAgB;QACxD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAC9C,IAAI,KAAuB,CAAC;QAE5B,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE;YACvC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;YAC1D,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;gBACnE,OAAO,KAAK,CAAC;aACb;iBAAM,IACN,KAAK,CAAC,CAAC,CAAC;gBACR,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC5D,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAClE;gBACD,OAAO,KAAK,CAAC;aACb;iBAAM,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;gBACxE,OAAO,KAAK,CAAC;aACb;SACD;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;;;OAOG;IACK,eAAe,CAAC,OAAiB,EAAE,MAAc,EAAE,KAAa;QACvE,IAAI,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAY,OAAO,CAAC,UAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAEjF,QAAQ,MAAM,CAAC,WAAW,EAAE,EAAE;YAC7B,KAAK,aAAa;gBACjB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;gBACzE,MAAM;YACP,KAAK,gBAAgB;gBACpB,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAC9B,MAAM;YACP,KAAK,kBAAkB;gBACtB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;gBACnF,MAAM;SACP;QAED,IAAI,KAAK,KAAK,KAAK,EAAE;YACpB,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAC7C;aAAM,IAAI,KAAK,KAAK,MAAM,EAAE;YAC5B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAC7C;aAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC/B,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,OAAO,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE;gBACrC,MAAM,IAAI,sBAAY,CAAC,iBAAiB,IAAI,CAAC,QAAQ,iBAAiB,CAAC,CAAC;aACxE;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,OAAO,EAAE;gBAC9D,IAAI,UAAU,KAAK,CAAC,GAAG,OAAO,GAAG,CAAC,EAAE;oBACnC,OAAO,IAAI,CAAC;iBACZ;aACD;YAED,OAAO,KAAK,CAAC;SACb;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAE7B,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;YAClB,MAAM,IAAI,sBAAY,CAAC,iBAAiB,IAAI,CAAC,QAAQ,iBAAiB,CAAC,CAAC;SACxE;QAED,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,OAAO,CAAC;IACzC,CAAC;IAED;;;;;;OAMG;IACK,uBAAuB,CAAC,OAAiB,EAAE,MAAc;QAChE,MAAM,MAAM,GAAa,OAAO,CAAC,UAAU,CAAC;QAE5C,IAAI,CAAC,MAAM,EAAE;YACZ,OAAO,KAAK,CAAC;SACb;QAED,QAAQ,MAAM,CAAC,WAAW,EAAE,EAAE;YAC7B,KAAK,aAAa;gBACjB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;YACvC,KAAK,YAAY;gBAChB,MAAM,iBAAiB,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAC1C,OAAO,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,OAAO,CAAC;YACpE,KAAK,YAAY;gBAChB,MAAM,iBAAiB,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAC1C,OAAO,iBAAiB,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;YAC3E,KAAK,eAAe;gBACnB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE;oBACpC,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE;wBACtC,OAAO,KAAK,KAAK,OAAO,CAAC;qBACzB;iBACD;gBACD,OAAO,KAAK,CAAC;YACd,KAAK,cAAc;gBAClB,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;oBACrD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBACjC,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE;wBACtC,OAAO,KAAK,KAAK,OAAO,CAAC;qBACzB;iBACD;gBACD,OAAO,KAAK,CAAC;YACd,KAAK,cAAc;gBAClB,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE;oBACpC,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE;wBACtC,IAAI,OAAO,IAAI,KAAK,KAAK,OAAO,EAAE;4BACjC,OAAO,KAAK,CAAC;yBACb;wBACD,OAAO,GAAG,IAAI,CAAC;qBACf;iBACD;gBACD,OAAO,OAAO,CAAC;SAChB;QAED,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACK,gBAAgB,CACvB,OAAiB,EACjB,QAAgB;QAEhB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;QACjD,IAAI,KAAuB,CAAC;QAC5B,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE;YACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;YAEtE,cAAc,IAAI,EAAE,CAAC;YAErB,IACC,CAAC,QAAQ;gBACT,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC3D,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACxF;gBACD,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;aAC7C;SACD;QAED,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACK,YAAY,CACnB,OAAiB,EACjB,QAAgB;QAEhB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,KAAuB,CAAC;QAE5B,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE;YAC5C,cAAc,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;gBAClC,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;aAC7C;SACD;QAED,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACK,oBAAoB,CAAC,OAAiB,EAAE,aAAqB;QACpE,IAAI,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;YAC9C,MAAM,IAAI,sBAAY,CAAC,iBAAiB,IAAI,CAAC,QAAQ,iBAAiB,CAAC,CAAC;SACxE;QAED,OAAO,CAAC,CAAW,OAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;;;;OASG;IACH;;;;;;OAMG;IACK,4BAA4B,CACnC,OAAiB,EACjB,aAAqB,EACrB,cAAsB,EACtB,YAAoB,IAAI;QAExB,MAAM,SAAS,GAAa,OAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9E,MAAM,KAAK,GAAG,cAAc,CAAC;QAE7B,IAAI,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;YAC9C,MAAM,IAAI,sBAAY,CAAC,iBAAiB,IAAI,CAAC,QAAQ,iBAAiB,CAAC,CAAC;SACxE;QAED,IAAI,CAAC,SAAS,EAAE;YACf,OAAO,KAAK,CAAC;SACb;QAED,IAAI,SAAS,EAAE;YACd,QAAQ,SAAS,EAAE;gBAClB,oDAAoD;gBACpD,KAAK,GAAG;oBACP,OAAO,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACtE,yDAAyD;gBACzD,KAAK,GAAG;oBACP,OAAO,SAAS,IAAI,SAAS,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC1F,wDAAwD;gBACxD,KAAK,GAAG;oBACP,OAAO,SAAS,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC1E,sDAAsD;gBACtD,KAAK,GAAG;oBACP,OAAO,SAAS,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACxE,qDAAqD;gBACrD,KAAK,GAAG;oBACP,OAAO,SAAS,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACxE;SACD;QAED,OAAO,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK,CAAC;IAC/C,CAAC;CACD;AAhXD,+BAgXC"}
1
+ {"version":3,"file":"SelectorItem.js","sourceRoot":"","sources":["../../src/query-selector/SelectorItem.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.0",
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": "9eb21a6f922278fe17ff2d4b99f2a2898fe2053f"
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
  /**
@@ -5,10 +5,13 @@ import Element from '../nodes/element/Element';
5
5
  const ATTRIBUTE_REGEXP =
6
6
  /\[([a-zA-Z0-9-_]+)\]|\[([a-zA-Z0-9-_]+)([~|^$*]{0,1})[ ]*=[ ]*["']{0,1}([^"']+)["']{0,1}\]/g;
7
7
  const ATTRIBUTE_NAME_REGEXP = /[^a-zA-Z0-9-_$]/;
8
- const PSUEDO_REGEXP = /:([a-zA-Z-]+)\(([0-9n+-]+|odd|even)\)|:not\(([^)]+)\)|:([a-zA-Z-]+)/g;
9
- const CLASS_REGEXP = /\.([a-zA-Z0-9-_$]+)/g;
8
+ const PSUEDO_REGEXP =
9
+ /(?<!\\):([a-zA-Z-]+)\(([0-9n+-]+|odd|even)\)|(?<!\\):not\(([^)]+)\)|(?<!\\):([a-zA-Z-]+)/g;
10
+ const CLASS_REGEXP = /\.(([a-zA-Z0-9-_$]|\\.)+)/g;
10
11
  const TAG_NAME_REGEXP = /^[a-zA-Z0-9-]+/;
11
- const ID_REGEXP = /#[A-Za-z][-A-Za-z0-9_]*/g;
12
+ const ID_REGEXP = /(?<!\\)#[A-Za-z][-A-Za-z0-9_]*/g;
13
+ const CSS_ESCAPE_REGEXP = /(?<!\\):/g;
14
+ const CSS_ESCAPE_CHAR_REGEXP = /\\/g;
12
15
 
13
16
  /**
14
17
  * Selector item.
@@ -31,9 +34,10 @@ export default class SelectorItem {
31
34
  */
32
35
  constructor(selector: string) {
33
36
  const baseSelector = selector.replace(new RegExp(PSUEDO_REGEXP, 'g'), '');
37
+ const idMatch = !this.isAll && selector.includes('#') ? baseSelector.match(ID_REGEXP) : null;
34
38
 
35
39
  this.isAll = baseSelector === '*';
36
- this.isID = !this.isAll ? selector.indexOf('#') !== -1 : false;
40
+ this.isID = !!idMatch;
37
41
  this.isAttribute = !this.isAll && baseSelector.includes('[');
38
42
  // If baseSelector !== selector then some psuedo selector was replaced above
39
43
  this.isPseudo = !this.isAll && baseSelector !== selector;
@@ -42,14 +46,7 @@ export default class SelectorItem {
42
46
  this.tagName = this.tagName ? this.tagName[0].toUpperCase() : null;
43
47
  this.isTagName = this.tagName !== null;
44
48
  this.selector = selector;
45
- this.id = null;
46
-
47
- if (!this.isAll && this.isID) {
48
- const idMatches = baseSelector.match(ID_REGEXP);
49
- if (idMatches) {
50
- this.id = idMatches[0].replace('#', '');
51
- }
52
- }
49
+ this.id = idMatch ? idMatch[0].replace('#', '') : null;
53
50
  }
54
51
 
55
52
  /**
@@ -296,13 +293,13 @@ export default class SelectorItem {
296
293
  ): { priorityWeight: number; matches: boolean } {
297
294
  const regexp = new RegExp(CLASS_REGEXP, 'g');
298
295
  const classList = element.className.split(' ');
299
- const classSelector = selector.split(':')[0];
296
+ const classSelector = selector.split(CSS_ESCAPE_REGEXP)[0];
300
297
  let priorityWeight = 0;
301
298
  let match: RegExpMatchArray;
302
299
 
303
300
  while ((match = regexp.exec(classSelector))) {
304
301
  priorityWeight += 10;
305
- if (!classList.includes(match[1])) {
302
+ if (!classList.includes(match[1].replace(CSS_ESCAPE_CHAR_REGEXP, ''))) {
306
303
  return { priorityWeight: 0, matches: false };
307
304
  }
308
305
  }
@@ -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
- }