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,1012 @@
1
+ "use strict";
2
+ const vm = require("vm");
3
+ const webIDLConversions = require("webidl-conversions");
4
+ const { CSSStyleDeclaration } = require("cssstyle");
5
+ const whatwgURL = require("whatwg-url");
6
+ const notImplemented = require("./not-implemented");
7
+ const { installInterfaces } = require("../living/interfaces");
8
+ const { define, mixin } = require("../utils");
9
+ const Element = require("../living/generated/Element");
10
+ const EventTarget = require("../living/generated/EventTarget");
11
+ const EventHandlerNonNull = require("../living/generated/EventHandlerNonNull");
12
+ const IDLFunction = require("../living/generated/Function");
13
+ const OnBeforeUnloadEventHandlerNonNull = require("../living/generated/OnBeforeUnloadEventHandlerNonNull");
14
+ const OnErrorEventHandlerNonNull = require("../living/generated/OnErrorEventHandlerNonNull");
15
+ const { fireAPageTransitionEvent } = require("../living/helpers/page-transition-event");
16
+ const namedPropertiesWindow = require("../living/named-properties-window");
17
+ const DOMException = require("../living/generated/DOMException");
18
+ const idlUtils = require("../living/generated/utils");
19
+ const WebSocketImpl = require("../living/websockets/WebSocket-impl").implementation;
20
+ const BarProp = require("../living/generated/BarProp");
21
+ const documents = require("../living/documents.js");
22
+ const External = require("../living/generated/External");
23
+ const Navigator = require("../living/generated/Navigator");
24
+ const Performance = require("../living/generated/Performance");
25
+ const Screen = require("../living/generated/Screen");
26
+ const Crypto = require("../living/generated/Crypto");
27
+ const Storage = require("../living/generated/Storage");
28
+ const Selection = require("../living/generated/Selection");
29
+ const reportException = require("../living/helpers/runtime-script-errors");
30
+ const { getCurrentEventHandlerValue } = require("../living/helpers/create-event-accessor.js");
31
+ const { fireAnEvent } = require("../living/helpers/events");
32
+ const SessionHistory = require("../living/window/SessionHistory");
33
+ const { getDeclarationForElement, getResolvedValue, propertiesWithResolvedValueImplemented,
34
+ SHADOW_DOM_PSEUDO_REGEXP } = require("../living/helpers/style-rules.js");
35
+ const CustomElementRegistry = require("../living/generated/CustomElementRegistry");
36
+ const MessageEvent = require("../living/generated/MessageEvent");
37
+ const jsGlobals = require("./js-globals.json");
38
+
39
+ const GlobalEventHandlersImpl = require("../living/nodes/GlobalEventHandlers-impl").implementation;
40
+ const WindowEventHandlersImpl = require("../living/nodes/WindowEventHandlers-impl").implementation;
41
+
42
+ const events = new Set([
43
+ // GlobalEventHandlers
44
+ "abort", "autocomplete",
45
+ "autocompleteerror", "blur",
46
+ "cancel", "canplay", "canplaythrough",
47
+ "change", "click",
48
+ "close", "contextmenu",
49
+ "cuechange", "dblclick",
50
+ "drag", "dragend",
51
+ "dragenter",
52
+ "dragleave", "dragover",
53
+ "dragstart", "drop",
54
+ "durationchange", "emptied",
55
+ "ended", "focus",
56
+ "input", "invalid",
57
+ "keydown", "keypress",
58
+ "keyup", "load", "loadeddata",
59
+ "loadedmetadata", "loadstart",
60
+ "mousedown", "mouseenter",
61
+ "mouseleave", "mousemove",
62
+ "mouseout", "mouseover",
63
+ "mouseup", "wheel",
64
+ "pause", "play",
65
+ "playing", "progress",
66
+ "ratechange", "reset",
67
+ "resize", "scroll",
68
+ "securitypolicyviolation",
69
+ "seeked", "seeking",
70
+ "select", "sort", "stalled",
71
+ "submit", "suspend",
72
+ "timeupdate", "toggle",
73
+ "volumechange", "waiting",
74
+
75
+ // WindowEventHandlers
76
+ "afterprint",
77
+ "beforeprint",
78
+ "hashchange",
79
+ "languagechange",
80
+ "message",
81
+ "messageerror",
82
+ "offline",
83
+ "online",
84
+ "pagehide",
85
+ "pageshow",
86
+ "popstate",
87
+ "rejectionhandled",
88
+ "storage",
89
+ "unhandledrejection",
90
+ "unload"
91
+
92
+ // "error" and "beforeunload" are added separately
93
+ ]);
94
+
95
+ const jsGlobalEntriesToInstall = Object.entries(jsGlobals).filter(([name]) => name in global);
96
+
97
+ exports.createWindow = options => {
98
+ const makeVMContext = options.runScripts === "outside-only" || options.runScripts === "dangerously";
99
+
100
+ // Bootstrap with an empty object from the Node.js realm. We'll muck with its prototype chain shortly.
101
+ const window = {};
102
+
103
+ // Make window into a global object: either via vm, or just aliasing the Node.js globals.
104
+ // Also set _globalObject and _globalProxy.
105
+ //
106
+ // TODO: don't expose _globalObject and _globalProxy as public properties. While you're there, audit usage sites to
107
+ // see how necessary they really are.
108
+ if (makeVMContext) {
109
+ vm.createContext(window);
110
+
111
+ window._globalObject = window;
112
+ window._globalProxy = vm.runInContext("this", window);
113
+
114
+ // Without this, these globals will only appear to scripts running inside the context using vm.runScript; they will
115
+ // not appear to scripts running from the outside, including to JSDOM implementation code.
116
+ for (const [globalName, globalPropDesc] of jsGlobalEntriesToInstall) {
117
+ const propDesc = { ...globalPropDesc, value: vm.runInContext(globalName, window) };
118
+ Object.defineProperty(window, globalName, propDesc);
119
+ }
120
+ } else {
121
+ window._globalObject = window._globalProxy = window;
122
+
123
+ // Without contextifying the window, none of the globals will exist. So, let's at least alias them from the Node.js
124
+ // context. See https://github.com/jsdom/jsdom/issues/2727 for more background and discussion.
125
+ for (const [globalName, globalPropDesc] of jsGlobalEntriesToInstall) {
126
+ const propDesc = { ...globalPropDesc, value: global[globalName] };
127
+ Object.defineProperty(window, globalName, propDesc);
128
+ }
129
+ }
130
+
131
+ // Create instances of all the web platform interfaces and install them on the window.
132
+ installInterfaces(window, ["Window"]);
133
+
134
+ // Now we have an EventTarget contructor so we can work on the prototype chain.
135
+
136
+ // eslint-disable-next-line func-name-matching, func-style
137
+ const WindowConstructor = function Window() {
138
+ throw new TypeError("Illegal constructor");
139
+ };
140
+ Object.setPrototypeOf(WindowConstructor, window.EventTarget);
141
+
142
+ Object.defineProperty(window, "Window", {
143
+ configurable: true,
144
+ writable: true,
145
+ value: WindowConstructor
146
+ });
147
+
148
+ // TODO: do an actual WindowProperties object. See https://github.com/jsdom/jsdom/pull/3765 for an attempt.
149
+ const windowPropertiesObject = Object.create(window.EventTarget.prototype);
150
+ Object.defineProperties(windowPropertiesObject, {
151
+ [Symbol.toStringTag]: {
152
+ value: "WindowProperties",
153
+ configurable: true
154
+ }
155
+ });
156
+ namedPropertiesWindow.initializeWindow(window, window._globalProxy);
157
+
158
+ const windowPrototype = Object.create(windowPropertiesObject);
159
+ Object.defineProperties(windowPrototype, {
160
+ constructor: {
161
+ value: WindowConstructor,
162
+ writable: true,
163
+ configurable: true
164
+ },
165
+ [Symbol.toStringTag]: {
166
+ value: "Window",
167
+ configurable: true
168
+ }
169
+ });
170
+
171
+ WindowConstructor.prototype = windowPrototype;
172
+ Object.setPrototypeOf(window, windowPrototype);
173
+ if (makeVMContext) {
174
+ Object.setPrototypeOf(window._globalProxy, windowPrototype);
175
+ Object.setPrototypeOf(window.EventTarget.prototype, window.Object.prototype);
176
+ }
177
+
178
+ // Now that the prototype chain is fully set up, call the superclass setup.
179
+ EventTarget.setup(window, window);
180
+
181
+ installEventHandlers(window);
182
+
183
+ installOwnProperties(window, options);
184
+
185
+ // Not sure why this is necessary... TODO figure it out.
186
+ Object.defineProperty(idlUtils.implForWrapper(window), idlUtils.wrapperSymbol, { get: () => window._globalProxy });
187
+
188
+ // Fire or prepare to fire load and pageshow events.
189
+ process.nextTick(() => {
190
+ if (!window.document) {
191
+ return; // window might've been closed already
192
+ }
193
+
194
+ if (window.document.readyState === "complete") {
195
+ fireAnEvent("load", window, undefined, {}, true);
196
+ } else {
197
+ window.document.addEventListener("load", () => {
198
+ fireAnEvent("load", window, undefined, {}, true);
199
+ if (!window._document) {
200
+ return; // window might've been closed already
201
+ }
202
+
203
+ const documentImpl = idlUtils.implForWrapper(window._document);
204
+ if (!documentImpl._pageShowingFlag) {
205
+ documentImpl._pageShowingFlag = true;
206
+ fireAPageTransitionEvent("pageshow", window, false);
207
+ }
208
+ });
209
+ }
210
+ });
211
+
212
+ return window;
213
+ };
214
+
215
+ function installEventHandlers(window) {
216
+ mixin(window, WindowEventHandlersImpl.prototype);
217
+ mixin(window, GlobalEventHandlersImpl.prototype);
218
+ window._initGlobalEvents();
219
+
220
+ Object.defineProperty(window, "onbeforeunload", {
221
+ configurable: true,
222
+ enumerable: true,
223
+ get() {
224
+ return idlUtils.tryWrapperForImpl(getCurrentEventHandlerValue(window, "beforeunload"));
225
+ },
226
+ set(V) {
227
+ if (!idlUtils.isObject(V)) {
228
+ V = null;
229
+ } else {
230
+ V = OnBeforeUnloadEventHandlerNonNull.convert(window, V, {
231
+ context: "Failed to set the 'onbeforeunload' property on 'Window': The provided value"
232
+ });
233
+ }
234
+ window._setEventHandlerFor("beforeunload", V);
235
+ }
236
+ });
237
+
238
+ Object.defineProperty(window, "onerror", {
239
+ configurable: true,
240
+ enumerable: true,
241
+ get() {
242
+ return idlUtils.tryWrapperForImpl(getCurrentEventHandlerValue(window, "error"));
243
+ },
244
+ set(V) {
245
+ if (!idlUtils.isObject(V)) {
246
+ V = null;
247
+ } else {
248
+ V = OnErrorEventHandlerNonNull.convert(window, V, {
249
+ context: "Failed to set the 'onerror' property on 'Window': The provided value"
250
+ });
251
+ }
252
+ window._setEventHandlerFor("error", V);
253
+ }
254
+ });
255
+
256
+ for (const event of events) {
257
+ Object.defineProperty(window, `on${event}`, {
258
+ configurable: true,
259
+ enumerable: true,
260
+ get() {
261
+ return idlUtils.tryWrapperForImpl(getCurrentEventHandlerValue(window, event));
262
+ },
263
+ set(V) {
264
+ if (!idlUtils.isObject(V)) {
265
+ V = null;
266
+ } else {
267
+ V = EventHandlerNonNull.convert(window, V, {
268
+ context: `Failed to set the 'on${event}' property on 'Window': The provided value`
269
+ });
270
+ }
271
+ window._setEventHandlerFor(event, V);
272
+ }
273
+ });
274
+ }
275
+ }
276
+
277
+ function installOwnProperties(window, options) {
278
+ const windowInitialized = performance.now();
279
+
280
+ // ### PRIVATE DATA PROPERTIES
281
+
282
+ window._resourceLoader = options.resourceLoader;
283
+
284
+ // List options explicitly to be clear which are passed through
285
+ window._document = documents.createWrapper(window, {
286
+ parsingMode: options.parsingMode,
287
+ contentType: options.contentType,
288
+ encoding: options.encoding,
289
+ cookieJar: options.cookieJar,
290
+ url: options.url,
291
+ lastModified: options.lastModified,
292
+ referrer: options.referrer,
293
+ parseOptions: options.parseOptions,
294
+ defaultView: window._globalProxy,
295
+ global: window,
296
+ parentOrigin: options.parentOrigin
297
+ }, { alwaysUseDocumentClass: true });
298
+
299
+ const documentOrigin = idlUtils.implForWrapper(window._document)._origin;
300
+ window._origin = documentOrigin;
301
+
302
+ // https://html.spec.whatwg.org/#session-history
303
+ window._sessionHistory = new SessionHistory({
304
+ document: idlUtils.implForWrapper(window._document),
305
+ url: idlUtils.implForWrapper(window._document)._URL,
306
+ stateObject: null
307
+ }, window);
308
+
309
+ window._virtualConsole = options.virtualConsole;
310
+
311
+ window._runScripts = options.runScripts;
312
+
313
+ // Set up the window as if it's a top level window.
314
+ // If it's not, then references will be corrected by frame/iframe code.
315
+ window._parent = window._top = window._globalProxy;
316
+ window._frameElement = null;
317
+
318
+ // This implements window.frames.length, since window.frames returns a
319
+ // self reference to the window object. This value is incremented in the
320
+ // HTMLFrameElement implementation.
321
+ window._length = 0;
322
+
323
+ // https://dom.spec.whatwg.org/#window-current-event
324
+ window._currentEvent = undefined;
325
+
326
+ window._pretendToBeVisual = options.pretendToBeVisual;
327
+ window._storageQuota = options.storageQuota;
328
+
329
+ // Some properties (such as localStorage and sessionStorage) share data
330
+ // between windows in the same origin. This object is intended
331
+ // to contain such data.
332
+ if (options.commonForOrigin && options.commonForOrigin[documentOrigin]) {
333
+ window._commonForOrigin = options.commonForOrigin;
334
+ } else {
335
+ window._commonForOrigin = {
336
+ [documentOrigin]: {
337
+ localStorageArea: new Map(),
338
+ sessionStorageArea: new Map(),
339
+ windowsInSameOrigin: [window]
340
+ }
341
+ };
342
+ }
343
+
344
+ window._currentOriginData = window._commonForOrigin[documentOrigin];
345
+
346
+ // ### WEB STORAGE
347
+
348
+ window._localStorage = Storage.create(window, [], {
349
+ associatedWindow: window,
350
+ storageArea: window._currentOriginData.localStorageArea,
351
+ type: "localStorage",
352
+ url: window._document.documentURI,
353
+ storageQuota: window._storageQuota
354
+ });
355
+ window._sessionStorage = Storage.create(window, [], {
356
+ associatedWindow: window,
357
+ storageArea: window._currentOriginData.sessionStorageArea,
358
+ type: "sessionStorage",
359
+ url: window._document.documentURI,
360
+ storageQuota: window._storageQuota
361
+ });
362
+
363
+ // ### SELECTION
364
+
365
+ // https://w3c.github.io/selection-api/#dfn-selection
366
+ window._selection = Selection.createImpl(window);
367
+
368
+ // https://w3c.github.io/selection-api/#dom-window
369
+ window.getSelection = function () {
370
+ return window._selection;
371
+ };
372
+
373
+ // ### GETTERS
374
+
375
+ const locationbar = BarProp.create(window);
376
+ const menubar = BarProp.create(window);
377
+ const personalbar = BarProp.create(window);
378
+ const scrollbars = BarProp.create(window);
379
+ const statusbar = BarProp.create(window);
380
+ const toolbar = BarProp.create(window);
381
+ const external = External.create(window);
382
+ const navigator = Navigator.create(window, [], { userAgent: window._resourceLoader._userAgent });
383
+ const performanceImpl = Performance.create(window, [], {
384
+ timeOrigin: performance.timeOrigin + windowInitialized,
385
+ nowAtTimeOrigin: windowInitialized
386
+ });
387
+ const screen = Screen.create(window);
388
+ const crypto = Crypto.create(window);
389
+ window._customElementRegistry = CustomElementRegistry.create(window);
390
+
391
+ define(window, {
392
+ get length() {
393
+ return window._length;
394
+ },
395
+ get window() {
396
+ return window._globalProxy;
397
+ },
398
+ get frameElement() {
399
+ return idlUtils.wrapperForImpl(window._frameElement);
400
+ },
401
+ get frames() {
402
+ return window._globalProxy;
403
+ },
404
+ get self() {
405
+ return window._globalProxy;
406
+ },
407
+ get parent() {
408
+ return window._parent;
409
+ },
410
+ get top() {
411
+ return window._top;
412
+ },
413
+ get document() {
414
+ return window._document;
415
+ },
416
+ get external() {
417
+ return external;
418
+ },
419
+ get location() {
420
+ return idlUtils.wrapperForImpl(idlUtils.implForWrapper(window._document)._location);
421
+ },
422
+ // [PutForwards=href]:
423
+ set location(value) {
424
+ Reflect.set(window.location, "href", value);
425
+ },
426
+ get history() {
427
+ return idlUtils.wrapperForImpl(idlUtils.implForWrapper(window._document)._history);
428
+ },
429
+ get navigator() {
430
+ return navigator;
431
+ },
432
+ get locationbar() {
433
+ return locationbar;
434
+ },
435
+ get menubar() {
436
+ return menubar;
437
+ },
438
+ get personalbar() {
439
+ return personalbar;
440
+ },
441
+ get scrollbars() {
442
+ return scrollbars;
443
+ },
444
+ get statusbar() {
445
+ return statusbar;
446
+ },
447
+ get toolbar() {
448
+ return toolbar;
449
+ },
450
+ get performance() {
451
+ return performanceImpl;
452
+ },
453
+ get screen() {
454
+ return screen;
455
+ },
456
+ get crypto() {
457
+ return crypto;
458
+ },
459
+ get origin() {
460
+ return window._origin;
461
+ },
462
+ get localStorage() {
463
+ if (idlUtils.implForWrapper(window._document)._origin === "null") {
464
+ throw DOMException.create(window, [
465
+ "localStorage is not available for opaque origins",
466
+ "SecurityError"
467
+ ]);
468
+ }
469
+
470
+ return window._localStorage;
471
+ },
472
+ get sessionStorage() {
473
+ if (idlUtils.implForWrapper(window._document)._origin === "null") {
474
+ throw DOMException.create(window, [
475
+ "sessionStorage is not available for opaque origins",
476
+ "SecurityError"
477
+ ]);
478
+ }
479
+
480
+ return window._sessionStorage;
481
+ },
482
+ get customElements() {
483
+ return window._customElementRegistry;
484
+ },
485
+ get event() {
486
+ return window._currentEvent ? idlUtils.wrapperForImpl(window._currentEvent) : undefined;
487
+ }
488
+ });
489
+
490
+ Object.defineProperties(window, {
491
+ // [Replaceable]:
492
+ self: makeReplaceablePropertyDescriptor("self", window),
493
+ locationbar: makeReplaceablePropertyDescriptor("locationbar", window),
494
+ menubar: makeReplaceablePropertyDescriptor("menubar", window),
495
+ personalbar: makeReplaceablePropertyDescriptor("personalbar", window),
496
+ scrollbars: makeReplaceablePropertyDescriptor("scrollbars", window),
497
+ statusbar: makeReplaceablePropertyDescriptor("statusbar", window),
498
+ toolbar: makeReplaceablePropertyDescriptor("toolbar", window),
499
+ frames: makeReplaceablePropertyDescriptor("frames", window),
500
+ parent: makeReplaceablePropertyDescriptor("parent", window),
501
+ external: makeReplaceablePropertyDescriptor("external", window),
502
+ length: makeReplaceablePropertyDescriptor("length", window),
503
+ screen: makeReplaceablePropertyDescriptor("screen", window),
504
+ origin: makeReplaceablePropertyDescriptor("origin", window),
505
+ event: makeReplaceablePropertyDescriptor("event", window),
506
+
507
+ // [LegacyUnforgeable]:
508
+ window: { configurable: false },
509
+ document: { configurable: false },
510
+ location: { configurable: false },
511
+ top: { configurable: false }
512
+ });
513
+
514
+
515
+ // ### METHODS
516
+
517
+ // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers
518
+
519
+ // In the spec the list of active timers is a set of IDs. We make it a map of IDs to Node.js timer objects, so that
520
+ // we can call Node.js-side clearTimeout() when clearing, and thus allow process shutdown faster.
521
+ const listOfActiveTimers = new Map();
522
+ let latestTimerId = 0;
523
+
524
+ window.setTimeout = function (handler, timeout = 0, ...args) {
525
+ if (typeof handler !== "function") {
526
+ handler = webIDLConversions.DOMString(handler);
527
+ }
528
+ timeout = webIDLConversions.long(timeout);
529
+
530
+ return timerInitializationSteps(handler, timeout, args, { methodContext: window, repeat: false });
531
+ };
532
+ window.setInterval = function (handler, timeout = 0, ...args) {
533
+ if (typeof handler !== "function") {
534
+ handler = webIDLConversions.DOMString(handler);
535
+ }
536
+ timeout = webIDLConversions.long(timeout);
537
+
538
+ return timerInitializationSteps(handler, timeout, args, { methodContext: window, repeat: true });
539
+ };
540
+
541
+ window.clearTimeout = function (handle = 0) {
542
+ handle = webIDLConversions.long(handle);
543
+
544
+ const nodejsTimer = listOfActiveTimers.get(handle);
545
+ if (nodejsTimer) {
546
+ clearTimeout(nodejsTimer);
547
+ listOfActiveTimers.delete(handle);
548
+ }
549
+ };
550
+ window.clearInterval = function (handle = 0) {
551
+ handle = webIDLConversions.long(handle);
552
+
553
+ const nodejsTimer = listOfActiveTimers.get(handle);
554
+ if (nodejsTimer) {
555
+ // We use setTimeout() in timerInitializationSteps even for window.setInterval().
556
+ clearTimeout(nodejsTimer);
557
+ listOfActiveTimers.delete(handle);
558
+ }
559
+ };
560
+
561
+ function timerInitializationSteps(handler, timeout, args, { methodContext, repeat, previousHandle }) {
562
+ // This appears to be unspecced, but matches browser behavior for close()ed windows.
563
+ if (!methodContext._document) {
564
+ return 0;
565
+ }
566
+
567
+ // TODO: implement timer nesting level behavior.
568
+
569
+ const methodContextProxy = methodContext._globalProxy;
570
+ const handle = previousHandle !== undefined ? previousHandle : ++latestTimerId;
571
+
572
+ function task() {
573
+ if (!listOfActiveTimers.has(handle)) {
574
+ return;
575
+ }
576
+
577
+ try {
578
+ if (typeof handler === "function") {
579
+ handler.apply(methodContextProxy, args);
580
+ } else if (window._runScripts === "dangerously") {
581
+ vm.runInContext(handler, window, { filename: window.location.href, displayErrors: false });
582
+ }
583
+ } catch (e) {
584
+ reportException(window, e, window.location.href);
585
+ }
586
+
587
+ if (listOfActiveTimers.has(handle)) {
588
+ if (repeat) {
589
+ timerInitializationSteps(handler, timeout, args, { methodContext, repeat: true, previousHandle: handle });
590
+ } else {
591
+ listOfActiveTimers.delete(handle);
592
+ }
593
+ }
594
+ }
595
+
596
+ if (timeout < 0) {
597
+ timeout = 0;
598
+ }
599
+
600
+ const nodejsTimer = setTimeout(task, timeout);
601
+ listOfActiveTimers.set(handle, nodejsTimer);
602
+
603
+ return handle;
604
+ }
605
+
606
+ // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#microtask-queuing
607
+
608
+ window.queueMicrotask = function (callback) {
609
+ callback = IDLFunction.convert(window, callback);
610
+
611
+ queueMicrotask(() => {
612
+ try {
613
+ callback();
614
+ } catch (e) {
615
+ reportException(window, e, window.location.href);
616
+ }
617
+ });
618
+ };
619
+
620
+ // https://html.spec.whatwg.org/multipage/imagebitmap-and-animations.html#animation-frames
621
+
622
+ let animationFrameCallbackId = 0;
623
+ const mapOfAnimationFrameCallbacks = new Map();
624
+ let animationFrameNodejsInterval = null;
625
+
626
+ // Unlike the spec, where an animation frame happens every 60 Hz regardless, we optimize so that if there are no
627
+ // requestAnimationFrame() calls outstanding, we don't fire the timer. This helps us track that.
628
+ let numberOfOngoingAnimationFrameCallbacks = 0;
629
+
630
+ if (window._pretendToBeVisual) {
631
+ window.requestAnimationFrame = function (callback) {
632
+ callback = IDLFunction.convert(window, callback);
633
+
634
+ const handle = ++animationFrameCallbackId;
635
+ mapOfAnimationFrameCallbacks.set(handle, callback);
636
+
637
+ ++numberOfOngoingAnimationFrameCallbacks;
638
+ if (numberOfOngoingAnimationFrameCallbacks === 1) {
639
+ animationFrameNodejsInterval = setInterval(() => {
640
+ runAnimationFrameCallbacks(performance.now() - windowInitialized);
641
+ }, 1000 / 60);
642
+ }
643
+
644
+ return handle;
645
+ };
646
+
647
+ window.cancelAnimationFrame = function (handle) {
648
+ handle = webIDLConversions["unsigned long"](handle);
649
+
650
+ removeAnimationFrameCallback(handle);
651
+ };
652
+
653
+ function runAnimationFrameCallbacks(now) {
654
+ // Converting to an array is important to get a sync snapshot and thus match spec semantics.
655
+ const callbackHandles = [...mapOfAnimationFrameCallbacks.keys()];
656
+ for (const handle of callbackHandles) {
657
+ // This has() can be false if a callback calls cancelAnimationFrame().
658
+ if (mapOfAnimationFrameCallbacks.has(handle)) {
659
+ const callback = mapOfAnimationFrameCallbacks.get(handle);
660
+ removeAnimationFrameCallback(handle);
661
+ try {
662
+ callback(now);
663
+ } catch (e) {
664
+ reportException(window, e, window.location.href);
665
+ }
666
+ }
667
+ }
668
+ }
669
+
670
+ function removeAnimationFrameCallback(handle) {
671
+ if (mapOfAnimationFrameCallbacks.has(handle)) {
672
+ --numberOfOngoingAnimationFrameCallbacks;
673
+ if (numberOfOngoingAnimationFrameCallbacks === 0) {
674
+ clearInterval(animationFrameNodejsInterval);
675
+ }
676
+ }
677
+
678
+ mapOfAnimationFrameCallbacks.delete(handle);
679
+ }
680
+ }
681
+
682
+ function stopAllTimers() {
683
+ for (const nodejsTimer of listOfActiveTimers.values()) {
684
+ clearTimeout(nodejsTimer);
685
+ }
686
+ listOfActiveTimers.clear();
687
+
688
+ clearInterval(animationFrameNodejsInterval);
689
+ }
690
+
691
+ function Option(text, value, defaultSelected, selected) {
692
+ if (text === undefined) {
693
+ text = "";
694
+ }
695
+ text = webIDLConversions.DOMString(text);
696
+
697
+ if (value !== undefined) {
698
+ value = webIDLConversions.DOMString(value);
699
+ }
700
+
701
+ defaultSelected = webIDLConversions.boolean(defaultSelected);
702
+ selected = webIDLConversions.boolean(selected);
703
+
704
+ const option = window._document.createElement("option");
705
+ const impl = idlUtils.implForWrapper(option);
706
+
707
+ if (text !== "") {
708
+ impl.text = text;
709
+ }
710
+ if (value !== undefined) {
711
+ impl.setAttributeNS(null, "value", value);
712
+ }
713
+ if (defaultSelected) {
714
+ impl.setAttributeNS(null, "selected", "");
715
+ }
716
+ impl._selectedness = selected;
717
+
718
+ return option;
719
+ }
720
+ Object.defineProperty(Option, "prototype", {
721
+ value: window.HTMLOptionElement.prototype,
722
+ configurable: false,
723
+ enumerable: false,
724
+ writable: false
725
+ });
726
+ Object.defineProperty(window, "Option", {
727
+ value: Option,
728
+ configurable: true,
729
+ enumerable: false,
730
+ writable: true
731
+ });
732
+
733
+ function Image(...args) {
734
+ const img = window._document.createElement("img");
735
+ const impl = idlUtils.implForWrapper(img);
736
+
737
+ if (args.length > 0) {
738
+ impl.setAttributeNS(null, "width", String(args[0]));
739
+ }
740
+ if (args.length > 1) {
741
+ impl.setAttributeNS(null, "height", String(args[1]));
742
+ }
743
+
744
+ return img;
745
+ }
746
+ Object.defineProperty(Image, "prototype", {
747
+ value: window.HTMLImageElement.prototype,
748
+ configurable: false,
749
+ enumerable: false,
750
+ writable: false
751
+ });
752
+ Object.defineProperty(window, "Image", {
753
+ value: Image,
754
+ configurable: true,
755
+ enumerable: false,
756
+ writable: true
757
+ });
758
+
759
+ function Audio(src) {
760
+ const audio = window._document.createElement("audio");
761
+ const impl = idlUtils.implForWrapper(audio);
762
+ impl.setAttributeNS(null, "preload", "auto");
763
+
764
+ if (src !== undefined) {
765
+ impl.setAttributeNS(null, "src", String(src));
766
+ }
767
+
768
+ return audio;
769
+ }
770
+ Object.defineProperty(Audio, "prototype", {
771
+ value: window.HTMLAudioElement.prototype,
772
+ configurable: false,
773
+ enumerable: false,
774
+ writable: false
775
+ });
776
+ Object.defineProperty(window, "Audio", {
777
+ value: Audio,
778
+ configurable: true,
779
+ enumerable: false,
780
+ writable: true
781
+ });
782
+
783
+ window.postMessage = function (message, targetOrigin) {
784
+ if (arguments.length < 2) {
785
+ throw new TypeError("'postMessage' requires 2 arguments: 'message' and 'targetOrigin'");
786
+ }
787
+
788
+ targetOrigin = webIDLConversions.DOMString(targetOrigin);
789
+
790
+ if (targetOrigin === "/") {
791
+ // TODO: targetOrigin === "/" requires getting incumbent settings object.
792
+ // Maybe could be done with Error stack traces??
793
+ return;
794
+ } else if (targetOrigin !== "*") {
795
+ const parsedURL = whatwgURL.parseURL(targetOrigin);
796
+ if (parsedURL === null) {
797
+ throw DOMException.create(window, [
798
+ "Failed to execute 'postMessage' on 'Window': " +
799
+ "Invalid target origin '" + targetOrigin + "' in a call to 'postMessage'.",
800
+ "SyntaxError"
801
+ ]);
802
+ }
803
+ targetOrigin = whatwgURL.serializeURLOrigin(parsedURL);
804
+
805
+ if (targetOrigin !== idlUtils.implForWrapper(window._document)._origin) {
806
+ // Not implemented.
807
+ return;
808
+ }
809
+ }
810
+
811
+ // TODO: event.source - requires reference to incumbent window
812
+ // TODO: event.origin - requires reference to incumbent window
813
+ // TODO: event.ports
814
+ // TODO: event.data - requires structured cloning
815
+ setTimeout(() => {
816
+ fireAnEvent("message", window, MessageEvent, { data: message });
817
+ }, 0);
818
+ };
819
+
820
+ window.atob = function (str) {
821
+ try {
822
+ return atob(str);
823
+ } catch {
824
+ // Convert Node.js DOMException to one from our global.
825
+ throw DOMException.create(window, [
826
+ "The string to be decoded contains invalid characters.",
827
+ "InvalidCharacterError"
828
+ ]);
829
+ }
830
+ };
831
+
832
+ window.btoa = function (str) {
833
+ try {
834
+ return btoa(str);
835
+ } catch {
836
+ // Convert Node.js DOMException to one from our global.
837
+ throw DOMException.create(window, [
838
+ "The string to be encoded contains invalid characters.",
839
+ "InvalidCharacterError"
840
+ ]);
841
+ }
842
+ };
843
+
844
+ window.stop = function () {
845
+ const manager = idlUtils.implForWrapper(window._document)._requestManager;
846
+ if (manager) {
847
+ manager.close();
848
+ }
849
+ };
850
+
851
+ window.close = function () {
852
+ // Recursively close child frame windows, then ourselves (depth-first).
853
+ for (let i = 0; i < window.length; ++i) {
854
+ window[i].close();
855
+ }
856
+
857
+ // Clear out all listeners. Any in-flight or upcoming events should not get delivered.
858
+ idlUtils.implForWrapper(window)._eventListeners = Object.create(null);
859
+
860
+ if (window._document) {
861
+ if (window._document.body) {
862
+ window._document.body.innerHTML = "";
863
+ }
864
+
865
+ if (window._document.close) {
866
+ // It's especially important to clear out the listeners here because document.close() causes a "load" event to
867
+ // fire.
868
+ idlUtils.implForWrapper(window._document)._eventListeners = Object.create(null);
869
+ window._document.close();
870
+ }
871
+ const doc = idlUtils.implForWrapper(window._document);
872
+ if (doc._requestManager) {
873
+ doc._requestManager.close();
874
+ }
875
+ delete window._document;
876
+ }
877
+
878
+ stopAllTimers();
879
+ WebSocketImpl.cleanUpWindow(window);
880
+ };
881
+
882
+ window.getComputedStyle = function (elt, pseudoElt = undefined) {
883
+ elt = Element.convert(window, elt);
884
+ if (pseudoElt !== undefined && pseudoElt !== null) {
885
+ pseudoElt = webIDLConversions.DOMString(pseudoElt);
886
+ }
887
+
888
+ if (pseudoElt !== undefined && pseudoElt !== null && pseudoElt !== "") {
889
+ // TODO: Parse pseudoElt
890
+
891
+ if (SHADOW_DOM_PSEUDO_REGEXP.test(pseudoElt)) {
892
+ throw new TypeError("Tried to get the computed style of a Shadow DOM pseudo-element.");
893
+ }
894
+
895
+ notImplemented("window.getComputedStyle(elt, pseudoElt)", window);
896
+ }
897
+
898
+ const declaration = new CSSStyleDeclaration();
899
+ const { forEach } = Array.prototype;
900
+
901
+ const elementDeclaration = getDeclarationForElement(elt);
902
+ forEach.call(elementDeclaration, property => {
903
+ declaration.setProperty(
904
+ property,
905
+ elementDeclaration.getPropertyValue(property),
906
+ elementDeclaration.getPropertyPriority(property)
907
+ );
908
+ });
909
+
910
+ // https://drafts.csswg.org/cssom/#dom-window-getcomputedstyle
911
+ const declarations = Object.keys(propertiesWithResolvedValueImplemented);
912
+ forEach.call(declarations, property => {
913
+ declaration.setProperty(property, getResolvedValue(elt, property));
914
+ });
915
+
916
+ return declaration;
917
+ };
918
+
919
+ window.getSelection = function () {
920
+ return window._document.getSelection();
921
+ };
922
+
923
+ // The captureEvents() and releaseEvents() methods must do nothing
924
+ window.captureEvents = function () {};
925
+
926
+ window.releaseEvents = function () {};
927
+
928
+ // ### PUBLIC DATA PROPERTIES (TODO: should be getters)
929
+
930
+ function wrapConsoleMethod(method) {
931
+ return (...args) => {
932
+ window._virtualConsole.emit(method, ...args);
933
+ };
934
+ }
935
+
936
+ window.console = {
937
+ assert: wrapConsoleMethod("assert"),
938
+ clear: wrapConsoleMethod("clear"),
939
+ count: wrapConsoleMethod("count"),
940
+ countReset: wrapConsoleMethod("countReset"),
941
+ debug: wrapConsoleMethod("debug"),
942
+ dir: wrapConsoleMethod("dir"),
943
+ dirxml: wrapConsoleMethod("dirxml"),
944
+ error: wrapConsoleMethod("error"),
945
+ group: wrapConsoleMethod("group"),
946
+ groupCollapsed: wrapConsoleMethod("groupCollapsed"),
947
+ groupEnd: wrapConsoleMethod("groupEnd"),
948
+ info: wrapConsoleMethod("info"),
949
+ log: wrapConsoleMethod("log"),
950
+ table: wrapConsoleMethod("table"),
951
+ time: wrapConsoleMethod("time"),
952
+ timeLog: wrapConsoleMethod("timeLog"),
953
+ timeEnd: wrapConsoleMethod("timeEnd"),
954
+ trace: wrapConsoleMethod("trace"),
955
+ warn: wrapConsoleMethod("warn")
956
+ };
957
+
958
+ function notImplementedMethod(name) {
959
+ return function () {
960
+ notImplemented(name, window);
961
+ };
962
+ }
963
+
964
+ define(window, {
965
+ name: "",
966
+ status: "",
967
+ devicePixelRatio: 1,
968
+ innerWidth: 1024,
969
+ innerHeight: 768,
970
+ outerWidth: 1024,
971
+ outerHeight: 768,
972
+ pageXOffset: 0,
973
+ pageYOffset: 0,
974
+ screenX: 0,
975
+ screenLeft: 0,
976
+ screenY: 0,
977
+ screenTop: 0,
978
+ scrollX: 0,
979
+ scrollY: 0,
980
+
981
+ alert: notImplementedMethod("window.alert"),
982
+ blur: notImplementedMethod("window.blur"),
983
+ confirm: notImplementedMethod("window.confirm"),
984
+ focus: notImplementedMethod("window.focus"),
985
+ moveBy: notImplementedMethod("window.moveBy"),
986
+ moveTo: notImplementedMethod("window.moveTo"),
987
+ open: notImplementedMethod("window.open"),
988
+ print: notImplementedMethod("window.print"),
989
+ prompt: notImplementedMethod("window.prompt"),
990
+ resizeBy: notImplementedMethod("window.resizeBy"),
991
+ resizeTo: notImplementedMethod("window.resizeTo"),
992
+ scroll: notImplementedMethod("window.scroll"),
993
+ scrollBy: notImplementedMethod("window.scrollBy"),
994
+ scrollTo: notImplementedMethod("window.scrollTo")
995
+ });
996
+ }
997
+
998
+ function makeReplaceablePropertyDescriptor(property, window) {
999
+ const desc = {
1000
+ set(value) {
1001
+ Object.defineProperty(window, property, {
1002
+ configurable: true,
1003
+ enumerable: true,
1004
+ writable: true,
1005
+ value
1006
+ });
1007
+ }
1008
+ };
1009
+
1010
+ Object.defineProperty(desc.set, "name", { value: `set ${property}` });
1011
+ return desc;
1012
+ }