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