vasuzex 2.0.13 → 2.0.15

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.
Files changed (611) hide show
  1. package/NPM_LINK_TEST_RESULTS.md +215 -0
  2. package/PRODUCTION_FIXES_V2.0.15.md +357 -0
  3. package/bin/create-vasuzex.js +44 -5
  4. package/database/index.js +5 -5
  5. package/database/models/User.js +15 -0
  6. package/database/package.json +10 -0
  7. package/framework/Console/Commands/generate-app.js +17 -19
  8. package/framework/Console/Commands/utils/databasePackageTemplate.js +20 -0
  9. package/framework/Console/Commands/utils/fileOperations.js +14 -0
  10. package/framework/Console/Commands/utils/index.js +4 -7
  11. package/framework/Console/Commands/utils/packageManager.js +20 -6
  12. package/framework/Console/Commands/utils/plopGenerator.js +113 -0
  13. package/framework/Console/Commands/utils/templateGenerator.js +0 -8
  14. package/framework/Console/config/generator.config.js +142 -0
  15. package/framework/Console/plopfile.js +142 -0
  16. package/{apps/pilot-test/api → framework/Console}/src/app.js +5 -13
  17. package/framework/Console/src/config/database.js +53 -0
  18. package/framework/Console/src/helpers/env.js +8 -0
  19. package/{apps/pilot-test/api → framework/Console}/src/index.js +11 -11
  20. package/{apps/pilot-test/api → framework/Console}/src/middleware/authMiddleware.js +1 -1
  21. package/framework/Console/src/routes/index.js +16 -0
  22. package/{apps/pilot-test/api → framework/Console}/src/services/AuthService.js +1 -1
  23. package/framework/Console/templates/api/app.js.hbs +59 -0
  24. package/framework/Console/templates/api/config/database.js.hbs +53 -0
  25. package/framework/Console/templates/api/controllers/AuthController.js.hbs +90 -0
  26. package/framework/Console/templates/api/controllers/BaseController.js.hbs +25 -0
  27. package/framework/Console/templates/api/helpers/env.js.hbs +8 -0
  28. package/framework/Console/templates/api/middleware/authMiddleware.js.hbs +48 -0
  29. package/framework/Console/templates/api/middleware/errorHandler.js.hbs +30 -0
  30. package/framework/Console/templates/api/requests/AuthRequests.js.hbs +16 -0
  31. package/framework/Console/templates/api/routes/auth.js.hbs +20 -0
  32. package/framework/Console/templates/api/routes/index.js.hbs +16 -0
  33. package/framework/Console/templates/api/server.js.hbs +127 -0
  34. package/framework/Console/templates/api/services/AuthService.js.hbs +95 -0
  35. package/framework/Database/Model.js +58 -4
  36. package/framework/Foundation/BaseApp.js +42 -1
  37. package/framework/package.json +3 -0
  38. package/framework/vasuzex-framework-core-1.0.0.tgz +0 -0
  39. package/frontend/react-ui/node_modules/@esbuild/darwin-x64/README.md +3 -0
  40. package/frontend/react-ui/node_modules/@esbuild/darwin-x64/bin/esbuild +0 -0
  41. package/frontend/react-ui/node_modules/@esbuild/darwin-x64/package.json +20 -0
  42. package/frontend/react-ui/node_modules/esbuild/LICENSE.md +21 -0
  43. package/frontend/react-ui/node_modules/esbuild/README.md +3 -0
  44. package/frontend/react-ui/node_modules/esbuild/bin/esbuild +223 -0
  45. package/frontend/react-ui/node_modules/esbuild/install.js +289 -0
  46. package/frontend/react-ui/node_modules/esbuild/lib/main.d.ts +716 -0
  47. package/frontend/react-ui/node_modules/esbuild/lib/main.js +2242 -0
  48. package/frontend/react-ui/node_modules/esbuild/package.json +49 -0
  49. package/frontend/react-ui/node_modules/jsdom/LICENSE.txt +22 -0
  50. package/frontend/react-ui/node_modules/jsdom/README.md +521 -0
  51. package/frontend/react-ui/node_modules/jsdom/lib/api.js +334 -0
  52. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/browser/Window.js +1012 -0
  53. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/browser/default-stylesheet.js +789 -0
  54. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/browser/js-globals.json +312 -0
  55. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/browser/not-implemented.js +13 -0
  56. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/browser/parser/html.js +208 -0
  57. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/browser/parser/index.js +37 -0
  58. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/browser/parser/xml.js +202 -0
  59. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/browser/resources/async-resource-queue.js +114 -0
  60. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/browser/resources/no-op-resource-loader.js +8 -0
  61. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/browser/resources/per-document-resource-loader.js +98 -0
  62. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/browser/resources/request-manager.js +33 -0
  63. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/browser/resources/resource-loader.js +142 -0
  64. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/browser/resources/resource-queue.js +142 -0
  65. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/level2/style.js +57 -0
  66. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/level3/xpath.js +1875 -0
  67. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/aborting/AbortController-impl.js +17 -0
  68. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js +84 -0
  69. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/attributes/Attr-impl.js +60 -0
  70. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/attributes/NamedNodeMap-impl.js +78 -0
  71. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/attributes.js +312 -0
  72. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/constraint-validation/DefaultConstraintValidation-impl.js +75 -0
  73. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/constraint-validation/ValidityState-impl.js +66 -0
  74. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/crypto/Crypto-impl.js +68 -0
  75. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/cssom/StyleSheetList-impl.js +38 -0
  76. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/custom-elements/CustomElementRegistry-impl.js +268 -0
  77. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/custom-elements/ElementInternals-impl.js +38 -0
  78. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/documents.js +15 -0
  79. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/domparsing/DOMParser-impl.js +59 -0
  80. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/domparsing/InnerHTML-impl.js +30 -0
  81. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/domparsing/XMLSerializer-impl.js +18 -0
  82. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/domparsing/parse5-adapter-serialization.js +63 -0
  83. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/domparsing/serialization.js +36 -0
  84. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/events/CloseEvent-impl.js +10 -0
  85. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/events/CompositionEvent-impl.js +20 -0
  86. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/events/CustomEvent-impl.js +21 -0
  87. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/events/ErrorEvent-impl.js +14 -0
  88. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/events/Event-impl.js +197 -0
  89. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/events/EventModifierMixin-impl.js +24 -0
  90. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js +419 -0
  91. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/events/FocusEvent-impl.js +9 -0
  92. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/events/HashChangeEvent-impl.js +14 -0
  93. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/events/InputEvent-impl.js +11 -0
  94. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/events/KeyboardEvent-impl.js +29 -0
  95. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/events/MessageEvent-impl.js +25 -0
  96. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/events/MouseEvent-impl.js +72 -0
  97. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/events/PageTransitionEvent-impl.js +20 -0
  98. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/events/PopStateEvent-impl.js +9 -0
  99. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/events/ProgressEvent-impl.js +14 -0
  100. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/events/StorageEvent-impl.js +26 -0
  101. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/events/SubmitEvent-impl.js +13 -0
  102. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/events/TouchEvent-impl.js +14 -0
  103. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/events/UIEvent-impl.js +59 -0
  104. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/events/WheelEvent-impl.js +12 -0
  105. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/fetch/Headers-impl.js +172 -0
  106. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/fetch/header-list.js +65 -0
  107. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/fetch/header-types.js +103 -0
  108. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/file-api/Blob-impl.js +93 -0
  109. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/file-api/File-impl.js +12 -0
  110. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/file-api/FileList-impl.js +15 -0
  111. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/file-api/FileReader-impl.js +130 -0
  112. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/AbortController.js +143 -0
  113. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/AbortSignal.js +215 -0
  114. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/AbstractRange.js +171 -0
  115. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/AddEventListenerOptions.js +55 -0
  116. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/AssignedNodesOptions.js +28 -0
  117. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/Attr.js +217 -0
  118. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/BarProp.js +117 -0
  119. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/BinaryType.js +12 -0
  120. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/Blob.js +203 -0
  121. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/BlobCallback.js +30 -0
  122. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/BlobPropertyBag.js +42 -0
  123. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/CDATASection.js +109 -0
  124. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/CanPlayTypeResult.js +12 -0
  125. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/CharacterData.js +453 -0
  126. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/CloseEvent.js +168 -0
  127. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/CloseEventInit.js +65 -0
  128. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/Comment.js +120 -0
  129. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/CompositionEvent.js +219 -0
  130. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/CompositionEventInit.js +32 -0
  131. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/Crypto.js +144 -0
  132. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/CustomElementConstructor.js +34 -0
  133. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/CustomElementRegistry.js +242 -0
  134. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/CustomEvent.js +206 -0
  135. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/CustomEventInit.js +32 -0
  136. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/DOMException.js +222 -0
  137. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/DOMImplementation.js +237 -0
  138. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/DOMParser.js +140 -0
  139. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/DOMRect.js +276 -0
  140. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/DOMRectInit.js +76 -0
  141. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/DOMRectReadOnly.js +285 -0
  142. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/DOMStringMap.js +323 -0
  143. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/DOMTokenList.js +563 -0
  144. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/Document.js +4157 -0
  145. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/DocumentFragment.js +334 -0
  146. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/DocumentReadyState.js +12 -0
  147. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/DocumentType.js +252 -0
  148. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/Element.js +3718 -0
  149. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/ElementCreationOptions.js +26 -0
  150. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/ElementDefinitionOptions.js +29 -0
  151. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/ElementInternals.js +2137 -0
  152. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/EndingType.js +12 -0
  153. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/ErrorEvent.js +192 -0
  154. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/ErrorEventInit.js +92 -0
  155. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/Event.js +430 -0
  156. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/EventHandlerNonNull.js +36 -0
  157. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/EventInit.js +58 -0
  158. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/EventListener.js +35 -0
  159. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/EventListenerOptions.js +28 -0
  160. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/EventModifierInit.js +221 -0
  161. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js +259 -0
  162. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/External.js +130 -0
  163. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/File.js +177 -0
  164. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/FileList.js +324 -0
  165. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/FilePropertyBag.js +33 -0
  166. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/FileReader.js +468 -0
  167. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/FocusEvent.js +144 -0
  168. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/FocusEventInit.js +36 -0
  169. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/FormData.js +468 -0
  170. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/Function.js +42 -0
  171. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/GetRootNodeOptions.js +31 -0
  172. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLAnchorElement.js +1023 -0
  173. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLAreaElement.js +822 -0
  174. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLAudioElement.js +110 -0
  175. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLBRElement.js +153 -0
  176. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLBaseElement.js +193 -0
  177. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLBodyElement.js +877 -0
  178. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLButtonElement.js +522 -0
  179. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLCanvasElement.js +304 -0
  180. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLCollection.js +378 -0
  181. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLDListElement.js +156 -0
  182. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataElement.js +153 -0
  183. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataListElement.js +125 -0
  184. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLDetailsElement.js +156 -0
  185. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLDialogElement.js +156 -0
  186. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLDirectoryElement.js +156 -0
  187. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLDivElement.js +153 -0
  188. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLElement.js +3137 -0
  189. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLEmbedElement.js +371 -0
  190. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLFieldSetElement.js +329 -0
  191. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLFontElement.js +236 -0
  192. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLFormControlsCollection.js +344 -0
  193. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLFormElement.js +501 -0
  194. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameElement.js +494 -0
  195. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameSetElement.js +708 -0
  196. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLHRElement.js +320 -0
  197. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadElement.js +110 -0
  198. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadingElement.js +153 -0
  199. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLHtmlElement.js +153 -0
  200. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLIFrameElement.js +670 -0
  201. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLImageElement.js +877 -0
  202. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLInputElement.js +1920 -0
  203. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLLIElement.js +201 -0
  204. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLLabelElement.js +179 -0
  205. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLLegendElement.js +166 -0
  206. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLLinkElement.js +545 -0
  207. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLMapElement.js +168 -0
  208. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLMarqueeElement.js +554 -0
  209. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLMediaElement.js +891 -0
  210. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLMenuElement.js +156 -0
  211. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLMetaElement.js +276 -0
  212. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLMeterElement.js +365 -0
  213. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLModElement.js +207 -0
  214. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLOListElement.js +281 -0
  215. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLObjectElement.js +925 -0
  216. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptGroupElement.js +197 -0
  217. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionElement.js +376 -0
  218. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionsCollection.js +537 -0
  219. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLOutputElement.js +392 -0
  220. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLParagraphElement.js +153 -0
  221. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLParamElement.js +276 -0
  222. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLPictureElement.js +110 -0
  223. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLPreElement.js +160 -0
  224. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLProgressElement.js +228 -0
  225. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLQuoteElement.js +166 -0
  226. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLScriptElement.js +462 -0
  227. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLSelectElement.js +1015 -0
  228. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLSlotElement.js +192 -0
  229. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLSourceElement.js +330 -0
  230. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLSpanElement.js +110 -0
  231. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLStyleElement.js +207 -0
  232. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCaptionElement.js +153 -0
  233. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCellElement.js +729 -0
  234. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableColElement.js +372 -0
  235. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableElement.js +799 -0
  236. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableRowElement.js +414 -0
  237. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableSectionElement.js +346 -0
  238. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLTemplateElement.js +123 -0
  239. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLTextAreaElement.js +1206 -0
  240. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLTimeElement.js +153 -0
  241. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLTitleElement.js +152 -0
  242. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLTrackElement.js +356 -0
  243. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLUListElement.js +197 -0
  244. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLUnknownElement.js +109 -0
  245. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HTMLVideoElement.js +333 -0
  246. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEvent.js +157 -0
  247. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEventInit.js +50 -0
  248. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/Headers.js +418 -0
  249. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/History.js +266 -0
  250. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/InputEvent.js +168 -0
  251. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/InputEventInit.js +68 -0
  252. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEvent.js +445 -0
  253. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEventInit.js +116 -0
  254. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/Location.js +404 -0
  255. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/MessageEvent.js +317 -0
  256. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/MessageEventInit.js +100 -0
  257. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/MimeType.js +156 -0
  258. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/MimeTypeArray.js +352 -0
  259. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/MouseEvent.js +569 -0
  260. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/MouseEventInit.js +159 -0
  261. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/MutationCallback.js +34 -0
  262. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/MutationObserver.js +178 -0
  263. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/MutationObserverInit.js +121 -0
  264. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/MutationRecord.js +229 -0
  265. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/NamedNodeMap.js +553 -0
  266. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/Navigator.js +326 -0
  267. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/Node.js +763 -0
  268. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/NodeFilter.js +75 -0
  269. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/NodeIterator.js +207 -0
  270. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/NodeList.js +328 -0
  271. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/OnBeforeUnloadEventHandlerNonNull.js +42 -0
  272. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/OnErrorEventHandlerNonNull.js +56 -0
  273. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/PageTransitionEvent.js +144 -0
  274. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/PageTransitionEventInit.js +35 -0
  275. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/Performance.js +142 -0
  276. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/Plugin.js +385 -0
  277. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/PluginArray.js +362 -0
  278. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/PopStateEvent.js +144 -0
  279. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/PopStateEventInit.js +32 -0
  280. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/ProcessingInstruction.js +122 -0
  281. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/ProgressEvent.js +170 -0
  282. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/ProgressEventInit.js +65 -0
  283. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/RadioNodeList.js +322 -0
  284. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/Range.js +641 -0
  285. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/SVGAnimatedString.js +149 -0
  286. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/SVGBoundingBoxOptions.js +64 -0
  287. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/SVGElement.js +2799 -0
  288. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/SVGGraphicsElement.js +139 -0
  289. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/SVGNumber.js +132 -0
  290. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/SVGSVGElement.js +737 -0
  291. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/SVGStringList.js +537 -0
  292. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/SVGTitleElement.js +109 -0
  293. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/Screen.js +180 -0
  294. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/ScrollBehavior.js +12 -0
  295. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/ScrollIntoViewOptions.js +45 -0
  296. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/ScrollLogicalPosition.js +14 -0
  297. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/ScrollOptions.js +30 -0
  298. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/ScrollRestoration.js +12 -0
  299. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/Selection.js +569 -0
  300. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/SelectionMode.js +12 -0
  301. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/ShadowRoot.js +187 -0
  302. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/ShadowRootInit.js +30 -0
  303. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/ShadowRootMode.js +12 -0
  304. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/StaticRange.js +123 -0
  305. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/StaticRangeInit.js +72 -0
  306. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/Storage.js +423 -0
  307. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/StorageEvent.js +318 -0
  308. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/StorageEventInit.js +99 -0
  309. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/StyleSheetList.js +326 -0
  310. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/SubmitEvent.js +144 -0
  311. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/SubmitEventInit.js +36 -0
  312. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/SupportedType.js +18 -0
  313. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/Text.js +170 -0
  314. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/TextTrackKind.js +12 -0
  315. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/TouchEvent.js +222 -0
  316. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/TouchEventInit.js +89 -0
  317. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/TreeWalker.js +255 -0
  318. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/UIEvent.js +235 -0
  319. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/UIEventInit.js +62 -0
  320. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/ValidityState.js +249 -0
  321. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/VisibilityState.js +12 -0
  322. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/VoidFunction.js +26 -0
  323. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/WebSocket.js +476 -0
  324. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/WheelEvent.js +191 -0
  325. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/WheelEventInit.js +71 -0
  326. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/XMLDocument.js +109 -0
  327. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequest.js +655 -0
  328. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestEventTarget.js +334 -0
  329. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestResponseType.js +14 -0
  330. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestUpload.js +109 -0
  331. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/XMLSerializer.js +132 -0
  332. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/generated/utils.js +190 -0
  333. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/geometry/DOMRect-impl.js +39 -0
  334. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/geometry/DOMRectReadOnly-impl.js +72 -0
  335. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/agent-factory.js +13 -0
  336. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/binary-data.js +9 -0
  337. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/colors.js +245 -0
  338. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/create-element.js +323 -0
  339. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/create-event-accessor.js +188 -0
  340. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/custom-elements.js +272 -0
  341. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/dates-and-times.js +270 -0
  342. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/details.js +15 -0
  343. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/document-base-url.js +54 -0
  344. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/events.js +24 -0
  345. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/focusing.js +104 -0
  346. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/form-controls.js +306 -0
  347. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/html-constructor.js +78 -0
  348. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/http-request.js +261 -0
  349. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/internal-constants.js +12 -0
  350. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/iterable-weak-set.js +48 -0
  351. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/json.js +12 -0
  352. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/mutation-observers.js +198 -0
  353. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/namespaces.js +15 -0
  354. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/node.js +68 -0
  355. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/number-and-date-inputs.js +195 -0
  356. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/ordered-set.js +104 -0
  357. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/page-transition-event.js +9 -0
  358. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js +76 -0
  359. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/selectors.js +47 -0
  360. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/shadow-dom.js +285 -0
  361. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/strings.js +148 -0
  362. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/style-rules.js +243 -0
  363. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/stylesheets.js +123 -0
  364. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/svg/basic-types.js +41 -0
  365. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/svg/render.js +46 -0
  366. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/text.js +19 -0
  367. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/traversal.js +72 -0
  368. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/helpers/validate-names.js +65 -0
  369. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/hr-time/Performance-impl.js +22 -0
  370. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/interfaces.js +228 -0
  371. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/mutation-observer/MutationObserver-impl.js +95 -0
  372. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/mutation-observer/MutationRecord-impl.js +37 -0
  373. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/named-properties-window.js +141 -0
  374. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/navigator/MimeType-impl.js +3 -0
  375. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/navigator/MimeTypeArray-impl.js +21 -0
  376. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/navigator/Navigator-impl.js +29 -0
  377. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorConcurrentHardware-impl.js +8 -0
  378. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorCookies-impl.js +7 -0
  379. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorID-impl.js +37 -0
  380. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorLanguage-impl.js +9 -0
  381. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorOnLine-impl.js +7 -0
  382. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorPlugins-impl.js +8 -0
  383. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/navigator/Plugin-impl.js +3 -0
  384. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/navigator/PluginArray-impl.js +23 -0
  385. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/node-document-position.js +10 -0
  386. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/node-type.js +16 -0
  387. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/node.js +331 -0
  388. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/CDATASection-impl.js +16 -0
  389. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/CharacterData-impl.js +118 -0
  390. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/ChildNode-impl.js +80 -0
  391. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/Comment-impl.js +20 -0
  392. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/DOMImplementation-impl.js +120 -0
  393. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/DOMStringMap-impl.js +64 -0
  394. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/DOMTokenList-impl.js +171 -0
  395. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/Document-impl.js +935 -0
  396. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/DocumentFragment-impl.js +44 -0
  397. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/DocumentOrShadowRoot-impl.js +28 -0
  398. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/DocumentType-impl.js +24 -0
  399. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/Element-impl.js +599 -0
  400. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/ElementCSSInlineStyle-impl.js +22 -0
  401. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/ElementContentEditable-impl.js +7 -0
  402. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/GlobalEventHandlers-impl.js +145 -0
  403. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAnchorElement-impl.js +50 -0
  404. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAreaElement-impl.js +43 -0
  405. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAudioElement-impl.js +9 -0
  406. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLBRElement-impl.js +9 -0
  407. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLBaseElement-impl.js +27 -0
  408. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLBodyElement-impl.js +17 -0
  409. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLButtonElement-impl.js +79 -0
  410. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLCanvasElement-impl.js +130 -0
  411. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLCollection-impl.js +96 -0
  412. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDListElement-impl.js +9 -0
  413. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDataElement-impl.js +9 -0
  414. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDataListElement-impl.js +20 -0
  415. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDetailsElement-impl.js +35 -0
  416. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDialogElement-impl.js +9 -0
  417. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDirectoryElement-impl.js +9 -0
  418. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDivElement-impl.js +9 -0
  419. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLElement-impl.js +210 -0
  420. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLEmbedElement-impl.js +8 -0
  421. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFieldSetElement-impl.js +43 -0
  422. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFontElement-impl.js +9 -0
  423. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFormControlsCollection-impl.js +33 -0
  424. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFormElement-impl.js +240 -0
  425. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFrameElement-impl.js +261 -0
  426. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFrameSetElement-impl.js +17 -0
  427. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHRElement-impl.js +9 -0
  428. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHeadElement-impl.js +9 -0
  429. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHeadingElement-impl.js +9 -0
  430. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHtmlElement-impl.js +9 -0
  431. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHyperlinkElementUtils-impl.js +367 -0
  432. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLIFrameElement-impl.js +9 -0
  433. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLImageElement-impl.js +132 -0
  434. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLInputElement-impl.js +1097 -0
  435. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLIElement-impl.js +9 -0
  436. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLabelElement-impl.js +94 -0
  437. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLegendElement-impl.js +18 -0
  438. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLinkElement-impl.js +108 -0
  439. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMapElement-impl.js +13 -0
  440. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMarqueeElement-impl.js +9 -0
  441. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMediaElement-impl.js +138 -0
  442. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMenuElement-impl.js +9 -0
  443. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMetaElement-impl.js +9 -0
  444. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMeterElement-impl.js +180 -0
  445. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLModElement-impl.js +9 -0
  446. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOListElement-impl.js +22 -0
  447. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLObjectElement-impl.js +26 -0
  448. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptGroupElement-impl.js +9 -0
  449. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptionElement-impl.js +146 -0
  450. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptionsCollection-impl.js +110 -0
  451. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOrSVGElement-impl.js +85 -0
  452. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOutputElement-impl.js +88 -0
  453. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLParagraphElement-impl.js +9 -0
  454. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLParamElement-impl.js +9 -0
  455. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLPictureElement-impl.js +9 -0
  456. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLPreElement-impl.js +9 -0
  457. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLProgressElement-impl.js +72 -0
  458. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLQuoteElement-impl.js +9 -0
  459. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLScriptElement-impl.js +262 -0
  460. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSelectElement-impl.js +283 -0
  461. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSlotElement-impl.js +59 -0
  462. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSourceElement-impl.js +8 -0
  463. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSpanElement-impl.js +9 -0
  464. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLStyleElement-impl.js +74 -0
  465. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableCaptionElement-impl.js +9 -0
  466. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableCellElement-impl.js +73 -0
  467. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableColElement-impl.js +9 -0
  468. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableElement-impl.js +236 -0
  469. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableRowElement-impl.js +88 -0
  470. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableSectionElement-impl.js +61 -0
  471. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTemplateElement-impl.js +67 -0
  472. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTextAreaElement-impl.js +244 -0
  473. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTimeElement-impl.js +9 -0
  474. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTitleElement-impl.js +18 -0
  475. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTrackElement-impl.js +13 -0
  476. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLUListElement-impl.js +9 -0
  477. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLUnknownElement-impl.js +9 -0
  478. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLVideoElement-impl.js +17 -0
  479. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/LinkStyle-impl.js +2 -0
  480. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/Node-impl.js +1161 -0
  481. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/NodeList-impl.js +43 -0
  482. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/NonDocumentTypeChildNode-impl.js +28 -0
  483. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/NonElementParentNode-impl.js +11 -0
  484. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/ParentNode-impl.js +91 -0
  485. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/ProcessingInstruction-impl.js +22 -0
  486. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/RadioNodeList-impl.js +49 -0
  487. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/SVGElement-impl.js +64 -0
  488. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/SVGGraphicsElement-impl.js +16 -0
  489. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/SVGSVGElement-impl.js +42 -0
  490. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/SVGTests-impl.js +42 -0
  491. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/SVGTitleElement-impl.js +9 -0
  492. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/ShadowRoot-impl.js +41 -0
  493. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/Slotable-impl.js +48 -0
  494. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/Text-impl.js +96 -0
  495. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/WindowEventHandlers-impl.js +52 -0
  496. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/nodes/XMLDocument-impl.js +4 -0
  497. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/range/AbstractRange-impl.js +43 -0
  498. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/range/Range-impl.js +897 -0
  499. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/range/StaticRange-impl.js +39 -0
  500. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/range/boundary-point.js +47 -0
  501. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/selection/Selection-impl.js +358 -0
  502. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/svg/SVGAnimatedString-impl.js +38 -0
  503. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/svg/SVGListBase.js +195 -0
  504. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/svg/SVGNumber-impl.js +48 -0
  505. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/svg/SVGStringList-impl.js +16 -0
  506. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/traversal/NodeIterator-impl.js +107 -0
  507. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/traversal/TreeWalker-impl.js +217 -0
  508. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/traversal/helpers.js +44 -0
  509. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/webidl/DOMException-impl.js +46 -0
  510. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/websockets/WebSocket-impl.js +328 -0
  511. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/webstorage/Storage-impl.js +102 -0
  512. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/window/BarProp-impl.js +10 -0
  513. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/window/External-impl.js +9 -0
  514. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/window/History-impl.js +148 -0
  515. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/window/Location-impl.js +228 -0
  516. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/window/Screen-impl.js +13 -0
  517. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/window/SessionHistory.js +163 -0
  518. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/window/navigation.js +85 -0
  519. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/xhr/FormData-impl.js +191 -0
  520. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequest-impl.js +1023 -0
  521. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequestEventTarget-impl.js +17 -0
  522. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequestUpload-impl.js +4 -0
  523. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/xhr/xhr-sync-worker.js +59 -0
  524. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/living/xhr/xhr-utils.js +441 -0
  525. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/named-properties-tracker.js +158 -0
  526. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/utils.js +105 -0
  527. package/frontend/react-ui/node_modules/jsdom/lib/jsdom/virtual-console.js +34 -0
  528. package/frontend/react-ui/node_modules/jsdom/package.json +92 -0
  529. package/frontend/react-ui/node_modules/rrweb-cssom/LICENSE.txt +20 -0
  530. package/frontend/react-ui/node_modules/rrweb-cssom/README.mdown +74 -0
  531. package/frontend/react-ui/node_modules/rrweb-cssom/build/CSSOM.js +1932 -0
  532. package/frontend/react-ui/node_modules/rrweb-cssom/lib/CSSConditionRule.js +25 -0
  533. package/frontend/react-ui/node_modules/rrweb-cssom/lib/CSSContainerRule.js +50 -0
  534. package/frontend/react-ui/node_modules/rrweb-cssom/lib/CSSDocumentRule.js +39 -0
  535. package/frontend/react-ui/node_modules/rrweb-cssom/lib/CSSFontFaceRule.js +36 -0
  536. package/frontend/react-ui/node_modules/rrweb-cssom/lib/CSSGroupingRule.js +69 -0
  537. package/frontend/react-ui/node_modules/rrweb-cssom/lib/CSSHostRule.js +37 -0
  538. package/frontend/react-ui/node_modules/rrweb-cssom/lib/CSSImportRule.js +132 -0
  539. package/frontend/react-ui/node_modules/rrweb-cssom/lib/CSSKeyframeRule.js +37 -0
  540. package/frontend/react-ui/node_modules/rrweb-cssom/lib/CSSKeyframesRule.js +39 -0
  541. package/frontend/react-ui/node_modules/rrweb-cssom/lib/CSSMediaRule.js +53 -0
  542. package/frontend/react-ui/node_modules/rrweb-cssom/lib/CSSOM.js +3 -0
  543. package/frontend/react-ui/node_modules/rrweb-cssom/lib/CSSRule.js +45 -0
  544. package/frontend/react-ui/node_modules/rrweb-cssom/lib/CSSStartingStyleRule.js +37 -0
  545. package/frontend/react-ui/node_modules/rrweb-cssom/lib/CSSStyleDeclaration.js +148 -0
  546. package/frontend/react-ui/node_modules/rrweb-cssom/lib/CSSStyleRule.js +190 -0
  547. package/frontend/react-ui/node_modules/rrweb-cssom/lib/CSSStyleSheet.js +88 -0
  548. package/frontend/react-ui/node_modules/rrweb-cssom/lib/CSSSupportsRule.js +36 -0
  549. package/frontend/react-ui/node_modules/rrweb-cssom/lib/CSSValue.js +43 -0
  550. package/frontend/react-ui/node_modules/rrweb-cssom/lib/CSSValueExpression.js +344 -0
  551. package/frontend/react-ui/node_modules/rrweb-cssom/lib/MatcherList.js +62 -0
  552. package/frontend/react-ui/node_modules/rrweb-cssom/lib/MediaList.js +61 -0
  553. package/frontend/react-ui/node_modules/rrweb-cssom/lib/StyleSheet.js +17 -0
  554. package/frontend/react-ui/node_modules/rrweb-cssom/lib/clone.js +75 -0
  555. package/frontend/react-ui/node_modules/rrweb-cssom/lib/index.js +25 -0
  556. package/frontend/react-ui/node_modules/rrweb-cssom/lib/parse.js +504 -0
  557. package/frontend/react-ui/node_modules/rrweb-cssom/package.json +27 -0
  558. package/frontend/react-ui/node_modules/vite/LICENSE.md +2406 -0
  559. package/frontend/react-ui/node_modules/vite/README.md +20 -0
  560. package/frontend/react-ui/node_modules/vite/bin/openChrome.applescript +95 -0
  561. package/frontend/react-ui/node_modules/vite/bin/vite.js +79 -0
  562. package/frontend/react-ui/node_modules/vite/client.d.ts +279 -0
  563. package/frontend/react-ui/node_modules/vite/dist/client/client.mjs +1134 -0
  564. package/frontend/react-ui/node_modules/vite/dist/client/env.mjs +24 -0
  565. package/frontend/react-ui/node_modules/vite/dist/node/chunks/dep-3RmXg9uo.js +553 -0
  566. package/frontend/react-ui/node_modules/vite/dist/node/chunks/dep-C9BXG1mU.js +822 -0
  567. package/frontend/react-ui/node_modules/vite/dist/node/chunks/dep-CvfTChi5.js +8218 -0
  568. package/frontend/react-ui/node_modules/vite/dist/node/chunks/dep-D4NMHUTW.js +49531 -0
  569. package/frontend/react-ui/node_modules/vite/dist/node/chunks/dep-DWMUTS1A.js +7113 -0
  570. package/frontend/react-ui/node_modules/vite/dist/node/cli.js +949 -0
  571. package/frontend/react-ui/node_modules/vite/dist/node/constants.js +149 -0
  572. package/frontend/react-ui/node_modules/vite/dist/node/index.d.ts +4222 -0
  573. package/frontend/react-ui/node_modules/vite/dist/node/index.js +194 -0
  574. package/frontend/react-ui/node_modules/vite/dist/node/module-runner.d.ts +290 -0
  575. package/frontend/react-ui/node_modules/vite/dist/node/module-runner.js +1311 -0
  576. package/frontend/react-ui/node_modules/vite/dist/node/moduleRunnerTransport.d-DJ_mE5sf.d.ts +87 -0
  577. package/frontend/react-ui/node_modules/vite/dist/node-cjs/publicUtils.cjs +3987 -0
  578. package/frontend/react-ui/node_modules/vite/index.cjs +96 -0
  579. package/frontend/react-ui/node_modules/vite/index.d.cts +6 -0
  580. package/frontend/react-ui/node_modules/vite/misc/false.js +1 -0
  581. package/frontend/react-ui/node_modules/vite/misc/true.js +1 -0
  582. package/frontend/react-ui/node_modules/vite/package.json +204 -0
  583. package/frontend/react-ui/node_modules/vite/types/customEvent.d.ts +45 -0
  584. package/frontend/react-ui/node_modules/vite/types/hmrPayload.d.ts +74 -0
  585. package/frontend/react-ui/node_modules/vite/types/hot.d.ts +39 -0
  586. package/frontend/react-ui/node_modules/vite/types/import-meta.d.ts +5 -0
  587. package/frontend/react-ui/node_modules/vite/types/importGlob.d.ts +75 -0
  588. package/frontend/react-ui/node_modules/vite/types/importMeta.d.ts +31 -0
  589. package/frontend/react-ui/node_modules/vite/types/internal/cssPreprocessorOptions.d.ts +63 -0
  590. package/frontend/react-ui/node_modules/vite/types/internal/lightningcssOptions.d.ts +18 -0
  591. package/frontend/react-ui/node_modules/vite/types/metadata.d.ts +35 -0
  592. package/frontend/react-ui/node_modules/vite/types/package.json +4 -0
  593. package/package.json +35 -29
  594. package/apps/pilot-test/api/.env.example +0 -8
  595. package/apps/pilot-test/api/README.md +0 -105
  596. package/apps/pilot-test/api/config/database.js +0 -27
  597. package/apps/pilot-test/api/database/migrations/2025_12_06_19_20_57_create_users_table.js +0 -21
  598. package/apps/pilot-test/api/database/seeders/UserSeeder.js +0 -30
  599. package/apps/pilot-test/api/package.json +0 -26
  600. package/apps/pilot-test/api/src/helpers/env.js +0 -8
  601. package/apps/pilot-test/api/src/models/User.js +0 -76
  602. package/apps/pilot-test/api/src/routes/index.js +0 -33
  603. package/apps/pilot-test/api/src/routes/post.routes.js +0 -25
  604. package/bin/create-vasuzex.js.backup +0 -699
  605. package/framework/Console/Commands/utils/apiStructure.js +0 -167
  606. package/framework/Console/Commands/utils/apiTemplates.js +0 -933
  607. /package/{apps/pilot-test/api → framework/Console}/src/controllers/AuthController.js +0 -0
  608. /package/{apps/pilot-test/api → framework/Console}/src/controllers/BaseController.js +0 -0
  609. /package/{apps/pilot-test/api → framework/Console}/src/middleware/errorHandler.js +0 -0
  610. /package/{apps/pilot-test/api → framework/Console}/src/requests/AuthRequests.js +0 -0
  611. /package/{apps/pilot-test/api/src/routes/auth.routes.js → framework/Console/src/routes/auth.js} +0 -0
@@ -0,0 +1,1023 @@
1
+ "use strict";
2
+
3
+ const HTTP_STATUS_CODES = require("http").STATUS_CODES;
4
+ const { spawnSync } = require("child_process");
5
+ const { URL } = require("whatwg-url");
6
+ const whatwgEncoding = require("whatwg-encoding");
7
+ const tough = require("tough-cookie");
8
+ const MIMEType = require("whatwg-mimetype");
9
+
10
+ const xhrUtils = require("./xhr-utils");
11
+ const DOMException = require("../generated/DOMException");
12
+ const { documentBaseURLSerialized } = require("../helpers/document-base-url");
13
+ const { asciiCaseInsensitiveMatch } = require("../helpers/strings");
14
+ const idlUtils = require("../generated/utils");
15
+ const Document = require("../generated/Document");
16
+ const Blob = require("../generated/Blob");
17
+ const FormData = require("../generated/FormData");
18
+ const XMLHttpRequestEventTargetImpl = require("./XMLHttpRequestEventTarget-impl").implementation;
19
+ const XMLHttpRequestUpload = require("../generated/XMLHttpRequestUpload");
20
+ const ProgressEvent = require("../generated/ProgressEvent");
21
+ const { isArrayBuffer } = require("../generated/utils");
22
+ const { parseIntoDocument } = require("../../browser/parser");
23
+ const { fragmentSerialization } = require("../domparsing/serialization");
24
+ const { setupForSimpleEventAccessors } = require("../helpers/create-event-accessor");
25
+ const { parseJSONFromBytes } = require("../helpers/json");
26
+ const { fireAnEvent } = require("../helpers/events");
27
+ const { copyToArrayBufferInNewRealm } = require("../helpers/binary-data");
28
+
29
+ const { READY_STATES } = xhrUtils;
30
+
31
+ const syncWorkerFile = require.resolve ? require.resolve("./xhr-sync-worker.js") : null;
32
+
33
+ const tokenRegexp = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
34
+ const fieldValueRegexp = /^[ \t]*(?:[\x21-\x7E\x80-\xFF](?:[ \t][\x21-\x7E\x80-\xFF])?)*[ \t]*$/;
35
+
36
+ const forbiddenRequestHeaders = new Set([
37
+ "accept-charset",
38
+ "accept-encoding",
39
+ "access-control-request-headers",
40
+ "access-control-request-method",
41
+ "connection",
42
+ "content-length",
43
+ "cookie",
44
+ "cookie2",
45
+ "date",
46
+ "dnt",
47
+ "expect",
48
+ "host",
49
+ "keep-alive",
50
+ "origin",
51
+ "referer",
52
+ "te",
53
+ "trailer",
54
+ "transfer-encoding",
55
+ "upgrade",
56
+ "via"
57
+ ]);
58
+ const forbiddenResponseHeaders = new Set([
59
+ "set-cookie",
60
+ "set-cookie2"
61
+ ]);
62
+ const uniqueResponseHeaders = new Set([
63
+ "content-type",
64
+ "content-length",
65
+ "user-agent",
66
+ "referer",
67
+ "host",
68
+ "authorization",
69
+ "proxy-authorization",
70
+ "if-modified-since",
71
+ "if-unmodified-since",
72
+ "from",
73
+ "location",
74
+ "max-forwards"
75
+ ]);
76
+ const corsSafeResponseHeaders = new Set([
77
+ "cache-control",
78
+ "content-language",
79
+ "content-length",
80
+ "content-type",
81
+ "expires",
82
+ "last-modified",
83
+ "pragma"
84
+ ]);
85
+
86
+ const allowedRequestMethods = new Set(["OPTIONS", "GET", "HEAD", "POST", "PUT", "DELETE"]);
87
+ const forbiddenRequestMethods = new Set(["TRACK", "TRACE", "CONNECT"]);
88
+
89
+ class XMLHttpRequestImpl extends XMLHttpRequestEventTargetImpl {
90
+ constructor(window) {
91
+ super(window);
92
+
93
+ // Avoid running `_ownerDocument` getter multiple times in the constructor:
94
+ const { _ownerDocument } = this;
95
+
96
+ this.upload = XMLHttpRequestUpload.createImpl(window);
97
+
98
+ this.readyState = READY_STATES.UNSENT;
99
+ this.responseURL = "";
100
+ this.status = 0;
101
+ this.statusText = "";
102
+
103
+ this.flag = {
104
+ synchronous: false,
105
+ withCredentials: false,
106
+ mimeType: null,
107
+ auth: null,
108
+ method: undefined,
109
+ responseType: "",
110
+ requestHeaders: {},
111
+ referrer: _ownerDocument.URL,
112
+ uri: "",
113
+ timeout: 0,
114
+ body: undefined,
115
+ formData: false,
116
+ preflight: false,
117
+ requestManager: _ownerDocument._requestManager,
118
+ strictSSL: window._resourceLoader._strictSSL,
119
+ proxy: window._resourceLoader._proxy,
120
+ cookieJar: _ownerDocument._cookieJar,
121
+ encoding: _ownerDocument._encoding,
122
+ origin: window._origin,
123
+ userAgent: window.navigator.userAgent
124
+ };
125
+
126
+ this.properties = {
127
+ beforeSend: false,
128
+ send: false,
129
+ client: null,
130
+
131
+ timeoutStart: 0,
132
+ timeoutId: 0,
133
+ timeoutFn: null,
134
+
135
+ responseBuffer: null,
136
+ responseCache: null,
137
+ responseTextCache: null,
138
+ responseXMLCache: null,
139
+
140
+ responseHeaders: {},
141
+ filteredResponseHeaders: [],
142
+
143
+ error: "",
144
+ uploadComplete: false,
145
+ uploadListener: false,
146
+
147
+ // Signifies that we're calling abort() from xhr-utils.js because of a window shutdown.
148
+ // In that case the termination reason is "fatal", not "end-user abort".
149
+ abortError: false,
150
+
151
+ cookieJar: _ownerDocument._cookieJar,
152
+ bufferStepSize: 1 * 1024 * 1024, // pre-allocate buffer increase step size. init value is 1MB
153
+ totalReceivedChunkSize: 0
154
+ };
155
+ }
156
+
157
+ get responseType() {
158
+ return this.flag.responseType;
159
+ }
160
+ set responseType(responseType) {
161
+ const { flag } = this;
162
+ if (this.readyState === READY_STATES.LOADING || this.readyState === READY_STATES.DONE) {
163
+ throw DOMException.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
164
+ }
165
+ if (this.readyState === READY_STATES.OPENED && flag.synchronous) {
166
+ throw DOMException.create(this._globalObject, [
167
+ "The object does not support the operation or argument.",
168
+ "InvalidAccessError"
169
+ ]);
170
+ }
171
+ flag.responseType = responseType;
172
+ }
173
+
174
+ get response() {
175
+ const { properties } = this;
176
+ if (properties.responseCache) {
177
+ // Needed because of: https://github.com/jsdom/webidl2js/issues/149
178
+ return idlUtils.tryWrapperForImpl(properties.responseCache);
179
+ }
180
+ let res;
181
+
182
+ const responseBuffer = properties.responseBuffer ?
183
+ properties.responseBuffer.slice(0, properties.totalReceivedChunkSize) :
184
+ null;
185
+
186
+ switch (this.responseType) {
187
+ case "":
188
+ case "text": {
189
+ res = this.responseText;
190
+ break;
191
+ }
192
+ case "arraybuffer": {
193
+ if (!responseBuffer) {
194
+ return null;
195
+ }
196
+ res = copyToArrayBufferInNewRealm(responseBuffer, this._globalObject);
197
+ break;
198
+ }
199
+ case "blob": {
200
+ if (!responseBuffer) {
201
+ return null;
202
+ }
203
+ const contentType = finalMIMEType(this);
204
+ res = Blob.createImpl(this._globalObject, [
205
+ [new Uint8Array(responseBuffer)],
206
+ { type: contentType || "" }
207
+ ]);
208
+ break;
209
+ }
210
+ case "document": {
211
+ res = this.responseXML;
212
+ break;
213
+ }
214
+ case "json": {
215
+ if (this.readyState !== READY_STATES.DONE || !responseBuffer) {
216
+ res = null;
217
+ }
218
+
219
+ try {
220
+ res = parseJSONFromBytes(responseBuffer);
221
+ } catch {
222
+ res = null;
223
+ }
224
+ break;
225
+ }
226
+ }
227
+ properties.responseCache = res;
228
+ // Needed because of: https://github.com/jsdom/webidl2js/issues/149
229
+ return idlUtils.tryWrapperForImpl(res);
230
+ }
231
+ get responseText() {
232
+ const { properties } = this;
233
+ if (this.responseType !== "" && this.responseType !== "text") {
234
+ throw DOMException.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
235
+ }
236
+ if (this.readyState !== READY_STATES.LOADING && this.readyState !== READY_STATES.DONE) {
237
+ return "";
238
+ }
239
+ if (properties.responseTextCache) {
240
+ return properties.responseTextCache;
241
+ }
242
+ const responseBuffer = properties.responseBuffer ?
243
+ properties.responseBuffer.slice(0, properties.totalReceivedChunkSize) :
244
+ null;
245
+
246
+ if (!responseBuffer) {
247
+ return "";
248
+ }
249
+
250
+ const fallbackEncoding = finalCharset(this) || whatwgEncoding.getBOMEncoding(responseBuffer) || "UTF-8";
251
+ const res = whatwgEncoding.decode(responseBuffer, fallbackEncoding);
252
+
253
+ properties.responseTextCache = res;
254
+ return res;
255
+ }
256
+ get responseXML() {
257
+ const { flag, properties } = this;
258
+ if (this.responseType !== "" && this.responseType !== "document") {
259
+ throw DOMException.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
260
+ }
261
+ if (this.readyState !== READY_STATES.DONE) {
262
+ return null;
263
+ }
264
+ if (properties.responseXMLCache) {
265
+ return properties.responseXMLCache;
266
+ }
267
+ const responseBuffer = properties.responseBuffer ?
268
+ properties.responseBuffer.slice(0, properties.totalReceivedChunkSize) :
269
+ null;
270
+
271
+ if (!responseBuffer) {
272
+ return null;
273
+ }
274
+
275
+ const contentType = finalMIMEType(this);
276
+ let isHTML = false;
277
+ let isXML = false;
278
+ const parsed = MIMEType.parse(contentType);
279
+ if (parsed) {
280
+ isHTML = parsed.isHTML();
281
+ isXML = parsed.isXML();
282
+ if (!isXML && !isHTML) {
283
+ return null;
284
+ }
285
+ }
286
+
287
+ if (this.responseType === "" && isHTML) {
288
+ return null;
289
+ }
290
+
291
+ const encoding = finalCharset(this) || whatwgEncoding.getBOMEncoding(responseBuffer) || "UTF-8";
292
+ const resText = whatwgEncoding.decode(responseBuffer, encoding);
293
+
294
+ if (!resText) {
295
+ return null;
296
+ }
297
+ const res = Document.createImpl(this._globalObject, [], {
298
+ options: {
299
+ url: flag.uri,
300
+ lastModified: new Date(getResponseHeader(this, "last-modified")),
301
+ parsingMode: isHTML ? "html" : "xml",
302
+ cookieJar: { setCookieSync: () => undefined, getCookieStringSync: () => "" },
303
+ encoding,
304
+ parseOptions: this._ownerDocument._parseOptions
305
+ }
306
+ });
307
+ try {
308
+ parseIntoDocument(resText, res);
309
+ } catch {
310
+ properties.responseXMLCache = null;
311
+ return null;
312
+ }
313
+ res.close();
314
+ properties.responseXMLCache = res;
315
+ return res;
316
+ }
317
+
318
+ get timeout() {
319
+ return this.flag.timeout;
320
+ }
321
+ set timeout(val) {
322
+ const { flag, properties } = this;
323
+ if (flag.synchronous) {
324
+ throw DOMException.create(this._globalObject, [
325
+ "The object does not support the operation or argument.",
326
+ "InvalidAccessError"
327
+ ]);
328
+ }
329
+ flag.timeout = val;
330
+ clearTimeout(properties.timeoutId);
331
+ if (val > 0 && properties.timeoutFn) {
332
+ properties.timeoutId = setTimeout(
333
+ properties.timeoutFn,
334
+ Math.max(0, val - ((new Date()).getTime() - properties.timeoutStart))
335
+ );
336
+ } else {
337
+ properties.timeoutFn = null;
338
+ properties.timeoutStart = 0;
339
+ }
340
+ }
341
+
342
+ get withCredentials() {
343
+ return this.flag.withCredentials;
344
+ }
345
+ set withCredentials(val) {
346
+ const { flag, properties } = this;
347
+ if (!(this.readyState === READY_STATES.UNSENT || this.readyState === READY_STATES.OPENED)) {
348
+ throw DOMException.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
349
+ }
350
+ if (properties.send) {
351
+ throw DOMException.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
352
+ }
353
+ flag.withCredentials = val;
354
+ }
355
+
356
+ abort() {
357
+ const { properties } = this;
358
+ // Terminate the request
359
+ clearTimeout(properties.timeoutId);
360
+ properties.timeoutFn = null;
361
+ properties.timeoutStart = 0;
362
+
363
+ const { client } = properties;
364
+ if (client) {
365
+ client.abort();
366
+ properties.client = null;
367
+ }
368
+
369
+ if (properties.abortError) {
370
+ // Special case that ideally shouldn't be going through the public API at all.
371
+ // Run the https://xhr.spec.whatwg.org/#handle-errors "fatal" steps.
372
+ this.readyState = READY_STATES.DONE;
373
+ properties.send = false;
374
+ xhrUtils.setResponseToNetworkError(this);
375
+ return;
376
+ }
377
+
378
+ if ((this.readyState === READY_STATES.OPENED && properties.send) ||
379
+ this.readyState === READY_STATES.HEADERS_RECEIVED ||
380
+ this.readyState === READY_STATES.LOADING) {
381
+ xhrUtils.requestErrorSteps(this, "abort");
382
+ }
383
+
384
+ if (this.readyState === READY_STATES.DONE) {
385
+ this.readyState = READY_STATES.UNSENT;
386
+
387
+ xhrUtils.setResponseToNetworkError(this);
388
+ }
389
+ }
390
+ getAllResponseHeaders() {
391
+ const { properties, readyState } = this;
392
+ if (readyState === READY_STATES.UNSENT || readyState === READY_STATES.OPENED) {
393
+ return "";
394
+ }
395
+ return Object.keys(properties.responseHeaders)
396
+ .filter(key => properties.filteredResponseHeaders.indexOf(key) === -1)
397
+ .map(key => [key.toLowerCase(), properties.responseHeaders[key]].join(": "))
398
+ .join("\r\n");
399
+ }
400
+
401
+ getResponseHeader(header) {
402
+ const { properties, readyState } = this;
403
+ if (readyState === READY_STATES.UNSENT || readyState === READY_STATES.OPENED) {
404
+ return null;
405
+ }
406
+ const lcHeader = header.toLowerCase();
407
+ if (properties.filteredResponseHeaders.find(filtered => lcHeader === filtered.toLowerCase())) {
408
+ return null;
409
+ }
410
+ return getResponseHeader(this, lcHeader);
411
+ }
412
+
413
+ open(method, uri, asynchronous, user, password) {
414
+ const { flag, properties, _ownerDocument } = this;
415
+ if (!_ownerDocument) {
416
+ throw DOMException.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
417
+ }
418
+
419
+ if (!tokenRegexp.test(method)) {
420
+ throw DOMException.create(this._globalObject, [
421
+ "The string did not match the expected pattern.",
422
+ "SyntaxError"
423
+ ]);
424
+ }
425
+ const upperCaseMethod = method.toUpperCase();
426
+ if (forbiddenRequestMethods.has(upperCaseMethod)) {
427
+ throw DOMException.create(this._globalObject, ["The operation is insecure.", "SecurityError"]);
428
+ }
429
+
430
+ const { client } = properties;
431
+ if (client && typeof client.abort === "function") {
432
+ client.abort();
433
+ }
434
+
435
+ if (allowedRequestMethods.has(upperCaseMethod)) {
436
+ method = upperCaseMethod;
437
+ }
438
+ if (typeof asynchronous !== "undefined") {
439
+ flag.synchronous = !asynchronous;
440
+ } else {
441
+ flag.synchronous = false;
442
+ }
443
+ if (flag.responseType && flag.synchronous) {
444
+ throw DOMException.create(this._globalObject, [
445
+ "The object does not support the operation or argument.",
446
+ "InvalidAccessError"
447
+ ]);
448
+ }
449
+ if (flag.synchronous && flag.timeout) {
450
+ throw DOMException.create(this._globalObject, [
451
+ "The object does not support the operation or argument.",
452
+ "InvalidAccessError"
453
+ ]);
454
+ }
455
+ flag.method = method;
456
+
457
+ let urlObj;
458
+ try {
459
+ urlObj = new URL(uri, documentBaseURLSerialized(_ownerDocument));
460
+ } catch {
461
+ throw DOMException.create(this._globalObject, [
462
+ "The string did not match the expected pattern.",
463
+ "SyntaxError"
464
+ ]);
465
+ }
466
+
467
+ if (user || (password && !urlObj.username)) {
468
+ flag.auth = {
469
+ user,
470
+ pass: password
471
+ };
472
+ urlObj.username = "";
473
+ urlObj.password = "";
474
+ }
475
+
476
+ flag.uri = urlObj.href;
477
+ flag.requestHeaders = {};
478
+ flag.preflight = false;
479
+
480
+ properties.send = false;
481
+ properties.uploadListener = false;
482
+ properties.abortError = false;
483
+ this.responseURL = "";
484
+ readyStateChange(this, READY_STATES.OPENED);
485
+ }
486
+
487
+ overrideMimeType(mime) {
488
+ const { readyState } = this;
489
+ if (readyState === READY_STATES.LOADING || readyState === READY_STATES.DONE) {
490
+ throw DOMException.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
491
+ }
492
+
493
+ this.flag.overrideMIMEType = "application/octet-stream";
494
+
495
+ // Waiting for better spec: https://github.com/whatwg/xhr/issues/157
496
+ const parsed = MIMEType.parse(mime);
497
+ if (parsed) {
498
+ this.flag.overrideMIMEType = parsed.essence;
499
+
500
+ const charset = parsed.parameters.get("charset");
501
+ if (charset) {
502
+ this.flag.overrideCharset = whatwgEncoding.labelToName(charset);
503
+ }
504
+ }
505
+ }
506
+
507
+ // TODO: Add support for URLSearchParams and ReadableStream
508
+ send(body) {
509
+ const { flag, properties, upload, _ownerDocument } = this;
510
+ // Not per spec, but per tests: https://github.com/whatwg/xhr/issues/65
511
+ if (!_ownerDocument) {
512
+ throw DOMException.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
513
+ }
514
+
515
+ if (this.readyState !== READY_STATES.OPENED || properties.send) {
516
+ throw DOMException.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
517
+ }
518
+
519
+ properties.beforeSend = true;
520
+
521
+ try {
522
+ if (flag.method === "GET" || flag.method === "HEAD") {
523
+ body = null;
524
+ }
525
+
526
+ if (body !== null) {
527
+ let encoding = null;
528
+ let mimeType = null;
529
+
530
+ if (Document.isImpl(body)) {
531
+ encoding = "UTF-8";
532
+ mimeType = (body._parsingMode === "html" ? "text/html" : "application/xml") + ";charset=UTF-8";
533
+ flag.body = fragmentSerialization(body, { requireWellFormed: false });
534
+ } else {
535
+ if (typeof body === "string") {
536
+ encoding = "UTF-8";
537
+ }
538
+ const { buffer, formData, contentType } = extractBody(body);
539
+ mimeType = contentType;
540
+ flag.body = buffer || formData;
541
+ flag.formData = Boolean(formData);
542
+ }
543
+
544
+ const existingContentType = xhrUtils.getRequestHeader(flag.requestHeaders, "content-type");
545
+ if (mimeType !== null && existingContentType === null) {
546
+ flag.requestHeaders["Content-Type"] = mimeType;
547
+ } else if (existingContentType !== null && encoding !== null) {
548
+ // Waiting for better spec: https://github.com/whatwg/xhr/issues/188. This seems like a good guess at what
549
+ // the spec will be, in the meantime.
550
+ const parsed = MIMEType.parse(existingContentType);
551
+ if (parsed) {
552
+ const charset = parsed.parameters.get("charset");
553
+ if (charset && !asciiCaseInsensitiveMatch(charset, encoding) && encoding !== null) {
554
+ parsed.parameters.set("charset", encoding);
555
+ xhrUtils.updateRequestHeader(flag.requestHeaders, "content-type", parsed.toString());
556
+ }
557
+ }
558
+ }
559
+ }
560
+ } finally {
561
+ if (properties.beforeSend) {
562
+ properties.beforeSend = false;
563
+ } else {
564
+ throw DOMException.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
565
+ }
566
+ }
567
+
568
+ if (Object.keys(upload._eventListeners).length > 0) {
569
+ properties.uploadListener = true;
570
+ }
571
+
572
+ // request doesn't like zero-length bodies
573
+ if (flag.body && flag.body.byteLength === 0) {
574
+ flag.body = null;
575
+ }
576
+
577
+ if (flag.synchronous) {
578
+ const flagStr = JSON.stringify(flag, function (k, v) {
579
+ if (this === flag && k === "requestManager") {
580
+ return null;
581
+ }
582
+ if (this === flag && k === "pool" && v) {
583
+ return { maxSockets: v.maxSockets };
584
+ }
585
+ return v;
586
+ });
587
+ const res = spawnSync(
588
+ process.execPath,
589
+ [syncWorkerFile],
590
+ { input: flagStr, maxBuffer: Infinity }
591
+ );
592
+ if (res.status !== 0) {
593
+ throw new Error(res.stderr.toString());
594
+ }
595
+ if (res.error) {
596
+ if (typeof res.error === "string") {
597
+ res.error = new Error(res.error);
598
+ }
599
+ throw res.error;
600
+ }
601
+
602
+ const response = JSON.parse(res.stdout.toString());
603
+ const resProp = response.properties;
604
+ if (resProp.responseBuffer && resProp.responseBuffer.data) {
605
+ resProp.responseBuffer = Buffer.from(resProp.responseBuffer.data);
606
+ }
607
+ if (resProp.cookieJar) {
608
+ resProp.cookieJar = tough.CookieJar.deserializeSync(
609
+ resProp.cookieJar,
610
+ _ownerDocument._cookieJar.store
611
+ );
612
+ }
613
+
614
+ this.readyState = READY_STATES.LOADING;
615
+ this.status = response.status;
616
+ this.statusText = response.statusText;
617
+ this.responseURL = response.responseURL;
618
+ Object.assign(this.properties, response.properties);
619
+
620
+ if (resProp.error) {
621
+ xhrUtils.dispatchError(this);
622
+ throw DOMException.create(this._globalObject, [resProp.error, "NetworkError"]);
623
+ } else {
624
+ const { responseBuffer } = properties;
625
+ const contentLength = getResponseHeader(this, "content-length") || "0";
626
+ const bufferLength = parseInt(contentLength) || responseBuffer.length;
627
+ const progressObj = { lengthComputable: false };
628
+ if (bufferLength !== 0) {
629
+ progressObj.total = bufferLength;
630
+ progressObj.loaded = bufferLength;
631
+ progressObj.lengthComputable = true;
632
+ }
633
+ fireAnEvent("progress", this, ProgressEvent, progressObj);
634
+ readyStateChange(this, READY_STATES.DONE);
635
+ fireAnEvent("load", this, ProgressEvent, progressObj);
636
+ fireAnEvent("loadend", this, ProgressEvent, progressObj);
637
+ }
638
+ } else {
639
+ properties.send = true;
640
+
641
+ fireAnEvent("loadstart", this, ProgressEvent);
642
+
643
+ const client = xhrUtils.createClient(this);
644
+
645
+ properties.client = client;
646
+ // For new client, reset totalReceivedChunkSize and bufferStepSize
647
+ properties.totalReceivedChunkSize = 0;
648
+ properties.bufferStepSize = 1 * 1024 * 1024;
649
+
650
+ properties.origin = flag.origin;
651
+
652
+ client.on("error", err => {
653
+ client.removeAllListeners();
654
+ properties.error = err;
655
+ xhrUtils.dispatchError(this);
656
+ });
657
+
658
+ client.on("response", (res, url) => receiveResponse(this, res, url));
659
+
660
+ client.on("redirect", (response, requestHeaders, currentURL) => {
661
+ const destUrlObj = new URL(requestHeaders.Referer);
662
+ const urlObj = new URL(currentURL);
663
+
664
+ if (destUrlObj.origin !== urlObj.origin && destUrlObj.origin !== flag.origin) {
665
+ properties.origin = "null";
666
+ }
667
+
668
+ requestHeaders.Origin = properties.origin;
669
+
670
+ if (flag.origin !== destUrlObj.origin &&
671
+ destUrlObj.protocol !== "data:") {
672
+ if (!xhrUtils.validCORSHeaders(this, response, flag, properties, flag.origin)) {
673
+ return;
674
+ }
675
+ if (urlObj.username || urlObj.password) {
676
+ properties.error = "Userinfo forbidden in cors redirect";
677
+ xhrUtils.dispatchError(this);
678
+ }
679
+ }
680
+ });
681
+ if (body !== null && body !== "") {
682
+ properties.uploadComplete = false;
683
+ setDispatchProgressEvents(this);
684
+ } else {
685
+ properties.uploadComplete = true;
686
+ }
687
+ if (this.timeout > 0) {
688
+ properties.timeoutStart = (new Date()).getTime();
689
+ properties.timeoutFn = () => {
690
+ client.abort();
691
+ if (!(this.readyState === READY_STATES.UNSENT ||
692
+ (this.readyState === READY_STATES.OPENED && !properties.send) ||
693
+ this.readyState === READY_STATES.DONE)) {
694
+ properties.send = false;
695
+ let stateChanged = false;
696
+ if (!properties.uploadComplete) {
697
+ fireAnEvent("progress", upload, ProgressEvent);
698
+ readyStateChange(this, READY_STATES.DONE);
699
+ fireAnEvent("timeout", upload, ProgressEvent);
700
+ fireAnEvent("loadend", upload, ProgressEvent);
701
+ stateChanged = true;
702
+ }
703
+ fireAnEvent("progress", this, ProgressEvent);
704
+ if (!stateChanged) {
705
+ readyStateChange(this, READY_STATES.DONE);
706
+ }
707
+ fireAnEvent("timeout", this, ProgressEvent);
708
+ fireAnEvent("loadend", this, ProgressEvent);
709
+ }
710
+ this.readyState = READY_STATES.UNSENT;
711
+ };
712
+ properties.timeoutId = setTimeout(properties.timeoutFn, this.timeout);
713
+ }
714
+ }
715
+ }
716
+
717
+ setRequestHeader(header, value) {
718
+ const { flag, properties } = this;
719
+
720
+ if (this.readyState !== READY_STATES.OPENED || properties.send) {
721
+ throw DOMException.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
722
+ }
723
+
724
+ value = normalizeHeaderValue(value);
725
+
726
+ if (!tokenRegexp.test(header) || !fieldValueRegexp.test(value)) {
727
+ throw DOMException.create(this._globalObject, [
728
+ "The string did not match the expected pattern.",
729
+ "SyntaxError"
730
+ ]);
731
+ }
732
+
733
+ const lcHeader = header.toLowerCase();
734
+
735
+ if (forbiddenRequestHeaders.has(lcHeader) || lcHeader.startsWith("sec-") || lcHeader.startsWith("proxy-")) {
736
+ return;
737
+ }
738
+
739
+ const keys = Object.keys(flag.requestHeaders);
740
+ let n = keys.length;
741
+ while (n--) {
742
+ const key = keys[n];
743
+ if (key.toLowerCase() === lcHeader) {
744
+ flag.requestHeaders[key] += ", " + value;
745
+ return;
746
+ }
747
+ }
748
+ flag.requestHeaders[header] = value;
749
+ }
750
+ }
751
+
752
+ setupForSimpleEventAccessors(XMLHttpRequestImpl.prototype, ["readystatechange"]);
753
+
754
+ function readyStateChange(xhr, readyState) {
755
+ if (xhr.readyState === readyState) {
756
+ return;
757
+ }
758
+
759
+ xhr.readyState = readyState;
760
+
761
+ fireAnEvent("readystatechange", xhr);
762
+ }
763
+
764
+ function receiveResponse(xhr, response, currentURL) {
765
+ const { flag, properties } = xhr;
766
+ const { rawHeaders, statusCode } = response;
767
+
768
+ let byteOffset = 0;
769
+
770
+ const headers = {};
771
+ const filteredResponseHeaders = [];
772
+ const headerMap = {};
773
+ const n = Number(rawHeaders.length);
774
+ for (let i = 0; i < n; i += 2) {
775
+ const k = rawHeaders[i];
776
+ const kl = k.toLowerCase();
777
+ const v = rawHeaders[i + 1];
778
+ if (uniqueResponseHeaders.has(kl)) {
779
+ if (headerMap[kl] !== undefined) {
780
+ delete headers[headerMap[kl]];
781
+ }
782
+ headers[k] = v;
783
+ } else if (headerMap[kl] !== undefined) {
784
+ headers[headerMap[kl]] += ", " + v;
785
+ } else {
786
+ headers[k] = v;
787
+ }
788
+ headerMap[kl] = k;
789
+ }
790
+
791
+ const destUrlObj = new URL(currentURL);
792
+ if (properties.origin !== destUrlObj.origin &&
793
+ destUrlObj.protocol !== "data:") {
794
+ if (!xhrUtils.validCORSHeaders(xhr, response, flag, properties, properties.origin)) {
795
+ return;
796
+ }
797
+ const acehStr = response.headers["access-control-expose-headers"];
798
+ const aceh = new Set(acehStr ? acehStr.trim().toLowerCase().split(xhrUtils.headerListSeparatorRegexp) : []);
799
+ for (const header in headers) {
800
+ const lcHeader = header.toLowerCase();
801
+ if (!corsSafeResponseHeaders.has(lcHeader) && !aceh.has(lcHeader)) {
802
+ filteredResponseHeaders.push(header);
803
+ }
804
+ }
805
+ }
806
+
807
+ for (const header in headers) {
808
+ const lcHeader = header.toLowerCase();
809
+ if (forbiddenResponseHeaders.has(lcHeader)) {
810
+ filteredResponseHeaders.push(header);
811
+ }
812
+ }
813
+
814
+ xhr.responseURL = destUrlObj.href;
815
+
816
+ xhr.status = statusCode;
817
+ xhr.statusText = response.statusMessage || HTTP_STATUS_CODES[statusCode] || "";
818
+
819
+ properties.responseHeaders = headers;
820
+ properties.filteredResponseHeaders = filteredResponseHeaders;
821
+
822
+ const contentLength = getResponseHeader(xhr, "content-length") || "0";
823
+ const bufferLength = parseInt(contentLength) || 0;
824
+ const progressObj = { lengthComputable: false };
825
+ let lastProgressReported;
826
+ if (bufferLength !== 0) {
827
+ progressObj.total = bufferLength;
828
+ progressObj.loaded = 0;
829
+ progressObj.lengthComputable = true;
830
+ }
831
+ // pre-allocate buffer.
832
+ properties.responseBuffer = Buffer.alloc(properties.bufferStepSize);
833
+ properties.responseCache = null;
834
+ properties.responseTextCache = null;
835
+ properties.responseXMLCache = null;
836
+ readyStateChange(xhr, READY_STATES.HEADERS_RECEIVED);
837
+
838
+ if (!properties.client) {
839
+ // The request was aborted in reaction to the readystatechange event.
840
+ return;
841
+ }
842
+
843
+ // Can't use the client since the client gets the post-ungzipping bytes (which can be greater than the
844
+ // Content-Length).
845
+ response.on("data", chunk => {
846
+ byteOffset += chunk.length;
847
+ progressObj.loaded = byteOffset;
848
+ });
849
+
850
+ properties.client.on("data", chunk => {
851
+ properties.totalReceivedChunkSize += chunk.length;
852
+ if (properties.totalReceivedChunkSize >= properties.bufferStepSize) {
853
+ properties.bufferStepSize *= 2;
854
+ while (properties.totalReceivedChunkSize >= properties.bufferStepSize) {
855
+ properties.bufferStepSize *= 2;
856
+ }
857
+ const tmpBuf = Buffer.alloc(properties.bufferStepSize);
858
+ properties.responseBuffer.copy(tmpBuf, 0, 0, properties.responseBuffer.length);
859
+ properties.responseBuffer = tmpBuf;
860
+ }
861
+ chunk.copy(properties.responseBuffer, properties.totalReceivedChunkSize - chunk.length, 0, chunk.length);
862
+ properties.responseCache = null;
863
+ properties.responseTextCache = null;
864
+ properties.responseXMLCache = null;
865
+
866
+ if (xhr.readyState === READY_STATES.HEADERS_RECEIVED) {
867
+ xhr.readyState = READY_STATES.LOADING;
868
+ }
869
+ fireAnEvent("readystatechange", xhr);
870
+
871
+ if (progressObj.total !== progressObj.loaded || properties.totalReceivedChunkSize === byteOffset) {
872
+ if (lastProgressReported !== progressObj.loaded) {
873
+ // This is a necessary check in the gzip case where we can be getting new data from the client, as it
874
+ // un-gzips, but no new data has been gotten from the response, so we should not fire a progress event.
875
+ lastProgressReported = progressObj.loaded;
876
+ fireAnEvent("progress", xhr, ProgressEvent, progressObj);
877
+ }
878
+ }
879
+ });
880
+ properties.client.on("end", () => {
881
+ clearTimeout(properties.timeoutId);
882
+ properties.timeoutFn = null;
883
+ properties.timeoutStart = 0;
884
+ properties.client = null;
885
+ if (lastProgressReported !== progressObj.loaded) {
886
+ // https://github.com/whatwg/xhr/issues/318
887
+ fireAnEvent("progress", xhr, ProgressEvent, progressObj);
888
+ }
889
+ readyStateChange(xhr, READY_STATES.DONE);
890
+ fireAnEvent("load", xhr, ProgressEvent, progressObj);
891
+ fireAnEvent("loadend", xhr, ProgressEvent, progressObj);
892
+ });
893
+ }
894
+
895
+ function setDispatchProgressEvents(xhr) {
896
+ const { properties, upload } = xhr;
897
+ const { client } = properties;
898
+
899
+ let total = 0;
900
+ let lengthComputable = false;
901
+ const length = client.headers && parseInt(xhrUtils.getRequestHeader(client.headers, "content-length"));
902
+ if (length) {
903
+ total = length;
904
+ lengthComputable = true;
905
+ }
906
+ const initProgress = {
907
+ lengthComputable,
908
+ total,
909
+ loaded: 0
910
+ };
911
+
912
+ if (properties.uploadListener) {
913
+ fireAnEvent("loadstart", upload, ProgressEvent, initProgress);
914
+ }
915
+
916
+ client.on("request", req => {
917
+ req.on("response", () => {
918
+ properties.uploadComplete = true;
919
+
920
+ if (!properties.uploadListener) {
921
+ return;
922
+ }
923
+
924
+ const progress = {
925
+ lengthComputable,
926
+ total,
927
+ loaded: total
928
+ };
929
+ fireAnEvent("progress", upload, ProgressEvent, progress);
930
+ fireAnEvent("load", upload, ProgressEvent, progress);
931
+ fireAnEvent("loadend", upload, ProgressEvent, progress);
932
+ });
933
+ });
934
+ }
935
+
936
+ function finalMIMEType(xhr) {
937
+ const { flag } = xhr;
938
+ return flag.overrideMIMEType || getResponseHeader(xhr, "content-type");
939
+ }
940
+
941
+ function finalCharset(xhr) {
942
+ const { flag } = xhr;
943
+ if (flag.overrideCharset) {
944
+ return flag.overrideCharset;
945
+ }
946
+ const parsedContentType = MIMEType.parse(getResponseHeader(xhr, "content-type"));
947
+ if (parsedContentType) {
948
+ return whatwgEncoding.labelToName(parsedContentType.parameters.get("charset"));
949
+ }
950
+ return null;
951
+ }
952
+
953
+ function getResponseHeader(xhr, lcHeader) {
954
+ const { properties } = xhr;
955
+ const keys = Object.keys(properties.responseHeaders);
956
+ let n = keys.length;
957
+ while (n--) {
958
+ const key = keys[n];
959
+ if (key.toLowerCase() === lcHeader) {
960
+ return properties.responseHeaders[key];
961
+ }
962
+ }
963
+ return null;
964
+ }
965
+
966
+ function normalizeHeaderValue(value) {
967
+ return value.replace(/^[\x09\x0A\x0D\x20]+/, "").replace(/[\x09\x0A\x0D\x20]+$/, "");
968
+ }
969
+
970
+ function extractBody(bodyInit) {
971
+ // https://fetch.spec.whatwg.org/#concept-bodyinit-extract
972
+ // except we represent the body as a Node.js Buffer instead,
973
+ // or a special case for FormData since we want request to handle that. Probably it would be
974
+ // cleaner (and allow a future without request) if we did the form encoding ourself.
975
+
976
+ if (Blob.isImpl(bodyInit)) {
977
+ return {
978
+ buffer: bodyInit._buffer,
979
+ contentType: bodyInit.type === "" ? null : bodyInit.type
980
+ };
981
+ } else if (isArrayBuffer(bodyInit)) {
982
+ return {
983
+ buffer: Buffer.from(bodyInit),
984
+ contentType: null
985
+ };
986
+ } else if (ArrayBuffer.isView(bodyInit)) {
987
+ return {
988
+ buffer: Buffer.from(bodyInit.buffer, bodyInit.byteOffset, bodyInit.byteLength),
989
+ contentType: null
990
+ };
991
+ } else if (FormData.isImpl(bodyInit)) {
992
+ const formData = [];
993
+ for (const entry of bodyInit._entries) {
994
+ let val;
995
+ if (Blob.isImpl(entry.value)) {
996
+ const blob = entry.value;
997
+ val = {
998
+ name: entry.name,
999
+ value: blob._buffer,
1000
+ options: {
1001
+ filename: blob.name,
1002
+ contentType: blob.type,
1003
+ knownLength: blob.size
1004
+ }
1005
+ };
1006
+ } else {
1007
+ val = entry;
1008
+ }
1009
+
1010
+ formData.push(val);
1011
+ }
1012
+
1013
+ return { formData };
1014
+ }
1015
+
1016
+ // Must be a string
1017
+ return {
1018
+ buffer: Buffer.from(bodyInit, "utf-8"),
1019
+ contentType: "text/plain;charset=UTF-8"
1020
+ };
1021
+ }
1022
+
1023
+ exports.implementation = XMLHttpRequestImpl;