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,40 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import FormData from '../../form-data/FormData';
4
+ import Stream from 'stream';
5
+ /**
6
+ * Multipart form data factory.
7
+ *
8
+ * Based on:
9
+ * https://github.com/node-fetch/node-fetch/blob/main/src/utils/multipart-parser.js (MIT)
10
+ */
11
+ export default class MultipartFormDataParser {
12
+ /**
13
+ * Returns form data.
14
+ *
15
+ * @param body Body.
16
+ * @param contentType Content type header value.
17
+ * @returns Form data.
18
+ */
19
+ static streamToFormData(body: Stream.Readable, contentType: string): Promise<FormData>;
20
+ /**
21
+ * Converts a FormData object to a ReadableStream.
22
+ *
23
+ * @param formData FormData.
24
+ * @returns Stream and type.
25
+ */
26
+ static formDataToStream(formData: FormData): {
27
+ contentType: string;
28
+ contentLength: number;
29
+ buffer: Buffer;
30
+ stream: Stream.Readable;
31
+ };
32
+ /**
33
+ * Escapes a form data entry name.
34
+ *
35
+ * @param name Name.
36
+ * @param filename Whether it is a filename.
37
+ * @returns Escaped name.
38
+ */
39
+ private static escapeName;
40
+ }
@@ -0,0 +1,81 @@
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 stream_1 = __importDefault(require("stream"));
7
+ const MultipartReader_1 = __importDefault(require("./MultipartReader"));
8
+ const DOMException_1 = __importDefault(require("../../exception/DOMException"));
9
+ const DOMExceptionNameEnum_1 = __importDefault(require("../../exception/DOMExceptionNameEnum"));
10
+ /**
11
+ * Multipart form data factory.
12
+ *
13
+ * Based on:
14
+ * https://github.com/node-fetch/node-fetch/blob/main/src/utils/multipart-parser.js (MIT)
15
+ */
16
+ class MultipartFormDataParser {
17
+ /**
18
+ * Returns form data.
19
+ *
20
+ * @param body Body.
21
+ * @param contentType Content type header value.
22
+ * @returns Form data.
23
+ */
24
+ static async streamToFormData(body, contentType) {
25
+ if (!/multipart/i.test(contentType)) {
26
+ throw new DOMException_1.default(`Failed to build FormData object: The "content-type" header isn't of type "multipart/form-data".`, DOMExceptionNameEnum_1.default.invalidStateError);
27
+ }
28
+ const match = contentType.match(/boundary=(?:"([^"]+)"|([^;]+))/i);
29
+ if (!match) {
30
+ throw new DOMException_1.default(`Failed to build FormData object: The "content-type" header doesn't contain any multipart boundary.`, DOMExceptionNameEnum_1.default.invalidStateError);
31
+ }
32
+ const reader = new MultipartReader_1.default(match[1] || match[2]);
33
+ for await (const chunk of body) {
34
+ reader.write(chunk);
35
+ }
36
+ return reader.end();
37
+ }
38
+ /**
39
+ * Converts a FormData object to a ReadableStream.
40
+ *
41
+ * @param formData FormData.
42
+ * @returns Stream and type.
43
+ */
44
+ static formDataToStream(formData) {
45
+ const boundary = '----HappyDOMFormDataBoundary' + Math.random().toString(36);
46
+ const chunks = [];
47
+ const prefix = `--${boundary}\r\nContent-Disposition: form-data; name="`;
48
+ for (const [name, value] of formData) {
49
+ if (typeof value === 'string') {
50
+ chunks.push(Buffer.from(`${prefix}${this.escapeName(name)}"\r\n\r\n${value.replace(/\r(?!\n)|(?<!\r)\n/g, '\r\n')}\r\n`));
51
+ }
52
+ else {
53
+ chunks.push(Buffer.from(`${prefix}${this.escapeName(name)}"; filename="${this.escapeName(value.name, true)}"\r\nContent-Type: ${value.type || 'application/octet-stream'}\r\n\r\n`));
54
+ chunks.push(value._buffer);
55
+ chunks.push(Buffer.from('\r\n'));
56
+ }
57
+ }
58
+ const buffer = Buffer.concat(chunks);
59
+ return {
60
+ contentType: `multipart/form-data; boundary=${boundary}`,
61
+ contentLength: buffer.length,
62
+ buffer,
63
+ stream: stream_1.default.Readable.from(buffer)
64
+ };
65
+ }
66
+ /**
67
+ * Escapes a form data entry name.
68
+ *
69
+ * @param name Name.
70
+ * @param filename Whether it is a filename.
71
+ * @returns Escaped name.
72
+ */
73
+ static escapeName(name, filename = false) {
74
+ return (filename ? name : name.replace(/\r?\n|\r/g, '\r\n'))
75
+ .replace(/\n/g, '%0A')
76
+ .replace(/\r/g, '%0D')
77
+ .replace(/"/g, '%22');
78
+ }
79
+ }
80
+ exports.default = MultipartFormDataParser;
81
+ //# sourceMappingURL=MultipartFormDataParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultipartFormDataParser.js","sourceRoot":"","sources":["../../../src/fetch/multipart/MultipartFormDataParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import FormData from '../../form-data/FormData';
2
+ /**
3
+ * Multipart reader.
4
+ *
5
+ * Based on:
6
+ * https://github.com/node-fetch/node-fetch/blob/main/src/utils/multipart-parser.js (MIT)
7
+ */
8
+ export default class MultipartReader {
9
+ private formData;
10
+ private boundary;
11
+ private boundaryIndex;
12
+ private state;
13
+ private data;
14
+ /**
15
+ * Constructor.
16
+ *
17
+ * @param formData Form data.
18
+ * @param boundary Boundary.
19
+ */
20
+ constructor(boundary: string);
21
+ /**
22
+ * Appends data.
23
+ *
24
+ * @param data Data.
25
+ */
26
+ write(data: Uint8Array): void;
27
+ /**
28
+ * Ends the stream.
29
+ *
30
+ * @returns Form data.
31
+ */
32
+ end(): FormData;
33
+ /**
34
+ * Appends data.
35
+ *
36
+ * @param key Key.
37
+ * @param value value.
38
+ * @param filename Filename.
39
+ * @param type Type.
40
+ */
41
+ private appendFormData;
42
+ /**
43
+ * Returns content disposition.
44
+ *
45
+ * @param headerValue Header value.
46
+ * @returns Content disposition.
47
+ */
48
+ private getContentDisposition;
49
+ }
@@ -0,0 +1,178 @@
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 DOMException_1 = __importDefault(require("../../exception/DOMException"));
7
+ const DOMExceptionNameEnum_1 = __importDefault(require("../../exception/DOMExceptionNameEnum"));
8
+ const File_1 = __importDefault(require("../../file/File"));
9
+ const FormData_1 = __importDefault(require("../../form-data/FormData"));
10
+ var MultiparParserStateEnum;
11
+ (function (MultiparParserStateEnum) {
12
+ MultiparParserStateEnum[MultiparParserStateEnum["boundary"] = 0] = "boundary";
13
+ MultiparParserStateEnum[MultiparParserStateEnum["headerStart"] = 2] = "headerStart";
14
+ MultiparParserStateEnum[MultiparParserStateEnum["header"] = 3] = "header";
15
+ MultiparParserStateEnum[MultiparParserStateEnum["data"] = 5] = "data";
16
+ })(MultiparParserStateEnum || (MultiparParserStateEnum = {}));
17
+ const CHARACTER_CODE = {
18
+ lf: 10,
19
+ cr: 13
20
+ };
21
+ /**
22
+ * Multipart reader.
23
+ *
24
+ * Based on:
25
+ * https://github.com/node-fetch/node-fetch/blob/main/src/utils/multipart-parser.js (MIT)
26
+ */
27
+ class MultipartReader {
28
+ /**
29
+ * Constructor.
30
+ *
31
+ * @param formData Form data.
32
+ * @param boundary Boundary.
33
+ */
34
+ constructor(boundary) {
35
+ this.formData = new FormData_1.default();
36
+ this.boundaryIndex = 0;
37
+ this.state = MultiparParserStateEnum.boundary;
38
+ this.data = {
39
+ contentDisposition: null,
40
+ value: [],
41
+ contentType: null,
42
+ header: ''
43
+ };
44
+ const boundaryHeader = `--${boundary}`;
45
+ this.boundary = new Uint8Array(boundaryHeader.length);
46
+ for (let i = 0, max = boundaryHeader.length; i < max; i++) {
47
+ this.boundary[i] = boundaryHeader.charCodeAt(i);
48
+ }
49
+ }
50
+ /**
51
+ * Appends data.
52
+ *
53
+ * @param data Data.
54
+ */
55
+ write(data) {
56
+ let char;
57
+ let nextChar;
58
+ for (let i = 0, max = data.length; i < max; i++) {
59
+ char = data[i];
60
+ nextChar = data[i + 1];
61
+ switch (this.state) {
62
+ case MultiparParserStateEnum.boundary:
63
+ if (char === this.boundary[this.boundaryIndex]) {
64
+ this.boundaryIndex++;
65
+ }
66
+ else {
67
+ this.boundaryIndex = 0;
68
+ }
69
+ if (this.boundaryIndex === this.boundary.length) {
70
+ this.state = MultiparParserStateEnum.headerStart;
71
+ this.boundaryIndex = 0;
72
+ }
73
+ break;
74
+ case MultiparParserStateEnum.headerStart:
75
+ if (nextChar !== CHARACTER_CODE.cr && nextChar !== CHARACTER_CODE.lf) {
76
+ this.data.header = '';
77
+ this.state =
78
+ data[i - 2] === CHARACTER_CODE.lf
79
+ ? MultiparParserStateEnum.data
80
+ : MultiparParserStateEnum.header;
81
+ }
82
+ break;
83
+ case MultiparParserStateEnum.header:
84
+ if (char === CHARACTER_CODE.cr) {
85
+ if (this.data.header) {
86
+ const headerParts = this.data.header.split(':');
87
+ const headerName = headerParts[0].toLowerCase();
88
+ const headerValue = headerParts[1].trim();
89
+ switch (headerName) {
90
+ case 'content-disposition':
91
+ this.data.contentDisposition = this.getContentDisposition(headerValue);
92
+ break;
93
+ case 'content-type':
94
+ this.data.contentType = headerValue;
95
+ break;
96
+ }
97
+ }
98
+ this.state = MultiparParserStateEnum.headerStart;
99
+ }
100
+ else {
101
+ this.data.header += String.fromCharCode(char);
102
+ }
103
+ break;
104
+ case MultiparParserStateEnum.data:
105
+ if (char === this.boundary[this.boundaryIndex]) {
106
+ this.boundaryIndex++;
107
+ }
108
+ else {
109
+ this.boundaryIndex = 0;
110
+ }
111
+ if (this.boundaryIndex === this.boundary.length) {
112
+ this.state = MultiparParserStateEnum.headerStart;
113
+ if (this.data.value.length) {
114
+ this.appendFormData(this.data.contentDisposition.name, Buffer.from(this.data.value.slice(0, -(this.boundary.length + 1))), this.data.contentDisposition.filename, this.data.contentType);
115
+ this.data.value = [];
116
+ this.data.contentDisposition = null;
117
+ this.data.contentType = null;
118
+ }
119
+ this.boundaryIndex = 0;
120
+ }
121
+ else {
122
+ this.data.value.push(char);
123
+ }
124
+ break;
125
+ }
126
+ }
127
+ }
128
+ /**
129
+ * Ends the stream.
130
+ *
131
+ * @returns Form data.
132
+ */
133
+ end() {
134
+ if (this.state !== MultiparParserStateEnum.data) {
135
+ throw new DOMException_1.default(`Unexpected end of multipart stream. Expected state to be "${MultiparParserStateEnum.data}" but got "${this.state}".`, DOMExceptionNameEnum_1.default.invalidStateError);
136
+ }
137
+ this.appendFormData(this.data.contentDisposition.name, Buffer.from(this.data.value.slice(0, -2)), this.data.contentDisposition.filename, this.data.contentType);
138
+ return this.formData;
139
+ }
140
+ /**
141
+ * Appends data.
142
+ *
143
+ * @param key Key.
144
+ * @param value value.
145
+ * @param filename Filename.
146
+ * @param type Type.
147
+ */
148
+ appendFormData(key, value, filename, type) {
149
+ if (!value.length) {
150
+ return;
151
+ }
152
+ if (filename) {
153
+ this.formData.append(key, new File_1.default([value], filename, {
154
+ type
155
+ }));
156
+ }
157
+ else {
158
+ this.formData.append(key, value.toString());
159
+ }
160
+ }
161
+ /**
162
+ * Returns content disposition.
163
+ *
164
+ * @param headerValue Header value.
165
+ * @returns Content disposition.
166
+ */
167
+ getContentDisposition(headerValue) {
168
+ const regex = /([a-z]+) *= *"([^"]+)"/g;
169
+ const contentDisposition = {};
170
+ let match;
171
+ while ((match = regex.exec(headerValue))) {
172
+ contentDisposition[match[1]] = match[2];
173
+ }
174
+ return contentDisposition;
175
+ }
176
+ }
177
+ exports.default = MultipartReader;
178
+ //# sourceMappingURL=MultipartReader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultipartReader.js","sourceRoot":"","sources":["../../../src/fetch/multipart/MultipartReader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Fetch headers.
3
+ *
4
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Headers
5
+ */
6
+ export default interface IHeaders extends Iterable<[string, string]> {
7
+ /**
8
+ * Appends a new value onto an existing header inside a Headers object, or adds the header if it does not already exist.
9
+ *
10
+ * @param name Name.
11
+ * @param value Value.
12
+ */
13
+ append(name: string, value: string): void;
14
+ /**
15
+ * Removes an header.
16
+ *
17
+ * @param name Name.
18
+ */
19
+ delete(name: string): void;
20
+ /**
21
+ * Returns header value.
22
+ *
23
+ * @param name Name.
24
+ * @returns Value.
25
+ */
26
+ get(name: string): string | null;
27
+ /**
28
+ * Sets a new value for an existing header inside a Headers object, or adds the header if it does not already exist.
29
+ *
30
+ * @param name Name.
31
+ * @param value Value.
32
+ */
33
+ set(name: string, value: string): void;
34
+ /**
35
+ * Returns whether an Headers object contains a certain key.
36
+ *
37
+ * @param name Name.
38
+ * @returns "true" if the Headers object contains the key.
39
+ */
40
+ has(name: string): boolean;
41
+ /**
42
+ * Executes a callback function once per each key/value pair in the Headers object.
43
+ *
44
+ * @param callback Callback.
45
+ */
46
+ forEach(callback: (name: string, value: string, object: IHeaders) => void): void;
47
+ /**
48
+ * Returns an iterator, allowing you to go through all keys of the key/value pairs contained in this object.
49
+ *
50
+ * @returns Iterator.
51
+ */
52
+ keys(): IterableIterator<string>;
53
+ /**
54
+ * Returns an iterator, allowing you to go through all values of the key/value pairs contained in this object.
55
+ *
56
+ * @returns Iterator.
57
+ */
58
+ values(): IterableIterator<string>;
59
+ /**
60
+ * Returns an iterator, allowing you to go through all key/value pairs contained in this object.
61
+ *
62
+ * @returns Iterator.
63
+ */
64
+ entries(): IterableIterator<[string, string]>;
65
+ /**
66
+ * Iterator.
67
+ *
68
+ * @returns Iterator.
69
+ */
70
+ [Symbol.iterator](): IterableIterator<[string, string]>;
71
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"IHeaders.js","sourceRoot":"","sources":["../../src/fetch/IHeaders.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"IHeaders.js","sourceRoot":"","sources":["../../../src/fetch/types/IHeaders.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IHeadersInit.js","sourceRoot":"","sources":["../../../src/fetch/types/IHeadersInit.ts"],"names":[],"mappings":""}
@@ -0,0 +1,60 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import IHeaders from './IHeaders';
4
+ import IBlob from '../../file/IBlob';
5
+ import AbortSignal from '../AbortSignal';
6
+ import Stream from 'stream';
7
+ import IRequestReferrerPolicy from './IRequestReferrerPolicy';
8
+ import IRequestRedirect from './IRequestRedirect';
9
+ import IRequestCredentials from './IRequestCredentials';
10
+ /**
11
+ * Fetch request.
12
+ */
13
+ export default interface IRequest {
14
+ readonly headers: IHeaders;
15
+ readonly method: string;
16
+ readonly redirect: IRequestRedirect;
17
+ readonly referrer: string;
18
+ readonly url: string;
19
+ readonly body: Stream.Readable | null;
20
+ readonly bodyUsed: boolean;
21
+ readonly referrerPolicy: IRequestReferrerPolicy;
22
+ readonly signal: AbortSignal | null;
23
+ readonly credentials: IRequestCredentials;
24
+ /**
25
+ * Returns array buffer.
26
+ *
27
+ * @returns Array buffer.
28
+ */
29
+ arrayBuffer(): Promise<ArrayBuffer>;
30
+ /**
31
+ * Returns blob.
32
+ *
33
+ * @returns Blob.
34
+ */
35
+ blob(): Promise<IBlob>;
36
+ /**
37
+ * Returns buffer.
38
+ *
39
+ * @returns Buffer.
40
+ */
41
+ buffer(): Promise<Buffer>;
42
+ /**
43
+ * Returns text.
44
+ *
45
+ * @returns Text.
46
+ */
47
+ text(): Promise<string>;
48
+ /**
49
+ * Returns json.
50
+ *
51
+ * @returns JSON.
52
+ */
53
+ json(): Promise<string>;
54
+ /**
55
+ * Clones request.
56
+ *
57
+ * @returns Clone.
58
+ */
59
+ clone(): IRequest;
60
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"IRequest.js","sourceRoot":"","sources":["../../src/fetch/IRequest.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"IRequest.js","sourceRoot":"","sources":["../../../src/fetch/types/IRequest.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { URLSearchParams } from 'url';
4
+ import FormData from '../../form-data/FormData';
5
+ import Blob from '../../file/Blob';
6
+ declare type IRequestBody = ArrayBuffer | ArrayBufferView | NodeJS.ReadableStream | string | URLSearchParams | Blob | FormData | null;
7
+ export default IRequestBody;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=IBody.js.map
3
+ //# sourceMappingURL=IRequestBody.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IRequestBody.js","sourceRoot":"","sources":["../../../src/fetch/types/IRequestBody.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ declare type IRequestCredentials = 'omit' | 'same-origin' | 'include';
2
+ export default IRequestCredentials;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IRequestCredentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IRequestCredentials.js","sourceRoot":"","sources":["../../../src/fetch/types/IRequestCredentials.ts"],"names":[],"mappings":""}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" />
2
2
  import { URL } from 'url';
3
3
  import IRequest from './IRequest';
4
- declare type RequestInfo = IRequest | string | URL;
5
- export default RequestInfo;
4
+ declare type IRequestInfo = IRequest | string | URL;
5
+ export default IRequestInfo;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IRequestInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IRequestInfo.js","sourceRoot":"","sources":["../../../src/fetch/types/IRequestInfo.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ /// <reference types="node" />
2
+ import IHeadersInit from './IHeadersInit';
3
+ import AbortSignal from '../AbortSignal';
4
+ import { URL } from 'url';
5
+ import IRequestReferrerPolicy from './IRequestReferrerPolicy';
6
+ import IRequestRedirect from './IRequestRedirect';
7
+ import IRequestBody from './IRequestBody';
8
+ import IRequestCredentials from './IRequestCredentials';
9
+ /**
10
+ * Fetch request init.
11
+ */
12
+ export default interface IRequestInit {
13
+ body?: IRequestBody;
14
+ headers?: IHeadersInit;
15
+ method?: string;
16
+ redirect?: IRequestRedirect;
17
+ signal?: AbortSignal | null;
18
+ referrer?: '' | 'no-referrer' | 'client' | string | URL;
19
+ credentials?: IRequestCredentials;
20
+ referrerPolicy?: IRequestReferrerPolicy;
21
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IRequestInit.js","sourceRoot":"","sources":["../../../src/fetch/types/IRequestInit.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ declare type IRequestRedirect = 'follow' | 'error' | 'manual';
2
+ export default IRequestRedirect;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IRequestRedirect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IRequestRedirect.js","sourceRoot":"","sources":["../../../src/fetch/types/IRequestRedirect.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ declare type IRequestReferrerPolicy = '' | 'no-referrer' | 'no-referrer-when-downgrade' | 'same-origin' | 'origin' | 'strict-origin' | 'origin-when-cross-origin' | 'strict-origin-when-cross-origin' | 'unsafe-url';
2
+ export default IRequestReferrerPolicy;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IRequestReferrerPolicy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IRequestReferrerPolicy.js","sourceRoot":"","sources":["../../../src/fetch/types/IRequestReferrerPolicy.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import IHeaders from './IHeaders';
4
+ import IBlob from 'src/file/IBlob';
5
+ import Stream from 'stream';
6
+ /**
7
+ * Fetch response.
8
+ *
9
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Response/Response
10
+ */
11
+ export default interface IResponse {
12
+ readonly headers: IHeaders;
13
+ readonly ok: boolean;
14
+ readonly redirected: boolean;
15
+ readonly status: number;
16
+ readonly statusText: string;
17
+ readonly type: 'basic' | 'cors' | 'default' | 'error' | 'opaque' | 'opaqueredirect';
18
+ readonly url: string;
19
+ readonly body: Stream.Readable | null;
20
+ readonly bodyUsed: boolean;
21
+ arrayBuffer(): Promise<ArrayBuffer>;
22
+ blob(): Promise<IBlob>;
23
+ buffer(): Promise<Buffer>;
24
+ json(): Promise<unknown>;
25
+ text(): Promise<string>;
26
+ clone(): IResponse;
27
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"IResponse.js","sourceRoot":"","sources":["../../src/fetch/IResponse.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"IResponse.js","sourceRoot":"","sources":["../../../src/fetch/types/IResponse.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { URLSearchParams } from 'url';
4
+ import FormData from '../../form-data/FormData';
5
+ import Blob from '../../file/Blob';
6
+ declare type IResponseBody = ArrayBuffer | ArrayBufferView | NodeJS.ReadableStream | string | URLSearchParams | Blob | FormData | null;
7
+ export default IResponseBody;