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
@@ -0,0 +1,530 @@
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 Request_1 = __importDefault(require("./Request"));
7
+ const Headers_1 = __importDefault(require("./Headers"));
8
+ const FetchRequestReferrerUtility_1 = __importDefault(require("./utilities/FetchRequestReferrerUtility"));
9
+ const DOMException_1 = __importDefault(require("../exception/DOMException"));
10
+ const DOMExceptionNameEnum_1 = __importDefault(require("../exception/DOMExceptionNameEnum"));
11
+ const Response_1 = __importDefault(require("./Response"));
12
+ const http_1 = __importDefault(require("http"));
13
+ const https_1 = __importDefault(require("https"));
14
+ const zlib_1 = __importDefault(require("zlib"));
15
+ const url_1 = require("url");
16
+ const stream_1 = __importDefault(require("stream"));
17
+ const DataURIParser_1 = __importDefault(require("./data-uri/DataURIParser"));
18
+ const FetchCORSUtility_1 = __importDefault(require("./utilities/FetchCORSUtility"));
19
+ const SUPPORTED_SCHEMAS = ['data:', 'http:', 'https:'];
20
+ const REDIRECT_STATUS_CODES = [301, 302, 303, 307, 308];
21
+ const LAST_CHUNK = Buffer.from('0\r\n\r\n');
22
+ const MAX_REDIRECT_COUNT = 20;
23
+ /**
24
+ * Handles fetch requests.
25
+ *
26
+ * Based on:
27
+ * https://github.com/node-fetch/node-fetch/blob/main/src/index.js
28
+ *
29
+ * @see https://fetch.spec.whatwg.org/#http-network-fetch
30
+ */
31
+ class Fetch {
32
+ /**
33
+ * Constructor.
34
+ *
35
+ * @param options Options.
36
+ * @param options.document
37
+ * @param options.url URL.
38
+ * @param [options.init] Init.
39
+ * @param [options.ownerDocument] Owner document.
40
+ * @param [options.redirectCount] Redirect count.
41
+ * @param [options.contentType] Content Type.
42
+ */
43
+ constructor(options) {
44
+ this.reject = null;
45
+ this.resolve = null;
46
+ this.listeners = {
47
+ onSignalAbort: this.onSignalAbort.bind(this)
48
+ };
49
+ this.isChunkedTransfer = false;
50
+ this.isProperLastChunkReceived = false;
51
+ this.previousChunk = null;
52
+ this.nodeRequest = null;
53
+ this.response = null;
54
+ this.redirectCount = 0;
55
+ const url = options.url;
56
+ this.ownerDocument = options.ownerDocument;
57
+ this.request =
58
+ typeof options.url === 'string' || options.url instanceof url_1.URL
59
+ ? new Request_1.default(options.url, options.init)
60
+ : url;
61
+ if (options.contentType) {
62
+ this.request._contentType = options.contentType;
63
+ }
64
+ this.redirectCount = options.redirectCount || 0;
65
+ }
66
+ /**
67
+ * Sends request.
68
+ *
69
+ * @returns Response.
70
+ */
71
+ send() {
72
+ return new Promise((resolve, reject) => {
73
+ const taskManager = this.ownerDocument.defaultView.happyDOM.asyncTaskManager;
74
+ const taskID = taskManager.startTask(() => this.abort());
75
+ if (this.resolve) {
76
+ throw new Error('Fetch already sent.');
77
+ }
78
+ this.resolve = (response) => {
79
+ resolve(response);
80
+ taskManager.endTask(taskID);
81
+ };
82
+ this.reject = (error) => {
83
+ reject(error);
84
+ taskManager.endTask(taskID);
85
+ };
86
+ this.prepareRequest();
87
+ this.validateRequest();
88
+ if (this.request._url.protocol === 'data:') {
89
+ const result = DataURIParser_1.default.parse(this.request.url);
90
+ this.response = new Response_1.default(result.buffer, {
91
+ headers: { 'Content-Type': result.type }
92
+ });
93
+ resolve(this.response);
94
+ return;
95
+ }
96
+ if (this.request.signal.aborted) {
97
+ this.abort();
98
+ return;
99
+ }
100
+ this.request.signal.addEventListener('abort', this.listeners.onSignalAbort);
101
+ const send = (this.request._url.protocol === 'https:' ? https_1.default : http_1.default).request;
102
+ this.nodeRequest = send(this.request._url.href, {
103
+ method: this.request.method,
104
+ headers: this.getRequestHeaders()
105
+ });
106
+ this.nodeRequest.on('error', this.onError.bind(this));
107
+ this.nodeRequest.on('socket', this.onSocket.bind(this));
108
+ this.nodeRequest.on('response', this.onResponse.bind(this));
109
+ if (this.request.body === null) {
110
+ this.nodeRequest.end();
111
+ }
112
+ else {
113
+ stream_1.default.pipeline(this.request.body, this.nodeRequest, (error) => {
114
+ if (error) {
115
+ this.onError(error);
116
+ }
117
+ });
118
+ }
119
+ });
120
+ }
121
+ /**
122
+ * Event listener for "socket" event.
123
+ *
124
+ * @param socket Socket.
125
+ */
126
+ onSocket(socket) {
127
+ const onSocketClose = () => {
128
+ if (this.isChunkedTransfer && !this.isProperLastChunkReceived) {
129
+ const error = new DOMException_1.default('Premature close.', DOMExceptionNameEnum_1.default.networkError);
130
+ if (this.response && this.response.body) {
131
+ this.response.body.destroy(error);
132
+ }
133
+ }
134
+ };
135
+ const onData = (buffer) => {
136
+ this.isProperLastChunkReceived = Buffer.compare(buffer.slice(-5), LAST_CHUNK) === 0;
137
+ // Sometimes final 0-length chunk and end of message code are in separate packets.
138
+ if (!this.isProperLastChunkReceived && this.previousChunk) {
139
+ this.isProperLastChunkReceived =
140
+ Buffer.compare(this.previousChunk.slice(-3), LAST_CHUNK.slice(0, 3)) === 0 &&
141
+ Buffer.compare(buffer.slice(-2), LAST_CHUNK.slice(3)) === 0;
142
+ }
143
+ this.previousChunk = buffer;
144
+ };
145
+ socket.prependListener('close', onSocketClose);
146
+ socket.on('data', onData);
147
+ this.nodeRequest.on('close', () => {
148
+ socket.removeListener('close', onSocketClose);
149
+ socket.removeListener('data', onData);
150
+ });
151
+ }
152
+ /**
153
+ * Event listener for signal "abort" event.
154
+ */
155
+ onSignalAbort() {
156
+ this.finalizeRequest();
157
+ this.abort();
158
+ }
159
+ /**
160
+ * Event listener for request "error" event.
161
+ *
162
+ * @param error Error.
163
+ */
164
+ onError(error) {
165
+ this.finalizeRequest();
166
+ this.reject(new DOMException_1.default(`Fetch to "${this.request.url}" failed. Error: ${error.message}`, DOMExceptionNameEnum_1.default.networkError));
167
+ }
168
+ /**
169
+ * Event listener for request "response" event.
170
+ *
171
+ * @param nodeResponse Node response.
172
+ */
173
+ onResponse(nodeResponse) {
174
+ // Needed for handling bad endings of chunked transfer.
175
+ this.isChunkedTransfer =
176
+ nodeResponse.headers['transfer-encoding'] === 'chunked' &&
177
+ !nodeResponse.headers['content-length'];
178
+ this.nodeRequest.setTimeout(0);
179
+ const headers = this.getResponseHeaders(nodeResponse);
180
+ if (this.handleRedirectResponse(nodeResponse, headers)) {
181
+ return;
182
+ }
183
+ nodeResponse.once('end', () => this.request.signal.removeEventListener('abort', this.listeners.onSignalAbort));
184
+ let body = stream_1.default.pipeline(nodeResponse, new stream_1.default.PassThrough(), (error) => {
185
+ if (error) {
186
+ // Ignore error as it is forwarded to the response body.
187
+ }
188
+ });
189
+ const responseOptions = {
190
+ status: nodeResponse.statusCode,
191
+ statusText: nodeResponse.statusMessage,
192
+ headers
193
+ };
194
+ const contentEncodingHeader = headers.get('Content-Encoding');
195
+ if (this.request.method === 'HEAD' ||
196
+ contentEncodingHeader === null ||
197
+ nodeResponse.statusCode === 204 ||
198
+ nodeResponse.statusCode === 304) {
199
+ this.response = new Response_1.default(body, responseOptions);
200
+ this.response.redirected = this.redirectCount > 0;
201
+ this.response.url = this.request.url;
202
+ this.resolve(this.response);
203
+ return;
204
+ }
205
+ // Be less strict when decoding compressed responses.
206
+ // Sometimes servers send slightly invalid responses that are still accepted by common browsers.
207
+ // "cURL" always uses Z_SYNC_FLUSH.
208
+ const zlibOptions = {
209
+ flush: zlib_1.default.constants.Z_SYNC_FLUSH,
210
+ finishFlush: zlib_1.default.constants.Z_SYNC_FLUSH
211
+ };
212
+ // For GZip
213
+ if (contentEncodingHeader === 'gzip' || contentEncodingHeader === 'x-gzip') {
214
+ body = stream_1.default.pipeline(body, zlib_1.default.createGunzip(zlibOptions), (error) => {
215
+ if (error) {
216
+ // Ignore error as it is forwarded to the response body.
217
+ }
218
+ });
219
+ this.response = new Response_1.default(body, responseOptions);
220
+ this.response.redirected = this.redirectCount > 0;
221
+ this.response.url = this.request.url;
222
+ this.resolve(this.response);
223
+ return;
224
+ }
225
+ // For Deflate
226
+ if (contentEncodingHeader === 'deflate' || contentEncodingHeader === 'x-deflate') {
227
+ // Handle the infamous raw deflate response from old servers
228
+ // A hack for old IIS and Apache servers
229
+ const raw = stream_1.default.pipeline(nodeResponse, new stream_1.default.PassThrough(), (error) => {
230
+ if (error) {
231
+ // Ignore error as it is forwarded to the response body.
232
+ }
233
+ });
234
+ raw.on('data', (chunk) => {
235
+ // See http://stackoverflow.com/questions/37519828
236
+ if ((chunk[0] & 0x0f) === 0x08) {
237
+ body = stream_1.default.pipeline(body, zlib_1.default.createInflate(), (error) => {
238
+ if (error) {
239
+ // Ignore error as the fetch() promise has already been resolved.
240
+ }
241
+ });
242
+ }
243
+ else {
244
+ body = stream_1.default.pipeline(body, zlib_1.default.createInflateRaw(), (error) => {
245
+ if (error) {
246
+ // Ignore error as it is forwarded to the response body.
247
+ }
248
+ });
249
+ }
250
+ this.response = new Response_1.default(body, responseOptions);
251
+ this.response.redirected = this.redirectCount > 0;
252
+ this.response.url = this.request.url;
253
+ this.resolve(this.response);
254
+ });
255
+ raw.on('end', () => {
256
+ // Some old IIS servers return zero-length OK deflate responses, so 'data' is never emitted.
257
+ if (!this.response) {
258
+ this.response = new Response_1.default(body, responseOptions);
259
+ this.response.redirected = this.redirectCount > 0;
260
+ this.response.url = this.request.url;
261
+ this.resolve(this.response);
262
+ }
263
+ });
264
+ return;
265
+ }
266
+ // For BR
267
+ if (contentEncodingHeader === 'br') {
268
+ body = stream_1.default.pipeline(body, zlib_1.default.createBrotliDecompress(), (error) => {
269
+ if (error) {
270
+ // Ignore error as it is forwarded to the response body.
271
+ }
272
+ });
273
+ this.response = new Response_1.default(body, responseOptions);
274
+ this.response.redirected = this.redirectCount > 0;
275
+ this.response.url = this.request.url;
276
+ this.resolve(this.response);
277
+ return;
278
+ }
279
+ // Otherwise, use response as is
280
+ this.response = new Response_1.default(body, responseOptions);
281
+ this.response.redirected = this.redirectCount > 0;
282
+ this.response.url = this.request.url;
283
+ this.resolve(this.response);
284
+ }
285
+ /**
286
+ * Handles redirect response.
287
+ *
288
+ * @param nodeResponse Node response.
289
+ * @param responseHeaders Headers.
290
+ * @returns True if redirect response was handled, false otherwise.
291
+ */
292
+ handleRedirectResponse(nodeResponse, responseHeaders) {
293
+ if (!this.isRedirect(nodeResponse.statusCode)) {
294
+ return false;
295
+ }
296
+ switch (this.request.redirect) {
297
+ case 'error':
298
+ this.finalizeRequest();
299
+ this.reject(new DOMException_1.default(`URI requested responds with a redirect, redirect mode is set to "error": ${this.request.url}`, DOMExceptionNameEnum_1.default.abortError));
300
+ return true;
301
+ case 'manual':
302
+ // Nothing to do
303
+ return false;
304
+ case 'follow':
305
+ const locationHeader = responseHeaders.get('Location');
306
+ const shouldBecomeGetRequest = nodeResponse.statusCode === 303 ||
307
+ ((nodeResponse.statusCode === 301 || nodeResponse.statusCode === 302) &&
308
+ this.request.method === 'POST');
309
+ let locationURL = null;
310
+ if (locationHeader !== null) {
311
+ try {
312
+ locationURL = new url_1.URL(locationHeader, this.request.url);
313
+ }
314
+ catch {
315
+ this.finalizeRequest();
316
+ this.reject(new DOMException_1.default(`URI requested responds with an invalid redirect URL: ${locationHeader}`, DOMExceptionNameEnum_1.default.uriMismatchError));
317
+ return true;
318
+ }
319
+ }
320
+ if (locationURL === null) {
321
+ return false;
322
+ }
323
+ if (this.redirectCount >= MAX_REDIRECT_COUNT) {
324
+ this.finalizeRequest();
325
+ this.reject(new DOMException_1.default(`Maximum redirects reached at: ${this.request.url}`, DOMExceptionNameEnum_1.default.networkError));
326
+ return true;
327
+ }
328
+ const headers = new Headers_1.default(this.request.headers);
329
+ let body = this.request._bodyBuffer;
330
+ if (!body && this.request.body) {
331
+ // Piping a used request body is not possible.
332
+ if (this.request.bodyUsed) {
333
+ throw new DOMException_1.default('It is not possible to pipe a body after it is used.', DOMExceptionNameEnum_1.default.networkError);
334
+ }
335
+ body = new stream_1.default.PassThrough();
336
+ this.request.body.pipe(body);
337
+ }
338
+ const requestInit = {
339
+ method: this.request.method,
340
+ signal: this.request.signal,
341
+ referrer: this.request.referrer,
342
+ referrerPolicy: this.request.referrerPolicy,
343
+ credentials: this.request.credentials,
344
+ headers,
345
+ body
346
+ };
347
+ // TODO: Maybe we need to add support for OPTIONS request with 'Access-Control-Allow-*' headers?
348
+ if (this.request.credentials === 'omit' ||
349
+ (this.request.credentials === 'same-origin' &&
350
+ FetchCORSUtility_1.default.isCORS(this.ownerDocument.location, locationURL))) {
351
+ headers.delete('authorization');
352
+ headers.delete('www-authenticate');
353
+ headers.delete('cookie');
354
+ headers.delete('cookie2');
355
+ }
356
+ if (nodeResponse.statusCode !== 303 && this.request.body && !this.request._bodyBuffer) {
357
+ this.finalizeRequest();
358
+ this.reject(new DOMException_1.default('Cannot follow redirect with body being a readable stream.', DOMExceptionNameEnum_1.default.networkError));
359
+ return true;
360
+ }
361
+ if (this.request.signal.aborted) {
362
+ this.abort();
363
+ return true;
364
+ }
365
+ if (shouldBecomeGetRequest) {
366
+ requestInit.method = 'GET';
367
+ requestInit.body = undefined;
368
+ headers.delete('Content-Length');
369
+ headers.delete('Content-Type');
370
+ }
371
+ const responseReferrerPolicy = FetchRequestReferrerUtility_1.default.getReferrerPolicyFromHeader(headers);
372
+ if (responseReferrerPolicy) {
373
+ requestInit.referrerPolicy = responseReferrerPolicy;
374
+ }
375
+ const fetch = new this.constructor({
376
+ ownerDocument: this.ownerDocument,
377
+ url: locationURL,
378
+ init: requestInit,
379
+ redirectCount: this.redirectCount + 1,
380
+ contentType: !shouldBecomeGetRequest ? this.request._contentType : undefined
381
+ });
382
+ this.finalizeRequest();
383
+ this.resolve(fetch.send());
384
+ return true;
385
+ default:
386
+ this.finalizeRequest();
387
+ this.reject(new DOMException_1.default(`Redirect option '${this.request.redirect}' is not a valid value of RequestRedirect`));
388
+ return true;
389
+ }
390
+ }
391
+ /**
392
+ * Prepares the request before being sent.
393
+ */
394
+ prepareRequest() {
395
+ if (!this.request.referrerPolicy) {
396
+ this.request.referrerPolicy = 'strict-origin-when-cross-origin';
397
+ }
398
+ if (this.request.referrer && this.request.referrer !== 'no-referrer') {
399
+ this.request._referrer = FetchRequestReferrerUtility_1.default.getSentReferrer(this.ownerDocument, this.request);
400
+ }
401
+ else {
402
+ this.request._referrer = 'no-referrer';
403
+ }
404
+ }
405
+ /**
406
+ * Validates the request.
407
+ *
408
+ * @throws {Error} Throws an error if the request is invalid.
409
+ */
410
+ validateRequest() {
411
+ if (!SUPPORTED_SCHEMAS.includes(this.request._url.protocol)) {
412
+ throw new DOMException_1.default(`Failed to fetch from "${this.request.url}": URL scheme "${this.request._url.protocol.replace(/:$/, '')}" is not supported.`, DOMExceptionNameEnum_1.default.notSupportedError);
413
+ }
414
+ }
415
+ /**
416
+ * Returns request headers.
417
+ *
418
+ * @returns Headers.
419
+ */
420
+ getRequestHeaders() {
421
+ const headers = new Headers_1.default(this.request.headers);
422
+ const document = this.ownerDocument;
423
+ const isCORS = FetchCORSUtility_1.default.isCORS(document.location, this.request._url);
424
+ // TODO: Maybe we need to add support for OPTIONS request with 'Access-Control-Allow-*' headers?
425
+ if (this.request.credentials === 'omit' ||
426
+ (this.request.credentials === 'same-origin' && isCORS)) {
427
+ headers.delete('authorization');
428
+ headers.delete('www-authenticate');
429
+ }
430
+ headers.set('Accept-Encoding', 'gzip, deflate, br');
431
+ headers.set('Connection', 'close');
432
+ if (!headers.has('User-Agent')) {
433
+ headers.set('User-Agent', document.defaultView.navigator.userAgent);
434
+ }
435
+ if (this.request._referrer instanceof url_1.URL) {
436
+ headers.set('Referer', this.request._referrer.href);
437
+ }
438
+ if (this.request.credentials === 'include' ||
439
+ (this.request.credentials === 'same-origin' && !isCORS)) {
440
+ const cookie = document.defaultView.document.cookie;
441
+ if (cookie) {
442
+ headers.set('Cookie', cookie);
443
+ }
444
+ }
445
+ if (!headers.has('Accept')) {
446
+ headers.set('Accept', '*/*');
447
+ }
448
+ if (!headers.has('Content-Length') && this.request._contentLength !== null) {
449
+ headers.set('Content-Length', String(this.request._contentLength));
450
+ }
451
+ if (!headers.has('Content-Type') && this.request._contentType) {
452
+ headers.set('Content-Type', this.request._contentType);
453
+ }
454
+ // We need to convert the headers to Node request headers.
455
+ const httpRequestHeaders = {};
456
+ for (const header of Object.values(headers._entries)) {
457
+ httpRequestHeaders[header.name] = header.value;
458
+ }
459
+ return httpRequestHeaders;
460
+ }
461
+ /**
462
+ * Returns "true" if redirect.
463
+ *
464
+ * @param statusCode Status code.
465
+ * @returns "true" if redirect.
466
+ */
467
+ isRedirect(statusCode) {
468
+ return REDIRECT_STATUS_CODES.includes(statusCode);
469
+ }
470
+ /**
471
+ * Appends headers to response.
472
+ *
473
+ * @param nodeResponse HTTP request.
474
+ * @returns Headers.
475
+ */
476
+ getResponseHeaders(nodeResponse) {
477
+ const headers = new Headers_1.default();
478
+ let key = null;
479
+ for (const header of nodeResponse.rawHeaders) {
480
+ if (!key) {
481
+ key = header;
482
+ }
483
+ else {
484
+ const lowerKey = key.toLowerCase();
485
+ // Handles setting cookie headers to the document.
486
+ // "set-cookie" and "set-cookie2" are not allowed in response headers according to spec.
487
+ if (lowerKey === 'set-cookie' || lowerKey === 'set-cookie2') {
488
+ const isCORS = FetchCORSUtility_1.default.isCORS(this.ownerDocument.location, this.request._url);
489
+ if (this.request.credentials === 'include' ||
490
+ (this.request.credentials === 'same-origin' && !isCORS)) {
491
+ this.ownerDocument.cookie = header;
492
+ }
493
+ }
494
+ else {
495
+ headers.append(key, header);
496
+ }
497
+ key = null;
498
+ }
499
+ }
500
+ return headers;
501
+ }
502
+ /**
503
+ * Finalizes the request.
504
+ */
505
+ finalizeRequest() {
506
+ this.request.signal.removeEventListener('abort', this.listeners.onSignalAbort);
507
+ this.nodeRequest.destroy();
508
+ }
509
+ /**
510
+ * Aborts the request.
511
+ */
512
+ abort() {
513
+ const error = new DOMException_1.default('The operation was aborted.', DOMExceptionNameEnum_1.default.abortError);
514
+ if (this.request.body) {
515
+ this.request.body.destroy(error);
516
+ }
517
+ if (!this.response || !this.response.body) {
518
+ if (this.reject) {
519
+ this.reject(error);
520
+ }
521
+ return;
522
+ }
523
+ this.response.body.emit('error', error);
524
+ if (this.reject) {
525
+ this.reject(error);
526
+ }
527
+ }
528
+ }
529
+ exports.default = Fetch;
530
+ //# sourceMappingURL=Fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Fetch.js","sourceRoot":"","sources":["../../src/fetch/Fetch.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,85 @@
1
- import * as NodeFetch from 'node-fetch';
2
- import IHeaders from './IHeaders';
1
+ import IHeaders from './types/IHeaders';
2
+ import IHeadersInit from './types/IHeadersInit';
3
3
  /**
4
4
  * Fetch headers.
5
+ *
6
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Headers
5
7
  */
6
- export default class Headers extends NodeFetch.Headers implements IHeaders {
8
+ export default class Headers implements IHeaders {
9
+ _entries: {
10
+ [k: string]: {
11
+ name: string;
12
+ value: string;
13
+ };
14
+ };
15
+ /**
16
+ * Constructor.
17
+ *
18
+ * @param init Headers init.
19
+ */
20
+ constructor(init?: IHeadersInit);
21
+ /**
22
+ * Appends a new value onto an existing header inside a Headers object, or adds the header if it does not already exist.
23
+ *
24
+ * @param name Name.
25
+ * @param value Value.
26
+ */
27
+ append(name: string, value: string): void;
28
+ /**
29
+ * Removes an header.
30
+ *
31
+ * @param name Name.
32
+ */
33
+ delete(name: string): void;
34
+ /**
35
+ * Returns header value.
36
+ *
37
+ * @param name Name.
38
+ * @returns Value.
39
+ */
40
+ get(name: string): string | null;
41
+ /**
42
+ * Sets a new value for an existing header inside a Headers object, or adds the header if it does not already exist.
43
+ *
44
+ * @param name Name.
45
+ * @param value Value.
46
+ */
47
+ set(name: string, value: string): void;
48
+ /**
49
+ * Returns whether an Headers object contains a certain key.
50
+ *
51
+ * @param name Name.
52
+ * @returns "true" if the Headers object contains the key.
53
+ */
54
+ has(name: string): boolean;
55
+ /**
56
+ * Executes a callback function once per each key/value pair in the Headers object.
57
+ *
58
+ * @param callback Callback.
59
+ */
60
+ forEach(callback: (name: string, value: string, thisArg: IHeaders) => void): void;
61
+ /**
62
+ * Returns an iterator, allowing you to go through all keys of the key/value pairs contained in this object.
63
+ *
64
+ * @returns Iterator.
65
+ */
66
+ keys(): IterableIterator<string>;
67
+ /**
68
+ * Returns an iterator, allowing you to go through all values of the key/value pairs contained in this object.
69
+ *
70
+ * @returns Iterator.
71
+ */
72
+ values(): IterableIterator<string>;
73
+ /**
74
+ * Returns an iterator, allowing you to go through all key/value pairs contained in this object.
75
+ *
76
+ * @returns Iterator.
77
+ */
78
+ entries(): IterableIterator<[string, string]>;
79
+ /**
80
+ * Iterator.
81
+ *
82
+ * @returns Iterator.
83
+ */
84
+ [Symbol.iterator](): IterableIterator<[string, string]>;
7
85
  }