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,1097 @@
1
+ "use strict";
2
+ const DOMException = require("../generated/DOMException");
3
+ const FileList = require("../generated/FileList");
4
+ const Decimal = require("decimal.js");
5
+ const HTMLElementImpl = require("./HTMLElement-impl").implementation;
6
+ const idlUtils = require("../generated/utils");
7
+ const DefaultConstraintValidationImpl =
8
+ require("../constraint-validation/DefaultConstraintValidation-impl").implementation;
9
+ const ValidityState = require("../generated/ValidityState");
10
+ const { mixin } = require("../../utils");
11
+ const { domSymbolTree, cloningSteps } = require("../helpers/internal-constants");
12
+ const { getLabelsForLabelable, formOwner } = require("../helpers/form-controls");
13
+ const { fireAnEvent } = require("../helpers/events");
14
+ const {
15
+ isDisabled,
16
+ isValidEmailAddress,
17
+ isValidAbsoluteURL,
18
+ sanitizeValueByType
19
+ } = require("../helpers/form-controls");
20
+ const {
21
+ asciiCaseInsensitiveMatch,
22
+ asciiLowercase,
23
+ parseFloatingPointNumber,
24
+ splitOnCommas
25
+ } = require("../helpers/strings");
26
+ const { isDate } = require("../helpers/dates-and-times");
27
+ const {
28
+ convertStringToNumberByType,
29
+ convertStringToDateByType,
30
+ serializeDateByType,
31
+ convertNumberToStringByType
32
+ } = require("../helpers/number-and-date-inputs");
33
+
34
+ const filesSymbol = Symbol("files");
35
+
36
+ // https://html.spec.whatwg.org/multipage/input.html#attr-input-type
37
+ const inputAllowedTypes = new Set([
38
+ "hidden", "text", "search", "tel", "url", "email", "password", "date",
39
+ "month", "week", "time", "datetime-local", "number", "range", "color", "checkbox", "radio",
40
+ "file", "submit", "image", "reset", "button"
41
+ ]);
42
+
43
+ // https://html.spec.whatwg.org/multipage/input.html#concept-input-apply
44
+
45
+ const variableLengthSelectionAllowedTypes = new Set(["text", "search", "url", "tel", "password"]);
46
+ const numericTypes = new Set(["date", "month", "week", "time", "datetime-local", "number", "range"]);
47
+
48
+ const applicableTypesForIDLMember = {
49
+ valueAsDate: new Set(["date", "month", "week", "time"]),
50
+ valueAsNumber: numericTypes,
51
+
52
+ select: new Set([
53
+ "text", "search", "url", "tel", "email", "password", "date", "month", "week",
54
+ "time", "datetime-local", "number", "color", "file"
55
+ ]),
56
+ selectionStart: variableLengthSelectionAllowedTypes,
57
+ selectionEnd: variableLengthSelectionAllowedTypes,
58
+ selectionDirection: variableLengthSelectionAllowedTypes,
59
+ setRangeText: variableLengthSelectionAllowedTypes,
60
+ setSelectionRange: variableLengthSelectionAllowedTypes,
61
+ stepDown: numericTypes,
62
+ stepUp: numericTypes
63
+ };
64
+
65
+ const lengthPatternSizeTypes = new Set(["text", "search", "url", "tel", "email", "password"]);
66
+ const readonlyTypes =
67
+ new Set([...lengthPatternSizeTypes, "date", "month", "week", "time", "datetime-local", "number"]);
68
+
69
+ const applicableTypesForContentAttribute = {
70
+ list: new Set(["text", "search", "url", "tel", "email", ...numericTypes, "color"]),
71
+ max: numericTypes,
72
+ maxlength: lengthPatternSizeTypes,
73
+ min: numericTypes,
74
+ minlength: lengthPatternSizeTypes,
75
+ multiple: new Set(["email", "file"]),
76
+ pattern: lengthPatternSizeTypes,
77
+ readonly: readonlyTypes,
78
+ required: new Set([...readonlyTypes, "checkbox", "radio", "file"]),
79
+ step: numericTypes
80
+ };
81
+
82
+ const valueAttributeDefaultMode = new Set(["hidden", "submit", "image", "reset", "button"]);
83
+ const valueAttributeDefaultOnMode = new Set(["checkbox", "radio"]);
84
+
85
+ function valueAttributeMode(type) {
86
+ if (valueAttributeDefaultMode.has(type)) {
87
+ return "default";
88
+ }
89
+ if (valueAttributeDefaultOnMode.has(type)) {
90
+ return "default/on";
91
+ }
92
+ if (type === "file") {
93
+ return "filename";
94
+ }
95
+ return "value";
96
+ }
97
+
98
+ function getTypeFromAttribute(typeAttribute) {
99
+ if (typeof typeAttribute !== "string") {
100
+ return "text";
101
+ }
102
+ const type = asciiLowercase(typeAttribute);
103
+ return inputAllowedTypes.has(type) ? type : "text";
104
+ }
105
+
106
+ class HTMLInputElementImpl extends HTMLElementImpl {
107
+ constructor(globalObject, args, privateData) {
108
+ super(globalObject, args, privateData);
109
+
110
+ this._selectionStart = this._selectionEnd = 0;
111
+ this._selectionDirection = "none";
112
+ this._value = "";
113
+ this._dirtyValue = false;
114
+ this._checkedness = false;
115
+ this._dirtyCheckedness = false;
116
+
117
+ this._preCheckedRadioState = null;
118
+ this._legacyActivationBehaviorPreviousIndeterminateState = false;
119
+
120
+ this.indeterminate = false;
121
+
122
+ this._customValidityErrorMessage = "";
123
+
124
+ this._labels = null;
125
+
126
+ this._hasActivationBehavior = true;
127
+ }
128
+
129
+ // https://html.spec.whatwg.org/multipage/input.html#concept-input-value-string-number
130
+ get _convertStringToNumber() {
131
+ return convertStringToNumberByType[this.type];
132
+ }
133
+
134
+ get _convertNumberToString() {
135
+ return convertNumberToStringByType[this.type];
136
+ }
137
+
138
+ get _convertDateToString() {
139
+ return serializeDateByType[this.type];
140
+ }
141
+
142
+ get _convertStringToDate() {
143
+ return convertStringToDateByType[this.type];
144
+ }
145
+
146
+ _isStepAligned(v) {
147
+ return new Decimal(v).minus(this._stepBase)
148
+ .modulo(this._allowedValueStep)
149
+ .isZero();
150
+ }
151
+
152
+ // Returns a Decimal.
153
+ _stepAlign(v, roundUp) {
154
+ const allowedValueStep = this._allowedValueStep;
155
+ const stepBase = this._stepBase;
156
+
157
+ return new Decimal(v).minus(stepBase)
158
+ .toNearest(allowedValueStep, roundUp ? Decimal.ROUND_UP : Decimal.ROUND_DOWN)
159
+ .add(stepBase);
160
+ }
161
+
162
+ // For <input>, https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#concept-fe-value
163
+ // is a simple value that is gotten and set, not computed.
164
+ _getValue() {
165
+ return this._value;
166
+ }
167
+
168
+ _legacyPreActivationBehavior() {
169
+ if (this.type === "checkbox") {
170
+ this.checked = !this.checked;
171
+ this._legacyActivationBehaviorPreviousIndeterminateState = this.indeterminate;
172
+ this.indeterminate = false;
173
+ } else if (this.type === "radio") {
174
+ this._preCheckedRadioState = this.checked;
175
+ this.checked = true;
176
+ }
177
+ }
178
+
179
+ _legacyCanceledActivationBehavior() {
180
+ if (this.type === "checkbox") {
181
+ this.checked = !this.checked;
182
+ this.indeterminate = this._legacyActivationBehaviorPreviousIndeterminateState;
183
+ } else if (this.type === "radio") {
184
+ if (this._preCheckedRadioState !== null) {
185
+ this.checked = this._preCheckedRadioState;
186
+ this._preCheckedRadioState = null;
187
+ }
188
+ }
189
+ }
190
+
191
+ _activationBehavior(event) {
192
+ if (!this._mutable && this.type !== "checkbox" && this.type !== "radio") {
193
+ return;
194
+ }
195
+
196
+ const { form } = this;
197
+
198
+ if (this.type === "checkbox" || (this.type === "radio" && !this._preCheckedRadioState)) {
199
+ if (this.isConnected) {
200
+ fireAnEvent("input", this, undefined, { bubbles: true });
201
+ fireAnEvent("change", this, undefined, { bubbles: true });
202
+ }
203
+ } else if (form && this.type === "image") {
204
+ // https://html.spec.whatwg.org/multipage/input.html#image-button-state-(type=image):input-activation-behavior
205
+
206
+ // TODO: if/when layout is implemented, record the selected coordinate at the start of dispatch and use it here,
207
+ // rather than relying on these getters that just mirror pageX/Y outside of dispatch
208
+ this._selectedCoordinate = { x: event.offsetX, y: event.offsetY };
209
+ form._doRequestSubmit(this);
210
+ } else if (form && this.type === "submit") {
211
+ form._doRequestSubmit(this);
212
+ } else if (form && this.type === "reset") {
213
+ form._doReset();
214
+ }
215
+ }
216
+
217
+ _attrModified(name, value, oldVal) {
218
+ const wrapper = idlUtils.wrapperForImpl(this);
219
+ if (!this._dirtyValue && name === "value") {
220
+ this._value = sanitizeValueByType(this, wrapper.defaultValue);
221
+ }
222
+ if (!this._dirtyCheckedness && name === "checked") {
223
+ this._checkedness = wrapper.defaultChecked;
224
+ if (this._checkedness) {
225
+ this._removeOtherRadioCheckedness();
226
+ }
227
+ }
228
+
229
+ if (name === "name" || name === "type") {
230
+ if (this._checkedness) {
231
+ this._removeOtherRadioCheckedness();
232
+ }
233
+ }
234
+
235
+ if (name === "type") {
236
+ const prevType = getTypeFromAttribute(oldVal);
237
+ const curType = getTypeFromAttribute(value);
238
+ // When an input element's type attribute changes state…
239
+ if (prevType !== curType) {
240
+ const prevValueMode = valueAttributeMode(prevType);
241
+ const curValueMode = valueAttributeMode(curType);
242
+ if (prevValueMode === "value" && this._value !== "" &&
243
+ (curValueMode === "default" || curValueMode === "default/on")) {
244
+ this.setAttributeNS(null, "value", this._value);
245
+ } else if (prevValueMode !== "value" && curValueMode === "value") {
246
+ this._value = this.getAttributeNS(null, "value") || "";
247
+ this._dirtyValue = false;
248
+ } else if (prevValueMode !== "filename" && curValueMode === "filename") {
249
+ this._value = "";
250
+ }
251
+
252
+ this._signalATypeChange();
253
+
254
+ this._value = sanitizeValueByType(this, this._value);
255
+
256
+ const previouslySelectable = this._idlMemberApplies("setRangeText", prevType);
257
+ const nowSelectable = this._idlMemberApplies("setRangeText", curType);
258
+ if (!previouslySelectable && nowSelectable) {
259
+ this._selectionStart = 0;
260
+ this._selectionEnd = 0;
261
+ this._selectionDirection = "none";
262
+ }
263
+ }
264
+ }
265
+
266
+ super._attrModified(name, value, oldVal);
267
+ }
268
+
269
+ // https://html.spec.whatwg.org/multipage/input.html#signal-a-type-change
270
+ _signalATypeChange() {
271
+ if (this._checkedness) {
272
+ this._removeOtherRadioCheckedness();
273
+ }
274
+ }
275
+
276
+ _formReset() {
277
+ const wrapper = idlUtils.wrapperForImpl(this);
278
+ this._value = sanitizeValueByType(this, wrapper.defaultValue);
279
+ this._dirtyValue = false;
280
+ this._checkedness = wrapper.defaultChecked;
281
+ this._dirtyCheckedness = false;
282
+ if (this._checkedness) {
283
+ this._removeOtherRadioCheckedness();
284
+ }
285
+ }
286
+
287
+ _changedFormOwner() {
288
+ if (this._checkedness) {
289
+ this._removeOtherRadioCheckedness();
290
+ }
291
+ }
292
+
293
+ get _otherRadioGroupElements() {
294
+ const wrapper = idlUtils.wrapperForImpl(this);
295
+ const root = this._radioButtonGroupRoot;
296
+ if (!root) {
297
+ return [];
298
+ }
299
+
300
+ const result = [];
301
+
302
+ const descendants = domSymbolTree.treeIterator(root);
303
+ for (const candidate of descendants) {
304
+ if (candidate._radioButtonGroupRoot !== root) {
305
+ continue;
306
+ }
307
+
308
+ const candidateWrapper = idlUtils.wrapperForImpl(candidate);
309
+ if (!candidateWrapper.name || candidateWrapper.name !== wrapper.name) {
310
+ continue;
311
+ }
312
+
313
+ if (candidate !== this) {
314
+ result.push(candidate);
315
+ }
316
+ }
317
+ return result;
318
+ }
319
+
320
+ _removeOtherRadioCheckedness() {
321
+ for (const radioGroupElement of this._otherRadioGroupElements) {
322
+ radioGroupElement._checkedness = false;
323
+ }
324
+ }
325
+
326
+ get _radioButtonGroupRoot() {
327
+ const wrapper = idlUtils.wrapperForImpl(this);
328
+ if (this.type !== "radio" || !wrapper.name) {
329
+ return null;
330
+ }
331
+
332
+ let e = domSymbolTree.parent(this);
333
+ while (e) {
334
+ // root node of this home sub tree
335
+ // or the form element we belong to
336
+ if (!domSymbolTree.parent(e) || e.nodeName.toUpperCase() === "FORM") {
337
+ return e;
338
+ }
339
+ e = domSymbolTree.parent(e);
340
+ }
341
+ return null;
342
+ }
343
+
344
+ _someInRadioGroup(name) {
345
+ if (this[name]) {
346
+ return true;
347
+ }
348
+ return this._otherRadioGroupElements.some(radioGroupElement => radioGroupElement[name]);
349
+ }
350
+
351
+ get _mutable() {
352
+ return !isDisabled(this) && !this._hasAttributeAndApplies("readonly");
353
+ }
354
+
355
+ get labels() {
356
+ return getLabelsForLabelable(this);
357
+ }
358
+
359
+ get form() {
360
+ return formOwner(this);
361
+ }
362
+
363
+ get checked() {
364
+ return this._checkedness;
365
+ }
366
+
367
+ set checked(checked) {
368
+ this._checkedness = Boolean(checked);
369
+ this._dirtyCheckedness = true;
370
+ if (this._checkedness) {
371
+ this._removeOtherRadioCheckedness();
372
+ }
373
+ }
374
+
375
+ get value() {
376
+ switch (valueAttributeMode(this.type)) {
377
+ // https://html.spec.whatwg.org/multipage/input.html#dom-input-value-value
378
+ case "value":
379
+ return this._getValue();
380
+ // https://html.spec.whatwg.org/multipage/input.html#dom-input-value-default
381
+ case "default": {
382
+ const attr = this.getAttributeNS(null, "value");
383
+ return attr !== null ? attr : "";
384
+ }
385
+ // https://html.spec.whatwg.org/multipage/input.html#dom-input-value-default-on
386
+ case "default/on": {
387
+ const attr = this.getAttributeNS(null, "value");
388
+ return attr !== null ? attr : "on";
389
+ }
390
+ // https://html.spec.whatwg.org/multipage/input.html#dom-input-value-filename
391
+ case "filename":
392
+ return this.files.length ? "C:\\fakepath\\" + this.files[0].name : "";
393
+ default:
394
+ throw new Error("jsdom internal error: unknown value attribute mode");
395
+ }
396
+ }
397
+
398
+ set value(val) {
399
+ switch (valueAttributeMode(this.type)) {
400
+ // https://html.spec.whatwg.org/multipage/input.html#dom-input-value-value
401
+ case "value": {
402
+ const oldValue = this._value;
403
+ this._value = sanitizeValueByType(this, val);
404
+ this._dirtyValue = true;
405
+
406
+ if (oldValue !== this._value) {
407
+ this._selectionStart = this._selectionEnd = this._getValueLength();
408
+ this._selectionDirection = "none";
409
+ }
410
+ break;
411
+ }
412
+
413
+ // https://html.spec.whatwg.org/multipage/input.html#dom-input-value-default
414
+ // https://html.spec.whatwg.org/multipage/input.html#dom-input-value-default-on
415
+ case "default":
416
+ case "default/on":
417
+ this.setAttributeNS(null, "value", val);
418
+ break;
419
+
420
+ // https://html.spec.whatwg.org/multipage/input.html#dom-input-value-filename
421
+ case "filename":
422
+ if (val === "") {
423
+ this.files.length = 0;
424
+ } else {
425
+ throw DOMException.create(this._globalObject, [
426
+ "This input element accepts a filename, which may only be programmatically set to the empty string.",
427
+ "InvalidStateError"
428
+ ]);
429
+ }
430
+ break;
431
+
432
+ default:
433
+ throw new Error("jsdom internal error: unknown value attribute mode");
434
+ }
435
+ }
436
+
437
+ // https://html.spec.whatwg.org/multipage/input.html#dom-input-valueasdate
438
+ get valueAsDate() {
439
+ if (!this._idlMemberApplies("valueAsDate")) {
440
+ return null;
441
+ }
442
+
443
+ const window = this._ownerDocument._defaultView;
444
+ const convertedValue = this._convertStringToDate(this._value);
445
+
446
+ if (convertedValue instanceof Date) {
447
+ return new window.Date(convertedValue.getTime());
448
+ }
449
+
450
+ return null;
451
+ }
452
+
453
+ set valueAsDate(v) {
454
+ if (!this._idlMemberApplies("valueAsDate")) {
455
+ throw DOMException.create(this._globalObject, [
456
+ "Failed to set the 'valueAsDate' property on 'HTMLInputElement': This input element does not support Date " +
457
+ "values.",
458
+ "InvalidStateError"
459
+ ]);
460
+ }
461
+
462
+ if (v !== null && !isDate(v)) {
463
+ throw new TypeError("Failed to set the 'valueAsDate' property on 'HTMLInputElement': The provided value is " +
464
+ "not a Date.");
465
+ }
466
+
467
+ if (v === null || isNaN(v)) {
468
+ this._value = "";
469
+ return;
470
+ }
471
+
472
+ this._value = this._convertDateToString(v);
473
+ }
474
+
475
+ // https://html.spec.whatwg.org/multipage/input.html#dom-input-valueasnumber
476
+ get valueAsNumber() {
477
+ if (!this._idlMemberApplies("valueAsNumber")) {
478
+ return NaN;
479
+ }
480
+
481
+ const parsedValue = this._convertStringToNumber(this._value);
482
+ return parsedValue !== null ? parsedValue : NaN;
483
+ }
484
+
485
+ set valueAsNumber(v) {
486
+ if (!isFinite(v) && !isNaN(v)) {
487
+ throw new TypeError("Failed to set infinite value as Number");
488
+ }
489
+
490
+ if (!this._idlMemberApplies("valueAsNumber")) {
491
+ throw DOMException.create(this._globalObject, [
492
+ "Failed to set the 'valueAsNumber' property on 'HTMLInputElement': This input element does not support " +
493
+ "Number values.",
494
+ "InvalidStateError"
495
+ ]);
496
+ }
497
+
498
+ if (isNaN(v)) {
499
+ this._value = "";
500
+ } else {
501
+ this._value = this._convertNumberToString(v);
502
+ }
503
+ }
504
+
505
+ // https://html.spec.whatwg.org/multipage/input.html#dom-input-stepup
506
+ _stepUpdate(n, isUp) {
507
+ const methodName = isUp ? "stepUp" : "stepDown";
508
+ if (!this._idlMemberApplies(methodName)) {
509
+ throw DOMException.create(this._globalObject, [
510
+ `Failed to invoke '${methodName}' method on 'HTMLInputElement': ` +
511
+ "This input element does not support Number values.",
512
+ "InvalidStateError"
513
+ ]);
514
+ }
515
+
516
+ const allowedValueStep = this._allowedValueStep;
517
+ if (allowedValueStep === null) {
518
+ throw DOMException.create(this._globalObject, [
519
+ `Failed to invoke '${methodName}' method on 'HTMLInputElement': ` +
520
+ "This input element does not support value step.",
521
+ "InvalidStateError"
522
+ ]);
523
+ }
524
+
525
+ const min = this._minimum;
526
+ const max = this._maximum;
527
+
528
+ if (min !== null && max !== null) {
529
+ if (min > max) {
530
+ return;
531
+ }
532
+
533
+ const candidateStepValue = this._stepAlign(Decimal.add(min, allowedValueStep), /* roundUp = */ false);
534
+ if (candidateStepValue.lt(min) || candidateStepValue.gt(max)) {
535
+ return;
536
+ }
537
+ }
538
+
539
+ let value = 0;
540
+ try {
541
+ value = this.valueAsNumber;
542
+ if (isNaN(value)) { // Empty value is parsed as NaN.
543
+ value = 0;
544
+ }
545
+ } catch {
546
+ // Step 5. Default value is 0.
547
+ }
548
+ value = new Decimal(value);
549
+
550
+ const valueBeforeStepping = value;
551
+
552
+ if (!this._isStepAligned(value)) {
553
+ value = this._stepAlign(value, /* roundUp = */ isUp);
554
+ } else {
555
+ let delta = Decimal.mul(n, allowedValueStep);
556
+ if (!isUp) {
557
+ delta = delta.neg();
558
+ }
559
+ value = value.add(delta);
560
+ }
561
+
562
+ if (min !== null && value.lt(min)) {
563
+ value = this._stepAlign(min, /* roundUp = */ true);
564
+ }
565
+
566
+ if (max !== null && value.gt(max)) {
567
+ value = this._stepAlign(max, /* roundUp = */ false);
568
+ }
569
+
570
+ if (isUp ? value.lt(valueBeforeStepping) : value.gt(valueBeforeStepping)) {
571
+ return;
572
+ }
573
+
574
+ this._value = this._convertNumberToString(value.toNumber());
575
+ }
576
+
577
+ stepDown(n = 1) {
578
+ return this._stepUpdate(n, false);
579
+ }
580
+
581
+ stepUp(n = 1) {
582
+ return this._stepUpdate(n, true);
583
+ }
584
+
585
+ get files() {
586
+ if (this.type === "file") {
587
+ this[filesSymbol] ||= FileList.createImpl(this._globalObject);
588
+ } else {
589
+ this[filesSymbol] = null;
590
+ }
591
+ return this[filesSymbol];
592
+ }
593
+
594
+ set files(value) {
595
+ if (this.type === "file" && value !== null) {
596
+ this[filesSymbol] = value;
597
+ }
598
+ }
599
+
600
+ get type() {
601
+ const typeAttribute = this.getAttributeNS(null, "type");
602
+ return getTypeFromAttribute(typeAttribute);
603
+ }
604
+
605
+ set type(type) {
606
+ this.setAttributeNS(null, "type", type);
607
+ }
608
+
609
+ _dispatchSelectEvent() {
610
+ setTimeout(() => fireAnEvent("select", this, undefined, { bubbles: true, cancelable: false }), 0);
611
+ }
612
+
613
+ _getValueLength() {
614
+ return typeof this.value === "string" ? this.value.length : 0;
615
+ }
616
+
617
+ select() {
618
+ if (!this._idlMemberApplies("select")) {
619
+ return;
620
+ }
621
+
622
+ this._selectionStart = 0;
623
+ this._selectionEnd = this._getValueLength();
624
+ this._selectionDirection = "none";
625
+ this._dispatchSelectEvent();
626
+ }
627
+
628
+ get selectionStart() {
629
+ if (!this._idlMemberApplies("selectionStart")) {
630
+ return null;
631
+ }
632
+
633
+ return this._selectionStart;
634
+ }
635
+
636
+ set selectionStart(start) {
637
+ if (!this._idlMemberApplies("selectionStart")) {
638
+ throw DOMException.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
639
+ }
640
+
641
+ this.setSelectionRange(start, Math.max(start, this._selectionEnd), this._selectionDirection);
642
+ }
643
+
644
+ get selectionEnd() {
645
+ if (!this._idlMemberApplies("selectionEnd")) {
646
+ return null;
647
+ }
648
+
649
+ return this._selectionEnd;
650
+ }
651
+
652
+ set selectionEnd(end) {
653
+ if (!this._idlMemberApplies("selectionEnd")) {
654
+ throw DOMException.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
655
+ }
656
+
657
+ this.setSelectionRange(this._selectionStart, end, this._selectionDirection);
658
+ }
659
+
660
+ get selectionDirection() {
661
+ if (!this._idlMemberApplies("selectionDirection")) {
662
+ return null;
663
+ }
664
+
665
+ return this._selectionDirection;
666
+ }
667
+
668
+ set selectionDirection(dir) {
669
+ if (!this._idlMemberApplies("selectionDirection")) {
670
+ throw DOMException.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
671
+ }
672
+
673
+ this.setSelectionRange(this._selectionStart, this._selectionEnd, dir);
674
+ }
675
+
676
+ setSelectionRange(start, end, dir) {
677
+ if (!this._idlMemberApplies("setSelectionRange")) {
678
+ throw DOMException.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
679
+ }
680
+
681
+ this._selectionEnd = Math.min(end, this._getValueLength());
682
+ this._selectionStart = Math.min(start, this._selectionEnd);
683
+ this._selectionDirection = dir === "forward" || dir === "backward" ? dir : "none";
684
+ this._dispatchSelectEvent();
685
+ }
686
+
687
+ setRangeText(repl, start, end, selectionMode = "preserve") {
688
+ if (!this._idlMemberApplies("setRangeText")) {
689
+ throw DOMException.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
690
+ }
691
+
692
+ if (arguments.length < 2) {
693
+ start = this._selectionStart;
694
+ end = this._selectionEnd;
695
+ } else if (start > end) {
696
+ throw DOMException.create(this._globalObject, ["The index is not in the allowed range.", "IndexSizeError"]);
697
+ }
698
+
699
+ start = Math.min(start, this._getValueLength());
700
+ end = Math.min(end, this._getValueLength());
701
+
702
+ const val = this.value;
703
+ let selStart = this._selectionStart;
704
+ let selEnd = this._selectionEnd;
705
+
706
+ this.value = val.slice(0, start) + repl + val.slice(end);
707
+
708
+ const newEnd = start + repl.length;
709
+
710
+ if (selectionMode === "select") {
711
+ this.setSelectionRange(start, newEnd);
712
+ } else if (selectionMode === "start") {
713
+ this.setSelectionRange(start, start);
714
+ } else if (selectionMode === "end") {
715
+ this.setSelectionRange(newEnd, newEnd);
716
+ } else { // preserve
717
+ const delta = repl.length - (end - start);
718
+
719
+ if (selStart > end) {
720
+ selStart += delta;
721
+ } else if (selStart > start) {
722
+ selStart = start;
723
+ }
724
+
725
+ if (selEnd > end) {
726
+ selEnd += delta;
727
+ } else if (selEnd > start) {
728
+ selEnd = newEnd;
729
+ }
730
+
731
+ this.setSelectionRange(selStart, selEnd);
732
+ }
733
+ }
734
+
735
+ // https://html.spec.whatwg.org/multipage/input.html#the-list-attribute
736
+ get list() {
737
+ const id = this._getAttributeIfApplies("list");
738
+ if (!id) {
739
+ return null;
740
+ }
741
+
742
+ const el = this.getRootNode({}).getElementById(id);
743
+
744
+ if (el && el.localName === "datalist") {
745
+ return el;
746
+ }
747
+
748
+ return null;
749
+ }
750
+
751
+ // https://html.spec.whatwg.org/multipage/input.html#the-min-and-max-attributes
752
+ get _minimum() {
753
+ let min = this._defaultMinimum;
754
+ const attr = this._getAttributeIfApplies("min");
755
+ if (attr !== null && this._convertStringToNumber !== undefined) {
756
+ const parsed = this._convertStringToNumber(attr);
757
+ if (parsed !== null) {
758
+ min = parsed;
759
+ }
760
+ }
761
+ return min;
762
+ }
763
+
764
+ get _maximum() {
765
+ let max = this._defaultMaximum;
766
+ const attr = this._getAttributeIfApplies("max");
767
+ if (attr !== null && this._convertStringToNumber !== undefined) {
768
+ const parsed = this._convertStringToNumber(attr);
769
+ if (parsed !== null) {
770
+ max = parsed;
771
+ }
772
+ }
773
+ return max;
774
+ }
775
+
776
+ get _defaultMinimum() {
777
+ if (this.type === "range") {
778
+ return 0;
779
+ }
780
+ return null;
781
+ }
782
+
783
+ get _defaultMaximum() {
784
+ if (this.type === "range") {
785
+ return 100;
786
+ }
787
+ return null;
788
+ }
789
+
790
+ // https://html.spec.whatwg.org/multipage/input.html#concept-input-step
791
+ get _allowedValueStep() {
792
+ if (!this._contentAttributeApplies("step")) {
793
+ return null;
794
+ }
795
+ const attr = this.getAttributeNS(null, "step");
796
+ if (attr === null) {
797
+ return this._defaultStep * this._stepScaleFactor;
798
+ }
799
+ if (asciiCaseInsensitiveMatch(attr, "any")) {
800
+ return null;
801
+ }
802
+ const parsedStep = parseFloatingPointNumber(attr);
803
+ if (parsedStep === null || parsedStep <= 0) {
804
+ return this._defaultStep * this._stepScaleFactor;
805
+ }
806
+ return parsedStep * this._stepScaleFactor;
807
+ }
808
+
809
+ // https://html.spec.whatwg.org/multipage/input.html#concept-input-step-scale
810
+ get _stepScaleFactor() {
811
+ const dayInMilliseconds = 24 * 60 * 60 * 1000;
812
+ switch (this.type) {
813
+ case "week":
814
+ return 7 * dayInMilliseconds;
815
+ case "date":
816
+ return dayInMilliseconds;
817
+ case "datetime-local":
818
+ case "datetime":
819
+ case "time":
820
+ return 1000;
821
+ }
822
+ return 1;
823
+ }
824
+
825
+ // https://html.spec.whatwg.org/multipage/input.html#concept-input-step-default
826
+ get _defaultStep() {
827
+ if (this.type === "datetime-local" || this.type === "datetime" || this.type === "time") {
828
+ return 60;
829
+ }
830
+ return 1;
831
+ }
832
+
833
+ // https://html.spec.whatwg.org/multipage/input.html#concept-input-min-zero
834
+ get _stepBase() {
835
+ if (this._hasAttributeAndApplies("min")) {
836
+ const min = this._convertStringToNumber(this.getAttributeNS(null, "min"));
837
+ if (min !== null) {
838
+ return min;
839
+ }
840
+ }
841
+ if (this.hasAttributeNS(null, "value")) {
842
+ const value = this._convertStringToNumber(this.getAttributeNS(null, "value"));
843
+ if (value !== null) {
844
+ return value;
845
+ }
846
+ }
847
+ if (this._defaultStepBase !== null) {
848
+ return this._defaultStepBase;
849
+ }
850
+ return 0;
851
+ }
852
+
853
+ // https://html.spec.whatwg.org/multipage/input.html#concept-input-step-default-base
854
+ get _defaultStepBase() {
855
+ if (this.type === "week") {
856
+ // The start of week 1970-W01
857
+ return -259200000;
858
+ }
859
+ return null;
860
+ }
861
+
862
+ // https://html.spec.whatwg.org/multipage/input.html#common-input-element-attributes
863
+ // When an attribute doesn't apply to an input element, user agents must ignore the attribute.
864
+ _contentAttributeApplies(attribute) {
865
+ return applicableTypesForContentAttribute[attribute].has(this.type);
866
+ }
867
+
868
+ _hasAttributeAndApplies(attribute) {
869
+ return this._contentAttributeApplies(attribute) && this.hasAttributeNS(null, attribute);
870
+ }
871
+
872
+ _getAttributeIfApplies(attribute) {
873
+ if (this._contentAttributeApplies(attribute)) {
874
+ return this.getAttributeNS(null, attribute);
875
+ }
876
+ return null;
877
+ }
878
+
879
+ _idlMemberApplies(member, type = this.type) {
880
+ return applicableTypesForIDLMember[member].has(type);
881
+ }
882
+
883
+ _barredFromConstraintValidationSpecialization() {
884
+ // https://html.spec.whatwg.org/multipage/input.html#hidden-state-(type=hidden)
885
+ // https://html.spec.whatwg.org/multipage/input.html#reset-button-state-(type=reset)
886
+ // https://html.spec.whatwg.org/multipage/input.html#button-state-(type=button)
887
+ const willNotValidateTypes = new Set(["hidden", "reset", "button"]);
888
+ // https://html.spec.whatwg.org/multipage/input.html#attr-input-readonly
889
+ const readOnly = this._hasAttributeAndApplies("readonly");
890
+
891
+ // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fe-disabled
892
+ return willNotValidateTypes.has(this.type) || readOnly;
893
+ }
894
+
895
+ // https://html.spec.whatwg.org/multipage/input.html#concept-input-required
896
+ get _required() {
897
+ return this._hasAttributeAndApplies("required");
898
+ }
899
+
900
+ // https://html.spec.whatwg.org/multipage/input.html#has-a-periodic-domain
901
+ get _hasAPeriodicDomain() {
902
+ return this.type === "time";
903
+ }
904
+
905
+ // https://html.spec.whatwg.org/multipage/input.html#has-a-reversed-range
906
+ get _hasAReversedRange() {
907
+ return this._hasAPeriodicDomain && this._maximum < this._minimum;
908
+ }
909
+
910
+ get validity() {
911
+ if (!this._validity) {
912
+ // Constraint validation: When an element has a reversed range, and the result of applying
913
+ // the algorithm to convert a string to a number to the string given by the element's value
914
+ // is a number, and the number obtained from that algorithm is more than the maximum and less
915
+ // than the minimum, the element is simultaneously suffering from an underflow and suffering
916
+ // from an overflow.
917
+ const reversedRangeSufferingOverUnderflow = () => {
918
+ const parsedValue = this._convertStringToNumber(this._value);
919
+ return parsedValue !== null && parsedValue > this._maximum && parsedValue < this._minimum;
920
+ };
921
+
922
+ const state = {
923
+ // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#suffering-from-being-missing
924
+ valueMissing: () => {
925
+ // https://html.spec.whatwg.org/multipage/input.html#the-required-attribute
926
+ // Constraint validation: If the element is required, and its value IDL attribute applies
927
+ // and is in the mode value, and the element is mutable, and the element's value is the
928
+ // empty string, then the element is suffering from being missing.
929
+ //
930
+ // Note: As of today, the value IDL attribute always applies.
931
+ if (this._required && valueAttributeMode(this.type) === "value" && this._mutable && this._value === "") {
932
+ return true;
933
+ }
934
+
935
+ switch (this.type) {
936
+ // https://html.spec.whatwg.org/multipage/input.html#checkbox-state-(type=checkbox)
937
+ // Constraint validation: If the element is required and its checkedness is
938
+ // false, then the element is suffering from being missing.
939
+ case "checkbox":
940
+ if (this._required && !this._checkedness) {
941
+ return true;
942
+ }
943
+ break;
944
+
945
+ // https://html.spec.whatwg.org/multipage/input.html#radio-button-state-(type=radio)
946
+ // Constraint validation: If an element in the radio button group is required,
947
+ // and all of the input elements in the radio button group have a checkedness
948
+ // that is false, then the element is suffering from being missing.
949
+ case "radio":
950
+ if (this._someInRadioGroup("_required") && !this._someInRadioGroup("checked")) {
951
+ return true;
952
+ }
953
+ break;
954
+
955
+ // https://html.spec.whatwg.org/multipage/input.html#file-upload-state-(type=file)
956
+ // Constraint validation: If the element is required and the list of selected files is
957
+ // empty, then the element is suffering from being missing.
958
+ case "file":
959
+ if (this._required && this.files.length === 0) {
960
+ return true;
961
+ }
962
+ break;
963
+ }
964
+
965
+ return false;
966
+ },
967
+
968
+ // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#suffering-from-being-too-long
969
+ // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fe-maxlength
970
+ // jsdom has no way at the moment to emulate a user interaction, so tooLong/tooShort have
971
+ // to be set to false.
972
+ tooLong: () => false,
973
+
974
+ // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#suffering-from-being-too-short
975
+ // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fe-minlength
976
+ tooShort: () => false,
977
+
978
+ // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#suffering-from-an-overflow
979
+ rangeOverflow: () => {
980
+ // https://html.spec.whatwg.org/multipage/input.html#the-min-and-max-attributes
981
+ if (this._hasAReversedRange) {
982
+ return reversedRangeSufferingOverUnderflow();
983
+ }
984
+ // Constraint validation: When the element has a maximum and does not have a reversed
985
+ // range, and the result of applying the algorithm to convert a string to a number to the
986
+ // string given by the element's value is a number, and the number obtained from that
987
+ // algorithm is more than the maximum, the element is suffering from an overflow.
988
+ if (this._maximum !== null) {
989
+ const parsedValue = this._convertStringToNumber(this._value);
990
+ if (parsedValue !== null && parsedValue > this._maximum) {
991
+ return true;
992
+ }
993
+ }
994
+ return false;
995
+ },
996
+
997
+ // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#suffering-from-an-underflow
998
+ rangeUnderflow: () => {
999
+ // https://html.spec.whatwg.org/multipage/input.html#the-min-and-max-attributes
1000
+ if (this._hasAReversedRange) {
1001
+ return reversedRangeSufferingOverUnderflow();
1002
+ }
1003
+ // Constraint validation: When the element has a minimum and does not have a reversed
1004
+ // range, and the result of applying the algorithm to convert a string to a number to the
1005
+ // string given by the element's value is a number, and the number obtained from that
1006
+ // algorithm is less than the minimum, the element is suffering from an underflow.
1007
+ if (this._minimum !== null) {
1008
+ const parsedValue = this._convertStringToNumber(this._value);
1009
+ if (parsedValue !== null && parsedValue < this._minimum) {
1010
+ return true;
1011
+ }
1012
+ }
1013
+ return false;
1014
+ },
1015
+
1016
+ // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#suffering-from-a-pattern-mismatch
1017
+ patternMismatch: () => {
1018
+ // https://html.spec.whatwg.org/multipage/input.html#the-pattern-attribute
1019
+ if (this._value === "" || !this._hasAttributeAndApplies("pattern")) {
1020
+ return false;
1021
+ }
1022
+ let regExp;
1023
+ try {
1024
+ const pattern = this.getAttributeNS(null, "pattern");
1025
+ // The pattern attribute should be matched against the entire value, not just any
1026
+ // subset, so add ^ and $ anchors. But also check the validity of the regex itself
1027
+ // first.
1028
+ new RegExp(pattern, "u"); // eslint-disable-line no-new
1029
+ regExp = new RegExp("^(?:" + pattern + ")$", "u");
1030
+ } catch {
1031
+ return false;
1032
+ }
1033
+ if (this._hasAttributeAndApplies("multiple")) {
1034
+ return !splitOnCommas(this._value).every(value => regExp.test(value));
1035
+ }
1036
+ return !regExp.test(this._value);
1037
+ },
1038
+
1039
+ // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#suffering-from-a-step-mismatch
1040
+ // https://html.spec.whatwg.org/multipage/input.html#attr-input-step
1041
+ stepMismatch: () => {
1042
+ const allowedValueStep = this._allowedValueStep;
1043
+ if (allowedValueStep === null) {
1044
+ return false;
1045
+ }
1046
+ const number = this._convertStringToNumber(this._value);
1047
+ return number !== null && !this._isStepAligned(number);
1048
+ },
1049
+
1050
+ // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#suffering-from-a-type-mismatch
1051
+ typeMismatch: () => {
1052
+ switch (this.type) {
1053
+ // https://html.spec.whatwg.org/multipage/input.html#url-state-(type=url)
1054
+ // Constraint validation: While the value of the element is neither the empty string
1055
+ // nor a valid absolute URL, the element is suffering from a type mismatch.
1056
+ case "url":
1057
+ if (this._value !== "" && !isValidAbsoluteURL(this._value)) {
1058
+ return true;
1059
+ }
1060
+ break;
1061
+
1062
+ // https://html.spec.whatwg.org/multipage/input.html#e-mail-state-(type=email)
1063
+ // Constraint validation [multiple=false]: While the value of the element is neither the empty
1064
+ // string nor a single valid e - mail address, the element is suffering from a type mismatch.
1065
+ // Constraint validation [multiple=true]: While the value of the element is not a valid e-mail address list,
1066
+ // the element is suffering from a type mismatch.
1067
+ case "email":
1068
+ if (this._value !== "" && !isValidEmailAddress(this._getValue(), this.hasAttributeNS(null, "multiple"))) {
1069
+ return true;
1070
+ }
1071
+ break;
1072
+ }
1073
+ return false;
1074
+ }
1075
+ };
1076
+
1077
+ this._validity = ValidityState.createImpl(this._globalObject, [], {
1078
+ element: this,
1079
+ state
1080
+ });
1081
+ }
1082
+ return this._validity;
1083
+ }
1084
+
1085
+ [cloningSteps](copy, node) {
1086
+ copy._value = node._value;
1087
+ copy._checkedness = node._checkedness;
1088
+ copy._dirtyValue = node._dirtyValue;
1089
+ copy._dirtyCheckedness = node._dirtyCheckedness;
1090
+ }
1091
+ }
1092
+
1093
+ mixin(HTMLInputElementImpl.prototype, DefaultConstraintValidationImpl.prototype);
1094
+
1095
+ module.exports = {
1096
+ implementation: HTMLInputElementImpl
1097
+ };