happy-dom 20.3.4 → 20.3.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserFrameURL.d.ts","sourceRoot":"","sources":["../../../src/browser/utilities/BrowserFrameURL.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IACnC;;;;;;OAMG;WACW,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG;CAalF"}
1
+ {"version":3,"file":"BrowserFrameURL.d.ts","sourceRoot":"","sources":["../../../src/browser/utilities/BrowserFrameURL.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAG1B;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IACnC;;;;;;OAMG;WACW,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG;CAclF"}
@@ -1,4 +1,5 @@
1
1
  import { URL } from 'url';
2
+ import * as PropertySymbol from '../../PropertySymbol.js';
2
3
  /**
3
4
  * Browser frame URL utility.
4
5
  */
@@ -16,7 +17,8 @@ export default class BrowserFrameURL {
16
17
  return new URL(url);
17
18
  }
18
19
  try {
19
- return new URL(url, frame.window.location.href);
20
+ // Use internal PropertySymbol.location to avoid being affected by mocks on window.location
21
+ return new URL(url, frame.window[PropertySymbol.location].href);
20
22
  }
21
23
  catch (e) {
22
24
  return new URL('about:blank');
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserFrameURL.js","sourceRoot":"","sources":["../../../src/browser/utilities/BrowserFrameURL.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IACnC;;;;;;OAMG;IACI,MAAM,CAAC,cAAc,CAAC,KAAoB,EAAE,GAAyB;QAC3E,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;QAExC,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/D,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,CAAC;YACJ,OAAO,IAAI,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,OAAO,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;QAC/B,CAAC;IACF,CAAC;CACD"}
1
+ {"version":3,"file":"BrowserFrameURL.js","sourceRoot":"","sources":["../../../src/browser/utilities/BrowserFrameURL.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAC;AAE1D;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IACnC;;;;;;OAMG;IACI,MAAM,CAAC,cAAc,CAAC,KAAoB,EAAE,GAAyB;QAC3E,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;QAExC,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/D,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,CAAC;YACJ,2FAA2F;YAC3F,OAAO,IAAI,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,OAAO,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;QAC/B,CAAC;IACF,CAAC;CACD"}
@@ -11,13 +11,13 @@ export default class CookieURLUtility {
11
11
  * @returns "true" if cookie matches URL.
12
12
  */
13
13
  static cookieMatchesURL(cookie, url) {
14
- const isLocalhost = url.hostname === 'localhost' || url.hostname.endsWith('.localhost');
14
+ const isLocalhost = url.hostname === 'localhost' || url.hostname?.endsWith('.localhost');
15
15
  return ((!cookie.secure || url.protocol === 'https:' || isLocalhost) &&
16
- (!cookie.domain || url.hostname.endsWith(cookie.domain)) &&
17
- (!cookie.path || url.pathname.startsWith(cookie.path)) &&
16
+ (!cookie.domain || url.hostname?.endsWith(cookie.domain)) &&
17
+ (!cookie.path || url.pathname?.startsWith(cookie.path)) &&
18
18
  // @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#samesitesamesite-value
19
19
  ((cookie.sameSite === CookieSameSiteEnum.none && cookie.secure) ||
20
- cookie.originURL.hostname === url.hostname));
20
+ cookie.originURL?.hostname === url.hostname));
21
21
  }
22
22
  }
23
23
  //# sourceMappingURL=CookieURLUtility.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CookieURLUtility.js","sourceRoot":"","sources":["../../../src/cookie/urilities/CookieURLUtility.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,gCAAgC,CAAC;AAIhE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACpC;;;;;;OAMG;IACI,MAAM,CAAC,gBAAgB,CAAC,MAAe,EAAE,GAAQ;QACvD,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,KAAK,WAAW,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACxF,OAAO,CACN,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,WAAW,CAAC;YAC5D,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACxD,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtD,mGAAmG;YACnG,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,kBAAkB,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC;gBAC9D,MAAM,CAAC,SAAS,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,CAAC,CAC5C,CAAC;IACH,CAAC;CACD"}
1
+ {"version":3,"file":"CookieURLUtility.js","sourceRoot":"","sources":["../../../src/cookie/urilities/CookieURLUtility.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,gCAAgC,CAAC;AAIhE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACpC;;;;;;OAMG;IACI,MAAM,CAAC,gBAAgB,CAAC,MAAe,EAAE,GAAQ;QACvD,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,KAAK,WAAW,IAAI,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;QACzF,OAAO,CACN,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,WAAW,CAAC;YAC5D,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzD,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACvD,mGAAmG;YACnG,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,kBAAkB,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC;gBAC9D,MAAM,CAAC,SAAS,EAAE,QAAQ,KAAK,GAAG,CAAC,QAAQ,CAAC,CAC7C,CAAC;IACH,CAAC;CACD"}
package/lib/version.js CHANGED
@@ -1 +1 @@
1
- export default { version: '20.3.4' };
1
+ export default { version: '20.3.5' };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "happy-dom",
3
- "version": "20.3.4",
3
+ "version": "20.3.5",
4
4
  "license": "MIT",
5
5
  "homepage": "https://github.com/capricorn86/happy-dom",
6
6
  "repository": "https://github.com/capricorn86/happy-dom",
@@ -41,10 +41,10 @@
41
41
  "ws": "^8.18.3"
42
42
  },
43
43
  "devDependencies": {
44
- "@vitest/ui": "^3.2.3",
44
+ "@vitest/ui": "^4.0.16",
45
45
  "@webref/css": "6.6.2",
46
46
  "typescript": "^5.8.3",
47
- "vitest": "^3.2.2"
47
+ "vitest": "^4.0.16"
48
48
  },
49
49
  "engines": {
50
50
  "node": ">=20.0.0"
@@ -1,5 +1,6 @@
1
1
  import IBrowserFrame from '../types/IBrowserFrame.js';
2
2
  import { URL } from 'url';
3
+ import * as PropertySymbol from '../../PropertySymbol.js';
3
4
 
4
5
  /**
5
6
  * Browser frame URL utility.
@@ -20,7 +21,8 @@ export default class BrowserFrameURL {
20
21
  }
21
22
 
22
23
  try {
23
- return new URL(url, frame.window.location.href);
24
+ // Use internal PropertySymbol.location to avoid being affected by mocks on window.location
25
+ return new URL(url, frame.window[PropertySymbol.location].href);
24
26
  } catch (e) {
25
27
  return new URL('about:blank');
26
28
  }
@@ -14,14 +14,14 @@ export default class CookieURLUtility {
14
14
  * @returns "true" if cookie matches URL.
15
15
  */
16
16
  public static cookieMatchesURL(cookie: ICookie, url: URL): boolean {
17
- const isLocalhost = url.hostname === 'localhost' || url.hostname.endsWith('.localhost');
17
+ const isLocalhost = url.hostname === 'localhost' || url.hostname?.endsWith('.localhost');
18
18
  return (
19
19
  (!cookie.secure || url.protocol === 'https:' || isLocalhost) &&
20
- (!cookie.domain || url.hostname.endsWith(cookie.domain)) &&
21
- (!cookie.path || url.pathname.startsWith(cookie.path)) &&
20
+ (!cookie.domain || url.hostname?.endsWith(cookie.domain)) &&
21
+ (!cookie.path || url.pathname?.startsWith(cookie.path)) &&
22
22
  // @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#samesitesamesite-value
23
23
  ((cookie.sameSite === CookieSameSiteEnum.none && cookie.secure) ||
24
- cookie.originURL.hostname === url.hostname)
24
+ cookie.originURL?.hostname === url.hostname)
25
25
  );
26
26
  }
27
27
  }