happy-dom 8.8.0 → 9.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 (364) hide show
  1. package/README.md +2 -2
  2. package/lib/cookie/CookieJar.js +1 -1
  3. package/lib/cookie/CookieJar.js.map +1 -1
  4. package/lib/dom-token-list/DOMTokenList.js +24 -20
  5. package/lib/dom-token-list/DOMTokenList.js.map +1 -1
  6. package/lib/event/EventTarget.js +6 -3
  7. package/lib/event/EventTarget.js.map +1 -1
  8. package/lib/exception/DOMExceptionNameEnum.d.ts +5 -1
  9. package/lib/exception/DOMExceptionNameEnum.js +4 -0
  10. package/lib/exception/DOMExceptionNameEnum.js.map +1 -1
  11. package/lib/fetch/AbortController.d.ts +19 -0
  12. package/lib/fetch/AbortController.js +30 -0
  13. package/lib/fetch/AbortController.js.map +1 -0
  14. package/lib/fetch/AbortSignal.d.ts +25 -0
  15. package/lib/fetch/AbortSignal.js +51 -0
  16. package/lib/fetch/AbortSignal.js.map +1 -0
  17. package/lib/fetch/Fetch.d.ts +117 -0
  18. package/lib/fetch/Fetch.js +530 -0
  19. package/lib/fetch/Fetch.js.map +1 -0
  20. package/lib/fetch/Headers.d.ts +81 -3
  21. package/lib/fetch/Headers.js +139 -24
  22. package/lib/fetch/Headers.js.map +1 -1
  23. package/lib/fetch/Request.d.ts +56 -32
  24. package/lib/fetch/Request.js +165 -110
  25. package/lib/fetch/Request.js.map +1 -1
  26. package/lib/fetch/{ResourceFetchHandler.d.ts → ResourceFetch.d.ts} +1 -1
  27. package/lib/fetch/{ResourceFetchHandler.js → ResourceFetch.js} +5 -5
  28. package/lib/fetch/ResourceFetch.js.map +1 -0
  29. package/lib/fetch/Response.d.ts +60 -26
  30. package/lib/fetch/Response.js +196 -104
  31. package/lib/fetch/Response.js.map +1 -1
  32. package/lib/fetch/data-uri/DataURIParser.d.ts +20 -0
  33. package/lib/fetch/data-uri/DataURIParser.js +60 -0
  34. package/lib/fetch/data-uri/DataURIParser.js.map +1 -0
  35. package/lib/fetch/multipart/MultipartFormDataParser.d.ts +40 -0
  36. package/lib/fetch/multipart/MultipartFormDataParser.js +81 -0
  37. package/lib/fetch/multipart/MultipartFormDataParser.js.map +1 -0
  38. package/lib/fetch/multipart/MultipartReader.d.ts +49 -0
  39. package/lib/fetch/multipart/MultipartReader.js +178 -0
  40. package/lib/fetch/multipart/MultipartReader.js.map +1 -0
  41. package/lib/fetch/types/IHeaders.d.ts +71 -0
  42. package/lib/fetch/{IHeaders.js.map → types/IHeaders.js.map} +1 -1
  43. package/lib/fetch/types/IHeadersInit.js.map +1 -0
  44. package/lib/fetch/types/IRequest.d.ts +60 -0
  45. package/lib/fetch/{IRequest.js.map → types/IRequest.js.map} +1 -1
  46. package/lib/fetch/types/IRequestBody.d.ts +7 -0
  47. package/lib/fetch/{IBody.js → types/IRequestBody.js} +1 -1
  48. package/lib/fetch/types/IRequestBody.js.map +1 -0
  49. package/lib/fetch/types/IRequestCredentials.d.ts +2 -0
  50. package/lib/fetch/types/IRequestCredentials.js +3 -0
  51. package/lib/fetch/types/IRequestCredentials.js.map +1 -0
  52. package/lib/fetch/{RequestInfo.d.ts → types/IRequestInfo.d.ts} +2 -2
  53. package/lib/fetch/types/IRequestInfo.js +3 -0
  54. package/lib/fetch/types/IRequestInfo.js.map +1 -0
  55. package/lib/fetch/types/IRequestInit.d.ts +21 -0
  56. package/lib/fetch/types/IRequestInit.js.map +1 -0
  57. package/lib/fetch/types/IRequestRedirect.d.ts +2 -0
  58. package/lib/fetch/types/IRequestRedirect.js +3 -0
  59. package/lib/fetch/types/IRequestRedirect.js.map +1 -0
  60. package/lib/fetch/types/IRequestReferrerPolicy.d.ts +2 -0
  61. package/lib/fetch/types/IRequestReferrerPolicy.js +3 -0
  62. package/lib/fetch/types/IRequestReferrerPolicy.js.map +1 -0
  63. package/lib/fetch/types/IResponse.d.ts +27 -0
  64. package/lib/fetch/{IResponse.js.map → types/IResponse.js.map} +1 -1
  65. package/lib/fetch/types/IResponseBody.d.ts +7 -0
  66. package/lib/fetch/types/IResponseBody.js +3 -0
  67. package/lib/fetch/types/IResponseBody.js.map +1 -0
  68. package/lib/fetch/types/IResponseInit.d.ts +9 -0
  69. package/lib/fetch/types/IResponseInit.js.map +1 -0
  70. package/lib/fetch/utilities/FetchBodyUtility.d.ts +44 -0
  71. package/lib/fetch/utilities/FetchBodyUtility.js +156 -0
  72. package/lib/fetch/utilities/FetchBodyUtility.js.map +1 -0
  73. package/lib/fetch/utilities/FetchCORSUtility.d.ts +12 -0
  74. package/lib/fetch/utilities/FetchCORSUtility.js +20 -0
  75. package/lib/fetch/utilities/FetchCORSUtility.js.map +1 -0
  76. package/lib/fetch/utilities/FetchRequestHeaderUtility.d.ts +12 -0
  77. package/lib/fetch/utilities/FetchRequestHeaderUtility.js +45 -0
  78. package/lib/fetch/utilities/FetchRequestHeaderUtility.js.map +1 -0
  79. package/lib/fetch/utilities/FetchRequestReferrerUtility.d.ts +55 -0
  80. package/lib/fetch/utilities/FetchRequestReferrerUtility.js +194 -0
  81. package/lib/fetch/utilities/FetchRequestReferrerUtility.js.map +1 -0
  82. package/lib/fetch/utilities/FetchRequestValidationUtility.d.ts +38 -0
  83. package/lib/fetch/utilities/FetchRequestValidationUtility.js +70 -0
  84. package/lib/fetch/utilities/FetchRequestValidationUtility.js.map +1 -0
  85. package/lib/file/Blob.d.ts +2 -2
  86. package/lib/file/Blob.js +1 -1
  87. package/lib/file/Blob.js.map +1 -1
  88. package/lib/file/File.d.ts +2 -1
  89. package/lib/file/File.js.map +1 -1
  90. package/lib/form-data/FormData.d.ts +98 -0
  91. package/lib/form-data/FormData.js +212 -0
  92. package/lib/form-data/FormData.js.map +1 -0
  93. package/lib/index.d.ts +14 -1
  94. package/lib/index.js +20 -2
  95. package/lib/index.js.map +1 -1
  96. package/lib/nodes/document/Document.d.ts +5 -17
  97. package/lib/nodes/document/Document.js +11 -54
  98. package/lib/nodes/document/Document.js.map +1 -1
  99. package/lib/nodes/document/IDocument.d.ts +1 -1
  100. package/lib/nodes/document-fragment/DocumentFragment.d.ts +3 -14
  101. package/lib/nodes/document-fragment/DocumentFragment.js +7 -51
  102. package/lib/nodes/document-fragment/DocumentFragment.js.map +1 -1
  103. package/lib/nodes/document-fragment/IDocumentFragment.d.ts +2 -1
  104. package/lib/nodes/element/Element.d.ts +8 -8
  105. package/lib/nodes/element/Element.js +28 -45
  106. package/lib/nodes/element/Element.js.map +1 -1
  107. package/lib/nodes/element/ElementUtility.d.ts +32 -0
  108. package/lib/nodes/element/ElementUtility.js +105 -0
  109. package/lib/nodes/element/ElementUtility.js.map +1 -0
  110. package/lib/nodes/element/HTMLCollection.d.ts +26 -3
  111. package/lib/nodes/element/HTMLCollection.js +51 -0
  112. package/lib/nodes/element/HTMLCollection.js.map +1 -1
  113. package/lib/nodes/element/IHTMLCollection.d.ts +9 -2
  114. package/lib/nodes/html-anchor-element/HTMLAnchorElement.js +24 -24
  115. package/lib/nodes/html-anchor-element/HTMLAnchorElement.js.map +1 -1
  116. package/lib/nodes/html-audio-element/Audio.d.ts +15 -0
  117. package/lib/nodes/html-audio-element/Audio.js +27 -0
  118. package/lib/nodes/html-audio-element/Audio.js.map +1 -0
  119. package/lib/nodes/html-base-element/HTMLBaseElement.js +4 -4
  120. package/lib/nodes/html-base-element/HTMLBaseElement.js.map +1 -1
  121. package/lib/nodes/html-button-element/HTMLButtonElement.d.ts +79 -3
  122. package/lib/nodes/html-button-element/HTMLButtonElement.js +158 -10
  123. package/lib/nodes/html-button-element/HTMLButtonElement.js.map +1 -1
  124. package/lib/nodes/html-button-element/IHTMLButtonElement.d.ts +28 -2
  125. package/lib/nodes/html-dialog-element/HTMLDialogElement.js +3 -3
  126. package/lib/nodes/html-dialog-element/HTMLDialogElement.js.map +1 -1
  127. package/lib/nodes/html-element/HTMLElement.js +12 -12
  128. package/lib/nodes/html-element/HTMLElement.js.map +1 -1
  129. package/lib/nodes/html-form-element/HTMLFormControlsCollection.d.ts +32 -0
  130. package/lib/nodes/html-form-element/HTMLFormControlsCollection.js +58 -0
  131. package/lib/nodes/html-form-element/HTMLFormControlsCollection.js.map +1 -0
  132. package/lib/nodes/html-form-element/HTMLFormElement.d.ts +37 -17
  133. package/lib/nodes/html-form-element/HTMLFormElement.js +128 -37
  134. package/lib/nodes/html-form-element/HTMLFormElement.js.map +1 -1
  135. package/lib/nodes/html-form-element/IHTMLFormControlsCollection.d.ts +25 -0
  136. package/lib/nodes/html-form-element/IHTMLFormControlsCollection.js +3 -0
  137. package/lib/nodes/html-form-element/IHTMLFormControlsCollection.js.map +1 -0
  138. package/lib/nodes/html-form-element/IHTMLFormElement.d.ts +16 -6
  139. package/lib/nodes/html-form-element/IRadioNodeList.d.ts +15 -0
  140. package/lib/nodes/html-form-element/IRadioNodeList.js +3 -0
  141. package/lib/nodes/html-form-element/IRadioNodeList.js.map +1 -0
  142. package/lib/nodes/html-form-element/RadioNodeList.d.ts +16 -0
  143. package/lib/nodes/html-form-element/RadioNodeList.js +28 -0
  144. package/lib/nodes/html-form-element/RadioNodeList.js.map +1 -0
  145. package/lib/nodes/html-image-element/HTMLImageElement.js +19 -19
  146. package/lib/nodes/html-image-element/HTMLImageElement.js.map +1 -1
  147. package/lib/nodes/html-input-element/HTMLInputElement.d.ts +43 -19
  148. package/lib/nodes/html-input-element/HTMLInputElement.js +206 -111
  149. package/lib/nodes/html-input-element/HTMLInputElement.js.map +1 -1
  150. package/lib/nodes/html-input-element/IHTMLInputElement.d.ts +14 -1
  151. package/lib/nodes/html-label-element/HTMLLabelElement.js +3 -7
  152. package/lib/nodes/html-label-element/HTMLLabelElement.js.map +1 -1
  153. package/lib/nodes/html-link-element/HTMLLinkElement.js +21 -21
  154. package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
  155. package/lib/nodes/html-media-element/HTMLMediaElement.js +21 -21
  156. package/lib/nodes/html-media-element/HTMLMediaElement.js.map +1 -1
  157. package/lib/nodes/html-meta-element/HTMLMetaElement.js +8 -8
  158. package/lib/nodes/html-meta-element/HTMLMetaElement.js.map +1 -1
  159. package/lib/nodes/html-opt-group-element/HTMLOptGroupElement.js +6 -6
  160. package/lib/nodes/html-opt-group-element/HTMLOptGroupElement.js.map +1 -1
  161. package/lib/nodes/html-option-element/HTMLOptionElement.d.ts +3 -4
  162. package/lib/nodes/html-option-element/HTMLOptionElement.js +26 -29
  163. package/lib/nodes/html-option-element/HTMLOptionElement.js.map +1 -1
  164. package/lib/nodes/html-script-element/HTMLScriptElement.js +16 -16
  165. package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
  166. package/lib/nodes/html-script-element/ScriptUtility.js +5 -5
  167. package/lib/nodes/html-script-element/ScriptUtility.js.map +1 -1
  168. package/lib/nodes/{html-option-element → html-select-element}/HTMLOptionsCollection.d.ts +5 -6
  169. package/lib/nodes/{html-option-element → html-select-element}/HTMLOptionsCollection.js.map +1 -1
  170. package/lib/nodes/html-select-element/HTMLSelectElement.d.ts +42 -41
  171. package/lib/nodes/html-select-element/HTMLSelectElement.js +134 -138
  172. package/lib/nodes/html-select-element/HTMLSelectElement.js.map +1 -1
  173. package/lib/nodes/{html-option-element → html-select-element}/IHTMLOptionsCollection.d.ts +4 -5
  174. package/lib/nodes/html-select-element/IHTMLOptionsCollection.js.map +1 -0
  175. package/lib/nodes/html-select-element/IHTMLSelectElement.d.ts +22 -2
  176. package/lib/nodes/html-slot-element/HTMLSlotElement.js +2 -2
  177. package/lib/nodes/html-slot-element/HTMLSlotElement.js.map +1 -1
  178. package/lib/nodes/html-style-element/HTMLStyleElement.js +7 -7
  179. package/lib/nodes/html-style-element/HTMLStyleElement.js.map +1 -1
  180. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts +55 -2
  181. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js +150 -40
  182. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js.map +1 -1
  183. package/lib/nodes/html-text-area-element/IHTMLTextAreaElement.d.ts +16 -0
  184. package/lib/nodes/node/Node.d.ts +12 -1
  185. package/lib/nodes/node/Node.js +50 -4
  186. package/lib/nodes/node/Node.js.map +1 -1
  187. package/lib/nodes/node/NodeList.d.ts +2 -3
  188. package/lib/nodes/node/NodeList.js.map +1 -1
  189. package/lib/nodes/parent-node/IParentNode.d.ts +4 -4
  190. package/lib/nodes/parent-node/ParentNodeUtility.d.ts +3 -3
  191. package/lib/nodes/parent-node/ParentNodeUtility.js +13 -11
  192. package/lib/nodes/parent-node/ParentNodeUtility.js.map +1 -1
  193. package/lib/nodes/text/Text.d.ts +13 -0
  194. package/lib/nodes/text/Text.js +30 -0
  195. package/lib/nodes/text/Text.js.map +1 -1
  196. package/lib/query-selector/QuerySelector.js +2 -2
  197. package/lib/query-selector/QuerySelector.js.map +1 -1
  198. package/lib/query-selector/SelectorItem.js +2 -0
  199. package/lib/query-selector/SelectorItem.js.map +1 -1
  200. package/lib/validity-state/ValidityState.d.ts +87 -0
  201. package/lib/validity-state/ValidityState.js +171 -0
  202. package/lib/validity-state/ValidityState.js.map +1 -0
  203. package/lib/window/GlobalWindow.d.ts +0 -8
  204. package/lib/window/GlobalWindow.js +0 -2
  205. package/lib/window/GlobalWindow.js.map +1 -1
  206. package/lib/window/INodeJSGlobal.d.ts +71 -0
  207. package/lib/window/INodeJSGlobal.js +2 -0
  208. package/lib/window/INodeJSGlobal.js.map +1 -0
  209. package/lib/window/IWindow.d.ts +30 -10
  210. package/lib/window/Window.d.ts +37 -20
  211. package/lib/window/Window.js +22 -10
  212. package/lib/window/Window.js.map +1 -1
  213. package/lib/xml-http-request/XMLHttpRequest.js +20 -12
  214. package/lib/xml-http-request/XMLHttpRequest.js.map +1 -1
  215. package/lib/xml-parser/XMLParser.js +1 -1
  216. package/lib/xml-parser/XMLParser.js.map +1 -1
  217. package/package.json +2 -3
  218. package/src/cookie/CookieJar.ts +1 -1
  219. package/src/dom-token-list/DOMTokenList.ts +24 -20
  220. package/src/event/EventTarget.ts +7 -3
  221. package/src/exception/DOMExceptionNameEnum.ts +5 -1
  222. package/src/fetch/AbortController.ts +26 -0
  223. package/src/fetch/AbortSignal.ts +44 -0
  224. package/src/fetch/Fetch.ts +666 -0
  225. package/src/fetch/Headers.ts +151 -3
  226. package/src/fetch/Request.ts +226 -94
  227. package/src/fetch/{ResourceFetchHandler.ts → ResourceFetch.ts} +3 -3
  228. package/src/fetch/Response.ts +252 -89
  229. package/src/fetch/data-uri/DataURIParser.ts +66 -0
  230. package/src/fetch/multipart/MultipartFormDataParser.ts +113 -0
  231. package/src/fetch/multipart/MultipartReader.ts +217 -0
  232. package/src/fetch/types/IHeaders.ts +80 -0
  233. package/src/fetch/types/IRequest.ts +65 -0
  234. package/src/fetch/types/IRequestBody.ts +15 -0
  235. package/src/fetch/types/IRequestCredentials.ts +2 -0
  236. package/src/fetch/types/IRequestInfo.ts +6 -0
  237. package/src/fetch/types/IRequestInit.ts +21 -0
  238. package/src/fetch/types/IRequestRedirect.ts +3 -0
  239. package/src/fetch/types/IRequestReferrerPolicy.ts +11 -0
  240. package/src/fetch/types/IResponse.ts +27 -0
  241. package/src/fetch/types/IResponseBody.ts +15 -0
  242. package/src/fetch/types/IResponseInit.ts +10 -0
  243. package/src/fetch/utilities/FetchBodyUtility.ts +175 -0
  244. package/src/fetch/utilities/FetchCORSUtility.ts +18 -0
  245. package/src/fetch/utilities/FetchRequestHeaderUtility.ts +47 -0
  246. package/src/fetch/utilities/FetchRequestReferrerUtility.ts +241 -0
  247. package/src/fetch/utilities/FetchRequestValidationUtility.ts +82 -0
  248. package/src/file/Blob.ts +2 -2
  249. package/src/file/File.ts +5 -1
  250. package/src/form-data/FormData.ts +237 -0
  251. package/src/index.ts +27 -1
  252. package/src/nodes/document/Document.ts +23 -64
  253. package/src/nodes/document/IDocument.ts +1 -1
  254. package/src/nodes/document-fragment/DocumentFragment.ts +9 -59
  255. package/src/nodes/document-fragment/IDocumentFragment.ts +2 -1
  256. package/src/nodes/element/Element.ts +43 -56
  257. package/src/nodes/element/ElementUtility.ts +137 -0
  258. package/src/nodes/element/HTMLCollection.ts +60 -3
  259. package/src/nodes/element/IHTMLCollection.ts +10 -2
  260. package/src/nodes/html-anchor-element/HTMLAnchorElement.ts +24 -24
  261. package/src/nodes/html-audio-element/Audio.ts +22 -0
  262. package/src/nodes/html-base-element/HTMLBaseElement.ts +4 -4
  263. package/src/nodes/html-button-element/HTMLButtonElement.ts +184 -10
  264. package/src/nodes/html-button-element/IHTMLButtonElement.ts +31 -2
  265. package/src/nodes/html-dialog-element/HTMLDialogElement.ts +3 -3
  266. package/src/nodes/html-element/HTMLElement.ts +12 -12
  267. package/src/nodes/html-form-element/HTMLFormControlsCollection.ts +76 -0
  268. package/src/nodes/html-form-element/HTMLFormElement.ts +147 -41
  269. package/src/nodes/html-form-element/IHTMLFormControlsCollection.ts +45 -0
  270. package/src/nodes/html-form-element/IHTMLFormElement.ts +17 -6
  271. package/src/nodes/html-form-element/IRadioNodeList.ts +16 -0
  272. package/src/nodes/html-form-element/RadioNodeList.ts +24 -0
  273. package/src/nodes/html-image-element/HTMLImageElement.ts +19 -19
  274. package/src/nodes/html-input-element/HTMLInputElement.ts +232 -113
  275. package/src/nodes/html-input-element/IHTMLInputElement.ts +20 -1
  276. package/src/nodes/html-label-element/HTMLLabelElement.ts +3 -7
  277. package/src/nodes/html-link-element/HTMLLinkElement.ts +21 -21
  278. package/src/nodes/html-media-element/HTMLMediaElement.ts +21 -21
  279. package/src/nodes/html-meta-element/HTMLMetaElement.ts +8 -8
  280. package/src/nodes/html-opt-group-element/HTMLOptGroupElement.ts +6 -6
  281. package/src/nodes/html-option-element/HTMLOptionElement.ts +29 -30
  282. package/src/nodes/html-script-element/HTMLScriptElement.ts +16 -16
  283. package/src/nodes/html-script-element/ScriptUtility.ts +5 -5
  284. package/src/nodes/{html-option-element → html-select-element}/HTMLOptionsCollection.ts +5 -9
  285. package/src/nodes/html-select-element/HTMLSelectElement.ts +159 -170
  286. package/src/nodes/{html-option-element → html-select-element}/IHTMLOptionsCollection.ts +4 -8
  287. package/src/nodes/html-select-element/IHTMLSelectElement.ts +25 -2
  288. package/src/nodes/html-slot-element/HTMLSlotElement.ts +2 -2
  289. package/src/nodes/html-style-element/HTMLStyleElement.ts +7 -7
  290. package/src/nodes/html-text-area-element/HTMLTextAreaElement.ts +174 -41
  291. package/src/nodes/html-text-area-element/IHTMLTextAreaElement.ts +18 -0
  292. package/src/nodes/node/Node.ts +61 -6
  293. package/src/nodes/node/NodeList.ts +2 -3
  294. package/src/nodes/parent-node/IParentNode.ts +7 -4
  295. package/src/nodes/parent-node/ParentNodeUtility.ts +25 -15
  296. package/src/nodes/text/Text.ts +38 -0
  297. package/src/query-selector/QuerySelector.ts +2 -2
  298. package/src/query-selector/SelectorItem.ts +3 -0
  299. package/src/validity-state/ValidityState.ts +211 -0
  300. package/src/window/GlobalWindow.ts +0 -2
  301. package/src/window/INodeJSGlobal.ts +70 -0
  302. package/src/window/IWindow.ts +32 -10
  303. package/src/window/Window.ts +43 -21
  304. package/src/xml-http-request/XMLHttpRequest.ts +27 -26
  305. package/src/xml-parser/XMLParser.ts +1 -1
  306. package/lib/fetch/FetchHandler.d.ts +0 -18
  307. package/lib/fetch/FetchHandler.js +0 -83
  308. package/lib/fetch/FetchHandler.js.map +0 -1
  309. package/lib/fetch/IAbortSignal.d.ts +0 -16
  310. package/lib/fetch/IAbortSignal.js +0 -4
  311. package/lib/fetch/IAbortSignal.js.map +0 -1
  312. package/lib/fetch/IBody.d.ts +0 -17
  313. package/lib/fetch/IBody.js.map +0 -1
  314. package/lib/fetch/IHeaders.d.ts +0 -18
  315. package/lib/fetch/IHeadersInit.js.map +0 -1
  316. package/lib/fetch/IRequest.d.ts +0 -18
  317. package/lib/fetch/IRequestInit.d.ts +0 -16
  318. package/lib/fetch/IRequestInit.js.map +0 -1
  319. package/lib/fetch/IResponse.d.ts +0 -20
  320. package/lib/fetch/IResponseInit.d.ts +0 -9
  321. package/lib/fetch/IResponseInit.js.map +0 -1
  322. package/lib/fetch/RequestInfo.js +0 -3
  323. package/lib/fetch/RequestInfo.js.map +0 -1
  324. package/lib/fetch/ResourceFetchHandler.js.map +0 -1
  325. package/lib/form-data/IFormData.d.ts +0 -32
  326. package/lib/form-data/IFormData.js +0 -3
  327. package/lib/form-data/IFormData.js.map +0 -1
  328. package/lib/location/RelativeURL.d.ts +0 -15
  329. package/lib/location/RelativeURL.js +0 -19
  330. package/lib/location/RelativeURL.js.map +0 -1
  331. package/lib/nodes/element/HTMLCollectionFactory.d.ts +0 -21
  332. package/lib/nodes/element/HTMLCollectionFactory.js +0 -31
  333. package/lib/nodes/element/HTMLCollectionFactory.js.map +0 -1
  334. package/lib/nodes/html-option-element/IHTMLOptionsCollection.js.map +0 -1
  335. package/lib/nodes/node/NodeListFactory.d.ts +0 -21
  336. package/lib/nodes/node/NodeListFactory.js +0 -31
  337. package/lib/nodes/node/NodeListFactory.js.map +0 -1
  338. package/lib/nodes/validity-state/ValidityState.d.ts +0 -52
  339. package/lib/nodes/validity-state/ValidityState.js +0 -81
  340. package/lib/nodes/validity-state/ValidityState.js.map +0 -1
  341. package/src/fetch/FetchHandler.ts +0 -90
  342. package/src/fetch/IAbortSignal.ts +0 -34
  343. package/src/fetch/IBody.ts +0 -18
  344. package/src/fetch/IHeaders.ts +0 -18
  345. package/src/fetch/IRequest.ts +0 -59
  346. package/src/fetch/IRequestInit.ts +0 -41
  347. package/src/fetch/IResponse.ts +0 -22
  348. package/src/fetch/IResponseInit.ts +0 -10
  349. package/src/fetch/RequestInfo.ts +0 -6
  350. package/src/form-data/IFormData.ts +0 -33
  351. package/src/location/RelativeURL.ts +0 -17
  352. package/src/nodes/element/HTMLCollectionFactory.ts +0 -31
  353. package/src/nodes/node/NodeListFactory.ts +0 -31
  354. package/src/nodes/validity-state/ValidityState.ts +0 -84
  355. /package/lib/fetch/{IHeaders.js → types/IHeaders.js} +0 -0
  356. /package/lib/fetch/{IHeadersInit.d.ts → types/IHeadersInit.d.ts} +0 -0
  357. /package/lib/fetch/{IHeadersInit.js → types/IHeadersInit.js} +0 -0
  358. /package/lib/fetch/{IRequest.js → types/IRequest.js} +0 -0
  359. /package/lib/fetch/{IRequestInit.js → types/IRequestInit.js} +0 -0
  360. /package/lib/fetch/{IResponse.js → types/IResponse.js} +0 -0
  361. /package/lib/fetch/{IResponseInit.js → types/IResponseInit.js} +0 -0
  362. /package/lib/nodes/{html-option-element → html-select-element}/HTMLOptionsCollection.js +0 -0
  363. /package/lib/nodes/{html-option-element → html-select-element}/IHTMLOptionsCollection.js +0 -0
  364. /package/src/fetch/{IHeadersInit.ts → types/IHeadersInit.ts} +0 -0
package/README.md CHANGED
@@ -126,9 +126,9 @@ console.log(global.test);
126
126
 
127
127
  ## Server-Side Rendering of Web Components
128
128
 
129
- The example below will show you how to setup a Node [VM context](https://nodejs.org/api/vm.html#vm_vm_createcontext_sandbox_options) to render a page with custom elements (web components) in Happy DOM. We can then use a new web feature called [Declarative Shadow DOM](https://chromestatus.com/feature/5191745052606464) to include the shadow roots in the HTML output.
129
+ The example below will show you how to server-side render a page with custom elements (web components) in Happy DOM. In the example we will use a new web feature called [Declarative Shadow DOM](https://chromestatus.com/feature/5191745052606464) to include the shadow roots in the HTML output.
130
130
 
131
- [Declarative Shadow DOM](https://chromestatus.com/feature/5191745052606464) is only supported by Chromium based browsers. Unsupported browsers should safely fallback to being rendered using Javascript.
131
+ [Declarative Shadow DOM](https://chromestatus.com/feature/5191745052606464) is only supported by Chromium based browsers. Unsupported browsers will safely fallback to being rendered using Javascript.
132
132
 
133
133
  ```javascript
134
134
  import { Window } from 'happy-dom';
@@ -74,7 +74,7 @@ class CookieJar {
74
74
  if (cookie.path && !location.pathname.startsWith(cookie.path)) {
75
75
  return false;
76
76
  }
77
- // TODO: check SameSite.
77
+ // TODO: Check same site behaviour.
78
78
  return true;
79
79
  });
80
80
  return cookies.map((cookie) => cookie.cookieString()).join('; ');
@@ -1 +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"}
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,mCAAmC;YACnC,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"}
@@ -29,13 +29,13 @@ class DOMTokenList {
29
29
  * @param value Value.
30
30
  */
31
31
  set value(value) {
32
- this._ownerElement.setAttributeNS(null, this._attributeName, value);
32
+ this._ownerElement.setAttribute(this._attributeName, value);
33
33
  }
34
34
  /**
35
35
  * Get value.
36
36
  */
37
37
  get value() {
38
- return this._ownerElement.getAttributeNS(null, this._attributeName);
38
+ return this._ownerElement.getAttribute(this._attributeName);
39
39
  }
40
40
  /**
41
41
  * Get ClassName.
@@ -53,14 +53,14 @@ class DOMTokenList {
53
53
  * @param newToken NewToken.
54
54
  */
55
55
  replace(token, newToken) {
56
- const attr = this._ownerElement.getAttributeNS(null, this._attributeName);
57
- const list = attr ? attr.split(' ') : [];
56
+ const attr = this._ownerElement.getAttribute(this._attributeName);
57
+ const list = attr ? Array.from(new Set(attr.split(' '))) : [];
58
58
  const index = list.indexOf(token);
59
59
  if (index === -1) {
60
60
  return false;
61
61
  }
62
62
  list[index] = newToken;
63
- this._ownerElement.setAttributeNS(null, this._attributeName, list.join(' '));
63
+ this._ownerElement.setAttribute(this._attributeName, list.join(' '));
64
64
  return true;
65
65
  }
66
66
  /**
@@ -76,15 +76,17 @@ class DOMTokenList {
76
76
  * Returns an iterator, allowing you to go through all values of the key/value pairs contained in this object.
77
77
  */
78
78
  values() {
79
- const attr = this._ownerElement.getAttributeNS(null, this._attributeName);
80
- return (attr ? attr.split(' ') : []).values();
79
+ const attr = this._ownerElement.getAttribute(this._attributeName);
80
+ const list = attr ? Array.from(new Set(attr.split(' '))) : [];
81
+ return list.values();
81
82
  }
82
83
  /**
83
84
  * Returns an iterator, allowing you to go through all key/value pairs contained in this object.
84
85
  */
85
86
  entries() {
86
- const attr = this._ownerElement.getAttributeNS(null, this._attributeName);
87
- return (attr ? attr.split(' ') : []).entries();
87
+ const attr = this._ownerElement.getAttribute(this._attributeName);
88
+ const list = attr ? Array.from(new Set(attr.split(' '))) : [];
89
+ return list.entries();
88
90
  }
89
91
  /**
90
92
  * Executes a provided callback function once for each DOMTokenList element.
@@ -93,16 +95,18 @@ class DOMTokenList {
93
95
  * @param thisArg
94
96
  */
95
97
  forEach(callback, thisArg) {
96
- const attr = this._ownerElement.getAttributeNS(null, this._attributeName);
97
- return (attr ? attr.split(' ') : []).forEach(callback, thisArg);
98
+ const attr = this._ownerElement.getAttribute(this._attributeName);
99
+ const list = attr ? Array.from(new Set(attr.split(' '))) : [];
100
+ return list.forEach(callback, thisArg);
98
101
  }
99
102
  /**
100
103
  * Returns an iterator, allowing you to go through all keys of the key/value pairs contained in this object.
101
104
  *
102
105
  */
103
106
  keys() {
104
- const attr = this._ownerElement.getAttributeNS(null, this._attributeName);
105
- return (attr ? attr.split(' ') : []).keys();
107
+ const attr = this._ownerElement.getAttribute(this._attributeName);
108
+ const list = attr ? Array.from(new Set(attr.split(' '))) : [];
109
+ return list.keys();
106
110
  }
107
111
  /**
108
112
  * Adds tokens.
@@ -110,8 +114,8 @@ class DOMTokenList {
110
114
  * @param tokens Tokens.
111
115
  */
112
116
  add(...tokens) {
113
- const attr = this._ownerElement.getAttributeNS(null, this._attributeName);
114
- const list = attr ? attr.split(' ') : [];
117
+ const attr = this._ownerElement.getAttribute(this._attributeName);
118
+ const list = attr ? Array.from(new Set(attr.split(' '))) : [];
115
119
  for (const token of tokens) {
116
120
  const index = list.indexOf(token);
117
121
  if (index === -1) {
@@ -121,7 +125,7 @@ class DOMTokenList {
121
125
  list[index] = token;
122
126
  }
123
127
  }
124
- this._ownerElement.setAttributeNS(null, this._attributeName, list.join(' '));
128
+ this._ownerElement.setAttribute(this._attributeName, list.join(' '));
125
129
  }
126
130
  /**
127
131
  * Removes tokens.
@@ -129,15 +133,15 @@ class DOMTokenList {
129
133
  * @param tokens Tokens.
130
134
  */
131
135
  remove(...tokens) {
132
- const attr = this._ownerElement.getAttributeNS(null, this._attributeName);
133
- const list = attr ? attr.split(' ') : [];
136
+ const attr = this._ownerElement.getAttribute(this._attributeName);
137
+ const list = attr ? Array.from(new Set(attr.split(' '))) : [];
134
138
  for (const token of tokens) {
135
139
  const index = list.indexOf(token);
136
140
  if (index !== -1) {
137
141
  list.splice(index, 1);
138
142
  }
139
143
  }
140
- this._ownerElement.setAttributeNS(null, this._attributeName, list.join(' '));
144
+ this._ownerElement.setAttribute(this._attributeName, list.join(' '));
141
145
  }
142
146
  /**
143
147
  * Check if the list contains a class.
@@ -146,7 +150,7 @@ class DOMTokenList {
146
150
  * @returns TRUE if it contains.
147
151
  */
148
152
  contains(className) {
149
- const attr = this._ownerElement.getAttributeNS(null, this._attributeName);
153
+ const attr = this._ownerElement.getAttribute(this._attributeName);
150
154
  return (attr ? attr.split(' ') : []).includes(className);
151
155
  }
152
156
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"DOMTokenList.js","sourceRoot":"","sources":["../../src/dom-token-list/DOMTokenList.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DOMTokenList.js","sourceRoot":"","sources":["../../src/dom-token-list/DOMTokenList.ts"],"names":[],"mappings":"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"}
@@ -53,9 +53,12 @@ class EventTarget {
53
53
  this[onEventName].call(this, event);
54
54
  }
55
55
  if (this._listeners[event.type]) {
56
- for (let i = 0, max = this._listeners[event.type].length; i < max; i++) {
57
- const listener = this._listeners[event.type][i];
58
- const options = this._listenerOptions[event.type][i];
56
+ // We need to clone the arrays because the listeners may remove themselves while we are iterating.
57
+ const listeners = this._listeners[event.type].slice();
58
+ const listenerOptions = this._listenerOptions[event.type].slice();
59
+ for (let i = 0, max = listeners.length; i < max; i++) {
60
+ const listener = listeners[i];
61
+ const options = listenerOptions[i];
59
62
  if (listener.handleEvent) {
60
63
  listener.handleEvent(event);
61
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EventTarget.js","sourceRoot":"","sources":["../../src/event/EventTarget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EventTarget.js","sourceRoot":"","sources":["../../src/event/EventTarget.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,10 @@ declare enum DOMExceptionNameEnum {
11
11
  securityError = "SecurityError",
12
12
  networkError = "NetworkError",
13
13
  domException = "DOMException",
14
- invalidAccessError = "InvalidAccessError"
14
+ invalidAccessError = "InvalidAccessError",
15
+ unknownError = "UnknownError",
16
+ abortError = "AbortError",
17
+ encodingError = "EncodingError",
18
+ uriMismatchError = "URIMismatchError"
15
19
  }
16
20
  export default DOMExceptionNameEnum;
@@ -15,6 +15,10 @@ var DOMExceptionNameEnum;
15
15
  DOMExceptionNameEnum["networkError"] = "NetworkError";
16
16
  DOMExceptionNameEnum["domException"] = "DOMException";
17
17
  DOMExceptionNameEnum["invalidAccessError"] = "InvalidAccessError";
18
+ DOMExceptionNameEnum["unknownError"] = "UnknownError";
19
+ DOMExceptionNameEnum["abortError"] = "AbortError";
20
+ DOMExceptionNameEnum["encodingError"] = "EncodingError";
21
+ DOMExceptionNameEnum["uriMismatchError"] = "URIMismatchError";
18
22
  })(DOMExceptionNameEnum || (DOMExceptionNameEnum = {}));
19
23
  exports.default = DOMExceptionNameEnum;
20
24
  //# sourceMappingURL=DOMExceptionNameEnum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DOMExceptionNameEnum.js","sourceRoot":"","sources":["../../src/exception/DOMExceptionNameEnum.ts"],"names":[],"mappings":";;AAAA,IAAK,oBAcJ;AAdD,WAAK,oBAAoB;IACxB,+DAAuC,CAAA;IACvC,yDAAiC,CAAA;IACjC,mDAA2B,CAAA;IAC3B,uEAA+C,CAAA;IAC/C,+DAAuC,CAAA;IACvC,iEAAyC,CAAA;IACzC,qEAA6C,CAAA;IAC7C,uEAA+C,CAAA;IAC/C,uDAA+B,CAAA;IAC/B,uDAA+B,CAAA;IAC/B,qDAA6B,CAAA;IAC7B,qDAA6B,CAAA;IAC7B,iEAAyC,CAAA;AAC1C,CAAC,EAdI,oBAAoB,KAApB,oBAAoB,QAcxB;AACD,kBAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"DOMExceptionNameEnum.js","sourceRoot":"","sources":["../../src/exception/DOMExceptionNameEnum.ts"],"names":[],"mappings":";;AAAA,IAAK,oBAkBJ;AAlBD,WAAK,oBAAoB;IACxB,+DAAuC,CAAA;IACvC,yDAAiC,CAAA;IACjC,mDAA2B,CAAA;IAC3B,uEAA+C,CAAA;IAC/C,+DAAuC,CAAA;IACvC,iEAAyC,CAAA;IACzC,qEAA6C,CAAA;IAC7C,uEAA+C,CAAA;IAC/C,uDAA+B,CAAA;IAC/B,uDAA+B,CAAA;IAC/B,qDAA6B,CAAA;IAC7B,qDAA6B,CAAA;IAC7B,iEAAyC,CAAA;IACzC,qDAA6B,CAAA;IAC7B,iDAAyB,CAAA;IACzB,uDAA+B,CAAA;IAC/B,6DAAqC,CAAA;AACtC,CAAC,EAlBI,oBAAoB,KAApB,oBAAoB,QAkBxB;AACD,kBAAe,oBAAoB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import AbortSignal from './AbortSignal';
2
+ /**
3
+ * AbortController.
4
+ *
5
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortController
6
+ */
7
+ export default class AbortController {
8
+ readonly signal: AbortSignal;
9
+ /**
10
+ * Constructor.
11
+ */
12
+ constructor();
13
+ /**
14
+ * Aborts the signal.
15
+ *
16
+ * @param [reason] Reason.
17
+ */
18
+ abort(reason?: string): void;
19
+ }
@@ -0,0 +1,30 @@
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 AbortSignal_1 = __importDefault(require("./AbortSignal"));
7
+ /**
8
+ * AbortController.
9
+ *
10
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortController
11
+ */
12
+ class AbortController {
13
+ /**
14
+ * Constructor.
15
+ */
16
+ constructor() {
17
+ this.signal = new AbortSignal_1.default();
18
+ this.signal = new AbortSignal_1.default();
19
+ }
20
+ /**
21
+ * Aborts the signal.
22
+ *
23
+ * @param [reason] Reason.
24
+ */
25
+ abort(reason) {
26
+ this.signal._abort(reason);
27
+ }
28
+ }
29
+ exports.default = AbortController;
30
+ //# sourceMappingURL=AbortController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbortController.js","sourceRoot":"","sources":["../../src/fetch/AbortController.ts"],"names":[],"mappings":";;;;;AAAA,gEAAwC;AAExC;;;;GAIG;AACH,MAAqB,eAAe;IAGnC;;OAEG;IACH;QALgB,WAAM,GAAgB,IAAI,qBAAW,EAAE,CAAC;QAMvD,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAW,EAAE,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,MAAe;QAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;CACD;AAlBD,kCAkBC"}
@@ -0,0 +1,25 @@
1
+ import EventTarget from '../event/EventTarget';
2
+ import Event from '../event/Event';
3
+ /**
4
+ * AbortSignal.
5
+ *
6
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal
7
+ */
8
+ export default class AbortSignal extends EventTarget {
9
+ readonly aborted: boolean;
10
+ readonly reason: string | null;
11
+ onabort: ((this: AbortSignal, event: Event) => void) | null;
12
+ /**
13
+ * Aborts the signal.
14
+ *
15
+ * @param [reason] Reason.
16
+ */
17
+ _abort(reason?: string): void;
18
+ /**
19
+ * Returns an AbortSignal instance that has been set as aborted.
20
+ *
21
+ * @param [reason] Reason.
22
+ * @returns AbortSignal instance.
23
+ */
24
+ static abort(reason?: string): AbortSignal;
25
+ }
@@ -0,0 +1,51 @@
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 EventTarget_1 = __importDefault(require("../event/EventTarget"));
7
+ const Event_1 = __importDefault(require("../event/Event"));
8
+ /**
9
+ * AbortSignal.
10
+ *
11
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal
12
+ */
13
+ class AbortSignal extends EventTarget_1.default {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.aborted = false;
17
+ this.reason = null;
18
+ this.onabort = null;
19
+ }
20
+ /**
21
+ * Aborts the signal.
22
+ *
23
+ * @param [reason] Reason.
24
+ */
25
+ _abort(reason) {
26
+ if (this.aborted) {
27
+ return;
28
+ }
29
+ if (reason) {
30
+ this.reason = reason;
31
+ }
32
+ this.aborted = true;
33
+ this.dispatchEvent(new Event_1.default('abort'));
34
+ }
35
+ /**
36
+ * Returns an AbortSignal instance that has been set as aborted.
37
+ *
38
+ * @param [reason] Reason.
39
+ * @returns AbortSignal instance.
40
+ */
41
+ static abort(reason) {
42
+ const signal = new AbortSignal();
43
+ if (reason) {
44
+ signal.reason = reason;
45
+ }
46
+ signal.aborted = true;
47
+ return signal;
48
+ }
49
+ }
50
+ exports.default = AbortSignal;
51
+ //# sourceMappingURL=AbortSignal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbortSignal.js","sourceRoot":"","sources":["../../src/fetch/AbortSignal.ts"],"names":[],"mappings":";;;;;AAAA,uEAA+C;AAC/C,2DAAmC;AAEnC;;;;GAIG;AACH,MAAqB,WAAY,SAAQ,qBAAW;IAApD;;QACiB,YAAO,GAAY,KAAK,CAAC;QACzB,WAAM,GAAkB,IAAI,CAAC;QACtC,YAAO,GAAuD,IAAI,CAAC;IAgC3E,CAAC;IA9BA;;;;OAIG;IACI,MAAM,CAAC,MAAe;QAC5B,IAAI,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO;SACP;QACD,IAAI,MAAM,EAAE;YACF,IAAI,CAAC,MAAO,GAAG,MAAM,CAAC;SAC/B;QACS,IAAI,CAAC,OAAQ,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,eAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,KAAK,CAAC,MAAe;QAClC,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QACjC,IAAI,MAAM,EAAE;YACF,MAAM,CAAC,MAAO,GAAG,MAAM,CAAC;SACjC;QACS,MAAM,CAAC,OAAQ,GAAG,IAAI,CAAC;QACjC,OAAO,MAAM,CAAC;IACf,CAAC;CACD;AAnCD,8BAmCC"}
@@ -0,0 +1,117 @@
1
+ import IRequestInit from './types/IRequestInit';
2
+ import IDocument from '../nodes/document/IDocument';
3
+ import IResponse from './types/IResponse';
4
+ import IRequestInfo from './types/IRequestInfo';
5
+ /**
6
+ * Handles fetch requests.
7
+ *
8
+ * Based on:
9
+ * https://github.com/node-fetch/node-fetch/blob/main/src/index.js
10
+ *
11
+ * @see https://fetch.spec.whatwg.org/#http-network-fetch
12
+ */
13
+ export default class Fetch {
14
+ private reject;
15
+ private resolve;
16
+ private listeners;
17
+ private isChunkedTransfer;
18
+ private isProperLastChunkReceived;
19
+ private previousChunk;
20
+ private nodeRequest;
21
+ private response;
22
+ private ownerDocument;
23
+ private request;
24
+ private redirectCount;
25
+ /**
26
+ * Constructor.
27
+ *
28
+ * @param options Options.
29
+ * @param options.document
30
+ * @param options.url URL.
31
+ * @param [options.init] Init.
32
+ * @param [options.ownerDocument] Owner document.
33
+ * @param [options.redirectCount] Redirect count.
34
+ * @param [options.contentType] Content Type.
35
+ */
36
+ constructor(options: {
37
+ ownerDocument: IDocument;
38
+ url: IRequestInfo;
39
+ init?: IRequestInit;
40
+ redirectCount?: number;
41
+ contentType?: string;
42
+ });
43
+ /**
44
+ * Sends request.
45
+ *
46
+ * @returns Response.
47
+ */
48
+ send(): Promise<IResponse>;
49
+ /**
50
+ * Event listener for "socket" event.
51
+ *
52
+ * @param socket Socket.
53
+ */
54
+ private onSocket;
55
+ /**
56
+ * Event listener for signal "abort" event.
57
+ */
58
+ private onSignalAbort;
59
+ /**
60
+ * Event listener for request "error" event.
61
+ *
62
+ * @param error Error.
63
+ */
64
+ private onError;
65
+ /**
66
+ * Event listener for request "response" event.
67
+ *
68
+ * @param nodeResponse Node response.
69
+ */
70
+ private onResponse;
71
+ /**
72
+ * Handles redirect response.
73
+ *
74
+ * @param nodeResponse Node response.
75
+ * @param responseHeaders Headers.
76
+ * @returns True if redirect response was handled, false otherwise.
77
+ */
78
+ private handleRedirectResponse;
79
+ /**
80
+ * Prepares the request before being sent.
81
+ */
82
+ private prepareRequest;
83
+ /**
84
+ * Validates the request.
85
+ *
86
+ * @throws {Error} Throws an error if the request is invalid.
87
+ */
88
+ private validateRequest;
89
+ /**
90
+ * Returns request headers.
91
+ *
92
+ * @returns Headers.
93
+ */
94
+ private getRequestHeaders;
95
+ /**
96
+ * Returns "true" if redirect.
97
+ *
98
+ * @param statusCode Status code.
99
+ * @returns "true" if redirect.
100
+ */
101
+ private isRedirect;
102
+ /**
103
+ * Appends headers to response.
104
+ *
105
+ * @param nodeResponse HTTP request.
106
+ * @returns Headers.
107
+ */
108
+ private getResponseHeaders;
109
+ /**
110
+ * Finalizes the request.
111
+ */
112
+ private finalizeRequest;
113
+ /**
114
+ * Aborts the request.
115
+ */
116
+ private abort;
117
+ }