happy-dom 10.11.1 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (169) hide show
  1. package/.eslintrc.cjs +1 -1
  2. package/cjs/console/VirtualConsole.cjs +351 -0
  3. package/cjs/console/VirtualConsole.cjs.map +1 -0
  4. package/cjs/console/VirtualConsole.d.ts +163 -0
  5. package/cjs/console/VirtualConsole.d.ts.map +1 -0
  6. package/cjs/console/VirtualConsolePrinter.cjs +101 -0
  7. package/cjs/console/VirtualConsolePrinter.cjs.map +1 -0
  8. package/cjs/console/VirtualConsolePrinter.d.ts +55 -0
  9. package/cjs/console/VirtualConsolePrinter.d.ts.map +1 -0
  10. package/cjs/console/enums/VirtualConsoleLogLevelEnum.cjs +16 -0
  11. package/cjs/console/enums/VirtualConsoleLogLevelEnum.cjs.map +1 -0
  12. package/cjs/console/enums/VirtualConsoleLogLevelEnum.d.ts +13 -0
  13. package/cjs/console/enums/VirtualConsoleLogLevelEnum.d.ts.map +1 -0
  14. package/cjs/console/enums/VirtualConsoleLogTypeEnum.cjs +30 -0
  15. package/cjs/console/enums/VirtualConsoleLogTypeEnum.cjs.map +1 -0
  16. package/cjs/console/enums/VirtualConsoleLogTypeEnum.d.ts +23 -0
  17. package/cjs/console/enums/VirtualConsoleLogTypeEnum.d.ts.map +1 -0
  18. package/cjs/console/types/IVirtualConsoleLogEntry.cjs +3 -0
  19. package/cjs/console/types/IVirtualConsoleLogEntry.cjs.map +1 -0
  20. package/cjs/console/types/IVirtualConsoleLogEntry.d.ts +10 -0
  21. package/cjs/console/types/IVirtualConsoleLogEntry.d.ts.map +1 -0
  22. package/cjs/console/types/IVirtualConsoleLogGroup.cjs +3 -0
  23. package/cjs/console/types/IVirtualConsoleLogGroup.cjs.map +1 -0
  24. package/cjs/console/types/IVirtualConsoleLogGroup.d.ts +7 -0
  25. package/cjs/console/types/IVirtualConsoleLogGroup.d.ts.map +1 -0
  26. package/cjs/console/types/IVirtualConsolePrinter.cjs +3 -0
  27. package/cjs/console/types/IVirtualConsolePrinter.cjs.map +1 -0
  28. package/cjs/console/types/IVirtualConsolePrinter.d.ts +52 -0
  29. package/cjs/console/types/IVirtualConsolePrinter.d.ts.map +1 -0
  30. package/cjs/console/utilities/VirtualConsoleLogEntryStringifier.cjs +97 -0
  31. package/cjs/console/utilities/VirtualConsoleLogEntryStringifier.cjs.map +1 -0
  32. package/cjs/console/utilities/VirtualConsoleLogEntryStringifier.d.ts +35 -0
  33. package/cjs/console/utilities/VirtualConsoleLogEntryStringifier.d.ts.map +1 -0
  34. package/cjs/css/CSSParser.cjs +34 -13
  35. package/cjs/css/CSSParser.cjs.map +1 -1
  36. package/cjs/css/CSSParser.d.ts +8 -0
  37. package/cjs/css/CSSParser.d.ts.map +1 -1
  38. package/cjs/event/EventTarget.cjs +23 -5
  39. package/cjs/event/EventTarget.cjs.map +1 -1
  40. package/cjs/event/EventTarget.d.ts.map +1 -1
  41. package/cjs/nodes/element/Element.cjs.map +1 -1
  42. package/cjs/nodes/element/Element.d.ts +1 -1
  43. package/cjs/nodes/element/Element.d.ts.map +1 -1
  44. package/cjs/nodes/html-link-element/HTMLLinkElementUtility.cjs +8 -31
  45. package/cjs/nodes/html-link-element/HTMLLinkElementUtility.cjs.map +1 -1
  46. package/cjs/nodes/html-link-element/HTMLLinkElementUtility.d.ts +0 -7
  47. package/cjs/nodes/html-link-element/HTMLLinkElementUtility.d.ts.map +1 -1
  48. package/cjs/nodes/html-script-element/HTMLScriptElement.cjs +2 -1
  49. package/cjs/nodes/html-script-element/HTMLScriptElement.cjs.map +1 -1
  50. package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
  51. package/cjs/nodes/html-script-element/HTMLScriptElementUtility.cjs +10 -55
  52. package/cjs/nodes/html-script-element/HTMLScriptElementUtility.cjs.map +1 -1
  53. package/cjs/nodes/html-script-element/HTMLScriptElementUtility.d.ts +0 -14
  54. package/cjs/nodes/html-script-element/HTMLScriptElementUtility.d.ts.map +1 -1
  55. package/cjs/window/GlobalWindow.cjs +1 -9
  56. package/cjs/window/GlobalWindow.cjs.map +1 -1
  57. package/cjs/window/GlobalWindow.d.ts +1 -7
  58. package/cjs/window/GlobalWindow.d.ts.map +1 -1
  59. package/cjs/window/IHappyDOMOptions.d.ts +2 -0
  60. package/cjs/window/IHappyDOMOptions.d.ts.map +1 -1
  61. package/cjs/window/IWindow.d.ts +2 -7
  62. package/cjs/window/IWindow.d.ts.map +1 -1
  63. package/cjs/window/VMGlobalPropertyScript.cjs +1 -0
  64. package/cjs/window/VMGlobalPropertyScript.cjs.map +1 -1
  65. package/cjs/window/VMGlobalPropertyScript.d.ts +1 -1
  66. package/cjs/window/VMGlobalPropertyScript.d.ts.map +1 -1
  67. package/cjs/window/Window.cjs +51 -64
  68. package/cjs/window/Window.cjs.map +1 -1
  69. package/cjs/window/Window.d.ts +6 -23
  70. package/cjs/window/Window.d.ts.map +1 -1
  71. package/cjs/window/WindowErrorUtility.cjs +84 -0
  72. package/cjs/window/WindowErrorUtility.cjs.map +1 -0
  73. package/cjs/window/WindowErrorUtility.d.ts +38 -0
  74. package/cjs/window/WindowErrorUtility.d.ts.map +1 -0
  75. package/lib/console/VirtualConsole.d.ts +163 -0
  76. package/lib/console/VirtualConsole.d.ts.map +1 -0
  77. package/lib/console/VirtualConsole.js +322 -0
  78. package/lib/console/VirtualConsole.js.map +1 -0
  79. package/lib/console/VirtualConsolePrinter.d.ts +55 -0
  80. package/lib/console/VirtualConsolePrinter.d.ts.map +1 -0
  81. package/lib/console/VirtualConsolePrinter.js +95 -0
  82. package/lib/console/VirtualConsolePrinter.js.map +1 -0
  83. package/lib/console/enums/VirtualConsoleLogLevelEnum.d.ts +13 -0
  84. package/lib/console/enums/VirtualConsoleLogLevelEnum.d.ts.map +1 -0
  85. package/lib/console/enums/VirtualConsoleLogLevelEnum.js +14 -0
  86. package/lib/console/enums/VirtualConsoleLogLevelEnum.js.map +1 -0
  87. package/lib/console/enums/VirtualConsoleLogTypeEnum.d.ts +23 -0
  88. package/lib/console/enums/VirtualConsoleLogTypeEnum.d.ts.map +1 -0
  89. package/lib/console/enums/VirtualConsoleLogTypeEnum.js +28 -0
  90. package/lib/console/enums/VirtualConsoleLogTypeEnum.js.map +1 -0
  91. package/lib/console/types/IVirtualConsoleLogEntry.d.ts +10 -0
  92. package/lib/console/types/IVirtualConsoleLogEntry.d.ts.map +1 -0
  93. package/lib/console/types/IVirtualConsoleLogEntry.js +2 -0
  94. package/lib/console/types/IVirtualConsoleLogEntry.js.map +1 -0
  95. package/lib/console/types/IVirtualConsoleLogGroup.d.ts +7 -0
  96. package/lib/console/types/IVirtualConsoleLogGroup.d.ts.map +1 -0
  97. package/lib/console/types/IVirtualConsoleLogGroup.js +2 -0
  98. package/lib/console/types/IVirtualConsoleLogGroup.js.map +1 -0
  99. package/lib/console/types/IVirtualConsolePrinter.d.ts +52 -0
  100. package/lib/console/types/IVirtualConsolePrinter.d.ts.map +1 -0
  101. package/lib/console/types/IVirtualConsolePrinter.js +2 -0
  102. package/lib/console/types/IVirtualConsolePrinter.js.map +1 -0
  103. package/lib/console/utilities/VirtualConsoleLogEntryStringifier.d.ts +35 -0
  104. package/lib/console/utilities/VirtualConsoleLogEntryStringifier.d.ts.map +1 -0
  105. package/lib/console/utilities/VirtualConsoleLogEntryStringifier.js +91 -0
  106. package/lib/console/utilities/VirtualConsoleLogEntryStringifier.js.map +1 -0
  107. package/lib/css/CSSParser.d.ts +8 -0
  108. package/lib/css/CSSParser.d.ts.map +1 -1
  109. package/lib/css/CSSParser.js +34 -13
  110. package/lib/css/CSSParser.js.map +1 -1
  111. package/lib/event/EventTarget.d.ts.map +1 -1
  112. package/lib/event/EventTarget.js +23 -5
  113. package/lib/event/EventTarget.js.map +1 -1
  114. package/lib/nodes/element/Element.d.ts +1 -1
  115. package/lib/nodes/element/Element.d.ts.map +1 -1
  116. package/lib/nodes/element/Element.js.map +1 -1
  117. package/lib/nodes/html-link-element/HTMLLinkElementUtility.d.ts +0 -7
  118. package/lib/nodes/html-link-element/HTMLLinkElementUtility.d.ts.map +1 -1
  119. package/lib/nodes/html-link-element/HTMLLinkElementUtility.js +8 -31
  120. package/lib/nodes/html-link-element/HTMLLinkElementUtility.js.map +1 -1
  121. package/lib/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
  122. package/lib/nodes/html-script-element/HTMLScriptElement.js +2 -1
  123. package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
  124. package/lib/nodes/html-script-element/HTMLScriptElementUtility.d.ts +0 -14
  125. package/lib/nodes/html-script-element/HTMLScriptElementUtility.d.ts.map +1 -1
  126. package/lib/nodes/html-script-element/HTMLScriptElementUtility.js +10 -55
  127. package/lib/nodes/html-script-element/HTMLScriptElementUtility.js.map +1 -1
  128. package/lib/window/GlobalWindow.d.ts +1 -7
  129. package/lib/window/GlobalWindow.d.ts.map +1 -1
  130. package/lib/window/GlobalWindow.js +1 -9
  131. package/lib/window/GlobalWindow.js.map +1 -1
  132. package/lib/window/IHappyDOMOptions.d.ts +2 -0
  133. package/lib/window/IHappyDOMOptions.d.ts.map +1 -1
  134. package/lib/window/IWindow.d.ts +2 -7
  135. package/lib/window/IWindow.d.ts.map +1 -1
  136. package/lib/window/VMGlobalPropertyScript.d.ts +1 -1
  137. package/lib/window/VMGlobalPropertyScript.d.ts.map +1 -1
  138. package/lib/window/VMGlobalPropertyScript.js +1 -0
  139. package/lib/window/VMGlobalPropertyScript.js.map +1 -1
  140. package/lib/window/Window.d.ts +6 -23
  141. package/lib/window/Window.d.ts.map +1 -1
  142. package/lib/window/Window.js +51 -64
  143. package/lib/window/Window.js.map +1 -1
  144. package/lib/window/WindowErrorUtility.d.ts +38 -0
  145. package/lib/window/WindowErrorUtility.d.ts.map +1 -0
  146. package/lib/window/WindowErrorUtility.js +78 -0
  147. package/lib/window/WindowErrorUtility.js.map +1 -0
  148. package/package.json +2 -2
  149. package/src/console/VirtualConsole.ts +356 -0
  150. package/src/console/VirtualConsolePrinter.ts +107 -0
  151. package/src/console/enums/VirtualConsoleLogLevelEnum.ts +12 -0
  152. package/src/console/enums/VirtualConsoleLogTypeEnum.ts +29 -0
  153. package/src/console/types/IVirtualConsoleLogEntry.ts +10 -0
  154. package/src/console/types/IVirtualConsoleLogGroup.ts +6 -0
  155. package/src/console/types/IVirtualConsolePrinter.ts +58 -0
  156. package/src/console/utilities/VirtualConsoleLogEntryStringifier.ts +100 -0
  157. package/src/css/CSSParser.ts +35 -14
  158. package/src/event/EventTarget.ts +27 -5
  159. package/src/nodes/element/Element.ts +1 -1
  160. package/src/nodes/html-link-element/HTMLLinkElementUtility.ts +13 -35
  161. package/src/nodes/html-script-element/HTMLScriptElement.ts +4 -1
  162. package/src/nodes/html-script-element/HTMLScriptElementUtility.ts +19 -62
  163. package/src/window/GlobalWindow.ts +1 -10
  164. package/src/window/IHappyDOMOptions.ts +1 -0
  165. package/src/window/IWindow.ts +2 -8
  166. package/src/window/VMGlobalPropertyScript.ts +1 -0
  167. package/src/window/Window.ts +77 -70
  168. package/src/window/WindowErrorUtility.ts +94 -0
  169. package/tsconfig.json +2 -3
@@ -0,0 +1,94 @@
1
+ import IWindow from './IWindow.js';
2
+ import ErrorEvent from '../event/events/ErrorEvent.js';
3
+ import { IElement } from '../index.js';
4
+
5
+ /**
6
+ * Error utility.
7
+ */
8
+ export default class WindowErrorUtility {
9
+ /**
10
+ * Calls a function asynchronously wrapped in a try/catch block to capture errors and dispatch error events.
11
+ *
12
+ * It will also output the errors to the console.
13
+ *
14
+ * @param elementOrWindow Element or Window.
15
+ * @param callback Callback.
16
+ * @param [cleanup] Cleanup callback on error.
17
+ * @returns Promise.
18
+ */
19
+ public static async captureErrorAsync<T>(
20
+ elementOrWindow: IWindow | IElement,
21
+ callback: () => Promise<T>,
22
+ cleanup?: () => void
23
+ ): Promise<T | null> {
24
+ try {
25
+ return await callback();
26
+ } catch (error) {
27
+ this.dispatchError(elementOrWindow, error);
28
+ if (cleanup) {
29
+ cleanup();
30
+ }
31
+ }
32
+ return null;
33
+ }
34
+
35
+ /**
36
+ * Calls a function synchronously wrapped in a try/catch block to capture errors and dispatch error events.
37
+ * If the callback returns a Promise, it will catch errors from the promise.
38
+ *
39
+ * It will also output the errors to the console.
40
+ *
41
+ * @param elementOrWindow Element or Window.
42
+ * @param callback Callback.
43
+ * @param [cleanup] Cleanup callback on error.
44
+ * @returns Result.
45
+ */
46
+ public static captureErrorSync<T>(
47
+ elementOrWindow: IWindow | IElement,
48
+ callback: () => T,
49
+ cleanup?: () => void
50
+ ): T | null {
51
+ let result = null;
52
+
53
+ try {
54
+ result = callback();
55
+ } catch (error) {
56
+ this.dispatchError(elementOrWindow, error);
57
+ if (cleanup) {
58
+ cleanup();
59
+ }
60
+ }
61
+
62
+ if (result && result instanceof Promise) {
63
+ result.catch((error) => {
64
+ this.dispatchError(elementOrWindow, error);
65
+ if (cleanup) {
66
+ cleanup();
67
+ }
68
+ });
69
+ }
70
+
71
+ return result;
72
+ }
73
+
74
+ /**
75
+ * Dispatches an error event and outputs it to the console.
76
+ *
77
+ * @param elementOrWindow Element or Window.
78
+ * @param error Error.
79
+ */
80
+ public static dispatchError(elementOrWindow: IWindow | IElement, error: Error): void {
81
+ if ((<IWindow>elementOrWindow).console) {
82
+ (<IWindow>elementOrWindow).console.error(error);
83
+ elementOrWindow.dispatchEvent(new ErrorEvent('error', { message: error.message, error }));
84
+ } else {
85
+ (<IElement>elementOrWindow).ownerDocument.defaultView.console.error(error);
86
+ (<IElement>elementOrWindow).dispatchEvent(
87
+ new ErrorEvent('error', { message: error.message, error })
88
+ );
89
+ (<IElement>elementOrWindow).ownerDocument.defaultView.dispatchEvent(
90
+ new ErrorEvent('error', { message: error.message, error })
91
+ );
92
+ }
93
+ }
94
+ }
package/tsconfig.json CHANGED
@@ -2,7 +2,6 @@
2
2
  "compilerOptions": {
3
3
  "outDir": "lib",
4
4
  "rootDir": "src",
5
- "tsBuildInfoFile": "tmp/.tsbuildinfo",
6
5
  "target": "es2020",
7
6
  "declaration": true,
8
7
  "declarationMap": true,
@@ -19,8 +18,8 @@
19
18
  "sourceMap": true,
20
19
  "skipLibCheck": false,
21
20
  "baseUrl": ".",
22
- "composite": true,
23
- "incremental": true,
21
+ "composite": false,
22
+ "incremental": false,
24
23
  "lib": [
25
24
  "es2020"
26
25
  ],