diff --git a/node_modules/is-fullwidth-code-point/readme.md b/node_modules/is-fullwidth-code-point/readme.md
new file mode 100644
index 0000000000000000000000000000000000000000..4236bba980d8fea1486c883c16417ca8d5a7d5aa
--- /dev/null
+++ b/node_modules/is-fullwidth-code-point/readme.md
@@ -0,0 +1,39 @@
+# is-fullwidth-code-point [](https://travis-ci.org/sindresorhus/is-fullwidth-code-point)
+
+> Check if the character represented by a given [Unicode code point](https://en.wikipedia.org/wiki/Code_point) is [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms)
+
+
+## Install
+
+```
+$ npm install is-fullwidth-code-point
+```
+
+
+## Usage
+
+```js
+const isFullwidthCodePoint = require('is-fullwidth-code-point');
+
+isFullwidthCodePoint('谢'.codePointAt(0));
+//=> true
+
+isFullwidthCodePoint('a'.codePointAt(0));
+//=> false
+```
+
+
+## API
+
+### isFullwidthCodePoint(codePoint)
+
+#### codePoint
+
+Type: `number`
+
+The [code point](https://en.wikipedia.org/wiki/Code_point) of a character.
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/is-generator-function/.eslintrc b/node_modules/is-generator-function/.eslintrc
new file mode 100644
index 0000000000000000000000000000000000000000..c885fa335fdae0fbef7b2771d426b1bf348eb356
--- /dev/null
+++ b/node_modules/is-generator-function/.eslintrc
@@ -0,0 +1,9 @@
+{
+ "root": true,
+
+ "extends": "@ljharb",
+
+ "rules": {
+ "no-new-func": 1,
+ },
+}
diff --git a/node_modules/is-generator-function/.nvmrc b/node_modules/is-generator-function/.nvmrc
new file mode 100644
index 0000000000000000000000000000000000000000..64f5a0a6813a4fa89a84ea60143f4e14b0e264a8
--- /dev/null
+++ b/node_modules/is-generator-function/.nvmrc
@@ -0,0 +1 @@
+node
diff --git a/node_modules/is-generator-function/.nycrc b/node_modules/is-generator-function/.nycrc
new file mode 100644
index 0000000000000000000000000000000000000000..bdd626ce91477abbdd489b79988baebadbd3c897
--- /dev/null
+++ b/node_modules/is-generator-function/.nycrc
@@ -0,0 +1,9 @@
+{
+ "all": true,
+ "check-coverage": false,
+ "reporter": ["text-summary", "text", "html", "json"],
+ "exclude": [
+ "coverage",
+ "test"
+ ]
+}
diff --git a/node_modules/is-generator-function/CHANGELOG.md b/node_modules/is-generator-function/CHANGELOG.md
new file mode 100644
index 0000000000000000000000000000000000000000..24f663a8de58a06f373762a1fcf26f8825945ede
--- /dev/null
+++ b/node_modules/is-generator-function/CHANGELOG.md
@@ -0,0 +1,254 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [v1.1.2](https://github.com/inspect-js/is-generator-function/compare/v1.1.1...v1.1.2) - 2025-09-30
+
+### Fixed
+
+- [Fix] fix broken logic [`#45`](https://github.com/inspect-js/is-generator-function/issues/45)
+
+### Commits
+
+- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/eslint-cig`, `@ljharb/tsconfig`, `@types/tape`, `for-each` [`9638da4`](https://github.com/inspect-js/is-generator-function/commit/9638da419fc0ad3077a6295c8a29243aa473d6a0)
+- [Deps] update `call-bound`, `get-proto` [`d5e41c1`](https://github.com/inspect-js/is-generator-function/commit/d5e41c1e99deb878725af180f46d4f1f8e71603d)
+
+## [v1.1.1](https://github.com/inspect-js/is-generator-function/compare/v1.1.0...v1.1.1) - 2025-09-29
+
+### Commits
+
+- [Refactor] use `generator-function` [`5477ff1`](https://github.com/inspect-js/is-generator-function/commit/5477ff1d533273466858e9af5dc1c889ab2fa35b)
+
+## [v1.1.0](https://github.com/inspect-js/is-generator-function/compare/v1.0.10...v1.1.0) - 2025-01-02
+
+### Commits
+
+- [actions] reuse common workflows [`7301651`](https://github.com/inspect-js/is-generator-function/commit/7301651ad24468ab17aee7a86a2dd2a6fcd58637)
+- [actions] split out node 10-20, and 20+ [`40f30a5`](https://github.com/inspect-js/is-generator-function/commit/40f30a5dee3e26cad236ce0afbd0567b6075af54)
+- [meta] use `npmignore` to autogenerate an npmignore file [`ec843a4`](https://github.com/inspect-js/is-generator-function/commit/ec843a4501d238fcde254c7e33c137ec997abfaa)
+- [New] add types [`6dd27c4`](https://github.com/inspect-js/is-generator-function/commit/6dd27c4b6a3ebaa42ddbf4e93c20e2b4d90bad07)
+- [actions] update codecov uploader [`717f85e`](https://github.com/inspect-js/is-generator-function/commit/717f85e8b080cdbdb160558b289ec9f043410bd2)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `tape` [`4280e62`](https://github.com/inspect-js/is-generator-function/commit/4280e6260029ccdae8b299faadacafd0f8a2de78)
+- [actions] update rebase action to use reusable workflow [`895c2d0`](https://github.com/inspect-js/is-generator-function/commit/895c2d06a914b82913d3fae2df3071bde72cb584)
+- [Tests] use `for-each` [`3caee87`](https://github.com/inspect-js/is-generator-function/commit/3caee870b0509b91ad37e6a0562f261d7b5f4523)
+- [Robustness] use `call-bound` [`1eb55de`](https://github.com/inspect-js/is-generator-function/commit/1eb55def663c335222d970c5e62459f73aee20db)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `object-inspect`, `tape` [`5bbd4cd`](https://github.com/inspect-js/is-generator-function/commit/5bbd4cd8bcbd167a05ddf1cd285fd1fd2802801a)
+- [Robustness] use `safe-regex-test` [`5f8b992`](https://github.com/inspect-js/is-generator-function/commit/5f8b9921e4cf53c3cb4185a0f30a170fa2e0722f)
+- [Dev Deps] update `@ljharb/eslint-config`, `auto-changelog`, `npmignore`, `tape` [`c730f4c`](https://github.com/inspect-js/is-generator-function/commit/c730f4c056697653ba935b37b44bf9bfe1017331)
+- [Robustness] use `get-proto` [`6dfff38`](https://github.com/inspect-js/is-generator-function/commit/6dfff3821b8a42d0b0f70651abfe1d2e90afbb10)
+- [Tests] replace `aud` with `npm audit` [`725db70`](https://github.com/inspect-js/is-generator-function/commit/725db703352200f7400fa4b2b2058e2220a4c42b)
+- [Deps] update `has-tostringtag` [`5cc3c2d`](https://github.com/inspect-js/is-generator-function/commit/5cc3c2d34b77c3d7d50588225d4d4afa20aa3df2)
+- [Dev Deps] add missing peer dep [`869a507`](https://github.com/inspect-js/is-generator-function/commit/869a507790e8cf1452b355719a6c00efadbe4965)
+
+## [v1.0.10](https://github.com/inspect-js/is-generator-function/compare/v1.0.9...v1.0.10) - 2021-08-05
+
+### Commits
+
+- [Dev Deps] update `eslint`, `auto-changelog`, `core-js`, `tape` [`63cd935`](https://github.com/inspect-js/is-generator-function/commit/63cd9353eead5ad5eb8cf581fc4129841641bb43)
+- [Fix] use `has-tostringtag` to behave correctly in the presence of symbol shams [`8c3fe76`](https://github.com/inspect-js/is-generator-function/commit/8c3fe76b546fbc5085381df65800e4fc67e25ede)
+- [Dev Deps] unpin `core-js` v3 [`ebf2885`](https://github.com/inspect-js/is-generator-function/commit/ebf2885bc202b59f37e074f28951639873c6f38e)
+
+## [v1.0.9](https://github.com/inspect-js/is-generator-function/compare/v1.0.8...v1.0.9) - 2021-05-05
+
+### Fixed
+
+- [Fix] avoid calling `Function` until absolutely necessary [`#41`](https://github.com/inspect-js/is-generator-function/issues/41)
+
+### Commits
+
+- [actions] use `node/install` instead of `node/run`; use `codecov` action [`612862b`](https://github.com/inspect-js/is-generator-function/commit/612862b5fefc2dc1c7e1f5e7478563a5b53f7b23)
+- [meta] do not publish github action workflow files [`c13855d`](https://github.com/inspect-js/is-generator-function/commit/c13855dc11947589ed7314840a9cc5ae04db90f4)
+- [readme] fix repo URLs; remove travis badge [`bd11a2a`](https://github.com/inspect-js/is-generator-function/commit/bd11a2af1b644cfa352346dcbf6f4cec48b00b78)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`23f54d4`](https://github.com/inspect-js/is-generator-function/commit/23f54d49da035c1ca79227faee9bacfde2d46884)
+- [readme] add actions and codecov badges [`9e759ef`](https://github.com/inspect-js/is-generator-function/commit/9e759ef8e8f098fe1fa3cd9cca98f79f9e8b8b22)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`6305f8d`](https://github.com/inspect-js/is-generator-function/commit/6305f8d71ccfa4656bdd280c2616e88fc5ca184b)
+- [meta] remove explicit audit level config [`db4391c`](https://github.com/inspect-js/is-generator-function/commit/db4391c68cf8162245d32734685be7c73c2f03c7)
+- [meta] use `prepublishOnly` script for npm 7+ [`82c5b18`](https://github.com/inspect-js/is-generator-function/commit/82c5b183a605f1d25af15ec8242c8a8f88a26bfa)
+- [Dev Deps] pin `core-js` v3 to < v3.9 [`5f6cc2a`](https://github.com/inspect-js/is-generator-function/commit/5f6cc2ac94a65d7d592775bac6dce573220ccea2)
+- [Tests] avoid running harmony tests on node 16+ [`c41526b`](https://github.com/inspect-js/is-generator-function/commit/c41526b8cd1d376f9ca73b56a5ee076db0f9f1c1)
+- [actions] update workflows [`a348c5d`](https://github.com/inspect-js/is-generator-function/commit/a348c5d6d4b06041ae0ece9f3765dc13ec9df354)
+
+## [v1.0.8](https://github.com/inspect-js/is-generator-function/compare/v1.0.7...v1.0.8) - 2020-12-02
+
+### Fixed
+
+- [Refactor] improve performance in non-toStringTag envs [`#9`](https://github.com/inspect-js/is-generator-function/issues/9)
+
+### Commits
+
+- [Tests] use shared travis-ci configs [`98c84ec`](https://github.com/inspect-js/is-generator-function/commit/98c84ecd38d7d64b2aa070fa2c240be4373be131)
+- [Tests] migrate tests to Github Actions [`52ea2e2`](https://github.com/inspect-js/is-generator-function/commit/52ea2e2e14da2278c7844a18af4aaef1cc8bb3bb)
+- [meta] add `auto-changelog` [`a31c8d9`](https://github.com/inspect-js/is-generator-function/commit/a31c8d9e8fe4f397e1f8da5b1297050542cd00c3)
+- [Tests] remove `jscs` [`c30694e`](https://github.com/inspect-js/is-generator-function/commit/c30694e5e1739a37c455b8bfae4cc7c4347292de)
+- [meta] remove unused Makefile and associated utilities [`23a8dd7`](https://github.com/inspect-js/is-generator-function/commit/23a8dd75ea554642aadb1313c1cbbd11fe69eb1d)
+- [Tests] up to `node` `v11.4`, `v10.14`, `v8.14`, `v6.15` [`9711495`](https://github.com/inspect-js/is-generator-function/commit/9711495e58fa9477167d7dbc582749981c3f5ee5)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`, `make-generator-function`; add `safe-publish-latest` [`3afb4d0`](https://github.com/inspect-js/is-generator-function/commit/3afb4d033587eeddfd2dc840ff98c10f3abea48e)
+- [Tests] up to `node` `v10.0`, `v9.11`, `v8.11`, `v6.14`, `v4.9` [`f1e9b0f`](https://github.com/inspect-js/is-generator-function/commit/f1e9b0f150e77357ecd4afac5873a3bd3ada7b02)
+- [Tests] up to `node` `v11.13`, `v10.15`, `v8.15`, `v6.17` [`433ca64`](https://github.com/inspect-js/is-generator-function/commit/433ca64d5500371516598bebb19fc00370e7c9c7)
+- [Tests] run `nyc` on all tests [`84d8e18`](https://github.com/inspect-js/is-generator-function/commit/84d8e18c441c4c181e51a339559040f95adc4d94)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`ec51a9f`](https://github.com/inspect-js/is-generator-function/commit/ec51a9f2e6f5da5ae5e8b446e0112eeaa0853954)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `replace`, `semver`, `tape` [`180fb0d`](https://github.com/inspect-js/is-generator-function/commit/180fb0dbd1a9d6975344d2deb4338c9071e865b1)
+- [actions] add automatic rebasing / merge commit blocking [`7e0f94b`](https://github.com/inspect-js/is-generator-function/commit/7e0f94b055308abc8469e526980991a12a87cfaf)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `tape`, `replace`, `semver`, `core-js` [`75768b3`](https://github.com/inspect-js/is-generator-function/commit/75768b30b7d4c92231ed53ec72d2f4ae81274d4c)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `core-js`, `replace`, `semver`, `tape` [`d6413cd`](https://github.com/inspect-js/is-generator-function/commit/d6413cd0bfc27c924619200efe39d9956d6fb638)
+- [actions] add "Allow Edits" workflow [`e73fec7`](https://github.com/inspect-js/is-generator-function/commit/e73fec71e5d1c99246a6f905091e133860931245)
+- [Dev Deps] update `core-js`, `eslint`, `nsp`, `semver`, `tape` [`6746c73`](https://github.com/inspect-js/is-generator-function/commit/6746c733fa535f724700726356a9156d491b54ae)
+- [Tests] switch from `nsp` to `npm audit`; allow it to fail for now [`301aa25`](https://github.com/inspect-js/is-generator-function/commit/301aa2557b4b99962a0e48191c4719c5a95eb69b)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog` [`d978937`](https://github.com/inspect-js/is-generator-function/commit/d978937e3c86b3e239e0ceecc2324134806e0a32)
+- Revert "[Refactor] improve performance in non-toStringTag envs" [`3892c18`](https://github.com/inspect-js/is-generator-function/commit/3892c18f95a8b5ea57f9893e6d8dce89fec4af30)
+- [Tests] test on both core-js 3 and 2 [`fac5447`](https://github.com/inspect-js/is-generator-function/commit/fac54476693d1b8573cbd36bc3c6eb74cbeb7468)
+- [Tests] use `npx aud` instead of `npm audit` with hoops [`e12897f`](https://github.com/inspect-js/is-generator-function/commit/e12897feae0185f89592dfe1a02a2a4520180313)
+- [meta] add `funding` field [`60711d1`](https://github.com/inspect-js/is-generator-function/commit/60711d122a4ef7ab6a9bee6044a26352ba7f86bd)
+- [Fix] `Object.getPrototypeOf` does not exist in all engines [`7484531`](https://github.com/inspect-js/is-generator-function/commit/7484531c55a61fdb7e8d819ce9aa363f29b2c704)
+- [Dev Deps] update `auto-changelog`, `tape` [`fe92b74`](https://github.com/inspect-js/is-generator-function/commit/fe92b743baaf206e3ee849c551171f0a56b7fa23)
+- [Dev Deps] update `eslint`, `tape` [`2f16f77`](https://github.com/inspect-js/is-generator-function/commit/2f16f77aae4c9aafe65fb29854f46b783d853c58)
+- [Dev Deps] update `core-js`, `replace` [`c67825a`](https://github.com/inspect-js/is-generator-function/commit/c67825a62b7bad7911a1bdb5af237d86229aa4bc)
+- [Tests] on `node` `v10.1` [`b00dbcc`](https://github.com/inspect-js/is-generator-function/commit/b00dbcce7a9f6df4fb35e99fac79560389a9a272)
+- [actions] update rebase action to use checkout v2 [`85c7947`](https://github.com/inspect-js/is-generator-function/commit/85c7947d7474468a5e6dd30b00f632e43f45c21d)
+- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`d2fd827`](https://github.com/inspect-js/is-generator-function/commit/d2fd827cf87a90d647d93185f6d5e332fb7b1bb4)
+- [Dev Deps] update `@ljharb/eslint-config` [`791766e`](https://github.com/inspect-js/is-generator-function/commit/791766e4f12a96d3b9949128f813dadd428d0891)
+
+## [v1.0.7](https://github.com/inspect-js/is-generator-function/compare/v1.0.6...v1.0.7) - 2017-12-27
+
+### Fixed
+
+- [Tests] run tests with uglify-register [`#16`](https://github.com/inspect-js/is-generator-function/issues/16)
+- Exclude `testling.html` from npm package. [`#8`](https://github.com/inspect-js/is-generator-function/issues/8)
+
+### Commits
+
+- [Tests] up to `node` `v8.4`; use `nvm install-latest-npm` to ensure new npm doesn’t break old node; remove osx builds [`365004b`](https://github.com/inspect-js/is-generator-function/commit/365004b20b302dceb7bd2cee91814f0a55ae3253)
+- [Tests] up to `node` `v9.2`, `v8.9`, `v6.12`; pin included builds to LTS [`33916ea`](https://github.com/inspect-js/is-generator-function/commit/33916eadddccf2a39c8cf0160f82c9a5d4a20ecb)
+- [Dev Deps] update `core-js`, `eslint`, `nsp` [`b4ce014`](https://github.com/inspect-js/is-generator-function/commit/b4ce0144a8b56fc3089b96f1b8818c6e793e552f)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `core-js`, `nsp`, `semver`, `tape` [`e4b499f`](https://github.com/inspect-js/is-generator-function/commit/e4b499fbe2e5e24593eb25bd63dfc2a1520aaa04)
+- [Tests] up to `node` `v7.4`, `v4.7` [`ce642b6`](https://github.com/inspect-js/is-generator-function/commit/ce642b63f0f9c4f56ca3daefbf8b0d4cbda8c0a4)
+- Only apps should have lockfiles. [`ea4dfb1`](https://github.com/inspect-js/is-generator-function/commit/ea4dfb15554de3a22656415cda985ceaf449be00)
+- [Tests] on `node` `v9.3` [`307d9c1`](https://github.com/inspect-js/is-generator-function/commit/307d9c144fed8a4aec412d3e9ccc117d1c08e167)
+- fix: example code missing ) after argument list [`05f62c7`](https://github.com/inspect-js/is-generator-function/commit/05f62c712a9ca08b0efcabe883affd7c0734f51c)
+- [Tests] update `uglify-register` [`7376bec`](https://github.com/inspect-js/is-generator-function/commit/7376bec6c3c8ee16cf16feb285798be23e6c2c89)
+- [Dev Deps] update `eslint` [`c3f5895`](https://github.com/inspect-js/is-generator-function/commit/c3f58952033c93918aa5b5ac527520b26c2460f8)
+
+## [v1.0.6](https://github.com/inspect-js/is-generator-function/compare/v1.0.5...v1.0.6) - 2016-12-20
+
+### Fixed
+
+- [Fix] fix `is-generator-function` in an env without native generators, with core-js. [`#33`](https://github.com/ljharb/is-equal/issues/33)
+
+### Commits
+
+- [Tests] fix linting errors. [`9d12cdb`](https://github.com/inspect-js/is-generator-function/commit/9d12cdb4bb43c63801173635a7db92ced8f720d8)
+
+## [v1.0.5](https://github.com/inspect-js/is-generator-function/compare/v1.0.4...v1.0.5) - 2016-12-19
+
+### Commits
+
+- Update `tape`, `semver`, `eslint`; use my personal shared `eslint` config. [`3a1192c`](https://github.com/inspect-js/is-generator-function/commit/3a1192cbf25ee5a1ca64e64c20d169c643ceb860)
+- Add `npm run eslint` [`ae191b6`](https://github.com/inspect-js/is-generator-function/commit/ae191b61d3ec65de63bcd7b2c1ab08f2f9a94ead)
+- [Tests] improve test matrix [`0d0837f`](https://github.com/inspect-js/is-generator-function/commit/0d0837fe00bed00ced94ef5a7bfdbd7e8e295656)
+- [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config`, `semver`, `nsp` [`6523655`](https://github.com/inspect-js/is-generator-function/commit/652365556b5f8eea69b4612a183b5026c952e776)
+- Update `jscs`, `tape`, `semver` [`c185388`](https://github.com/inspect-js/is-generator-function/commit/c185388111ee6c0df1498a76d9c565167b5d20cd)
+- Update `eslint` [`9959dbc`](https://github.com/inspect-js/is-generator-function/commit/9959dbc1450214658dc4789574b68de826ec33a7)
+- Update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`5945497`](https://github.com/inspect-js/is-generator-function/commit/5945497bc564655ed5ea1bb6f12610a9afc33a33)
+- [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`1754eae`](https://github.com/inspect-js/is-generator-function/commit/1754eaec79e43835bd154c81fba064b558f7ad1b)
+- Update `eslint`, `semver`, `nsp` [`a40f7af`](https://github.com/inspect-js/is-generator-function/commit/a40f7afab3f6ba43193e5464faf51692f6f2199d)
+- Update `covert`, `jscs`, `eslint`, `semver` [`f7c3504`](https://github.com/inspect-js/is-generator-function/commit/f7c35049406adc784b23b6b0fbfdd34b4ca8c183)
+- [Fix] account for Safari 10 which reports the wrong toString on generator functions. [`3a3a52b`](https://github.com/inspect-js/is-generator-function/commit/3a3a52bdba46e03ae333af9519bf471207bf6cec)
+- [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config`, `semver`, `nsp` [`aaab6c3`](https://github.com/inspect-js/is-generator-function/commit/aaab6c3a331c8c8793f8f43aa1d452cc12b92c0d)
+- [Dev Deps] update `jscs` [`e24641c`](https://github.com/inspect-js/is-generator-function/commit/e24641ca69ae3ee232837e9153c8b43b046cfe69)
+- [Tests] up to `io.js` `v3.3`, `node` `v4.1` [`c43c5ad`](https://github.com/inspect-js/is-generator-function/commit/c43c5ade8b3b62fa27fac3e5104ab3df93278878)
+- Add `npm run security` via `nsp` [`24256ca`](https://github.com/inspect-js/is-generator-function/commit/24256ca5f5308930e86c3dc75b70bbfe1033e9b6)
+- Test up to `io.js` `v2.3` [`730233f`](https://github.com/inspect-js/is-generator-function/commit/730233f0ca376887c698c01799b60ee54424bf9f)
+- [Tests] use pretest/posttest for linting/security [`3e6b860`](https://github.com/inspect-js/is-generator-function/commit/3e6b8603453e4d127cd1acef720f1ce214d8f69a)
+- [Refactor] remove useless `Object#toString` check. [`9d4d7ac`](https://github.com/inspect-js/is-generator-function/commit/9d4d7ac23f6f2f75098903b4fe4f74e1d39a2226)
+- [Dev Deps] Update `tape`, `eslint` [`34673b8`](https://github.com/inspect-js/is-generator-function/commit/34673b86aecddf149284bd8bbca5ab54e6e59694)
+- Test up to `io.js` `v2.1` [`1e91585`](https://github.com/inspect-js/is-generator-function/commit/1e915850246cbd691606567850f35665a650e490)
+- Test on two latest `io.js` versions. [`8702608`](https://github.com/inspect-js/is-generator-function/commit/87026087a1e3b43ba9f8dc7a5b6c2b58d572ff25)
+- Test on `iojs-v1.5` and `iojs-v1.6` [`c74935e`](https://github.com/inspect-js/is-generator-function/commit/c74935ec9c187e9640f862607873aa096ddcf9fc)
+- Latest `node` now supports generators. [`beb3bfe`](https://github.com/inspect-js/is-generator-function/commit/beb3bfe3d425cc0ece9a02e286727e36d53f5050)
+- [Dev Deps] update `tape` [`c6e6587`](https://github.com/inspect-js/is-generator-function/commit/c6e658765c94b9edc282848f13e7bce882711c8c)
+- Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG. [`0039875`](https://github.com/inspect-js/is-generator-function/commit/0039875e6c587255470088c7867cfa314713626b)
+- Test on `io.js` `v2.5` [`0017408`](https://github.com/inspect-js/is-generator-function/commit/001740801d2a29f9a25a8824b064286910601e8c)
+- Test on `io.js` `v2.4` [`bc013e2`](https://github.com/inspect-js/is-generator-function/commit/bc013e20b99a89b3f592038196d69f871b39caf0)
+- Test on `io.js` `v3.0` [`e195030`](https://github.com/inspect-js/is-generator-function/commit/e1950306f4e0a107101e9aeae89cfac2c18e33de)
+
+## [v1.0.4](https://github.com/inspect-js/is-generator-function/compare/v1.0.3...v1.0.4) - 2015-03-03
+
+### Fixed
+
+- Add support for detecting concise generator methods. [`#2`](https://github.com/inspect-js/is-generator-function/issues/2)
+
+### Commits
+
+- All grade A-supported `node`/`iojs` versions now ship with an `npm` that understands `^`. [`6562e80`](https://github.com/inspect-js/is-generator-function/commit/6562e8015cf318056522a39d7a8e6ad121f9cf4c)
+- Run `travis-ci` tests on `iojs` and `node` v0.12; speed up builds; allow 0.8 failures. [`592f768`](https://github.com/inspect-js/is-generator-function/commit/592f76853bcc5b46351d8842df7fd1483214d870)
+- Test on latest `io.js` [`edca329`](https://github.com/inspect-js/is-generator-function/commit/edca329a4b3ddc19b5ac9491f7678240a73f4e0b)
+- Forgot to add `replace` in 209fac444b4bd90eaa8df279457c4a15e6bba6d2 [`3ebfb38`](https://github.com/inspect-js/is-generator-function/commit/3ebfb380c73e29447689f0924248a5c801260371)
+- Update `semver` [`c21baa5`](https://github.com/inspect-js/is-generator-function/commit/c21baa5acfe51e6bbe324c13ce5d4b6770ecfb27)
+- Update `jscs` [`71a68f4`](https://github.com/inspect-js/is-generator-function/commit/71a68f47044af23ed2cd819d122202a59c2e6967)
+- Update `tape` [`32c03cf`](https://github.com/inspect-js/is-generator-function/commit/32c03cf5701634f47c8d47fc383c97365adb3bb3)
+
+## [v1.0.3](https://github.com/inspect-js/is-generator-function/compare/v1.0.2...v1.0.3) - 2015-01-31
+
+### Commits
+
+- `make release` [`209fac4`](https://github.com/inspect-js/is-generator-function/commit/209fac444b4bd90eaa8df279457c4a15e6bba6d2)
+- Run tests against a faked @@toStringTag [`c9ba1ea`](https://github.com/inspect-js/is-generator-function/commit/c9ba1ea8163bd2e7a0f537da8fbaead0efa96a24)
+- Add `sudo: false` to speed up travis-ci tests. [`a4b41e1`](https://github.com/inspect-js/is-generator-function/commit/a4b41e1b9c3856c671922f64bf5b7b41eb9ec0d6)
+- Bail out early when typeof is not "function" [`a62e7a5`](https://github.com/inspect-js/is-generator-function/commit/a62e7a547307f5ba62a39e374f2cc2f46705eabc)
+
+## [v1.0.2](https://github.com/inspect-js/is-generator-function/compare/v1.0.1...v1.0.2) - 2015-01-20
+
+### Commits
+
+- Update `tape`, `jscs` [`354d343`](https://github.com/inspect-js/is-generator-function/commit/354d3437426c274221ad21a2a580e9f31bfb07e3)
+- Update `jscs` [`e0b6203`](https://github.com/inspect-js/is-generator-function/commit/e0b620323be47b3925fe3cd660c063a06cfde4aa)
+- Fix tests in newer v8 (and io.js) [`36f0545`](https://github.com/inspect-js/is-generator-function/commit/36f054590d4f5fa994af5f2e7d592840bf9f9d27)
+
+## [v1.0.1](https://github.com/inspect-js/is-generator-function/compare/v1.0.0...v1.0.1) - 2014-12-14
+
+### Commits
+
+- Use my standard jscs.json file. [`7624ca3`](https://github.com/inspect-js/is-generator-function/commit/7624ca3053cacec69d9a58e40c54e6635d8f980b)
+- Use `make-generator-function` instead of a local module. [`9234a57`](https://github.com/inspect-js/is-generator-function/commit/9234a5771a3237baf3fe609540e74ce982fe6932)
+- Adding license and downloads badges [`9463b6a`](https://github.com/inspect-js/is-generator-function/commit/9463b6a0c6bf254e213a2f5306f37e9849c8bb1a)
+- Using single quotes exclusively. [`4b4d71f`](https://github.com/inspect-js/is-generator-function/commit/4b4d71f9e0d3753b6f2bd764ae910601352ff19e)
+- Use SVG badges instead of PNG [`eaaaf41`](https://github.com/inspect-js/is-generator-function/commit/eaaaf41900c2e69c801062e8c7bb247bd3d2e402)
+- Updating jscs. [`780758e`](https://github.com/inspect-js/is-generator-function/commit/780758ef1ae5e6a7a422fc8e3ac1265f53e33135)
+- Update `tape`, `jscs` [`6b8f959`](https://github.com/inspect-js/is-generator-function/commit/6b8f95928274d770e9b66359e38c982a2b161e74)
+- Update `tape`, `jscs` [`6e1334d`](https://github.com/inspect-js/is-generator-function/commit/6e1334d12899bed116ab3c4e82994fdfc8f8c279)
+- Lock covert to v1.0.0. [`3dd5c74`](https://github.com/inspect-js/is-generator-function/commit/3dd5c74921a59481d5a699444a879ef0f80ef7c5)
+- Updating `tape` [`99f61a3`](https://github.com/inspect-js/is-generator-function/commit/99f61a30692b7c00d06a6d29ac3022b242d4f1d4)
+- Updating jscs [`171d96d`](https://github.com/inspect-js/is-generator-function/commit/171d96deef2bff8a840b0ef9563ad9366c8fcd98)
+- Updating jscs [`847795e`](https://github.com/inspect-js/is-generator-function/commit/847795e9f951f5d28195f0bdb85ec26b427d2d33)
+- Updating jscs [`cad09d8`](https://github.com/inspect-js/is-generator-function/commit/cad09d88873f2595545977f0ce9ed8ccde78b625)
+- Updating covert [`8617860`](https://github.com/inspect-js/is-generator-function/commit/86178604dccea5b73ad2b386b275657366735529)
+- Adding an .nvmrc file. [`1fa3ea4`](https://github.com/inspect-js/is-generator-function/commit/1fa3ea4f04139fdc28e2c0e553efd917be1f5744)
+
+## [v1.0.0](https://github.com/inspect-js/is-generator-function/compare/v0.0.0...v1.0.0) - 2014-08-09
+
+### Commits
+
+- Adding `npm run lint` [`ed9cf0a`](https://github.com/inspect-js/is-generator-function/commit/ed9cf0a240ae8b3c4bf682e5ff37757d9eb6cffc)
+- Make sure old and unstable nodes don't break Travis [`80a7ee7`](https://github.com/inspect-js/is-generator-function/commit/80a7ee782dc832869bccf857213ef76685303738)
+- Updating tape [`d5f141f`](https://github.com/inspect-js/is-generator-function/commit/d5f141f0017aefb003911a1eb9c9b615069f1cf0)
+- Fix npm upgrading on node 0.8 [`2ee0f08`](https://github.com/inspect-js/is-generator-function/commit/2ee0f08a56f493fb5d4299c7bda9cd52c41a98a2)
+- Updating dependencies [`accf688`](https://github.com/inspect-js/is-generator-function/commit/accf688e8c20f05d0f24c1ff8efdaa24def0882c)
+- Updating covert [`38d22e6`](https://github.com/inspect-js/is-generator-function/commit/38d22e6cdc939bb3f2cbfc5fff41473a694d4fe5)
+- Updating tape [`49c1f00`](https://github.com/inspect-js/is-generator-function/commit/49c1f00cf5c66c87a8678d9c78a6b411cf1af986)
+- Updating tape [`75cb7df`](https://github.com/inspect-js/is-generator-function/commit/75cb7dfef5254f4a9941a3bd77471cb783bb6fbd)
+- Updating tape [`4142cc0`](https://github.com/inspect-js/is-generator-function/commit/4142cc092e157b92a6107112b2c3f3dc9b154367)
+- Better code coverage [`1831d64`](https://github.com/inspect-js/is-generator-function/commit/1831d64d859ae8d45cc9aea30248d8cabc3d1e1d)
+
+## v0.0.0 - 2014-02-09
+
+### Commits
+
+- Tests. [`f46e936`](https://github.com/inspect-js/is-generator-function/commit/f46e9368db04e0725a56e2bd0a246ab52123ed35)
+- package.json [`189db32`](https://github.com/inspect-js/is-generator-function/commit/189db324e627257de94b68d1e6005c21ba74ebad)
+- Initial commit [`8096cee`](https://github.com/inspect-js/is-generator-function/commit/8096ceedf7c9caece9acfd0ff4a0bd6eafa5dfdf)
+- README. [`9eda97f`](https://github.com/inspect-js/is-generator-function/commit/9eda97fbc33113a519121a6515e777985730f3f7)
+- Implementation. [`c5c3a8d`](https://github.com/inspect-js/is-generator-function/commit/c5c3a8d5dccae465c69958fc38c4ceba8b1354cc)
+- Adding Travis CI [`9a6503e`](https://github.com/inspect-js/is-generator-function/commit/9a6503ebce8c9521c82e8ed1ec1b79bc856d0c5c)
diff --git a/node_modules/is-generator-function/LICENSE b/node_modules/is-generator-function/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..47b7b5078fce38783c58381828d9a7f762db7866
--- /dev/null
+++ b/node_modules/is-generator-function/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Jordan Harband
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/node_modules/is-generator-function/README.md b/node_modules/is-generator-function/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..519a4235726a8d94f3c1c03dbd2cf16fe1636acd
--- /dev/null
+++ b/node_modules/is-generator-function/README.md
@@ -0,0 +1,40 @@
+# is-generator-function [![Version Badge][2]][1]
+
+[![github actions][actions-image]][actions-url]
+[![coverage][codecov-image]][codecov-url]
+[![dependency status][5]][6]
+[![dev dependency status][7]][8]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][11]][1]
+
+Is this a native generator function?
+
+## Example
+
+```js
+var isGeneratorFunction = require('is-generator-function');
+assert(!isGeneratorFunction(function () {}));
+assert(!isGeneratorFunction(null));
+assert(isGeneratorFunction(function* () { yield 42; return Infinity; }));
+```
+
+## Tests
+Simply clone the repo, `npm install`, and run `npm test`
+
+[1]: https://npmjs.org/package/is-generator-function
+[2]: https://versionbadg.es/inspect-js/is-generator-function.svg
+[5]: https://david-dm.org/inspect-js/is-generator-function.svg
+[6]: https://david-dm.org/inspect-js/is-generator-function
+[7]: https://david-dm.org/inspect-js/is-generator-function/dev-status.svg
+[8]: https://david-dm.org/inspect-js/is-generator-function#info=devDependencies
+[11]: https://nodei.co/npm/is-generator-function.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/is-generator-function.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/is-generator-function.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=is-generator-function
+[codecov-image]: https://codecov.io/gh/inspect-js/is-generator-function/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/inspect-js/is-generator-function/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-generator-function
+[actions-url]: https://github.com/inspect-js/is-generator-function/actions
diff --git a/node_modules/is-generator-function/index.d.ts b/node_modules/is-generator-function/index.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..38eec07ee2f101cffcbd5bc75b29e69b2b61ed92
--- /dev/null
+++ b/node_modules/is-generator-function/index.d.ts
@@ -0,0 +1,3 @@
+declare function isGeneratorFunction(fn: unknown): fn is GeneratorFunction;
+
+export = isGeneratorFunction;
\ No newline at end of file
diff --git a/node_modules/is-generator-function/index.js b/node_modules/is-generator-function/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..f7a4859d1319e30f1ad6ccbe4e912ffe6d31f18d
--- /dev/null
+++ b/node_modules/is-generator-function/index.js
@@ -0,0 +1,31 @@
+'use strict';
+
+var callBound = require('call-bound');
+var safeRegexTest = require('safe-regex-test');
+var isFnRegex = safeRegexTest(/^\s*(?:function)?\*/);
+var hasToStringTag = require('has-tostringtag/shams')();
+var getProto = require('get-proto');
+
+var toStr = callBound('Object.prototype.toString');
+var fnToStr = callBound('Function.prototype.toString');
+
+var getGeneratorFunction = require('generator-function');
+
+/** @type {import('.')} */
+module.exports = function isGeneratorFunction(fn) {
+ if (typeof fn !== 'function') {
+ return false;
+ }
+ if (isFnRegex(fnToStr(fn))) {
+ return true;
+ }
+ if (!hasToStringTag) {
+ var str = toStr(fn);
+ return str === '[object GeneratorFunction]';
+ }
+ if (!getProto) {
+ return false;
+ }
+ var GeneratorFunction = getGeneratorFunction();
+ return GeneratorFunction && getProto(fn) === GeneratorFunction.prototype;
+};
diff --git a/node_modules/is-generator-function/package.json b/node_modules/is-generator-function/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..a5b48607d25ad54affc8f5a76d1f54d0c998f641
--- /dev/null
+++ b/node_modules/is-generator-function/package.json
@@ -0,0 +1,107 @@
+{
+ "name": "is-generator-function",
+ "version": "1.1.2",
+ "description": "Determine if a function is a native generator function.",
+ "main": "index.js",
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=autogenerated",
+ "prepublishOnly": "safe-publish-latest",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "pretest": "npm run lint",
+ "test": "npm run tests-only",
+ "tests-only": "nyc npm run test:all",
+ "test:all": "npm run test:index && npm run test:corejs && npm run test:uglified",
+ "test:harmony": "node --es-staging --harmony test && node --es-staging --harmony test/corejs && node --es-staging --harmony test/uglified",
+ "test:index": "node test",
+ "test:corejs": "node test/corejs",
+ "test:uglified": "node test/uglified",
+ "posttest": "npx npm@\">= 10.2\" audit --production",
+ "lint": "eslint --ext=js,mjs .",
+ "postlint": "tsc && attw -P",
+ "version": "auto-changelog && git add CHANGELOG.md",
+ "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
+ },
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/inspect-js/is-generator-function.git"
+ },
+ "keywords": [
+ "generator",
+ "generator function",
+ "es6",
+ "es2015",
+ "yield",
+ "function",
+ "function*"
+ ],
+ "author": "Jordan Harband ",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ },
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/inspect-js/is-generator-function/issues"
+ },
+ "dependencies": {
+ "call-bound": "^1.0.4",
+ "generator-function": "^2.0.0",
+ "get-proto": "^1.0.1",
+ "has-tostringtag": "^1.0.2",
+ "safe-regex-test": "^1.1.0"
+ },
+ "devDependencies": {
+ "@arethetypeswrong/cli": "^0.18.2",
+ "@ljharb/eslint-config": "^21.2.0",
+ "@ljharb/tsconfig": "^0.3.2",
+ "@types/for-each": "^0.3.3",
+ "@types/make-generator-function": "^2.0.3",
+ "@types/tape": "^5.8.1",
+ "auto-changelog": "^2.5.0",
+ "core-js": "^2.6.5 || ^3.20.0",
+ "encoding": "^0.1.13",
+ "eslint": "=8.8.0",
+ "for-each": "^0.3.5",
+ "in-publish": "^2.0.1",
+ "make-generator-function": "^2.1.0",
+ "npmignore": "^0.3.1",
+ "nyc": "^10.3.2",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.9.0",
+ "typescript": "next",
+ "uglify-register": "^1.0.1"
+ },
+ "testling": {
+ "files": "test/index.js",
+ "browsers": [
+ "iexplore/6.0..latest",
+ "firefox/3.0..6.0",
+ "firefox/15.0..latest",
+ "firefox/nightly",
+ "chrome/4.0..10.0",
+ "chrome/20.0..latest",
+ "chrome/canary",
+ "opera/10.0..latest",
+ "opera/next",
+ "safari/4.0..latest",
+ "ipad/6.0..latest",
+ "iphone/6.0..latest",
+ "android-browser/4.2"
+ ]
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows"
+ ]
+ }
+}
diff --git a/node_modules/is-generator-function/test/corejs.js b/node_modules/is-generator-function/test/corejs.js
new file mode 100644
index 0000000000000000000000000000000000000000..3cc109c6c9baf4d626e6dbd833c90f71f0771a2b
--- /dev/null
+++ b/node_modules/is-generator-function/test/corejs.js
@@ -0,0 +1,6 @@
+'use strict';
+
+// @ts-ignore
+require('core-js');
+
+require('./');
diff --git a/node_modules/is-generator-function/test/index.js b/node_modules/is-generator-function/test/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..038f2a14201f43b3edc8168055dafb729317e7b9
--- /dev/null
+++ b/node_modules/is-generator-function/test/index.js
@@ -0,0 +1,80 @@
+'use strict';
+
+/* globals window */
+
+var test = require('tape');
+
+var generatorFuncs = require('make-generator-function')();
+var hasToStringTag = require('has-tostringtag/shams')();
+var forEach = require('for-each');
+
+var isGeneratorFunction = require('../index');
+
+test('returns false for non-functions', function (t) {
+ var nonFuncs = [
+ true,
+ false,
+ null,
+ undefined,
+ {},
+ [],
+ /a/g,
+ 'string',
+ 42,
+ new Date()
+ ];
+ t.plan(nonFuncs.length);
+ forEach(nonFuncs, function (nonFunc) {
+ t.notOk(isGeneratorFunction(nonFunc), nonFunc + ' is not a function');
+ });
+ t.end();
+});
+
+test('returns false for non-generator functions', function (t) {
+ var func = function () {};
+ t.notOk(isGeneratorFunction(func), 'anonymous function is not an generator function');
+
+ var namedFunc = function foo() {};
+ t.notOk(isGeneratorFunction(namedFunc), 'named function is not an generator function');
+
+ if (typeof window === 'undefined') {
+ t.skip('window.alert is not an generator function');
+ } else {
+ t.notOk(isGeneratorFunction(window.alert), 'window.alert is not an generator function');
+ }
+ t.end();
+});
+
+var fakeToString = function () { return 'function* () { return "TOTALLY REAL I SWEAR!"; }'; };
+
+test('returns false for non-generator function with faked toString', function (t) {
+ var func = function () {};
+ func.toString = fakeToString;
+
+ t.notEqual(String(func), Function.prototype.toString.apply(func), 'faked toString is not real toString');
+ t.notOk(isGeneratorFunction(func), 'anonymous function with faked toString is not a generator function');
+ t.end();
+});
+
+test('returns false for non-generator function with faked @@toStringTag', { skip: !hasToStringTag || generatorFuncs.length === 0 }, function (t) {
+ var generatorFunc = generatorFuncs[0];
+ /** @type {{ toString(): unknown; valueOf(): unknown; [Symbol.toStringTag]?: unknown; }} */
+ var fakeGenFunction = {
+ toString: function () { return String(generatorFunc); },
+ valueOf: function () { return generatorFunc; }
+ };
+ fakeGenFunction[Symbol.toStringTag] = 'GeneratorFunction';
+ t.notOk(isGeneratorFunction(fakeGenFunction), 'fake GeneratorFunction with @@toStringTag "GeneratorFunction" is not a generator function');
+ t.end();
+});
+
+test('returns true for generator functions', function (t) {
+ if (generatorFuncs.length > 0) {
+ forEach(generatorFuncs, function (generatorFunc) {
+ t.ok(isGeneratorFunction(generatorFunc), generatorFunc + ' is generator function');
+ });
+ } else {
+ t.skip('generator function is generator function - this environment does not support ES6 generator functions. Please run `node --harmony`, or use a supporting browser.');
+ }
+ t.end();
+});
diff --git a/node_modules/is-generator-function/test/uglified.js b/node_modules/is-generator-function/test/uglified.js
new file mode 100644
index 0000000000000000000000000000000000000000..91c0545fe2bc19ec206aea377fc0643e16b23af4
--- /dev/null
+++ b/node_modules/is-generator-function/test/uglified.js
@@ -0,0 +1,9 @@
+'use strict';
+
+// @ts-ignore
+require('uglify-register/api').register({
+ exclude: [/\/node_modules\//, /\/test\//],
+ uglify: { mangle: true }
+});
+
+require('./');
diff --git a/node_modules/is-generator-function/tsconfig.json b/node_modules/is-generator-function/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..4bd35288f0b1765769d5ce88f5f87149cf3cc636
--- /dev/null
+++ b/node_modules/is-generator-function/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "@ljharb/tsconfig",
+ "compilerOptions": {
+ "maxNodeModuleJsDepth": 0
+ },
+ "exclude": [
+ "coverage"
+ ]
+}
diff --git a/node_modules/is-glob/LICENSE b/node_modules/is-glob/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..3f2eca18f1bc0f3117748e2cea9251e5182db2f7
--- /dev/null
+++ b/node_modules/is-glob/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014-2017, Jon Schlinkert.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/is-glob/README.md b/node_modules/is-glob/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..740724b276e289aec14ee6ce99d42ab9a6eb4b48
--- /dev/null
+++ b/node_modules/is-glob/README.md
@@ -0,0 +1,206 @@
+# is-glob [](https://www.npmjs.com/package/is-glob) [](https://npmjs.org/package/is-glob) [](https://npmjs.org/package/is-glob) [](https://github.com/micromatch/is-glob/actions)
+
+> Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience.
+
+Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
+
+## Install
+
+Install with [npm](https://www.npmjs.com/):
+
+```sh
+$ npm install --save is-glob
+```
+
+You might also be interested in [is-valid-glob](https://github.com/jonschlinkert/is-valid-glob) and [has-glob](https://github.com/jonschlinkert/has-glob).
+
+## Usage
+
+```js
+var isGlob = require('is-glob');
+```
+
+### Default behavior
+
+**True**
+
+Patterns that have glob characters or regex patterns will return `true`:
+
+```js
+isGlob('!foo.js');
+isGlob('*.js');
+isGlob('**/abc.js');
+isGlob('abc/*.js');
+isGlob('abc/(aaa|bbb).js');
+isGlob('abc/[a-z].js');
+isGlob('abc/{a,b}.js');
+//=> true
+```
+
+Extglobs
+
+```js
+isGlob('abc/@(a).js');
+isGlob('abc/!(a).js');
+isGlob('abc/+(a).js');
+isGlob('abc/*(a).js');
+isGlob('abc/?(a).js');
+//=> true
+```
+
+**False**
+
+Escaped globs or extglobs return `false`:
+
+```js
+isGlob('abc/\\@(a).js');
+isGlob('abc/\\!(a).js');
+isGlob('abc/\\+(a).js');
+isGlob('abc/\\*(a).js');
+isGlob('abc/\\?(a).js');
+isGlob('\\!foo.js');
+isGlob('\\*.js');
+isGlob('\\*\\*/abc.js');
+isGlob('abc/\\*.js');
+isGlob('abc/\\(aaa|bbb).js');
+isGlob('abc/\\[a-z].js');
+isGlob('abc/\\{a,b}.js');
+//=> false
+```
+
+Patterns that do not have glob patterns return `false`:
+
+```js
+isGlob('abc.js');
+isGlob('abc/def/ghi.js');
+isGlob('foo.js');
+isGlob('abc/@.js');
+isGlob('abc/+.js');
+isGlob('abc/?.js');
+isGlob();
+isGlob(null);
+//=> false
+```
+
+Arrays are also `false` (If you want to check if an array has a glob pattern, use [has-glob](https://github.com/jonschlinkert/has-glob)):
+
+```js
+isGlob(['**/*.js']);
+isGlob(['foo.js']);
+//=> false
+```
+
+### Option strict
+
+When `options.strict === false` the behavior is less strict in determining if a pattern is a glob. Meaning that
+some patterns that would return `false` may return `true`. This is done so that matching libraries like [micromatch](https://github.com/micromatch/micromatch) have a chance at determining if the pattern is a glob or not.
+
+**True**
+
+Patterns that have glob characters or regex patterns will return `true`:
+
+```js
+isGlob('!foo.js', {strict: false});
+isGlob('*.js', {strict: false});
+isGlob('**/abc.js', {strict: false});
+isGlob('abc/*.js', {strict: false});
+isGlob('abc/(aaa|bbb).js', {strict: false});
+isGlob('abc/[a-z].js', {strict: false});
+isGlob('abc/{a,b}.js', {strict: false});
+//=> true
+```
+
+Extglobs
+
+```js
+isGlob('abc/@(a).js', {strict: false});
+isGlob('abc/!(a).js', {strict: false});
+isGlob('abc/+(a).js', {strict: false});
+isGlob('abc/*(a).js', {strict: false});
+isGlob('abc/?(a).js', {strict: false});
+//=> true
+```
+
+**False**
+
+Escaped globs or extglobs return `false`:
+
+```js
+isGlob('\\!foo.js', {strict: false});
+isGlob('\\*.js', {strict: false});
+isGlob('\\*\\*/abc.js', {strict: false});
+isGlob('abc/\\*.js', {strict: false});
+isGlob('abc/\\(aaa|bbb).js', {strict: false});
+isGlob('abc/\\[a-z].js', {strict: false});
+isGlob('abc/\\{a,b}.js', {strict: false});
+//=> false
+```
+
+## About
+
+
+Contributing
+
+Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
+
+
+
+
+Running Tests
+
+Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
+
+```sh
+$ npm install && npm test
+```
+
+
+
+
+Building docs
+
+_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
+
+To generate the readme, run the following command:
+
+```sh
+$ npm install -g verbose/verb#dev verb-generate-readme && verb
+```
+
+
+
+### Related projects
+
+You might also be interested in these projects:
+
+* [assemble](https://www.npmjs.com/package/assemble): Get the rocks out of your socks! Assemble makes you fast at creating web projects… [more](https://github.com/assemble/assemble) | [homepage](https://github.com/assemble/assemble "Get the rocks out of your socks! Assemble makes you fast at creating web projects. Assemble is used by thousands of projects for rapid prototyping, creating themes, scaffolds, boilerplates, e-books, UI components, API documentation, blogs, building websit")
+* [base](https://www.npmjs.com/package/base): Framework for rapidly creating high quality, server-side node.js applications, using plugins like building blocks | [homepage](https://github.com/node-base/base "Framework for rapidly creating high quality, server-side node.js applications, using plugins like building blocks")
+* [update](https://www.npmjs.com/package/update): Be scalable! Update is a new, open source developer framework and CLI for automating updates… [more](https://github.com/update/update) | [homepage](https://github.com/update/update "Be scalable! Update is a new, open source developer framework and CLI for automating updates of any kind in code projects.")
+* [verb](https://www.npmjs.com/package/verb): Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used… [more](https://github.com/verbose/verb) | [homepage](https://github.com/verbose/verb "Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used on hundreds of projects of all sizes to generate everything from API docs to readmes.")
+
+### Contributors
+
+| **Commits** | **Contributor** |
+| --- | --- |
+| 47 | [jonschlinkert](https://github.com/jonschlinkert) |
+| 5 | [doowb](https://github.com/doowb) |
+| 1 | [phated](https://github.com/phated) |
+| 1 | [danhper](https://github.com/danhper) |
+| 1 | [paulmillr](https://github.com/paulmillr) |
+
+### Author
+
+**Jon Schlinkert**
+
+* [GitHub Profile](https://github.com/jonschlinkert)
+* [Twitter Profile](https://twitter.com/jonschlinkert)
+* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert)
+
+### License
+
+Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert).
+Released under the [MIT License](LICENSE).
+
+***
+
+_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on March 27, 2019._
\ No newline at end of file
diff --git a/node_modules/is-glob/index.js b/node_modules/is-glob/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..620f563eccf081ce0d2db2dda5c9989baf778183
--- /dev/null
+++ b/node_modules/is-glob/index.js
@@ -0,0 +1,150 @@
+/*!
+ * is-glob
+ *
+ * Copyright (c) 2014-2017, Jon Schlinkert.
+ * Released under the MIT License.
+ */
+
+var isExtglob = require('is-extglob');
+var chars = { '{': '}', '(': ')', '[': ']'};
+var strictCheck = function(str) {
+ if (str[0] === '!') {
+ return true;
+ }
+ var index = 0;
+ var pipeIndex = -2;
+ var closeSquareIndex = -2;
+ var closeCurlyIndex = -2;
+ var closeParenIndex = -2;
+ var backSlashIndex = -2;
+ while (index < str.length) {
+ if (str[index] === '*') {
+ return true;
+ }
+
+ if (str[index + 1] === '?' && /[\].+)]/.test(str[index])) {
+ return true;
+ }
+
+ if (closeSquareIndex !== -1 && str[index] === '[' && str[index + 1] !== ']') {
+ if (closeSquareIndex < index) {
+ closeSquareIndex = str.indexOf(']', index);
+ }
+ if (closeSquareIndex > index) {
+ if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {
+ return true;
+ }
+ backSlashIndex = str.indexOf('\\', index);
+ if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {
+ return true;
+ }
+ }
+ }
+
+ if (closeCurlyIndex !== -1 && str[index] === '{' && str[index + 1] !== '}') {
+ closeCurlyIndex = str.indexOf('}', index);
+ if (closeCurlyIndex > index) {
+ backSlashIndex = str.indexOf('\\', index);
+ if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) {
+ return true;
+ }
+ }
+ }
+
+ if (closeParenIndex !== -1 && str[index] === '(' && str[index + 1] === '?' && /[:!=]/.test(str[index + 2]) && str[index + 3] !== ')') {
+ closeParenIndex = str.indexOf(')', index);
+ if (closeParenIndex > index) {
+ backSlashIndex = str.indexOf('\\', index);
+ if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {
+ return true;
+ }
+ }
+ }
+
+ if (pipeIndex !== -1 && str[index] === '(' && str[index + 1] !== '|') {
+ if (pipeIndex < index) {
+ pipeIndex = str.indexOf('|', index);
+ }
+ if (pipeIndex !== -1 && str[pipeIndex + 1] !== ')') {
+ closeParenIndex = str.indexOf(')', pipeIndex);
+ if (closeParenIndex > pipeIndex) {
+ backSlashIndex = str.indexOf('\\', pipeIndex);
+ if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {
+ return true;
+ }
+ }
+ }
+ }
+
+ if (str[index] === '\\') {
+ var open = str[index + 1];
+ index += 2;
+ var close = chars[open];
+
+ if (close) {
+ var n = str.indexOf(close, index);
+ if (n !== -1) {
+ index = n + 1;
+ }
+ }
+
+ if (str[index] === '!') {
+ return true;
+ }
+ } else {
+ index++;
+ }
+ }
+ return false;
+};
+
+var relaxedCheck = function(str) {
+ if (str[0] === '!') {
+ return true;
+ }
+ var index = 0;
+ while (index < str.length) {
+ if (/[*?{}()[\]]/.test(str[index])) {
+ return true;
+ }
+
+ if (str[index] === '\\') {
+ var open = str[index + 1];
+ index += 2;
+ var close = chars[open];
+
+ if (close) {
+ var n = str.indexOf(close, index);
+ if (n !== -1) {
+ index = n + 1;
+ }
+ }
+
+ if (str[index] === '!') {
+ return true;
+ }
+ } else {
+ index++;
+ }
+ }
+ return false;
+};
+
+module.exports = function isGlob(str, options) {
+ if (typeof str !== 'string' || str === '') {
+ return false;
+ }
+
+ if (isExtglob(str)) {
+ return true;
+ }
+
+ var check = strictCheck;
+
+ // optionally relax check
+ if (options && options.strict === false) {
+ check = relaxedCheck;
+ }
+
+ return check(str);
+};
diff --git a/node_modules/is-glob/package.json b/node_modules/is-glob/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..858af0378e9d36813353b51271aec88ee0d3328b
--- /dev/null
+++ b/node_modules/is-glob/package.json
@@ -0,0 +1,81 @@
+{
+ "name": "is-glob",
+ "description": "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience.",
+ "version": "4.0.3",
+ "homepage": "https://github.com/micromatch/is-glob",
+ "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
+ "contributors": [
+ "Brian Woodward (https://twitter.com/doowb)",
+ "Daniel Perez (https://tuvistavie.com)",
+ "Jon Schlinkert (http://twitter.com/jonschlinkert)"
+ ],
+ "repository": "micromatch/is-glob",
+ "bugs": {
+ "url": "https://github.com/micromatch/is-glob/issues"
+ },
+ "license": "MIT",
+ "files": [
+ "index.js"
+ ],
+ "main": "index.js",
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "scripts": {
+ "test": "mocha && node benchmark.js"
+ },
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "devDependencies": {
+ "gulp-format-md": "^0.1.10",
+ "mocha": "^3.0.2"
+ },
+ "keywords": [
+ "bash",
+ "braces",
+ "check",
+ "exec",
+ "expression",
+ "extglob",
+ "glob",
+ "globbing",
+ "globstar",
+ "is",
+ "match",
+ "matches",
+ "pattern",
+ "regex",
+ "regular",
+ "string",
+ "test"
+ ],
+ "verb": {
+ "layout": "default",
+ "plugins": [
+ "gulp-format-md"
+ ],
+ "related": {
+ "list": [
+ "assemble",
+ "base",
+ "update",
+ "verb"
+ ]
+ },
+ "reflinks": [
+ "assemble",
+ "bach",
+ "base",
+ "composer",
+ "gulp",
+ "has-glob",
+ "is-valid-glob",
+ "micromatch",
+ "npm",
+ "scaffold",
+ "verb",
+ "vinyl"
+ ]
+ }
+}
diff --git a/node_modules/is-hexadecimal/index.d.ts b/node_modules/is-hexadecimal/index.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..1199b32aa899801c018204ab4166312024e4d818
--- /dev/null
+++ b/node_modules/is-hexadecimal/index.d.ts
@@ -0,0 +1,8 @@
+/**
+ * Check if the given character code, or the character code at the first
+ * character, is hexadecimal.
+ *
+ * @param {string|number} character
+ * @returns {boolean} Whether `character` is hexadecimal
+ */
+export function isHexadecimal(character: string | number): boolean
diff --git a/node_modules/is-hexadecimal/index.js b/node_modules/is-hexadecimal/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..2eda39fbef8c5067d9b35270d76ddf96e87c20a1
--- /dev/null
+++ b/node_modules/is-hexadecimal/index.js
@@ -0,0 +1,17 @@
+/**
+ * Check if the given character code, or the character code at the first
+ * character, is hexadecimal.
+ *
+ * @param {string|number} character
+ * @returns {boolean} Whether `character` is hexadecimal
+ */
+export function isHexadecimal(character) {
+ const code =
+ typeof character === 'string' ? character.charCodeAt(0) : character
+
+ return (
+ (code >= 97 /* a */ && code <= 102) /* z */ ||
+ (code >= 65 /* A */ && code <= 70) /* Z */ ||
+ (code >= 48 /* A */ && code <= 57) /* Z */
+ )
+}
diff --git a/node_modules/is-hexadecimal/license b/node_modules/is-hexadecimal/license
new file mode 100644
index 0000000000000000000000000000000000000000..8d8660d36ef2eced1f9cce91e17ae0290261734c
--- /dev/null
+++ b/node_modules/is-hexadecimal/license
@@ -0,0 +1,22 @@
+(The MIT License)
+
+Copyright (c) 2016 Titus Wormer
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+'Software'), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/node_modules/is-hexadecimal/package.json b/node_modules/is-hexadecimal/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..e88ab44727a7950a04048f23bb81d0a0add95592
--- /dev/null
+++ b/node_modules/is-hexadecimal/package.json
@@ -0,0 +1,73 @@
+{
+ "name": "is-hexadecimal",
+ "version": "2.0.1",
+ "description": "Check if a character is hexadecimal",
+ "license": "MIT",
+ "keywords": [
+ "string",
+ "character",
+ "char",
+ "code",
+ "hexadecimal"
+ ],
+ "repository": "wooorm/is-hexadecimal",
+ "bugs": "https://github.com/wooorm/is-hexadecimal/issues",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ },
+ "author": "Titus Wormer (https://wooorm.com)",
+ "contributors": [
+ "Titus Wormer (https://wooorm.com)"
+ ],
+ "sideEffects": false,
+ "type": "module",
+ "main": "index.js",
+ "types": "index.d.ts",
+ "files": [
+ "index.d.ts",
+ "index.js"
+ ],
+ "devDependencies": {
+ "@types/tape": "^4.0.0",
+ "c8": "^7.0.0",
+ "prettier": "^2.0.0",
+ "remark-cli": "^10.0.0",
+ "remark-preset-wooorm": "^9.0.0",
+ "rimraf": "^3.0.0",
+ "tape": "^5.0.0",
+ "type-coverage": "^2.0.0",
+ "typescript": "^4.0.0",
+ "xo": "^0.46.0"
+ },
+ "scripts": {
+ "prepublishOnly": "npm run build && npm run format",
+ "build": "rimraf \"*.d.ts\" && tsc && type-coverage",
+ "format": "remark . -qfo && prettier . -w --loglevel warn && xo --fix",
+ "test-api": "node --conditions development test.js",
+ "test-coverage": "c8 --check-coverage --branches 100 --functions 100 --lines 100 --statements 100 --reporter lcov npm run test-api",
+ "test": "npm run build && npm run format && npm run test-coverage"
+ },
+ "prettier": {
+ "tabWidth": 2,
+ "useTabs": false,
+ "singleQuote": true,
+ "bracketSpacing": false,
+ "semi": false,
+ "trailingComma": "none"
+ },
+ "xo": {
+ "prettier": true
+ },
+ "remarkConfig": {
+ "plugins": [
+ "preset-wooorm"
+ ]
+ },
+ "typeCoverage": {
+ "atLeast": 100,
+ "detail": true,
+ "strict": true,
+ "ignoreCatch": true
+ }
+}
diff --git a/node_modules/is-hexadecimal/readme.md b/node_modules/is-hexadecimal/readme.md
new file mode 100644
index 0000000000000000000000000000000000000000..a857ecd9091ac3c98457b1a6024ca1019b3e3c67
--- /dev/null
+++ b/node_modules/is-hexadecimal/readme.md
@@ -0,0 +1,141 @@
+# is-hexadecimal
+
+[![Build][build-badge]][build]
+[![Coverage][coverage-badge]][coverage]
+[![Downloads][downloads-badge]][downloads]
+[![Size][size-badge]][size]
+
+Check if a character is hexadecimal.
+
+## Contents
+
+* [What is this?](#what-is-this)
+* [When should I use this?](#when-should-i-use-this)
+* [Install](#install)
+* [Use](#use)
+* [API](#api)
+ * [`isHexadecimal(character|code)`](#ishexadecimalcharactercode)
+* [Types](#types)
+* [Compatibility](#compatibility)
+* [Security](#security)
+* [Related](#related)
+* [Contribute](#contribute)
+* [License](#license)
+
+## What is this?
+
+This is a function that checks if a given character is a white space character:
+whether it matches `[a-f0-9]`, case insensitive.
+
+## When should I use this?
+
+Not often, as it’s relatively simple to do yourself.
+This package exists because it’s needed in several related packages, at which
+point it becomes useful to defer to one shared function.
+
+## Install
+
+This package is [ESM only][esm].
+In Node.js (version 12.20+, 14.14+, or 16.0+), install with [npm][]:
+
+```sh
+npm install is-hexadecimal
+```
+
+In Deno with [Skypack][]:
+
+```js
+import {isHexadecimal} from 'https://cdn.skypack.dev/is-hexadecimal@2?dts'
+```
+
+In browsers with [Skypack][]:
+
+```html
+
+```
+
+## Use
+
+```js
+import {isHexadecimal} from 'is-hexadecimal'
+
+isHexadecimal('a') // => true
+isHexadecimal('0') // => true
+isHexadecimal('G') // => false
+isHexadecimal('💩') // => false
+```
+
+## API
+
+This package exports the following identifier: `isHexadecimal`.
+There is no default export.
+
+### `isHexadecimal(character|code)`
+
+Check whether the given character code (`number`), or the character code at the
+first position (`string`), is isHexadecimal.
+
+## Types
+
+This package is fully typed with [TypeScript][].
+
+## Compatibility
+
+This package is at least compatible with all maintained versions of Node.js.
+As of now, that is Node.js 12.20+, 14.14+, and 16.0+.
+It also works in Deno and modern browsers.
+
+## Security
+
+This package is safe.
+
+## Related
+
+* [`wooorm/is-alphabetical`](https://github.com/wooorm/is-alphabetical)
+* [`wooorm/is-alphanumerical`](https://github.com/wooorm/is-alphabetical)
+* [`wooorm/is-decimal`](https://github.com/wooorm/is-decimal)
+* [`wooorm/is-whitespace-character`](https://github.com/wooorm/is-whitespace-character)
+* [`wooorm/is-word-character`](https://github.com/wooorm/is-word-character)
+
+## Contribute
+
+Yes please!
+See [How to Contribute to Open Source][contribute].
+
+## License
+
+[MIT][license] © [Titus Wormer][author]
+
+
+
+[build-badge]: https://github.com/wooorm/is-hexadecimal/workflows/main/badge.svg
+
+[build]: https://github.com/wooorm/is-hexadecimal/actions
+
+[coverage-badge]: https://img.shields.io/codecov/c/github/wooorm/is-hexadecimal.svg
+
+[coverage]: https://codecov.io/github/wooorm/is-hexadecimal
+
+[downloads-badge]: https://img.shields.io/npm/dm/is-hexadecimal.svg
+
+[downloads]: https://www.npmjs.com/package/is-hexadecimal
+
+[size-badge]: https://img.shields.io/bundlephobia/minzip/is-hexadecimal.svg
+
+[size]: https://bundlephobia.com/result?p=is-hexadecimal
+
+[npm]: https://docs.npmjs.com/cli/install
+
+[skypack]: https://www.skypack.dev
+
+[license]: license
+
+[author]: https://wooorm.com
+
+[esm]: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c
+
+[typescript]: https://www.typescriptlang.org
+
+[contribute]: https://opensource.guide/how-to-contribute/
diff --git a/node_modules/is-map/.editorconfig b/node_modules/is-map/.editorconfig
new file mode 100644
index 0000000000000000000000000000000000000000..8f9d77e2dc2ccfe65326efc167617a2f85fd5e30
--- /dev/null
+++ b/node_modules/is-map/.editorconfig
@@ -0,0 +1,15 @@
+root = true
+
+[*]
+indent_style = tab
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+[{package.json,*.yml}]
+indent_style = space
+indent_size = 2
+
+[*.md]
+trim_trailing_whitespace = false
diff --git a/node_modules/is-map/.eslintrc b/node_modules/is-map/.eslintrc
new file mode 100644
index 0000000000000000000000000000000000000000..3b5d9e90ec405f85dd7f9066656efccc51193697
--- /dev/null
+++ b/node_modules/is-map/.eslintrc
@@ -0,0 +1,5 @@
+{
+ "root": true,
+
+ "extends": "@ljharb",
+}
diff --git a/node_modules/is-map/.gitattributes b/node_modules/is-map/.gitattributes
new file mode 100644
index 0000000000000000000000000000000000000000..176a458f94e0ea5272ce67c36bf30b6be9caf623
--- /dev/null
+++ b/node_modules/is-map/.gitattributes
@@ -0,0 +1 @@
+* text=auto
diff --git a/node_modules/is-map/.github/FUNDING.yml b/node_modules/is-map/.github/FUNDING.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9afa45da7713937293e6145ca5b1b20a9942ff0d
--- /dev/null
+++ b/node_modules/is-map/.github/FUNDING.yml
@@ -0,0 +1,12 @@
+# These are supported funding model platforms
+
+github: [ljharb]
+patreon: # Replace with a single Patreon username
+open_collective: # Replace with a single Open Collective username
+ko_fi: # Replace with a single Ko-fi username
+tidelift: npm/is-map
+community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
+liberapay: # Replace with a single Liberapay username
+issuehunt: # Replace with a single IssueHunt username
+otechie: # Replace with a single Otechie username
+custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/node_modules/is-map/.nycrc b/node_modules/is-map/.nycrc
new file mode 100644
index 0000000000000000000000000000000000000000..bdd626ce91477abbdd489b79988baebadbd3c897
--- /dev/null
+++ b/node_modules/is-map/.nycrc
@@ -0,0 +1,9 @@
+{
+ "all": true,
+ "check-coverage": false,
+ "reporter": ["text-summary", "text", "html", "json"],
+ "exclude": [
+ "coverage",
+ "test"
+ ]
+}
diff --git a/node_modules/is-map/CHANGELOG.md b/node_modules/is-map/CHANGELOG.md
new file mode 100644
index 0000000000000000000000000000000000000000..db726ef4abe2409453b17b28f575e976ebc6b6d4
--- /dev/null
+++ b/node_modules/is-map/CHANGELOG.md
@@ -0,0 +1,89 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [v2.0.3](https://github.com/inspect-js/is-map/compare/v2.0.2...v2.0.3) - 2024-03-08
+
+### Commits
+
+- [actions] reuse common workflows [`ce10d0f`](https://github.com/inspect-js/is-map/commit/ce10d0f82fcec150b5d283202c1988887d618895)
+- [meta] use `npmignore` to autogenerate an npmignore file [`e07e23a`](https://github.com/inspect-js/is-map/commit/e07e23affca99f469937dade44abc02e05a26739)
+- add types [`cd13cfb`](https://github.com/inspect-js/is-map/commit/cd13cfb54647def94a0df9a276a92298891f7bdd)
+- [actions] use `node/install` instead of `node/run`; use `codecov` action [`1e055f9`](https://github.com/inspect-js/is-map/commit/1e055f9ea79c6c7cb6f8182e644c08ae167d358b)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `object-inspect`, `safe-publish-latest`, `tape` [`12d125e`](https://github.com/inspect-js/is-map/commit/12d125ef5bd4d6cf0468f406bf3dd3b873aa3af9)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `es5-shim`, `object-inspect`, `tape` [`adfb18e`](https://github.com/inspect-js/is-map/commit/adfb18ee26fa3ecadfdb16657a5423dda4248ca3)
+- [actions] remove redundant finisher [`c5511b7`](https://github.com/inspect-js/is-map/commit/c5511b79c739a08f7da40b9cae2391d10b4b613c)
+- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `es6-shim`, `npmignore`, `object-inspect`, `tape` [`b2c7d67`](https://github.com/inspect-js/is-map/commit/b2c7d674d2e78f5fb67a7e69b83ae177255fb8da)
+- [actions] update rebase action to use reusable workflow [`bbad644`](https://github.com/inspect-js/is-map/commit/bbad64428c5b777070ed86130669211ec1645714)
+- [actions] update codecov uploader [`8f57f98`](https://github.com/inspect-js/is-map/commit/8f57f98d3e3897fa82e87a155f05b7fdb174c222)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `auto-changelog`, `es5-shim`, `object-inspect`, `tape` [`d330ff4`](https://github.com/inspect-js/is-map/commit/d330ff4cbdbbce8402da928cab040e2c85126506)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `object-inspect`, `tape` [`454e31c`](https://github.com/inspect-js/is-map/commit/454e31ccecaa2ac78c7397afe2b0101576ad5b11)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `es5-shim`, `tape` [`b43283d`](https://github.com/inspect-js/is-map/commit/b43283dcd906d2024d2b78448bf8b679922d791b)
+- [readme] add actions and codecov badges [`0fc119e`](https://github.com/inspect-js/is-map/commit/0fc119ed01da39b3444478f7912447f6f298339f)
+- [Dev Deps] update `eslint`, `object-inspect` [`e2311f8`](https://github.com/inspect-js/is-map/commit/e2311f8984f2e2efda5011b4636275bfa7b17e8d)
+- [meta] add missing `engines.node` [`9bddaf2`](https://github.com/inspect-js/is-map/commit/9bddaf20a47fc5f359d171c8a7d43ac667d4680d)
+- [meta] use `prepublishOnly` script for npm 7+ [`d3b7661`](https://github.com/inspect-js/is-map/commit/d3b76613fcd34381a1ccdf17f4ab6e3e892dfc5f)
+- [Dev Deps] update `safe-publish-latest` [`00d7b69`](https://github.com/inspect-js/is-map/commit/00d7b69c315b9404b49c8d0ca85774f739f25a61)
+- [meta] add `sideEffects` flag [`bab4457`](https://github.com/inspect-js/is-map/commit/bab445707d11d590f2650f43b58bf9fa8dd664d1)
+
+## [v2.0.2](https://github.com/inspect-js/is-map/compare/v2.0.1...v2.0.2) - 2020-12-13
+
+### Commits
+
+- [Tests] migrate tests to Github Actions [`349a036`](https://github.com/inspect-js/is-map/commit/349a0362a744d024937a4356134389cbebf0c1a7)
+- [meta] do not publish github action workflow files [`f473ae7`](https://github.com/inspect-js/is-map/commit/f473ae777d15c5d247002f5aaa52ed4ada3a5dd4)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `es6-shim`, `object-inspect`, `tape` [`12dbda3`](https://github.com/inspect-js/is-map/commit/12dbda37a97c0dab0a3874a6cff086cd44f1c94c)
+- [Tests] run `nyc` on all tests; use `tape` runner; add `core-js` tests [`b280737`](https://github.com/inspect-js/is-map/commit/b280737c513588fef4b88c16328627744c8ab946)
+- [actions] add "Allow Edits" workflow [`d8dcf17`](https://github.com/inspect-js/is-map/commit/d8dcf17dd6b1cc09b8de369aa87188f469297b7c)
+- [readme] remove travis badge [`eab86f9`](https://github.com/inspect-js/is-map/commit/eab86f94cca4941861784e5eb8b7ca05e847e0b5)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`9c87af5`](https://github.com/inspect-js/is-map/commit/9c87af5008a4ff79bffc3a6de55bf2d65979db6d)
+- [actions] switch Automatic Rease workflow to `pull_request_tarbget` event [`71647b8`](https://github.com/inspect-js/is-map/commit/71647b805066ecbc096d5742fd69046d22f2b5c4)
+- [Dev Deps] update `es5-shim`, `tape` [`3a91230`](https://github.com/inspect-js/is-map/commit/3a912305d7d836e8d6e4f80e9047e3beff8ea887)
+- [Dev Deps] update `auto-changelog`; add `aud` [`d3cd3da`](https://github.com/inspect-js/is-map/commit/d3cd3da9008756a02c2b26b45292c477bf9594a9)
+- [Tests] only audit prod deps [`83ef327`](https://github.com/inspect-js/is-map/commit/83ef327c62d54a48193bf95ed8cb6c4dff0a2035)
+- [meta] normalize line endings [`81a9eec`](https://github.com/inspect-js/is-map/commit/81a9eec713f8e309fa1f0ffb7e4b154c359b367b)
+
+## [v2.0.1](https://github.com/inspect-js/is-map/compare/v2.0.0...v2.0.1) - 2019-12-17
+
+### Fixed
+
+- [Refactor] avoid top-level return, because babel and webpack are broken [`#5`](https://github.com/inspect-js/is-map/issues/5) [`#4`](https://github.com/inspect-js/is-map/issues/4) [`#3`](https://github.com/inspect-js/is-map/issues/3) [`#78`](https://github.com/inspect-js/node-deep-equal/issues/78) [`#7`](https://github.com/es-shims/Promise.allSettled/issues/7) [`#12`](https://github.com/airbnb/js-shims/issues/12)
+
+### Commits
+
+- [actions] add automatic rebasing / merge commit blocking [`743f29f`](https://github.com/inspect-js/is-map/commit/743f29fc527b4a8a56a7045ad3d56ecfc798b1a3)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`8ced854`](https://github.com/inspect-js/is-map/commit/8ced854c842c86cb126b86618cb4f90ef6a04f2b)
+
+## [v2.0.0](https://github.com/inspect-js/is-map/compare/v1.0.1...v2.0.0) - 2019-11-12
+
+### Commits
+
+- Initial commit [`38592bc`](https://github.com/inspect-js/is-map/commit/38592bcb928d97b244cca6cee91142a44bcf5ab1)
+- Tests [`ca54632`](https://github.com/inspect-js/is-map/commit/ca546326943385052e8b5a04377f1f8b110b7306)
+- readme [`9ad8bb6`](https://github.com/inspect-js/is-map/commit/9ad8bb6bc2fb295ada21e1cd901c89aa55acad37)
+- implementation [`03e1dbc`](https://github.com/inspect-js/is-map/commit/03e1dbc64eb09e6caba919c9ae5662992f0a9b52)
+- npm init [`d05ce8b`](https://github.com/inspect-js/is-map/commit/d05ce8b0ad797c97ed23a7730a9e211e5fe0fe92)
+- [meta] add `funding` field; create `FUNDING.yml` [`2d56b4e`](https://github.com/inspect-js/is-map/commit/2d56b4e2a44e6eb4557d9d192a863c92b68c6597)
+- [meta] add `safe-publish-latest`, `auto-changelog` [`2ebecb5`](https://github.com/inspect-js/is-map/commit/2ebecb5a3fe5fa682d5d04d1cd87f4d88ba22ec9)
+- [Tests] add `npm run lint` [`ddc3e32`](https://github.com/inspect-js/is-map/commit/ddc3e320c3d181b9111dd3a86df486604710e08c)
+- [Tests] use shared travis-ci configs [`69f6d9c`](https://github.com/inspect-js/is-map/commit/69f6d9c52a06dda27419eb41572b8db6009f6d49)
+- Only apps should have lockfiles [`408cccd`](https://github.com/inspect-js/is-map/commit/408cccdc824c017547573d816b2201e9cfb9a292)
+- [Tests] add `npx aud` in `posttest` [`5eadb02`](https://github.com/inspect-js/is-map/commit/5eadb02075754732df3532bc2e98ca6307c46537)
+
+## [v1.0.1](https://github.com/inspect-js/is-map/compare/v1.0.0...v1.0.1) - 2015-07-02
+
+### Commits
+
+- small tweaks [`2bd7622`](https://github.com/inspect-js/is-map/commit/2bd762263930d4f72eedd3a54678e1692062d53f)
+- Add `related` section to readme [`3231e74`](https://github.com/inspect-js/is-map/commit/3231e748fbf1d4d7d1662b8a559e73cc1e69468b)
+- Update license info in `readme.md` [`3a03b38`](https://github.com/inspect-js/is-map/commit/3a03b387b798d5eda09965dcf63e0c9fb9c7ddac)
+- editorconfig: indent yml using 2 spaces [`d724177`](https://github.com/inspect-js/is-map/commit/d724177b7eb103174cd9ca1dce4a914e3dfdb1cd)
+
+## v1.0.0 - 2015-02-18
+
+### Commits
+
+- init [`73b9f38`](https://github.com/inspect-js/is-map/commit/73b9f38e3d3c0435e639a7e054714d71b6ddae9b)
diff --git a/node_modules/is-map/LICENSE b/node_modules/is-map/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..c05eb206bdf4955213919987028657acd99ed92c
--- /dev/null
+++ b/node_modules/is-map/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 Inspect JS
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/is-map/README.md b/node_modules/is-map/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..c5fd9dd492021dc0f0dac82699746aacaff3b85d
--- /dev/null
+++ b/node_modules/is-map/README.md
@@ -0,0 +1,52 @@
+# is-map [![Version Badge][2]][1]
+
+[![github actions][actions-image]][actions-url]
+[![coverage][codecov-image]][codecov-url]
+[![dependency status][5]][6]
+[![dev dependency status][7]][8]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][11]][1]
+
+Is this value a JS Map? This module works cross-realm/iframe, and despite ES6 @@toStringTag.
+
+## Example
+
+```js
+var isMap = require('is-map');
+assert(!isMap(function () {}));
+assert(!isMap(null));
+assert(!isMap(function* () { yield 42; return Infinity; });
+assert(!isMap(Symbol('foo')));
+assert(!isMap(1n));
+assert(!isMap(Object(1n)));
+
+assert(!isMap(new Set()));
+assert(!isMap(new WeakSet()));
+assert(!isMap(new WeakMap()));
+
+assert(isMap(new Map()));
+
+class MyMap extends Map {}
+assert(isMap(new MyMap()));
+```
+
+## Tests
+Simply clone the repo, `npm install`, and run `npm test`
+
+[1]: https://npmjs.org/package/is-map
+[2]: https://versionbadg.es/inspect-js/is-map.svg
+[5]: https://david-dm.org/inspect-js/is-map.svg
+[6]: https://david-dm.org/inspect-js/is-map
+[7]: https://david-dm.org/inspect-js/is-map/dev-status.svg
+[8]: https://david-dm.org/inspect-js/is-map#info=devDependencies
+[11]: https://nodei.co/npm/is-map.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/is-map.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/is-map.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=is-map
+[codecov-image]: https://codecov.io/gh/inspect-js/is-map/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/inspect-js/is-map/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-map
+[actions-url]: https://github.com/inspect-js/is-map/actions
diff --git a/node_modules/is-map/index.d.ts b/node_modules/is-map/index.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..650f08ff72cb1c086b89f2547ef00fe3ab6ecff9
--- /dev/null
+++ b/node_modules/is-map/index.d.ts
@@ -0,0 +1,3 @@
+declare function isMap(x: unknown): x is Map;
+
+export = isMap;
\ No newline at end of file
diff --git a/node_modules/is-map/index.js b/node_modules/is-map/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..44063d0c8da1b11669701d3f1b7e7e9c4a311035
--- /dev/null
+++ b/node_modules/is-map/index.js
@@ -0,0 +1,47 @@
+'use strict';
+
+/** @const */
+var $Map = typeof Map === 'function' && Map.prototype ? Map : null;
+var $Set = typeof Set === 'function' && Set.prototype ? Set : null;
+
+var exported;
+
+if (!$Map) {
+ /** @type {import('.')} */
+ // eslint-disable-next-line no-unused-vars
+ exported = function isMap(x) {
+ // `Map` is not present in this environment.
+ return false;
+ };
+}
+
+var $mapHas = $Map ? Map.prototype.has : null;
+var $setHas = $Set ? Set.prototype.has : null;
+if (!exported && !$mapHas) {
+ /** @type {import('.')} */
+ // eslint-disable-next-line no-unused-vars
+ exported = function isMap(x) {
+ // `Map` does not have a `has` method
+ return false;
+ };
+}
+
+/** @type {import('.')} */
+module.exports = exported || function isMap(x) {
+ if (!x || typeof x !== 'object') {
+ return false;
+ }
+ try {
+ $mapHas.call(x);
+ if ($setHas) {
+ try {
+ $setHas.call(x);
+ } catch (e) {
+ return true;
+ }
+ }
+ // @ts-expect-error TS can't figure out that $Map is always truthy here
+ return x instanceof $Map; // core-js workaround, pre-v2.5.0
+ } catch (e) {}
+ return false;
+};
diff --git a/node_modules/is-map/package.json b/node_modules/is-map/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..09db80769479c2bc594a19bd897707bf4f48faaf
--- /dev/null
+++ b/node_modules/is-map/package.json
@@ -0,0 +1,79 @@
+{
+ "name": "is-map",
+ "version": "2.0.3",
+ "description": "Is this value a JS Map? This module works cross-realm/iframe, and despite ES6 @@toStringTag.",
+ "main": "index.js",
+ "sideEffects": false,
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=autogenerated",
+ "version": "auto-changelog && git add CHANGELOG.md",
+ "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"",
+ "prepublishOnly": "safe-publish-latest",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "pretest": "npm run lint",
+ "lint": "eslint --ext=js,mjs .",
+ "postlint": "tsc -p . && attw -P",
+ "tests-only": "nyc tape 'test/**/*.js'",
+ "tests:shims": "nyc tape --require=es5-shim --require=es5-shim 'test/**/*.js'",
+ "tests:corejs": "nyc tape --require=core-js 'test/**/*.js'",
+ "test": "npm run tests-only && npm run tests:shims && npm run tests:corejs",
+ "posttest": "aud --production"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/inspect-js/is-map.git"
+ },
+ "keywords": [
+ "map",
+ "set",
+ "collection",
+ "is",
+ "robust"
+ ],
+ "author": "Jordan Harband ",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ },
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/inspect-js/is-map/issues"
+ },
+ "homepage": "https://github.com/inspect-js/is-map#readme",
+ "devDependencies": {
+ "@arethetypeswrong/cli": "^0.15.0",
+ "@ljharb/eslint-config": "^21.1.0",
+ "@types/for-each": "^0.3.3",
+ "@types/object-inspect": "^1.8.4",
+ "@types/tape": "^5.6.4",
+ "aud": "^2.0.4",
+ "auto-changelog": "^2.4.0",
+ "core-js": "^2.6.12",
+ "es5-shim": "^4.6.7",
+ "es6-shim": "^0.35.8",
+ "eslint": "=8.8.0",
+ "for-each": "^0.3.3",
+ "in-publish": "^2.0.1",
+ "npmignore": "^0.3.1",
+ "nyc": "^10.3.2",
+ "object-inspect": "^1.13.1",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.7.5",
+ "typescript": "^5.5.0-dev.20240308"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows"
+ ]
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+}
diff --git a/node_modules/is-map/test/index.js b/node_modules/is-map/test/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..3c9acdaeb40423d57ba8d20c3142c4a7d939a7e1
--- /dev/null
+++ b/node_modules/is-map/test/index.js
@@ -0,0 +1,59 @@
+'use strict';
+
+var test = require('tape');
+var debug = require('object-inspect');
+var forEach = require('for-each');
+
+var isMap = require('..');
+
+test('non-collections', function (t) {
+ forEach([
+ null,
+ undefined,
+ true,
+ false,
+ 42,
+ 0,
+ -0,
+ NaN,
+ Infinity,
+ '',
+ 'foo',
+ /a/g,
+ [],
+ {},
+ function () {}
+ ], function (nonCollection) {
+ t.equal(isMap(nonCollection), false, debug(nonCollection) + ' is not a Map');
+ });
+
+ t.end();
+});
+
+test('Maps', { skip: typeof Map !== 'function' }, function (t) {
+ var m = new Map();
+ t.equal(isMap(m), true, debug(m) + ' is a Map');
+
+ t.end();
+});
+
+test('Sets', { skip: typeof Set !== 'function' }, function (t) {
+ var s = new Set();
+ t.equal(isMap(s), false, debug(s) + ' is not a Map');
+
+ t.end();
+});
+
+test('WeakMaps', { skip: typeof WeakMap !== 'function' }, function (t) {
+ var wm = new WeakMap();
+ t.equal(isMap(wm), false, debug(wm) + ' is not a Map');
+
+ t.end();
+});
+
+test('WeakSets', { skip: typeof WeakSet !== 'function' }, function (t) {
+ var ws = new WeakSet();
+ t.equal(isMap(ws), false, debug(ws) + ' is not a Map');
+
+ t.end();
+});
diff --git a/node_modules/is-map/tsconfig.json b/node_modules/is-map/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..2002ce5a53532769b9b5bc561dac11518c384d13
--- /dev/null
+++ b/node_modules/is-map/tsconfig.json
@@ -0,0 +1,49 @@
+{
+ "compilerOptions": {
+ /* Visit https://aka.ms/tsconfig to read more about this file */
+
+ /* Projects */
+
+ /* Language and Environment */
+ "target": "ESNext", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
+ // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
+ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
+ "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
+ // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
+
+ /* Modules */
+ "module": "commonjs", /* Specify what module code is generated. */
+ // "rootDir": "./", /* Specify the root folder within your source files. */
+ // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */
+ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
+ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
+ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
+ "typeRoots": ["types"], /* Specify multiple folders that act like './node_modules/@types'. */
+ "resolveJsonModule": true, /* Enable importing .json files. */
+ // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */
+
+ /* JavaScript Support */
+ "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
+ "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
+ "maxNodeModuleJsDepth": 0, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
+
+ /* Emit */
+ "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
+ "declarationMap": true, /* Create sourcemaps for d.ts files. */
+ "noEmit": true, /* Disable emitting files from a compilation. */
+
+ /* Interop Constraints */
+ "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
+ "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
+ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
+
+ /* Type Checking */
+ "strict": true, /* Enable all strict type-checking options. */
+
+ /* Completeness */
+ //"skipLibCheck": true /* Skip type checking all .d.ts files. */
+ },
+ "exclude": [
+ "coverage"
+ ]
+}
diff --git a/node_modules/is-negative-zero/.editorconfig b/node_modules/is-negative-zero/.editorconfig
new file mode 100644
index 0000000000000000000000000000000000000000..aaac3258bea46fa996fd8aceb2386575c4ed8001
--- /dev/null
+++ b/node_modules/is-negative-zero/.editorconfig
@@ -0,0 +1,8 @@
+root = true
+
+[*]
+indent_style = tab
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
diff --git a/node_modules/is-negative-zero/.eslintrc b/node_modules/is-negative-zero/.eslintrc
new file mode 100644
index 0000000000000000000000000000000000000000..f858c0ab1bfe1ae45fdc1161524594e17f4ed1b2
--- /dev/null
+++ b/node_modules/is-negative-zero/.eslintrc
@@ -0,0 +1,9 @@
+{
+ "root": true,
+
+ "extends": "@ljharb",
+
+ "rules": {
+ "no-magic-numbers": 0
+ }
+}
diff --git a/node_modules/is-negative-zero/.github/FUNDING.yml b/node_modules/is-negative-zero/.github/FUNDING.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e34502b1cc247011ac11906200f57fd4df7d79ab
--- /dev/null
+++ b/node_modules/is-negative-zero/.github/FUNDING.yml
@@ -0,0 +1,12 @@
+# These are supported funding model platforms
+
+github: ljharb
+patreon: # Replace with a single Patreon username
+open_collective: # Replace with a single Open Collective username
+ko_fi: # Replace with a single Ko-fi username
+tidelift: npm/is-negative-zero
+community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
+liberapay: # Replace with a single Liberapay username
+issuehunt: # Replace with a single IssueHunt username
+otechie: # Replace with a single Otechie username
+custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/node_modules/is-negative-zero/.nycrc b/node_modules/is-negative-zero/.nycrc
new file mode 100644
index 0000000000000000000000000000000000000000..bdd626ce91477abbdd489b79988baebadbd3c897
--- /dev/null
+++ b/node_modules/is-negative-zero/.nycrc
@@ -0,0 +1,9 @@
+{
+ "all": true,
+ "check-coverage": false,
+ "reporter": ["text-summary", "text", "html", "json"],
+ "exclude": [
+ "coverage",
+ "test"
+ ]
+}
diff --git a/node_modules/is-negative-zero/CHANGELOG.md b/node_modules/is-negative-zero/CHANGELOG.md
new file mode 100644
index 0000000000000000000000000000000000000000..a3a2dedd8ca8fc8ba2c6b7be910735682130db63
--- /dev/null
+++ b/node_modules/is-negative-zero/CHANGELOG.md
@@ -0,0 +1,147 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [v2.0.3](https://github.com/inspect-js/is-negative-zero/compare/v2.0.2...v2.0.3) - 2024-02-19
+
+### Commits
+
+- add types [`e28f0d5`](https://github.com/inspect-js/is-negative-zero/commit/e28f0d59cffc61bd3d41c10563105e8adb868e59)
+- [meta] use `npmignore` to autogenerate an npmignore file [`f68ec13`](https://github.com/inspect-js/is-negative-zero/commit/f68ec13c1d04a2ef1e1c72506ae9c2ac0567bcdd)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`70abff7`](https://github.com/inspect-js/is-negative-zero/commit/70abff788bb0156f300a09c2f5cc7d30d5618184)
+- [actions] update rebase action to use reusable workflow [`6e1356e`](https://github.com/inspect-js/is-negative-zero/commit/6e1356e9fc5fee1bcae20b365c7d71b14ecf876d)
+- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `npmignore`, `tape` [`c00d4ab`](https://github.com/inspect-js/is-negative-zero/commit/c00d4ab5c381d22ac3e6d89180b3e012c479f13f)
+- [meta] add `sideEffects` flag [`9c45539`](https://github.com/inspect-js/is-negative-zero/commit/9c455398988d2db940fe6644541d09d510b6661f)
+
+## [v2.0.2](https://github.com/inspect-js/is-negative-zero/compare/v2.0.1...v2.0.2) - 2021-12-10
+
+### Commits
+
+- [actions] reuse common workflows [`ece923d`](https://github.com/inspect-js/is-negative-zero/commit/ece923d6b50820b7832150957774047da43d1743)
+- [actions] use `node/install` instead of `node/run`; use `codecov` action [`3a26f43`](https://github.com/inspect-js/is-negative-zero/commit/3a26f435434bbfb8a254ddd32d6079bf50263121)
+- [meta] do not publish workflow files [`2cea0c2`](https://github.com/inspect-js/is-negative-zero/commit/2cea0c20c7f8b167bb6064f916f3285642bf5ab1)
+- [readme] add github actions/codecov badges; update URLs [`0c0be3e`](https://github.com/inspect-js/is-negative-zero/commit/0c0be3eb148ccf9d764e8ed515ef0e1d0ffeed9d)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `tape` [`a93d16e`](https://github.com/inspect-js/is-negative-zero/commit/a93d16eddf46cad6bc9b71a92968ce758e6f4ea4)
+- [meta] create FUNDING.yml [`b4f425e`](https://github.com/inspect-js/is-negative-zero/commit/b4f425e49edb8c4aa1efa6ba34c2d5c1150b2a26)
+- [actions] update codecov uploader [`7999db3`](https://github.com/inspect-js/is-negative-zero/commit/7999db3bff3f0f9cc729529940b9077a586822e2)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `auto-changelog`, `safe-publish-latest`, `tape` [`140e4d9`](https://github.com/inspect-js/is-negative-zero/commit/140e4d95eda9ad821608c28a5f705d84a906096d)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`23a8b6d`](https://github.com/inspect-js/is-negative-zero/commit/23a8b6d257cea0b8a608b2319739562ecbc6ba75)
+- [readme] add actions and codecov badges [`fe92126`](https://github.com/inspect-js/is-negative-zero/commit/fe9212634346ced7a45905d958cb85d129e4c10b)
+- [readme] fix repo URLs [`50c428e`](https://github.com/inspect-js/is-negative-zero/commit/50c428e423e5861a6c231440b8b3e746cbf6230f)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`688155f`](https://github.com/inspect-js/is-negative-zero/commit/688155ff0214da72cbafa4c438c3b9629265d82b)
+- [meta] use `prepublishOnly` script for npm 7+ [`83171f9`](https://github.com/inspect-js/is-negative-zero/commit/83171f9131aed266f475d7a3283d9c2fc77e1436)
+- [actions] update workflows [`e9823db`](https://github.com/inspect-js/is-negative-zero/commit/e9823db3054887d8bb5b3f2c8f698b93cdce7d82)
+
+## [v2.0.1](https://github.com/inspect-js/is-negative-zero/compare/v2.0.0...v2.0.1) - 2020-12-04
+
+### Commits
+
+- [Tests] use shared travis-ci configs [`5b92482`](https://github.com/inspect-js/is-negative-zero/commit/5b92482ed26e55e1aafcc6b6310d279958af8204)
+- [Tests] up to `node` `v11.7`, `v10.15`, `v9.11`, `v8.15`, `v7.10`, `v6.16`, `v5.12`, `v4.9`; use `nvm install-latest-npm`; fix test scripts [`0f5d2f8`](https://github.com/inspect-js/is-negative-zero/commit/0f5d2f85ea7fe83de47f39b6b35e489b866d88a7)
+- [Tests] migrate tests to Github Actions [`b80f05a`](https://github.com/inspect-js/is-negative-zero/commit/b80f05adb11a6a3232860fb50272b101aacb504f)
+- [Tests] remove `jscs` [`7ccaf41`](https://github.com/inspect-js/is-negative-zero/commit/7ccaf4100281b614d61d7c9122e6f87943a89295)
+- [meta] add missing changelog [`992bdde`](https://github.com/inspect-js/is-negative-zero/commit/992bddee362cbae71f2cdfd8666f4774b252412e)
+- [readme] fix repo URLs; remove defunct badges [`80fd18d`](https://github.com/inspect-js/is-negative-zero/commit/80fd18d2b0191321afe0e1b572200e4c025eb664)
+- [Tests] run `nyc` on all tests [`df26f14`](https://github.com/inspect-js/is-negative-zero/commit/df26f14b0b854d82b0d3ca7b4949811c9f151357)
+- Update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`d7723aa`](https://github.com/inspect-js/is-negative-zero/commit/d7723aa70e5b478adc36d98e1338abe741c1906a)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`9fdaabe`](https://github.com/inspect-js/is-negative-zero/commit/9fdaabecfdb25e6e860e5007a91b60ee0f20734f)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `tape` [`f07eeb2`](https://github.com/inspect-js/is-negative-zero/commit/f07eeb2740037c53f270e95d2f62edc051cafc56)
+- [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`bd5c751`](https://github.com/inspect-js/is-negative-zero/commit/bd5c751fa4850ba8726dc1c197ed6c843a227b05)
+- [actions] add automatic rebasing / merge commit blocking [`5666a91`](https://github.com/inspect-js/is-negative-zero/commit/5666a917db6bdcee63c0a3e28e5e281359975abc)
+- [meta] add `auto-changelog` [`f70fb2b`](https://github.com/inspect-js/is-negative-zero/commit/f70fb2b5b9ea53dc52729310717553648292189e)
+- [actions] add "Allow Edits" workflow [`2b040a8`](https://github.com/inspect-js/is-negative-zero/commit/2b040a87d362f17d8cab2b0d48058b80e426ad4e)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`; add `safe-publish-latest` [`09e2e53`](https://github.com/inspect-js/is-negative-zero/commit/09e2e537390225c1d1a6912be64267eaec6ea367)
+- [Tests] use `npm audit` instead of `nsp` [`7df2669`](https://github.com/inspect-js/is-negative-zero/commit/7df2669013ac9328d424e9d8c82a53a0458f0888)
+- [Tests] up to `io.js` `v3.3`, `node` `v4.1` [`4ff97c5`](https://github.com/inspect-js/is-negative-zero/commit/4ff97c5891c7a241a91c03fb54bd83e78570ef22)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog` [`9e8cb7b`](https://github.com/inspect-js/is-negative-zero/commit/9e8cb7bca46d325ecf202187c0fde7da8722bcab)
+- [Dev Deps] update `jscs`, `eslint`, `@ljharb/eslint-config`, `nsp` [`70b9888`](https://github.com/inspect-js/is-negative-zero/commit/70b988802a99c84ab7eb8da287bb8ff0efc5c055)
+- [Dev Deps] update `jscs` [`59d0c42`](https://github.com/inspect-js/is-negative-zero/commit/59d0c42131020b74e68fd444798b9a3bf247fb2d)
+- Add `npm run security` [`eb418ed`](https://github.com/inspect-js/is-negative-zero/commit/eb418ed7e79216808c206388fbd360cc7a75655f)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`86a758d`](https://github.com/inspect-js/is-negative-zero/commit/86a758d42eb7d17a18f7f584c337d8820b842758)
+- Only apps should have lockfiles [`a0ab621`](https://github.com/inspect-js/is-negative-zero/commit/a0ab6215590bf6adb3eaf1ff9e7c036d72e807ec)
+- [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`5c51349`](https://github.com/inspect-js/is-negative-zero/commit/5c513498fc5a8b2fd06f5e0c1b38b8e93c3477ac)
+- [meta] add `funding` field [`1d0b2f4`](https://github.com/inspect-js/is-negative-zero/commit/1d0b2f43bf5bf75176859a440346b3e338ee510e)
+- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`9b12367`](https://github.com/inspect-js/is-negative-zero/commit/9b12367706f1c269a3df406c8e2c211558671a15)
+- [Dev Deps] update `auto-changelog`, `tape` [`6d98b8d`](https://github.com/inspect-js/is-negative-zero/commit/6d98b8d1f512c3844d4062215c793070084d1164)
+- [Dev Deps] Update `tape`, `eslint` [`a258cdb`](https://github.com/inspect-js/is-negative-zero/commit/a258cdb86691725482d1d43a1f9e7953c3c6733f)
+- [Dev Deps] update `auto-changelog`; add `aud` [`2ca2afb`](https://github.com/inspect-js/is-negative-zero/commit/2ca2afb9efef4ebc8b3c19046ab1ab3ad516ea9a)
+- Test up to `io.js` `v3.0` [`1254ae8`](https://github.com/inspect-js/is-negative-zero/commit/1254ae80b7706616331ac914654d7a17bff31039)
+- [Dev Deps] update `auto-changelog` [`4b54722`](https://github.com/inspect-js/is-negative-zero/commit/4b547228fceaae8f9eccabc9ad8a49046492348d)
+- [Tests] only audit prod deps [`86d298b`](https://github.com/inspect-js/is-negative-zero/commit/86d298b56db90f81617ee5d942476eda34afb374)
+- [Dev Deps] update `tape` [`3a47e27`](https://github.com/inspect-js/is-negative-zero/commit/3a47e2730f889539f666ef0eb09a93fb9c80bfd1)
+- Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG. [`128d9bd`](https://github.com/inspect-js/is-negative-zero/commit/128d9bd4c12385fb5e478ac3dd3138fa4360a777)
+
+## [v2.0.0](https://github.com/inspect-js/is-negative-zero/compare/v1.0.0...v2.0.0) - 2015-07-24
+
+### Commits
+
+- Update `tape`, `eslint`; use my personal shared `eslint` config. [`648d002`](https://github.com/inspect-js/is-negative-zero/commit/648d0029b177886428a11b07307f233ae2d3175b)
+- Add `npm run eslint` [`5a52d80`](https://github.com/inspect-js/is-negative-zero/commit/5a52d80ab052e377044b9b181991a32afaaa3090)
+- Using my standard jscs.json file [`5a667d9`](https://github.com/inspect-js/is-negative-zero/commit/5a667d9f8b7402ca3bd134080cd4435b5c7f1462)
+- Adding `npm run lint` [`9a85ed9`](https://github.com/inspect-js/is-negative-zero/commit/9a85ed934da65d8733a38bf6ad3c89fd62115194)
+- Update `tape`, `covert`, `jscs` [`c6cd3a6`](https://github.com/inspect-js/is-negative-zero/commit/c6cd3a64ea5b98100e10537549f50a9eeadc30ec)
+- Update `eslint` [`e9c9b6e`](https://github.com/inspect-js/is-negative-zero/commit/e9c9b6e9623f021b7f3ae4091bf9ea2571ab02b4)
+- Test on latest `io.js` [`2f7c8a9`](https://github.com/inspect-js/is-negative-zero/commit/2f7c8a9d174066400c072841d7bcf02cf90f8ebf)
+- Adding license and downloads badges [`717087a`](https://github.com/inspect-js/is-negative-zero/commit/717087a013b4cfc9dc7847d3d4a64faf19341be4)
+- Remove Number type coercion. [`481295d`](https://github.com/inspect-js/is-negative-zero/commit/481295dbd09dbf81d196dc77382f1b92f534de3f)
+- Test up to `io.js` `v2.1` [`139a84a`](https://github.com/inspect-js/is-negative-zero/commit/139a84a3dbdec29682044c6e7ac884a7382ae6e1)
+- Update `eslint` [`2f5fbfb`](https://github.com/inspect-js/is-negative-zero/commit/2f5fbfbc436ccd8676fc36fcd9f0edcdda33a1e7)
+- Update `eslint` [`53cb4c5`](https://github.com/inspect-js/is-negative-zero/commit/53cb4c5eccecdf2d874e78e5c38cca762ed76a9d)
+- Test on `io.js` `v2.2` [`98a1824`](https://github.com/inspect-js/is-negative-zero/commit/98a1824c86366f8a03cf303f46acecd67409f94b)
+- All grade A-supported `node`/`iojs` versions now ship with an `npm` that understands `^`. [`772d6cd`](https://github.com/inspect-js/is-negative-zero/commit/772d6cdf397e6fc1b26e5ed5f279d07a5ead6df8)
+- Run `travis-ci` tests on `iojs` and `node` v0.12; speed up builds; allow 0.8 failures. [`3e6147e`](https://github.com/inspect-js/is-negative-zero/commit/3e6147ebb5ecdfda4a2bffa441572fe017c7bb73)
+- Use SVG badges instead of PNG [`d986cb4`](https://github.com/inspect-js/is-negative-zero/commit/d986cb450e5bd4f373041255b69e18f47c252a1e)
+- Update `tape`, `jscs` [`9f9d7e7`](https://github.com/inspect-js/is-negative-zero/commit/9f9d7e751bcf4ceeed8e36e75e31d29c76326b3f)
+- Update `jscs` [`079eaf6`](https://github.com/inspect-js/is-negative-zero/commit/079eaf699d53e7e32c54e5233259a00f5f494d9a)
+- Update `tape`, `jscs` [`cffe3fc`](https://github.com/inspect-js/is-negative-zero/commit/cffe3fc17c6bfaa6996bf7402446b160631a04b3)
+- Update `tape`, `jscs` [`3a16616`](https://github.com/inspect-js/is-negative-zero/commit/3a166165ae8770d59c296794d28547379cebec58)
+- Use consistent quotes [`9509a81`](https://github.com/inspect-js/is-negative-zero/commit/9509a8110027b12c5762ba48d03b649a921847d5)
+- Test on `io.js` `v2.4` [`a9150a3`](https://github.com/inspect-js/is-negative-zero/commit/a9150a3397db339d992e9e4e6ddb52d1237fd617)
+- Test on `io.js` `v2.3` [`36d7acf`](https://github.com/inspect-js/is-negative-zero/commit/36d7acf5bb9193a2b35585e2c49ae8be9f45a55e)
+- Lock covert to v1.0.0. [`29d8917`](https://github.com/inspect-js/is-negative-zero/commit/29d89171c3aad69ace372edbf641ec3a5468c760)
+- Updating jscs [`fe09c8a`](https://github.com/inspect-js/is-negative-zero/commit/fe09c8a6d16c637ecd83a9a8a7f6192faef0754a)
+- Updating jscs [`5877bc7`](https://github.com/inspect-js/is-negative-zero/commit/5877bc7c2ed44c1ecc5d31e1c484c523450722d8)
+- Running linter as part of tests [`9e77756`](https://github.com/inspect-js/is-negative-zero/commit/9e777563905f511d915ec7257e2637811b911bd6)
+- Updating covert [`520a695`](https://github.com/inspect-js/is-negative-zero/commit/520a695164465b88c76860a638baafd4192bce5c)
+
+## [v1.0.0](https://github.com/inspect-js/is-negative-zero/compare/v0.1.1...v1.0.0) - 2014-08-08
+
+### Commits
+
+- Updating tape [`31d1942`](https://github.com/inspect-js/is-negative-zero/commit/31d19422ecd9d453677851a9d5a8d9372a16fb39)
+- Updating tape [`e7143bf`](https://github.com/inspect-js/is-negative-zero/commit/e7143bf3b67d8881b1b6ee0444637647d7bb1d2b)
+
+## [v0.1.1](https://github.com/inspect-js/is-negative-zero/compare/v0.1.0...v0.1.1) - 2014-05-13
+
+### Merged
+
+- Simplify code [`#1`](https://github.com/inspect-js/is-negative-zero/pull/1)
+
+### Commits
+
+- Adding a trailing newline [`61fb37f`](https://github.com/inspect-js/is-negative-zero/commit/61fb37f677e871cca53d9309e765d808ddddfd5a)
+
+## [v0.1.0](https://github.com/inspect-js/is-negative-zero/compare/v0.0.0...v0.1.0) - 2014-05-13
+
+### Commits
+
+- Make sure old and unstable nodes don't break Travis [`f627215`](https://github.com/inspect-js/is-negative-zero/commit/f627215527a95dc1ca014600650e00f15fe122c5)
+- Updating deps [`b502f48`](https://github.com/inspect-js/is-negative-zero/commit/b502f48e807d7671cb07e2ca247ae2daa62e4165)
+- Oops, negative numbers were negative zero! [`746cb97`](https://github.com/inspect-js/is-negative-zero/commit/746cb975d82c0fa0c5058e8e031807f9afcfd6db)
+- Updating covert [`99ef4ed`](https://github.com/inspect-js/is-negative-zero/commit/99ef4ed97d2f76f2a5afbef029bf794f1b5bcffa)
+- Updating tape [`ee9cfc2`](https://github.com/inspect-js/is-negative-zero/commit/ee9cfc2fd0039bdb65b6493ce0b8e47d18aa17cd)
+- Testing on node 0.6 again [`6a9bf0a`](https://github.com/inspect-js/is-negative-zero/commit/6a9bf0a09e210cca09c7a8a225d08ef1e6789b5a)
+
+## v0.0.0 - 2014-01-19
+
+### Commits
+
+- package.json [`8411d92`](https://github.com/inspect-js/is-negative-zero/commit/8411d92ec787fd522a1b5e65154ae88e9024a23f)
+- read me [`5c8bf3c`](https://github.com/inspect-js/is-negative-zero/commit/5c8bf3ce4867dbf2997ef01ea6b712aa294ec959)
+- Initial commit [`c06f7dc`](https://github.com/inspect-js/is-negative-zero/commit/c06f7dcf926f5b35ba678787a0f16cdd7b544054)
+- Tests. [`5c554d4`](https://github.com/inspect-js/is-negative-zero/commit/5c554d405bfb323a7413fde395d8dc39c5316356)
+- Travis CI [`334d000`](https://github.com/inspect-js/is-negative-zero/commit/334d000941fc926493cc7dbdb4e5f7ae481a311b)
+- Implementation. [`4ef4491`](https://github.com/inspect-js/is-negative-zero/commit/4ef449189c36d471d283e40aa20a8ebfa4985882)
diff --git a/node_modules/is-negative-zero/LICENSE b/node_modules/is-negative-zero/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..47b7b5078fce38783c58381828d9a7f762db7866
--- /dev/null
+++ b/node_modules/is-negative-zero/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Jordan Harband
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/node_modules/is-negative-zero/README.md b/node_modules/is-negative-zero/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..e8193a48873bbfcc88d5a352600c4f03348e5d88
--- /dev/null
+++ b/node_modules/is-negative-zero/README.md
@@ -0,0 +1,54 @@
+# is-negative-zero [![Version Badge][npm-version-svg]][package-url]
+
+[![github actions][actions-image]][actions-url]
+[![coverage][codecov-image]][codecov-url]
+[![dependency status][deps-svg]][deps-url]
+[![dev dependency status][dev-deps-svg]][dev-deps-url]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][npm-badge-png]][package-url]
+
+Is this value negative zero? === will lie to you.
+
+## Example
+
+```js
+var isNegativeZero = require('is-negative-zero');
+var assert = require('assert');
+
+assert.notOk(isNegativeZero(undefined));
+assert.notOk(isNegativeZero(null));
+assert.notOk(isNegativeZero(false));
+assert.notOk(isNegativeZero(true));
+assert.notOk(isNegativeZero(0));
+assert.notOk(isNegativeZero(42));
+assert.notOk(isNegativeZero(Infinity));
+assert.notOk(isNegativeZero(-Infinity));
+assert.notOk(isNegativeZero(NaN));
+assert.notOk(isNegativeZero('foo'));
+assert.notOk(isNegativeZero(function () {}));
+assert.notOk(isNegativeZero([]));
+assert.notOk(isNegativeZero({}));
+
+assert.ok(isNegativeZero(-0));
+```
+
+## Tests
+Simply clone the repo, `npm install`, and run `npm test`
+
+[package-url]: https://npmjs.org/package/is-negative-zero
+[npm-version-svg]: https://versionbadg.es/inspect-js/is-negative-zero.svg
+[deps-svg]: https://david-dm.org/inspect-js/is-negative-zero.svg
+[deps-url]: https://david-dm.org/inspect-js/is-negative-zero
+[dev-deps-svg]: https://david-dm.org/inspect-js/is-negative-zero/dev-status.svg
+[dev-deps-url]: https://david-dm.org/inspect-js/is-negative-zero#info=devDependencies
+[npm-badge-png]: https://nodei.co/npm/is-negative-zero.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/is-negative-zero.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/is-negative-zero.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=is-negative-zero
+[codecov-image]: https://codecov.io/gh/inspect-js/is-negative-zero/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/inspect-js/is-negative-zero/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-negative-zero
+[actions-url]: https://github.com/inspect-js/is-negative-zero/actions
diff --git a/node_modules/is-negative-zero/index.d.ts b/node_modules/is-negative-zero/index.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..7147b5070ceed1ce61a505b9b63c997bed512c76
--- /dev/null
+++ b/node_modules/is-negative-zero/index.d.ts
@@ -0,0 +1,3 @@
+declare function isNegativeZero(number: unknown): number is -0;
+
+export = isNegativeZero;
\ No newline at end of file
diff --git a/node_modules/is-negative-zero/index.js b/node_modules/is-negative-zero/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..bd5222ed79d32c17f7084952fd5b70b6bd238a5c
--- /dev/null
+++ b/node_modules/is-negative-zero/index.js
@@ -0,0 +1,7 @@
+'use strict';
+
+/** @type {import('.')} */
+module.exports = function isNegativeZero(number) {
+ return number === 0 && (1 / number) === -Infinity;
+};
+
diff --git a/node_modules/is-negative-zero/package.json b/node_modules/is-negative-zero/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..3ed79ab01ee60166d85c775d58ce08d8486022c4
--- /dev/null
+++ b/node_modules/is-negative-zero/package.json
@@ -0,0 +1,92 @@
+{
+ "name": "is-negative-zero",
+ "version": "2.0.3",
+ "description": "Is this value negative zero? === will lie to you",
+ "author": "Jordan Harband ",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ },
+ "license": "MIT",
+ "main": "index.js",
+ "types": "./index.d.ts",
+ "sideEffects": false,
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=autogenerated",
+ "prepublishOnly": "safe-publish-latest",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "pretest": "npm run lint",
+ "test": "npm run tests-only",
+ "tests-only": "nyc tape 'test/**/*.js'",
+ "posttest": "aud --production",
+ "lint": "eslint --ext=js,mjs .",
+ "postlint": "tsc -p .",
+ "version": "auto-changelog && git add CHANGELOG.md",
+ "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
+ },
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/inspect-js/is-negative-zero.git"
+ },
+ "bugs": {
+ "url": "https://github.com/inspect-js/is-negative-zero/issues"
+ },
+ "homepage": "https://github.com/inspect-js/is-negative-zero",
+ "keywords": [
+ "is",
+ "negative",
+ "zero",
+ "negative zero",
+ "number",
+ "positive",
+ "0",
+ "-0"
+ ],
+ "devDependencies": {
+ "@ljharb/eslint-config": "^21.1.0",
+ "@types/tape": "^5.6.4",
+ "aud": "^2.0.4",
+ "auto-changelog": "^2.4.0",
+ "eslint": "=8.8.0",
+ "in-publish": "^2.0.1",
+ "npmignore": "^0.3.1",
+ "nyc": "^10.3.2",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.7.5",
+ "typescript": "next"
+ },
+ "testling": {
+ "files": "test/index.js",
+ "browsers": [
+ "iexplore/6.0..latest",
+ "firefox/3.0..6.0",
+ "firefox/15.0..latest",
+ "firefox/nightly",
+ "chrome/4.0..10.0",
+ "chrome/20.0..latest",
+ "chrome/canary",
+ "opera/10.0..12.0",
+ "opera/15.0..latest",
+ "opera/next",
+ "safari/4.0..latest",
+ "ipad/6.0..latest",
+ "iphone/6.0..latest",
+ "android-browser/4.2"
+ ]
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows"
+ ]
+ }
+}
diff --git a/node_modules/is-negative-zero/test/index.js b/node_modules/is-negative-zero/test/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..d7b51c31011d59bc1b88e7ca001c7e02ce36b328
--- /dev/null
+++ b/node_modules/is-negative-zero/test/index.js
@@ -0,0 +1,29 @@
+'use strict';
+
+var test = require('tape');
+var isNegativeZero = require('../');
+
+test('not negative zero', function (t) {
+ // @ts-expect-error
+ t.notOk(isNegativeZero(), 'undefined is not negative zero');
+ t.notOk(isNegativeZero(null), 'null is not negative zero');
+ t.notOk(isNegativeZero(false), 'false is not negative zero');
+ t.notOk(isNegativeZero(true), 'true is not negative zero');
+ t.notOk(isNegativeZero(0), 'positive zero is not negative zero');
+ t.notOk(isNegativeZero(Infinity), 'Infinity is not negative zero');
+ t.notOk(isNegativeZero(-Infinity), '-Infinity is not negative zero');
+ t.notOk(isNegativeZero(NaN), 'NaN is not negative zero');
+ t.notOk(isNegativeZero('foo'), 'string is not negative zero');
+ t.notOk(isNegativeZero([]), 'array is not negative zero');
+ t.notOk(isNegativeZero({}), 'object is not negative zero');
+ t.notOk(isNegativeZero(function () {}), 'function is not negative zero');
+ t.notOk(isNegativeZero(-1), '-1 is not negative zero');
+
+ t.end();
+});
+
+test('negative zero', function (t) {
+ t.ok(isNegativeZero(-0), 'negative zero is negative zero');
+ t.end();
+});
+
diff --git a/node_modules/is-negative-zero/tsconfig.json b/node_modules/is-negative-zero/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..2002ce5a53532769b9b5bc561dac11518c384d13
--- /dev/null
+++ b/node_modules/is-negative-zero/tsconfig.json
@@ -0,0 +1,49 @@
+{
+ "compilerOptions": {
+ /* Visit https://aka.ms/tsconfig to read more about this file */
+
+ /* Projects */
+
+ /* Language and Environment */
+ "target": "ESNext", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
+ // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
+ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
+ "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
+ // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
+
+ /* Modules */
+ "module": "commonjs", /* Specify what module code is generated. */
+ // "rootDir": "./", /* Specify the root folder within your source files. */
+ // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */
+ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
+ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
+ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
+ "typeRoots": ["types"], /* Specify multiple folders that act like './node_modules/@types'. */
+ "resolveJsonModule": true, /* Enable importing .json files. */
+ // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */
+
+ /* JavaScript Support */
+ "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
+ "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
+ "maxNodeModuleJsDepth": 0, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
+
+ /* Emit */
+ "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
+ "declarationMap": true, /* Create sourcemaps for d.ts files. */
+ "noEmit": true, /* Disable emitting files from a compilation. */
+
+ /* Interop Constraints */
+ "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
+ "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
+ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
+
+ /* Type Checking */
+ "strict": true, /* Enable all strict type-checking options. */
+
+ /* Completeness */
+ //"skipLibCheck": true /* Skip type checking all .d.ts files. */
+ },
+ "exclude": [
+ "coverage"
+ ]
+}
diff --git a/node_modules/is-number-object/.editorconfig b/node_modules/is-number-object/.editorconfig
new file mode 100644
index 0000000000000000000000000000000000000000..4e36aeeec4a662c78fd99c3a0cd7a8f71f9d1331
--- /dev/null
+++ b/node_modules/is-number-object/.editorconfig
@@ -0,0 +1,23 @@
+root = true
+
+[*]
+indent_style = tab
+indent_size = 4
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+max_line_length = 150
+
+[CHANGELOG.md]
+indent_style = space
+indent_size = 2
+
+[*.json]
+max_line_length = off
+
+[Makefile]
+max_line_length = off
+
+[CHANGELOG.md]
+max_line_length = off
diff --git a/node_modules/is-number-object/.eslintrc b/node_modules/is-number-object/.eslintrc
new file mode 100644
index 0000000000000000000000000000000000000000..c7933f4d718ed0a9d9f19f4fca1d3718fe71bc7f
--- /dev/null
+++ b/node_modules/is-number-object/.eslintrc
@@ -0,0 +1,16 @@
+{
+ "root": true,
+
+ "extends": "@ljharb",
+
+ "rules": {
+ "func-name-matching": 0,
+ },
+
+ "overrides": [
+ {
+ "files": "test-core-js.js",
+ "extends": "@ljharb/eslint-config/tests",
+ },
+ ],
+}
diff --git a/node_modules/is-number-object/.github/FUNDING.yml b/node_modules/is-number-object/.github/FUNDING.yml
new file mode 100644
index 0000000000000000000000000000000000000000..17f4dc55da78f7f54e4323578f166c3b6d71ff60
--- /dev/null
+++ b/node_modules/is-number-object/.github/FUNDING.yml
@@ -0,0 +1,12 @@
+# These are supported funding model platforms
+
+github: [ljharb]
+patreon: # Replace with a single Patreon username
+open_collective: # Replace with a single Open Collective username
+ko_fi: # Replace with a single Ko-fi username
+tidelift: npm/is-number-object
+community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
+liberapay: # Replace with a single Liberapay username
+issuehunt: # Replace with a single IssueHunt username
+otechie: # Replace with a single Otechie username
+custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/node_modules/is-number-object/.nycrc b/node_modules/is-number-object/.nycrc
new file mode 100644
index 0000000000000000000000000000000000000000..a69aa2d8273d8c598f8e3aa5c8d779e28d63862f
--- /dev/null
+++ b/node_modules/is-number-object/.nycrc
@@ -0,0 +1,10 @@
+{
+ "all": true,
+ "check-coverage": false,
+ "reporter": ["text-summary", "text", "html", "json"],
+ "exclude": [
+ "coverage",
+ "test",
+ "test-corejs.js"
+ ]
+}
diff --git a/node_modules/is-number-object/CHANGELOG.md b/node_modules/is-number-object/CHANGELOG.md
new file mode 100644
index 0000000000000000000000000000000000000000..2670f164bd1740876d80462a10e79f4bd3413242
--- /dev/null
+++ b/node_modules/is-number-object/CHANGELOG.md
@@ -0,0 +1,149 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [v1.1.1](https://github.com/inspect-js/is-number-object/compare/v1.1.0...v1.1.1) - 2024-12-15
+
+### Commits
+
+- [Dev Deps] update `@arethetypeswrong/cli`,` @ljharb/tsconfig`, `@types/tape` [`00d566d`](https://github.com/inspect-js/is-number-object/commit/00d566d869ee316c896aa6f3cd694996bab6f482)
+- [Refactor] use `call-bound` directly [`073d5df`](https://github.com/inspect-js/is-number-object/commit/073d5df97278ab54e32750f24d4eeee1d94965d4)
+- [Deps] update `call-bind` [`36c84af`](https://github.com/inspect-js/is-number-object/commit/36c84afd5553a538cceb3da56a8721b597f540bc)
+
+## [v1.1.0](https://github.com/inspect-js/is-number-object/compare/v1.0.7...v1.1.0) - 2024-12-01
+
+### Commits
+
+- [meta] use `npmignore` to autogenerate an npmignore file [`cb8423c`](https://github.com/inspect-js/is-number-object/commit/cb8423cd42bded7c9321e785a97c5305c2706b02)
+- [New] add types [`273e406`](https://github.com/inspect-js/is-number-object/commit/273e4063e786210ce135237f1232630eecc22a88)
+- [actions] split out node 10-20, and 20+ [`3da6267`](https://github.com/inspect-js/is-number-object/commit/3da6267437bbc8d8322abc231f6fbcdbdce1b9b4)
+- [Robustness] use `call-bind` [`834c098`](https://github.com/inspect-js/is-number-object/commit/834c09801d923ddf638585a94020b7c3b3cec3dc)
+- [actions] update rebase action to use reusable workflow [`84a8a9f`](https://github.com/inspect-js/is-number-object/commit/84a8a9f61b1e098cba7d2603d98c06fc96b60d60)
+- [Dev Deps] update `@ljharb/eslint-config`, `auto-changelog`, `core-js`, `npmignore`, `tape` [`7275bca`](https://github.com/inspect-js/is-number-object/commit/7275bcad3910fe3073ca960fdb8018904f4eb5a0)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `core-js`, `tape` [`49a83aa`](https://github.com/inspect-js/is-number-object/commit/49a83aa830081afcbeae32adcd853f19202acc89)
+- [Tests] replace `aud` with `npm audit` [`061492b`](https://github.com/inspect-js/is-number-object/commit/061492b782012e0d58714bdf8a1423910d6ea49a)
+- [Refactor] avoid an expensive check, for null [`08d29a8`](https://github.com/inspect-js/is-number-object/commit/08d29a8442f5340eedc3817eddd8d1f4bfd02be2)
+- [Deps] update `has-tostringtag` [`4e2ad65`](https://github.com/inspect-js/is-number-object/commit/4e2ad656b23fcfdc3fe8979c7865f501f49c4704)
+- [Dev Deps] add missing peer dep [`8228bfa`](https://github.com/inspect-js/is-number-object/commit/8228bfa94317d0cd5a5e880991cb3c0f0c5e119b)
+
+## [v1.0.7](https://github.com/inspect-js/is-number-object/compare/v1.0.6...v1.0.7) - 2022-04-01
+
+### Commits
+
+- [actions] reuse common workflows [`8f9a1b0`](https://github.com/inspect-js/is-number-object/commit/8f9a1b040a435a5c5d12150952d0e6f96d4f713a)
+- [meta] better `eccheck` command [`9dc8dff`](https://github.com/inspect-js/is-number-object/commit/9dc8dff273e4d0b954fd4f2a2eacc849d321b646)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `core-js`, `safe-publish-latest`, `tape` [`c50ecbf`](https://github.com/inspect-js/is-number-object/commit/c50ecbfc7577c69324fca4d2b40dd354c5156be9)
+- [actions] update codecov uploader [`f1a2560`](https://github.com/inspect-js/is-number-object/commit/f1a2560d4a996abea90f7a792069a35359869b67)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `core-js`, `tape` [`4b06ace`](https://github.com/inspect-js/is-number-object/commit/4b06aceeba2ebf0887af020aa89caad8950e5f47)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `auto-changelog`, `core-js`, `tape` [`3dc0e8b`](https://github.com/inspect-js/is-number-object/commit/3dc0e8b0fcc96a9bc9936e9a62a523fe67bafca5)
+- [meta] add `bugs`/`homepage` package.json fields [`d7e0bcf`](https://github.com/inspect-js/is-number-object/commit/d7e0bcf1fe1b4a48d6500266c8b4058c854fecba)
+
+## [v1.0.6](https://github.com/inspect-js/is-number-object/compare/v1.0.5...v1.0.6) - 2021-08-05
+
+### Commits
+
+- [Tests] run tests with core-js as well [`5177312`](https://github.com/inspect-js/is-number-object/commit/51773120b18e27bfe8a3bd228ef2e21f5802f338)
+- [Refactor] use `has-tostringtag` to behave correctly in the presence of symbol shams [`ca2b31d`](https://github.com/inspect-js/is-number-object/commit/ca2b31d81c5d7d9b11e812dee58cd627a6d634e2)
+- [Dev Deps] update `auto-changelog`, `core-js`, `eslint`, `tape` [`50950f9`](https://github.com/inspect-js/is-number-object/commit/50950f962a4b1188c478f6034194d7eb4314c884)
+
+## [v1.0.5](https://github.com/inspect-js/is-number-object/compare/v1.0.4...v1.0.5) - 2021-05-07
+
+### Commits
+
+- [Tests] migrate tests to Github Actions [`9666737`](https://github.com/inspect-js/is-number-object/commit/96667372f8e36f70516218f86318f957f8c175ad)
+- [actions] use `node/install` instead of `node/run`; use `codecov` action [`7815ce2`](https://github.com/inspect-js/is-number-object/commit/7815ce21cb5662c2d1651b3ec302f186aa8a016b)
+- [meta] do not publish github action workflow files [`80ccb75`](https://github.com/inspect-js/is-number-object/commit/80ccb7509f91732675b018cc1a636d649a92889e)
+- [Tests] run `nyc` on all tests [`c9ffb74`](https://github.com/inspect-js/is-number-object/commit/c9ffb74443690ef22f9aa7dd35855fd1e3be5184)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`7e84161`](https://github.com/inspect-js/is-number-object/commit/7e84161d089c87ef42e3639ac1889642624ebd28)
+- [readme] add actions and codecov badges [`0c5ec7a`](https://github.com/inspect-js/is-number-object/commit/0c5ec7aa87dac27bdcda2365124c3aa0ccf9c278)
+- [actions] add Require Allow Edits workflow [`dd0fb74`](https://github.com/inspect-js/is-number-object/commit/dd0fb74b2ecb630ea7778a6f06dcc017323a3c1d)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `has-symbols`, `tape` [`2d36f80`](https://github.com/inspect-js/is-number-object/commit/2d36f809a7b9896958b0b0f3b69be0067caedb45)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog` [`77d3140`](https://github.com/inspect-js/is-number-object/commit/77d3140557d483e467ce070b21bf384e9a7562d5)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`75d4abf`](https://github.com/inspect-js/is-number-object/commit/75d4abf34168e69d73f621c696a16179ddc0873c)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`0c2a917`](https://github.com/inspect-js/is-number-object/commit/0c2a917e4802b102888759fad912bd9faa5587f7)
+- [Fix] do not use `Object.prototype.toString` when `Symbol.toStringTag` is shammed [`8b6ebc4`](https://github.com/inspect-js/is-number-object/commit/8b6ebc489db14a0c369214e081413f326fc0d598)
+- [Dev Deps] update `auto-changelog`, `tape`; add `aud` [`62045fc`](https://github.com/inspect-js/is-number-object/commit/62045fcaddb9e4d3ef81068e99d07d21cd62023b)
+- [actions] use checkout v2; remove unneeded env [`d48cd06`](https://github.com/inspect-js/is-number-object/commit/d48cd06720ea71f278a6d35c6f0a8ec04242a58f)
+- [meta] use `prepublishOnly` script for npm 7+ [`827ab0d`](https://github.com/inspect-js/is-number-object/commit/827ab0d52d25f46d232ae7442ece270dec2de1df)
+- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`bfed500`](https://github.com/inspect-js/is-number-object/commit/bfed500e6cc3cd3b9e7ffea78429c59857035791)
+- [meta] remove explicit audit level config [`ce23e5e`](https://github.com/inspect-js/is-number-object/commit/ce23e5e49fbebe190267d8c99ddfd880a963b7ee)
+- [meta] gitignore coverage output [`f1ad981`](https://github.com/inspect-js/is-number-object/commit/f1ad98106549c1c88322d8cb206068ea4c5bd424)
+
+## [v1.0.4](https://github.com/inspect-js/is-number-object/compare/v1.0.3...v1.0.4) - 2019-12-18
+
+### Commits
+
+- [Tests] use shared travis-ci configs [`792b5aa`](https://github.com/inspect-js/is-number-object/commit/792b5aa5e7313ddf5507f7283bb7d5d5c646b11b)
+- [Tests] up to `node` `v12.4`, `v11.15`, `v10.15`, `v9.11`, `v8.15`, `v7.10`, `v6.17`, `v5.12`, `v4.9`; use `nvm install-latest-npm` [`dc66db7`](https://github.com/inspect-js/is-number-object/commit/dc66db7dd1eca0263f6602597eb40601519e912e)
+- Update `eslint`, `tape`, `semver`; use my personal shared `eslint` config [`7660fed`](https://github.com/inspect-js/is-number-object/commit/7660fed03a7060eb5c91e74b9a17303d4fac1056)
+- [Tests] remove `jscs` [`f1fee97`](https://github.com/inspect-js/is-number-object/commit/f1fee97423478bcc653c844fadda55138d9b9a54)
+- [meta] add `auto-changelog` [`4b1c225`](https://github.com/inspect-js/is-number-object/commit/4b1c2253770eb18761a1e8b157772028d6f742c4)
+- [meta] remove unused Makefile and associated utilities [`379b979`](https://github.com/inspect-js/is-number-object/commit/379b9793d9c61d7889e53bd9de9578dca9964ebc)
+- Update `covert`, `jscs`, `eslint`, `semver` [`16d2af8`](https://github.com/inspect-js/is-number-object/commit/16d2af82a6c93aee614f7a4b2c468411c743e95f)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `is`, `replace`, `semver`, `tape` [`21c0f04`](https://github.com/inspect-js/is-number-object/commit/21c0f0431984b87443c6acb9f003368feb7b4368)
+- Update `is`, `tape`, `covert`, `jscs`, `editorconfig-tools`, `nsp`, `eslint`, `semver`. Add `replace`. Use `^` instead of `~`. [`19d6ee3`](https://github.com/inspect-js/is-number-object/commit/19d6ee3a3d4a87764d57316804fd8b882ba5197c)
+- Update `eslint` [`d32754b`](https://github.com/inspect-js/is-number-object/commit/d32754bcca0033e01eba531c4353d1239e992203)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `replace` [`1df8165`](https://github.com/inspect-js/is-number-object/commit/1df8165dd63d9f2f78ccb78e905d0a6b3e302884)
+- Update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`675372b`](https://github.com/inspect-js/is-number-object/commit/675372b115fb20b5034f40bcbb5560c6c0512746)
+- [readme] clean up readme; remove testling; fix repo URLs [`80e29c4`](https://github.com/inspect-js/is-number-object/commit/80e29c4d6d0811fc361e95ee83b81280bf3ae3f5)
+- [Tests] up to `node` `v12.7`, `v10.16`, `v8.16` [`287a968`](https://github.com/inspect-js/is-number-object/commit/287a9687b1fc3d091ec231c06f19a19ff7b0e8f6)
+- Test on latest `iojs` and `node` versions. [`11c98a2`](https://github.com/inspect-js/is-number-object/commit/11c98a23b232cb21c7daab797fd63875c2970681)
+- [actions] add automatic rebasing / merge commit blocking [`022d026`](https://github.com/inspect-js/is-number-object/commit/022d026129df445f239ba2ecd8d47a2786242d75)
+- [meta] create FUNDING.yml [`7f52710`](https://github.com/inspect-js/is-number-object/commit/7f527107168aad7108b7c262d295dcf44e03214d)
+- [Dev Deps] update `is`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver` [`bc8cd50`](https://github.com/inspect-js/is-number-object/commit/bc8cd508fe4440168f9b049be3ddf93c56c06c49)
+- [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`1f9200b`](https://github.com/inspect-js/is-number-object/commit/1f9200b7c56840dc23eeeca5d0ee4f64a0446e08)
+- [Tests] up to `node` `v12.11` [`706d50a`](https://github.com/inspect-js/is-number-object/commit/706d50a779b90feb3f4d2ae88d8189d19b913073)
+- [Dev Deps] update `jscs` [`e3591a4`](https://github.com/inspect-js/is-number-object/commit/e3591a445b1af25d46632eafea51efa07b4eb6dc)
+- [Tests] up to `io.js` `v3.3`, `node` `v4.1` [`baf4ee7`](https://github.com/inspect-js/is-number-object/commit/baf4ee749fb65ec12e9cab102e77aa0e14312109)
+- Update `nsp`, `eslint` [`61b18d5`](https://github.com/inspect-js/is-number-object/commit/61b18d5b44542fddf4950534d506b20d8c8b1f44)
+- Update `eslint`, `semver` [`52e61bd`](https://github.com/inspect-js/is-number-object/commit/52e61bd4334c0a1afacd147fd0bc1e2c1be10df5)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `has-symbols`; add `safe-publish-latest` [`79db7f6`](https://github.com/inspect-js/is-number-object/commit/79db7f610d2bcf5f0d6e8ca834f7402504101072)
+- Only apps should have lockfiles [`677b9b4`](https://github.com/inspect-js/is-number-object/commit/677b9b4fb6ad9d7b984cb0f89c8b5a6df143b29a)
+- Test on `io.js` `v2.2` [`e8a38b2`](https://github.com/inspect-js/is-number-object/commit/e8a38b2fe73b841b0ed55d9f60573d460a4f2a62)
+- [meta] add `funding` field [`85315e7`](https://github.com/inspect-js/is-number-object/commit/85315e75c119a2aef70a766f2ddc1079b64d006b)
+- [Dev Deps] update `eslint`, `tape` [`f3581aa`](https://github.com/inspect-js/is-number-object/commit/f3581aaea310546f6ee4612990468d39f058d320)
+- [Tests] use `eclint` instead of `editorconfig-tools` [`7b53680`](https://github.com/inspect-js/is-number-object/commit/7b5368071000eb1c715aeeee5ff47ffdbee9fe5c)
+- [Dev Deps] update `semver`, `tape` [`d6b524a`](https://github.com/inspect-js/is-number-object/commit/d6b524ac2e8c0240c436cbe8828671e383d51fd5)
+- [Dev Deps] Update `tape`, `eslint` [`be19203`](https://github.com/inspect-js/is-number-object/commit/be19203dee0aa70ff8f09823bf880a38b824e1ed)
+- Test up to `io.js` `v2.1` [`feb7ba6`](https://github.com/inspect-js/is-number-object/commit/feb7ba63a0816f1d36419ce240f96e9b4e4c90ba)
+- Test up to `io.js` `v3.0` [`7be1f0a`](https://github.com/inspect-js/is-number-object/commit/7be1f0a25dc59b6606be9ee1ace38cb7039a59d2)
+- [Dev Deps] update `tape` [`d9a2318`](https://github.com/inspect-js/is-number-object/commit/d9a2318bc82477e9321e961def11e28d364e5562)
+- Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG. [`a6cd411`](https://github.com/inspect-js/is-number-object/commit/a6cd411c6bd92691a48b52683afce584c2c6b21b)
+- Test on `io.js` `v2.4` [`46c2e7f`](https://github.com/inspect-js/is-number-object/commit/46c2e7f2ce8ad7f8ab3c1da827d93fc2780eff06)
+- Test on `io.js` `v2.3` [`9c344b0`](https://github.com/inspect-js/is-number-object/commit/9c344b0df83628908a1f776a3f2e5fc4fae1d4d2)
+- Fix tests for faked @@toStringTag [`f8c446e`](https://github.com/inspect-js/is-number-object/commit/f8c446e9fc320c23807717356e259529f494b9f3)
+
+## [v1.0.3](https://github.com/inspect-js/is-number-object/compare/v1.0.2...v1.0.3) - 2015-01-29
+
+### Commits
+
+- If @@toStringTag is not present, use the old-school Object#toString test. [`9b2a4df`](https://github.com/inspect-js/is-number-object/commit/9b2a4df6ccf903e89198d4244eeb7f47a7056327)
+
+## [v1.0.2](https://github.com/inspect-js/is-number-object/compare/v1.0.1...v1.0.2) - 2015-01-29
+
+### Commits
+
+- Improve optimizability of the non-try/catch part. [`7e6be2f`](https://github.com/inspect-js/is-number-object/commit/7e6be2fd2346557fc81bd544ac8745021c50e266)
+- Fix package.json [`4f2ebea`](https://github.com/inspect-js/is-number-object/commit/4f2ebeae09c45e1eefeb2c10a011ff2ef0aca921)
+
+## [v1.0.1](https://github.com/inspect-js/is-number-object/compare/v1.0.0...v1.0.1) - 2015-01-29
+
+### Commits
+
+- Use Object() instead of new Number() [`1aaa746`](https://github.com/inspect-js/is-number-object/commit/1aaa746c26878a0f698aabea4d88215311f2a38d)
+- Add early exits for typeof number, or typeof not "object". [`eae4337`](https://github.com/inspect-js/is-number-object/commit/eae43375d3f88e04bb10eabd954e5a6b66ad5305)
+
+## v1.0.0 - 2015-01-28
+
+### Commits
+
+- Dotfiles. [`9c74e3e`](https://github.com/inspect-js/is-number-object/commit/9c74e3eb2b10398d4022de7c4015531e874f06c8)
+- `make release` [`a99e5ae`](https://github.com/inspect-js/is-number-object/commit/a99e5aeb3995a7d543fc5833722bc02011fabad6)
+- package.json [`4fed9ef`](https://github.com/inspect-js/is-number-object/commit/4fed9ef7c35ccfc45ca8acd3c92c9cb91c7daa6d)
+- Read me [`c91d6ba`](https://github.com/inspect-js/is-number-object/commit/c91d6ba00de79eaaac5fec7c9d8866d61d0abb62)
+- Initial commit [`629fb96`](https://github.com/inspect-js/is-number-object/commit/629fb969f076e0802c799b368c7b02556bb0750e)
+- Tests. [`a39de62`](https://github.com/inspect-js/is-number-object/commit/a39de624785cc204ed7c0ea5518f1c878870ceb1)
+- Implementation. [`aedd91e`](https://github.com/inspect-js/is-number-object/commit/aedd91e6fc23f00852ad1266b6c19f32b7f93a22)
diff --git a/node_modules/is-number-object/LICENSE b/node_modules/is-number-object/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..b43df444e518288ceef6eaa9badd33388191b1d3
--- /dev/null
+++ b/node_modules/is-number-object/LICENSE
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Jordan Harband
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
diff --git a/node_modules/is-number-object/README.md b/node_modules/is-number-object/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..a5f1e5b1f001aba4bf7a462746d247c85ce2a712
--- /dev/null
+++ b/node_modules/is-number-object/README.md
@@ -0,0 +1,55 @@
+# is-number-object [![Version Badge][2]][1]
+
+[![github actions][actions-image]][actions-url]
+[![coverage][codecov-image]][codecov-url]
+[![dependency status][5]][6]
+[![dev dependency status][7]][8]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][11]][1]
+
+Is this value a JS Number object? This module works cross-realm/iframe, and despite ES6 @@toStringTag.
+
+## Example
+
+```js
+var isNumber = require('is-number-object');
+var assert = require('assert');
+
+assert.notOk(isNumber(undefined));
+assert.notOk(isNumber(null));
+assert.notOk(isNumber(false));
+assert.notOk(isNumber(true));
+assert.notOk(isNumber('foo'));
+assert.notOk(isNumber(function () {}));
+assert.notOk(isNumber([]));
+assert.notOk(isNumber({}));
+assert.notOk(isNumber(/a/g));
+assert.notOk(isNumber(new RegExp('a', 'g')));
+assert.notOk(isNumber(new Date()));
+
+assert.ok(isNumber(42));
+assert.ok(isNumber(NaN));
+assert.ok(isNumber(Infinity));
+assert.ok(isNumber(new Number(42)));
+```
+
+## Tests
+Simply clone the repo, `npm install`, and run `npm test`
+
+[1]: https://npmjs.org/package/is-number-object
+[2]: https://versionbadg.es/inspect-js/is-number-object.svg
+[5]: https://david-dm.org/inspect-js/is-number-object.svg
+[6]: https://david-dm.org/inspect-js/is-number-object
+[7]: https://david-dm.org/inspect-js/is-number-object/dev-status.svg
+[8]: https://david-dm.org/inspect-js/is-number-object#info=devDependencies
+[11]: https://nodei.co/npm/is-number-object.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/is-number-object.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/is-number-object.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=is-number-object
+[codecov-image]: https://codecov.io/gh/inspect-js/is-number-object/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/inspect-js/is-number-object/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-number-object
+[actions-url]: https://github.com/inspect-js/is-number-object/actions
diff --git a/node_modules/is-number-object/index.d.ts b/node_modules/is-number-object/index.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..6cd3c35a8c57e1475302cb1c5e240b111339e76f
--- /dev/null
+++ b/node_modules/is-number-object/index.d.ts
@@ -0,0 +1,3 @@
+declare function isNumberObject(value: unknown): value is (number | Number);
+
+export = isNumberObject;
diff --git a/node_modules/is-number-object/index.js b/node_modules/is-number-object/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..b4bd53d49bc020e18d17518706b4053ee4e5bcb5
--- /dev/null
+++ b/node_modules/is-number-object/index.js
@@ -0,0 +1,29 @@
+'use strict';
+
+var callBound = require('call-bound');
+
+var $numToStr = callBound('Number.prototype.toString');
+
+/** @type {import('.')} */
+var tryNumberObject = function tryNumberObject(value) {
+ try {
+ $numToStr(value);
+ return true;
+ } catch (e) {
+ return false;
+ }
+};
+var $toString = callBound('Object.prototype.toString');
+var numClass = '[object Number]';
+var hasToStringTag = require('has-tostringtag/shams')();
+
+/** @type {import('.')} */
+module.exports = function isNumberObject(value) {
+ if (typeof value === 'number') {
+ return true;
+ }
+ if (!value || typeof value !== 'object') {
+ return false;
+ }
+ return hasToStringTag ? tryNumberObject(value) : $toString(value) === numClass;
+};
diff --git a/node_modules/is-number-object/package.json b/node_modules/is-number-object/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..d1dbbdf4b5acb2dc13d7a8a6739a0831836e64b4
--- /dev/null
+++ b/node_modules/is-number-object/package.json
@@ -0,0 +1,85 @@
+{
+ "name": "is-number-object",
+ "version": "1.1.1",
+ "author": "Jordan Harband ",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ },
+ "description": "Is this value a JS Number object? This module works cross-realm/iframe, and despite ES6 @@toStringTag.",
+ "main": "index.js",
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=autogenerated",
+ "prepublishOnly": "safe-publish-latest",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "pretest": "npm run lint",
+ "tests-only": "nyc tape 'test/**/*.js'",
+ "test:corejs": "nyc tape test-corejs.js",
+ "test": "npm run tests-only && npm run test:corejs",
+ "posttest": "npx npm@'>=10.2' audit --production",
+ "prelint": "eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git')",
+ "lint": "eslint --ext=js,mjs .",
+ "postlint": "tsc -p . && attw -P",
+ "version": "auto-changelog && git add CHANGELOG.md",
+ "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
+ },
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/inspect-js/is-number-object.git"
+ },
+ "keywords": [
+ "Number",
+ "ES6",
+ "toStringTag",
+ "@@toStringTag",
+ "Number object"
+ ],
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/inspect-js/is-number-object/issues"
+ },
+ "homepage": "https://github.com/inspect-js/is-number-object#readme",
+ "dependencies": {
+ "call-bound": "^1.0.3",
+ "has-tostringtag": "^1.0.2"
+ },
+ "devDependencies": {
+ "@arethetypeswrong/cli": "^0.17.1",
+ "@ljharb/eslint-config": "^21.1.1",
+ "@ljharb/tsconfig": "^0.2.2",
+ "@types/core-js": "^2.5.8",
+ "@types/tape": "^5.7.0",
+ "auto-changelog": "^2.5.0",
+ "core-js": "^3.39.0",
+ "eclint": "^2.8.1",
+ "encoding": "^0.1.13",
+ "eslint": "=8.8.0",
+ "in-publish": "^2.0.1",
+ "indexof": "^0.0.1",
+ "is": "^3.3.0",
+ "npmignore": "^0.3.1",
+ "nyc": "^10.3.2",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.9.0",
+ "typescript": "next"
+ },
+ "testling": {
+ "files": "test/index.js"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows",
+ "test-corejs.js"
+ ]
+ }
+}
diff --git a/node_modules/is-number-object/test/index.js b/node_modules/is-number-object/test/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..c8da8e92e33ba4cdf238373a5007cc2dd5bc045c
--- /dev/null
+++ b/node_modules/is-number-object/test/index.js
@@ -0,0 +1,40 @@
+'use strict';
+
+var test = require('tape');
+var isNumber = require('../');
+var hasToStringTag = require('has-tostringtag/shams')();
+
+test('not Numbers', function (t) {
+ // @ts-expect-error
+ t.notOk(isNumber(), 'undefined is not Number');
+ t.notOk(isNumber(null), 'null is not Number');
+ t.notOk(isNumber(false), 'false is not Number');
+ t.notOk(isNumber(true), 'true is not Number');
+ t.notOk(isNumber('foo'), 'string is not Number');
+ t.notOk(isNumber([]), 'array is not Number');
+ t.notOk(isNumber({}), 'object is not Number');
+ t.notOk(isNumber(function () {}), 'function is not Number');
+ t.notOk(isNumber(/a/g), 'regex literal is not Number');
+ t.notOk(isNumber(new RegExp('a', 'g')), 'regex object is not Number');
+ t.notOk(isNumber(new Date()), 'new Date() is not Number');
+ t.end();
+});
+
+test('@@toStringTag', { skip: !hasToStringTag }, function (t) {
+ /** @type {{ toString(): string; valueOf(): number; [Symbol.toStringTag]?: string; }} */
+ var fakeNumber = {
+ toString: function () { return '7'; },
+ valueOf: function () { return 42; }
+ };
+ fakeNumber[Symbol.toStringTag] = 'Number';
+ t.notOk(isNumber(fakeNumber), 'fake Number with @@toStringTag "Number" is not Number');
+ t.end();
+});
+
+test('Numbers', function (t) {
+ t.ok(isNumber(42), 'number is Number');
+ t.ok(isNumber(Object(42)), 'number object is Number');
+ t.ok(isNumber(NaN), 'NaN is Number');
+ t.ok(isNumber(Infinity), 'Infinity is Number');
+ t.end();
+});
diff --git a/node_modules/is-number-object/tsconfig.json b/node_modules/is-number-object/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..707cf95103eea5754b0141455f421ec38d129dd9
--- /dev/null
+++ b/node_modules/is-number-object/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "@ljharb/tsconfig",
+ "compilerOptions": {
+ "target": "ES2021",
+ },
+ "exclude": [
+ "coverage"
+ ]
+}
diff --git a/node_modules/is-number/LICENSE b/node_modules/is-number/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..9af4a67d206f24ecdbb5fdff2839041ca0bbd346
--- /dev/null
+++ b/node_modules/is-number/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014-present, Jon Schlinkert.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/is-number/README.md b/node_modules/is-number/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..eb8149e8cf5f148f16ba21b2d5b452e19f984696
--- /dev/null
+++ b/node_modules/is-number/README.md
@@ -0,0 +1,187 @@
+# is-number [](https://www.npmjs.com/package/is-number) [](https://npmjs.org/package/is-number) [](https://npmjs.org/package/is-number) [](https://travis-ci.org/jonschlinkert/is-number)
+
+> Returns true if the value is a finite number.
+
+Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
+
+## Install
+
+Install with [npm](https://www.npmjs.com/):
+
+```sh
+$ npm install --save is-number
+```
+
+## Why is this needed?
+
+In JavaScript, it's not always as straightforward as it should be to reliably check if a value is a number. It's common for devs to use `+`, `-`, or `Number()` to cast a string value to a number (for example, when values are returned from user input, regex matches, parsers, etc). But there are many non-intuitive edge cases that yield unexpected results:
+
+```js
+console.log(+[]); //=> 0
+console.log(+''); //=> 0
+console.log(+' '); //=> 0
+console.log(typeof NaN); //=> 'number'
+```
+
+This library offers a performant way to smooth out edge cases like these.
+
+## Usage
+
+```js
+const isNumber = require('is-number');
+```
+
+See the [tests](./test.js) for more examples.
+
+### true
+
+```js
+isNumber(5e3); // true
+isNumber(0xff); // true
+isNumber(-1.1); // true
+isNumber(0); // true
+isNumber(1); // true
+isNumber(1.1); // true
+isNumber(10); // true
+isNumber(10.10); // true
+isNumber(100); // true
+isNumber('-1.1'); // true
+isNumber('0'); // true
+isNumber('012'); // true
+isNumber('0xff'); // true
+isNumber('1'); // true
+isNumber('1.1'); // true
+isNumber('10'); // true
+isNumber('10.10'); // true
+isNumber('100'); // true
+isNumber('5e3'); // true
+isNumber(parseInt('012')); // true
+isNumber(parseFloat('012')); // true
+```
+
+### False
+
+Everything else is false, as you would expect:
+
+```js
+isNumber(Infinity); // false
+isNumber(NaN); // false
+isNumber(null); // false
+isNumber(undefined); // false
+isNumber(''); // false
+isNumber(' '); // false
+isNumber('foo'); // false
+isNumber([1]); // false
+isNumber([]); // false
+isNumber(function () {}); // false
+isNumber({}); // false
+```
+
+## Release history
+
+### 7.0.0
+
+* Refactor. Now uses `.isFinite` if it exists.
+* Performance is about the same as v6.0 when the value is a string or number. But it's now 3x-4x faster when the value is not a string or number.
+
+### 6.0.0
+
+* Optimizations, thanks to @benaadams.
+
+### 5.0.0
+
+**Breaking changes**
+
+* removed support for `instanceof Number` and `instanceof String`
+
+## Benchmarks
+
+As with all benchmarks, take these with a grain of salt. See the [benchmarks](./benchmark/index.js) for more detail.
+
+```
+# all
+v7.0 x 413,222 ops/sec ±2.02% (86 runs sampled)
+v6.0 x 111,061 ops/sec ±1.29% (85 runs sampled)
+parseFloat x 317,596 ops/sec ±1.36% (86 runs sampled)
+fastest is 'v7.0'
+
+# string
+v7.0 x 3,054,496 ops/sec ±1.05% (89 runs sampled)
+v6.0 x 2,957,781 ops/sec ±0.98% (88 runs sampled)
+parseFloat x 3,071,060 ops/sec ±1.13% (88 runs sampled)
+fastest is 'parseFloat,v7.0'
+
+# number
+v7.0 x 3,146,895 ops/sec ±0.89% (89 runs sampled)
+v6.0 x 3,214,038 ops/sec ±1.07% (89 runs sampled)
+parseFloat x 3,077,588 ops/sec ±1.07% (87 runs sampled)
+fastest is 'v6.0'
+```
+
+## About
+
+
+Contributing
+
+Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
+
+
+
+
+Running Tests
+
+Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
+
+```sh
+$ npm install && npm test
+```
+
+
+
+
+Building docs
+
+_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
+
+To generate the readme, run the following command:
+
+```sh
+$ npm install -g verbose/verb#dev verb-generate-readme && verb
+```
+
+
+
+### Related projects
+
+You might also be interested in these projects:
+
+* [is-plain-object](https://www.npmjs.com/package/is-plain-object): Returns true if an object was created by the `Object` constructor. | [homepage](https://github.com/jonschlinkert/is-plain-object "Returns true if an object was created by the `Object` constructor.")
+* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ")
+* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
+* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
+
+### Contributors
+
+| **Commits** | **Contributor** |
+| --- | --- |
+| 49 | [jonschlinkert](https://github.com/jonschlinkert) |
+| 5 | [charlike-old](https://github.com/charlike-old) |
+| 1 | [benaadams](https://github.com/benaadams) |
+| 1 | [realityking](https://github.com/realityking) |
+
+### Author
+
+**Jon Schlinkert**
+
+* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert)
+* [GitHub Profile](https://github.com/jonschlinkert)
+* [Twitter Profile](https://twitter.com/jonschlinkert)
+
+### License
+
+Copyright © 2018, [Jon Schlinkert](https://github.com/jonschlinkert).
+Released under the [MIT License](LICENSE).
+
+***
+
+_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on June 15, 2018._
\ No newline at end of file
diff --git a/node_modules/is-number/index.js b/node_modules/is-number/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..27f19b757f7c1186b92c405a213bf0dd9b6cbe95
--- /dev/null
+++ b/node_modules/is-number/index.js
@@ -0,0 +1,18 @@
+/*!
+ * is-number
+ *
+ * Copyright (c) 2014-present, Jon Schlinkert.
+ * Released under the MIT License.
+ */
+
+'use strict';
+
+module.exports = function(num) {
+ if (typeof num === 'number') {
+ return num - num === 0;
+ }
+ if (typeof num === 'string' && num.trim() !== '') {
+ return Number.isFinite ? Number.isFinite(+num) : isFinite(+num);
+ }
+ return false;
+};
diff --git a/node_modules/is-number/package.json b/node_modules/is-number/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..3715072609d61a010bff7116331b71f04206af96
--- /dev/null
+++ b/node_modules/is-number/package.json
@@ -0,0 +1,82 @@
+{
+ "name": "is-number",
+ "description": "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.",
+ "version": "7.0.0",
+ "homepage": "https://github.com/jonschlinkert/is-number",
+ "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
+ "contributors": [
+ "Jon Schlinkert (http://twitter.com/jonschlinkert)",
+ "Olsten Larck (https://i.am.charlike.online)",
+ "Rouven Weßling (www.rouvenwessling.de)"
+ ],
+ "repository": "jonschlinkert/is-number",
+ "bugs": {
+ "url": "https://github.com/jonschlinkert/is-number/issues"
+ },
+ "license": "MIT",
+ "files": [
+ "index.js"
+ ],
+ "main": "index.js",
+ "engines": {
+ "node": ">=0.12.0"
+ },
+ "scripts": {
+ "test": "mocha"
+ },
+ "devDependencies": {
+ "ansi": "^0.3.1",
+ "benchmark": "^2.1.4",
+ "gulp-format-md": "^1.0.0",
+ "mocha": "^3.5.3"
+ },
+ "keywords": [
+ "cast",
+ "check",
+ "coerce",
+ "coercion",
+ "finite",
+ "integer",
+ "is",
+ "isnan",
+ "is-nan",
+ "is-num",
+ "is-number",
+ "isnumber",
+ "isfinite",
+ "istype",
+ "kind",
+ "math",
+ "nan",
+ "num",
+ "number",
+ "numeric",
+ "parseFloat",
+ "parseInt",
+ "test",
+ "type",
+ "typeof",
+ "value"
+ ],
+ "verb": {
+ "toc": false,
+ "layout": "default",
+ "tasks": [
+ "readme"
+ ],
+ "related": {
+ "list": [
+ "is-plain-object",
+ "is-primitive",
+ "isobject",
+ "kind-of"
+ ]
+ },
+ "plugins": [
+ "gulp-format-md"
+ ],
+ "lint": {
+ "reflinks": true
+ }
+ }
+}
diff --git a/node_modules/is-plain-obj/index.d.ts b/node_modules/is-plain-obj/index.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..3794c42e44c077ac120fc9c2c87571ca6d3a6d52
--- /dev/null
+++ b/node_modules/is-plain-obj/index.d.ts
@@ -0,0 +1,35 @@
+/**
+Check if a value is a plain object.
+
+An object is plain if it's created by either `{}`, `new Object()`, or `Object.create(null)`.
+
+@example
+```
+import isPlainObject from 'is-plain-obj';
+import {runInNewContext} from 'node:vm';
+
+isPlainObject({foo: 'bar'});
+//=> true
+
+isPlainObject(new Object());
+//=> true
+
+isPlainObject(Object.create(null));
+//=> true
+
+// This works across realms
+isPlainObject(runInNewContext('({})'));
+//=> true
+
+isPlainObject([1, 2, 3]);
+//=> false
+
+class Unicorn {}
+isPlainObject(new Unicorn());
+//=> false
+
+isPlainObject(Math);
+//=> false
+```
+*/
+export default function isPlainObject(value: unknown): value is Record;
diff --git a/node_modules/is-plain-obj/index.js b/node_modules/is-plain-obj/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..92555c3d3916f4868375fa19d7da7ecafe6ee9b3
--- /dev/null
+++ b/node_modules/is-plain-obj/index.js
@@ -0,0 +1,8 @@
+export default function isPlainObject(value) {
+ if (typeof value !== 'object' || value === null) {
+ return false;
+ }
+
+ const prototype = Object.getPrototypeOf(value);
+ return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);
+}
diff --git a/node_modules/is-plain-obj/license b/node_modules/is-plain-obj/license
new file mode 100644
index 0000000000000000000000000000000000000000..fa7ceba3eb4a9657a9db7f3ffca4e4e97a9019de
--- /dev/null
+++ b/node_modules/is-plain-obj/license
@@ -0,0 +1,9 @@
+MIT License
+
+Copyright (c) Sindre Sorhus (https://sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/node_modules/is-plain-obj/package.json b/node_modules/is-plain-obj/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..2ee5a142676c6a037fb1d80ab5bbc7127568cf22
--- /dev/null
+++ b/node_modules/is-plain-obj/package.json
@@ -0,0 +1,41 @@
+{
+ "name": "is-plain-obj",
+ "version": "4.1.0",
+ "description": "Check if a value is a plain object",
+ "license": "MIT",
+ "repository": "sindresorhus/is-plain-obj",
+ "funding": "https://github.com/sponsors/sindresorhus",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "https://sindresorhus.com"
+ },
+ "type": "module",
+ "exports": "./index.js",
+ "engines": {
+ "node": ">=12"
+ },
+ "scripts": {
+ "test": "xo && ava && tsd"
+ },
+ "files": [
+ "index.js",
+ "index.d.ts"
+ ],
+ "keywords": [
+ "object",
+ "is",
+ "check",
+ "test",
+ "type",
+ "plain",
+ "vanilla",
+ "pure",
+ "simple"
+ ],
+ "devDependencies": {
+ "ava": "^3.15.0",
+ "tsd": "^0.14.0",
+ "xo": "^0.38.2"
+ }
+}
diff --git a/node_modules/is-plain-obj/readme.md b/node_modules/is-plain-obj/readme.md
new file mode 100644
index 0000000000000000000000000000000000000000..28de6fb55f46efbdb8d5905768fcef1ff376fef8
--- /dev/null
+++ b/node_modules/is-plain-obj/readme.md
@@ -0,0 +1,58 @@
+# is-plain-obj
+
+> Check if a value is a plain object
+
+An object is plain if it's created by either `{}`, `new Object()`, or `Object.create(null)`.
+
+## Install
+
+```
+$ npm install is-plain-obj
+```
+
+## Usage
+
+```js
+import isPlainObject from 'is-plain-obj';
+import {runInNewContext} from 'node:vm';
+
+isPlainObject({foo: 'bar'});
+//=> true
+
+isPlainObject(new Object());
+//=> true
+
+isPlainObject(Object.create(null));
+//=> true
+
+// This works across realms
+isPlainObject(runInNewContext('({})'));
+//=> true
+
+isPlainObject([1, 2, 3]);
+//=> false
+
+class Unicorn {}
+isPlainObject(new Unicorn());
+//=> false
+
+isPlainObject(Math);
+//=> false
+```
+
+## Related
+
+- [is-obj](https://github.com/sindresorhus/is-obj) - Check if a value is an object
+- [is](https://github.com/sindresorhus/is) - Type check values
+
+---
+
+
diff --git a/node_modules/is-potential-custom-element-name/LICENSE-MIT.txt b/node_modules/is-potential-custom-element-name/LICENSE-MIT.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a41e0a7ef970ecdd83d82cd99bda97b22077bc62
--- /dev/null
+++ b/node_modules/is-potential-custom-element-name/LICENSE-MIT.txt
@@ -0,0 +1,20 @@
+Copyright Mathias Bynens
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/node_modules/is-potential-custom-element-name/README.md b/node_modules/is-potential-custom-element-name/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..85a35a508c1cecfa2b9d0344f4f0a4d34650f4db
--- /dev/null
+++ b/node_modules/is-potential-custom-element-name/README.md
@@ -0,0 +1,40 @@
+# is-potential-custom-element-name [](https://travis-ci.org/mathiasbynens/is-potential-custom-element-name)
+
+_is-potential-custom-element-name_ checks whether a given string matches [the `PotentialCustomElementName` production](https://html.spec.whatwg.org/multipage/scripting.html#prod-potentialcustomelementname) as defined in the HTML Standard.
+
+## Installation
+
+To use _is-potential-custom-element-name_ programmatically, install it as a dependency via [npm](https://www.npmjs.com/):
+
+```bash
+$ npm install is-potential-custom-element-name
+```
+
+Then, `require` it:
+
+```js
+const isPotentialCustomElementName = require('is-potential-custom-element-name');
+```
+
+## Usage
+
+```js
+isPotentialCustomElementName('foo-bar');
+// → true
+isPotentialCustomElementName('Foo-bar');
+// → false
+isPotentialCustomElementName('baz-©');
+// → false
+isPotentialCustomElementName('annotation-xml');
+// → true
+```
+
+## Author
+
+| [](https://twitter.com/mathias "Follow @mathias on Twitter") |
+|---|
+| [Mathias Bynens](https://mathiasbynens.be/) |
+
+## License
+
+_is-potential-custom-element-name_ is available under the [MIT](https://mths.be/mit) license.
diff --git a/node_modules/is-potential-custom-element-name/index.js b/node_modules/is-potential-custom-element-name/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..71417c695ef75d4659f68a1820e17957f5eb75a6
--- /dev/null
+++ b/node_modules/is-potential-custom-element-name/index.js
@@ -0,0 +1,9 @@
+// Generated using `npm run build`. Do not edit.
+
+var regex = /^[a-z](?:[\.0-9_a-z\xB7\xC0-\xD6\xD8-\xF6\xF8-\u037D\u037F-\u1FFF\u200C\u200D\u203F\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])*-(?:[\x2D\.0-9_a-z\xB7\xC0-\xD6\xD8-\xF6\xF8-\u037D\u037F-\u1FFF\u200C\u200D\u203F\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])*$/;
+
+var isPotentialCustomElementName = function(string) {
+ return regex.test(string);
+};
+
+module.exports = isPotentialCustomElementName;
diff --git a/node_modules/is-potential-custom-element-name/package.json b/node_modules/is-potential-custom-element-name/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..440a783ac444ec525ce542ea6a8ea99b518388a7
--- /dev/null
+++ b/node_modules/is-potential-custom-element-name/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "is-potential-custom-element-name",
+ "version": "1.0.1",
+ "description": "Check whether a given string matches the `PotentialCustomElementName` production as defined in the HTML Standard.",
+ "homepage": "https://github.com/mathiasbynens/is-potential-custom-element-name",
+ "main": "index.js",
+ "files": [
+ "LICENSE-MIT.txt",
+ "index.js"
+ ],
+ "keywords": [
+ "html",
+ "custom element",
+ "custom element name",
+ "web components"
+ ],
+ "license": "MIT",
+ "author": {
+ "name": "Mathias Bynens",
+ "url": "https://mathiasbynens.be/"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/mathiasbynens/is-potential-custom-element-name.git"
+ },
+ "bugs": "https://github.com/mathiasbynens/is-potential-custom-element-name/issues",
+ "devDependencies": {
+ "mocha": "^2.2.1",
+ "regenerate": "^1.4.2"
+ },
+ "scripts": {
+ "build": "node build.js",
+ "test": "mocha"
+ }
+}
diff --git a/node_modules/is-regex/.editorconfig b/node_modules/is-regex/.editorconfig
new file mode 100644
index 0000000000000000000000000000000000000000..ba546cdd8837ca06ccf0d412d860767c3620bd9c
--- /dev/null
+++ b/node_modules/is-regex/.editorconfig
@@ -0,0 +1,23 @@
+root = true
+
+[*]
+indent_style = tab
+indent_size = 4
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+max_line_length = 200
+
+[CHANGELOG.md]
+indent_style = space
+indent_size = 2
+
+[*.json]
+max_line_length = off
+
+[Makefile]
+max_line_length = off
+
+[CHANGELOG.md]
+max_line_length = off
diff --git a/node_modules/is-regex/.eslintrc b/node_modules/is-regex/.eslintrc
new file mode 100644
index 0000000000000000000000000000000000000000..75a9c5e67ce7ca14e311512a7f4cd9e7bd5ebbd4
--- /dev/null
+++ b/node_modules/is-regex/.eslintrc
@@ -0,0 +1,10 @@
+{
+ "root": true,
+
+ "extends": "@ljharb",
+
+ "rules": {
+ "func-style": 0,
+ "id-length": [1],
+ },
+}
diff --git a/node_modules/is-regex/.nycrc b/node_modules/is-regex/.nycrc
new file mode 100644
index 0000000000000000000000000000000000000000..a69aa2d8273d8c598f8e3aa5c8d779e28d63862f
--- /dev/null
+++ b/node_modules/is-regex/.nycrc
@@ -0,0 +1,10 @@
+{
+ "all": true,
+ "check-coverage": false,
+ "reporter": ["text-summary", "text", "html", "json"],
+ "exclude": [
+ "coverage",
+ "test",
+ "test-corejs.js"
+ ]
+}
diff --git a/node_modules/is-regex/CHANGELOG.md b/node_modules/is-regex/CHANGELOG.md
new file mode 100644
index 0000000000000000000000000000000000000000..85beee84b50cb6693b9b8f77630adbc9a9ad68db
--- /dev/null
+++ b/node_modules/is-regex/CHANGELOG.md
@@ -0,0 +1,233 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [v1.2.1](https://github.com/inspect-js/is-regex/compare/v1.2.0...v1.2.1) - 2024-12-11
+
+### Commits
+
+- [Refactor] use `call-bound` directly [`dbabfe3`](https://github.com/inspect-js/is-regex/commit/dbabfe369261f4940f8ca059e9d452fed01e6969)
+- [Deps] update `call-bind`, `gopd` [`d5343a0`](https://github.com/inspect-js/is-regex/commit/d5343a0e05ac3c65243b29f740c7540480ad23e7)
+- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/tsconfig` [`cc081eb`](https://github.com/inspect-js/is-regex/commit/cc081eb891b075440188c3f5240b2051090f1036)
+
+## [v1.2.0](https://github.com/inspect-js/is-regex/compare/v1.1.4...v1.2.0) - 2024-11-29
+
+### Fixed
+
+- [Tests] allow tests to pass if zero traps are triggered [`#35`](https://github.com/inspect-js/is-regex/issues/35)
+
+### Commits
+
+- [actions] reuse common workflows [`be7bf6a`](https://github.com/inspect-js/is-regex/commit/be7bf6af175271e9db74e092d636307f6cf5e848)
+- [New] add types [`39066a4`](https://github.com/inspect-js/is-regex/commit/39066a426da0f0c597b888c3c839fb2efc2bf613)
+- [meta] use `npmignore` to autogenerate an npmignore file [`8938588`](https://github.com/inspect-js/is-regex/commit/89385885c2da891644e07220b4407f760c3dd629)
+- [Refactor] reorganize code [`2f76f26`](https://github.com/inspect-js/is-regex/commit/2f76f26e0008a01a2f9a849dc2687cf3e3146f3e)
+- [actions] split out node 10-20, and 20+ [`8c9aedf`](https://github.com/inspect-js/is-regex/commit/8c9aedf2cd9b3fd4ee045d747580265de223b4b2)
+- [meta] better `eccheck` command [`6b39408`](https://github.com/inspect-js/is-regex/commit/6b39408bc4cce49ac85de70fba4a843da4b78b84)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `tape` [`e38cf3c`](https://github.com/inspect-js/is-regex/commit/e38cf3c4e5b234c9a0d64fcf75e45df9b2416557)
+- [actions] update codecov uploader [`487c75d`](https://github.com/inspect-js/is-regex/commit/487c75da7bbc2d977c2aed68815e7a58d269011f)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `core-js`, `foreach`, `tape` [`0d7da87`](https://github.com/inspect-js/is-regex/commit/0d7da87be90b637c094abfd9e68568097d391e38)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `core-js`, `tape` [`c1c1198`](https://github.com/inspect-js/is-regex/commit/c1c1198143feaadee0370b78f7fd878e64e57a58)
+- [actions] update rebase action to use reusable workflow [`213646e`](https://github.com/inspect-js/is-regex/commit/213646e1e9b5211bf621ccaaaa29f03b706b139c)
+- [Dev Deps] update `@ljharb/eslint-config`, `auto-changelog`, `core-js`, `npmignore`, `tape` [`0a44e77`](https://github.com/inspect-js/is-regex/commit/0a44e77855db0ee8077f8b4351164fa500ba0d1f)
+- [Refactor] use `hasown` [`d939332`](https://github.com/inspect-js/is-regex/commit/d939332c57cf46b95bc45e721fb66db64cf4743a)
+- [Deps] update `call-bind`, `has-tostringtag` [`46bfdc9`](https://github.com/inspect-js/is-regex/commit/46bfdc9226df0495b5eb4e753e3f61e9a648cf44)
+- [Tests] use `for-each` instead of `foreach` [`138b3f2`](https://github.com/inspect-js/is-regex/commit/138b3f2e6340eb4b6caf62981b0a1f59e960cbc9)
+- [Tests] replace `aud` with `npm audit` [`37ed80a`](https://github.com/inspect-js/is-regex/commit/37ed80a3a5eeec2312f45956bc928fc7937480b8)
+- [Deps] update `gopd` [`6fd4097`](https://github.com/inspect-js/is-regex/commit/6fd4097f23c3f031d0e659b29174216bed7b4f0f)
+- [Dev Deps] update `core-js` [`97c1c60`](https://github.com/inspect-js/is-regex/commit/97c1c6044684f8a661055f4614ab2dd58fbfcc2b)
+- [Dev Deps] add missing peer dep [`7329b8e`](https://github.com/inspect-js/is-regex/commit/7329b8edc9d9440439f190704f03740c853d15da)
+
+## [v1.1.4](https://github.com/inspect-js/is-regex/compare/v1.1.3...v1.1.4) - 2021-08-05
+
+### Commits
+
+- [Dev Deps] update `auto-changelog`, `core-js`, `eslint`, `tape` [`4b17cad`](https://github.com/inspect-js/is-regex/commit/4b17cad8496b1ae621b18335fa3afe94d0c65e83)
+- [Refactor] use `has-tostringtag` to behave correctly in the presence of symbol shams [`2dad4af`](https://github.com/inspect-js/is-regex/commit/2dad4afffa15f07cbbf7675b77d1f650c92652c4)
+
+## [v1.1.3](https://github.com/inspect-js/is-regex/compare/v1.1.2...v1.1.3) - 2021-05-07
+
+### Commits
+
+- [actions] use `node/install` instead of `node/run`; use `codecov` action [`c681ab9`](https://github.com/inspect-js/is-regex/commit/c681ab99c07f8b3b7ae5f652b3105a30bce94f69)
+- [Fix] do not use `Object.prototype.toString` when `Symbol.toStringTag` is shammed [`ca019fd`](https://github.com/inspect-js/is-regex/commit/ca019fdb828dc7d32e323213403ac9995d8604e3)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`605a66f`](https://github.com/inspect-js/is-regex/commit/605a66f278900f1c8ae9d1dfcec31e5f61b10ad3)
+- [readme] add actions and codecov badges [`8d7c6f0`](https://github.com/inspect-js/is-regex/commit/8d7c6f0e007bd982f21b958e0abc98b8a84e2a24)
+- [meta] use `prepublishOnly` script for npm 7+ [`8e50e91`](https://github.com/inspect-js/is-regex/commit/8e50e91f51aa5038745526710ef2e030527982a7)
+- [Deps] update `has-symbols` [`4742c81`](https://github.com/inspect-js/is-regex/commit/4742c81260c3db9a8c9ef57110981fb6175f58e0)
+
+## [v1.1.2](https://github.com/inspect-js/is-regex/compare/v1.1.1...v1.1.2) - 2021-02-01
+
+### Commits
+
+- [Tests] migrate tests to Github Actions [`cc1686e`](https://github.com/inspect-js/is-regex/commit/cc1686e25f446ca6948f43b3f180d6e55e31fb4e)
+- [readme] fix repo URLs; remove travis badge [`d1d1da6`](https://github.com/inspect-js/is-regex/commit/d1d1da647bb4e91589606f12470cd27a47b3bb81)
+- [meta] do not publish github action workflow files [`9f84b99`](https://github.com/inspect-js/is-regex/commit/9f84b993a995f057b4d2d097ef47b1ff9c84115d)
+- [Tests] run `nyc` on all tests [`c37aab9`](https://github.com/inspect-js/is-regex/commit/c37aab9d332c4834b08ada94736c45ab1d39cd2f)
+- [Robustness] use `call-bind` [`fbb61bf`](https://github.com/inspect-js/is-regex/commit/fbb61bf3e19ccc178e6ed1e0d7ab9cc7c7167393)
+- [actions] add "Allow Edits" workflow [`9022b53`](https://github.com/inspect-js/is-regex/commit/9022b53cb05b0f105cd179800cf96e055b249f08)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog` [`d60f28f`](https://github.com/inspect-js/is-regex/commit/d60f28f7f2fb21dade7bce302b3e0246206423d3)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`2c35c43`](https://github.com/inspect-js/is-regex/commit/2c35c437edf3eeb37129eea2404d8f465d27620f)
+- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`1009e25`](https://github.com/inspect-js/is-regex/commit/1009e259d49a63753dc6e79e2b876a30c00c6de6)
+- [meta] gitignore coverage output [`3b5fa9e`](https://github.com/inspect-js/is-regex/commit/3b5fa9ed2882c65ee81dff979f79f1a2751d3772)
+- [actions] update workflows [`1843ef6`](https://github.com/inspect-js/is-regex/commit/1843ef65b8b8c24a44e91bc4ed5ee60dffc31c2d)
+
+## [v1.1.1](https://github.com/inspect-js/is-regex/compare/v1.1.0...v1.1.1) - 2020-08-03
+
+### Commits
+
+- [Performance] Re-add lastIndex check to improve performance [`d8495cd`](https://github.com/inspect-js/is-regex/commit/d8495cd22d475ddca250818921b6088f631c1972)
+- [Dev Deps] update `auto-changelog`, `eslint` [`778fa6b`](https://github.com/inspect-js/is-regex/commit/778fa6b9d2b182ee6d73993e103532855e956f85)
+
+## [v1.1.0](https://github.com/inspect-js/is-regex/compare/v1.0.5...v1.1.0) - 2020-06-03
+
+### Commits
+
+- [New] use `badStringifier`‑based RegExp detection [`31eff67`](https://github.com/inspect-js/is-regex/commit/31eff673243d65c3d6c05848c0eb52f5380f1be3)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`fc91458`](https://github.com/inspect-js/is-regex/commit/fc914588187b8bb00d8d792c84f06a6e15d883c1)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`; add `safe-publish-latest` [`d43ed83`](https://github.com/inspect-js/is-regex/commit/d43ed83db54ea727bb0b1b77a50af79d1edb8a6d)
+- [Dev Deps] update `auto-changelog`, `tape`; add `aud` [`56647d1`](https://github.com/inspect-js/is-regex/commit/56647d196be34ef3c118ad67726e75169fbcb875)
+- [meta] only run `aud` on prod deps [`e0865b8`](https://github.com/inspect-js/is-regex/commit/e0865b8360b0ac1b9d17b7b81ae5f339e5c9036b)
+
+## [v1.0.5](https://github.com/inspect-js/is-regex/compare/v1.0.4...v1.0.5) - 2019-12-15
+
+### Commits
+
+- [Tests] use shared travis-ci configs [`af728b2`](https://github.com/inspect-js/is-regex/commit/af728b21c5cc9e41234fb4015594bffdcfff597c)
+- [Tests] remove `jscs` [`1b8cfe8`](https://github.com/inspect-js/is-regex/commit/1b8cfe8cfb14820c196775f19d370276e4034791)
+- [meta] add `auto-changelog` [`c3131d8`](https://github.com/inspect-js/is-regex/commit/c3131d8ab5d06ea5fa05a4bb2ad28bbfb81668ad)
+- [Tests] up to `node` `v8.1`, `v7.10`, `v6.11`, `v4.8`; newer npm fails on older nodes [`660b658`](https://github.com/inspect-js/is-regex/commit/660b6585d1a9607dbdae879b70ce2f6a5684616c)
+- [Tests] up to `node` `v9.3`, `v8.9`, `v6.12`; use `nvm install-latest-npm`; pin included builds to LTS [`7c25218`](https://github.com/inspect-js/is-regex/commit/7c25218d540ab17c18e4ae333677c5725806a778)
+- [Tests] up to `node` `v12.10`, `v11.15`, `v10.16`, `v8.16`, `v6.17` [`fa95547`](https://github.com/inspect-js/is-regex/commit/fa955478950a5ba0a920010d5daaa29487500b30)
+- [meta] remove unused Makefile and associated utilities [`9fd2a29`](https://github.com/inspect-js/is-regex/commit/9fd2a29dc57ed125f3d61e94f6254a9dd8ee0044)
+- [Tests] up to `node` `v11.3`, `v10.14`, `v8.14`, `v6.15` [`7f2ac41`](https://github.com/inspect-js/is-regex/commit/7f2ac41ef5dc4d53bfe2fb1c24486c688a2537bd)
+- [Tests] up to `node` `v10.0`, `v9.11`, `v8.11`, `v6.14`, `v4.9` [`6fa2b0f`](https://github.com/inspect-js/is-regex/commit/6fa2b0fe171a5b02086a06679a92d989e83a8b8e)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config` [`697e1de`](https://github.com/inspect-js/is-regex/commit/697e1de1c9e69f08e591cc0040d81fdbbde6fe4e)
+- [actions] add automatic rebasing / merge commit blocking [`ad86dc9`](https://github.com/inspect-js/is-regex/commit/ad86dc97a52e4f66fbfb3b8c9c78da3963588b54)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `jscs`, `nsp`, `replace`, `semver`, `tape` [`5c99c8e`](https://github.com/inspect-js/is-regex/commit/5c99c8e384d5ce2ef434be5853c301477cf35456)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `replace`, `semver`, `tape` [`bb63686`](https://github.com/inspect-js/is-regex/commit/bb63686a9d0fc586d121549cf484da95edec3b0a)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config@`, `replace`, `semver`, `tape` [`ddf3670`](https://github.com/inspect-js/is-regex/commit/ddf36705e5f7bd29832721e4a23abf06195032c6)
+- [Dev Deps] update `tape`, `nsp`, `eslint`, `@ljharb/eslint-config` [`e7b5a62`](https://github.com/inspect-js/is-regex/commit/e7b5a626eef3b9648c7d52d4620ce2e2a98a9ab8)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `tape` [`c803db5`](https://github.com/inspect-js/is-regex/commit/c803db5cd94cf9e0a559617adbc1e4c9d22007ff)
+- [Tests] switch from `nsp` to `npm audit` [`b7239be`](https://github.com/inspect-js/is-regex/commit/b7239be9da263a0f7066f79d087eaf700a9613e9)
+- [Dev Deps] update `eslint`, `nsp`, `semver`, `tape` [`347ee6c`](https://github.com/inspect-js/is-regex/commit/347ee6c67ba0f56b03f21a5abe743658f6515963)
+- Only apps should have lockfiles. [`3866575`](https://github.com/inspect-js/is-regex/commit/38665755ecf028061f15816059e26023890a0dc7)
+- [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`d099a39`](https://github.com/inspect-js/is-regex/commit/d099a3943eb7e156a3e64fb8b74e11d7c83a4bec)
+- [meta] add `funding` field [`741aecd`](https://github.com/inspect-js/is-regex/commit/741aecd92cd49868b3606c8cc99ce299e5f3c7d5)
+- [Tests] use `eclint` instead of `editorconfig-tools` [`bc6aa75`](https://github.com/inspect-js/is-regex/commit/bc6aa7539e506788709b96f7bf3d7549850a81c3)
+- [Tests] on `node` `v10.1` [`262226f`](https://github.com/inspect-js/is-regex/commit/262226f08fa34dff9a8dffd16daabb3dc6e262eb)
+- [Dev Deps] update `eslint` [`31fd719`](https://github.com/inspect-js/is-regex/commit/31fd719dd59a6111ca710cdb0d19a8adadf9b8c6)
+- [Deps] update `has` [`e9e25a3`](https://github.com/inspect-js/is-regex/commit/e9e25a3de7e89faaa6aadf5010477074140e8218)
+- [Dev Deps] update `replace` [`aeeb968`](https://github.com/inspect-js/is-regex/commit/aeeb968bf5a4fc07f0fa6905f2c699fc563b6c32)
+- [Tests] set audit level [`2a6290e`](https://github.com/inspect-js/is-regex/commit/2a6290e78b58bf14b734d7998fe53b4a84db5e44)
+- [Tests] remove `nsp` [`fc74c2b`](https://github.com/inspect-js/is-regex/commit/fc74c2bb6970a7f3280abe6eff3b492d77d89c9f)
+
+## [v1.0.4](https://github.com/inspect-js/is-regex/compare/v1.0.3...v1.0.4) - 2017-02-18
+
+### Fixed
+
+- [Fix] ensure that `lastIndex` is not mutated [`#3`](https://github.com/inspect-js/is-regex/issues/3)
+
+### Commits
+
+- Update `eslint`, `tape`, `semver`; use my personal shared `eslint` config [`c4a41c3`](https://github.com/inspect-js/is-regex/commit/c4a41c3a8203a3919b01cd0d1b577daadf30a452)
+- [Tests] on all node minors; improve test matrix [`58d7508`](https://github.com/inspect-js/is-regex/commit/58d7508a36eb92bd76717486b9e78bde502ffe3e)
+- [Dev Deps] update `tape`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver` [`7290076`](https://github.com/inspect-js/is-regex/commit/729007606e9ed162953d1f5812c37eb06c554ec2)
+- Update `covert`, `jscs`, `eslint`, `semver` [`dabc729`](https://github.com/inspect-js/is-regex/commit/dabc729cfc4458264c6f7642004d41dd5c214bfd)
+- Update `eslint` [`a946b05`](https://github.com/inspect-js/is-regex/commit/a946b051159396b4311c564880f96e3d00e8b8e2)
+- Update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`1744dde`](https://github.com/inspect-js/is-regex/commit/1744dde77526841f216fa2c1c866c5a82b1638c0)
+- [Refactor] when try/catch is needed, bail early if the value lacks an own `lastIndex` data property. [`288ad93`](https://github.com/inspect-js/is-regex/commit/288ad93dbfed9f6828de20de67105ee6d6504425)
+- Update `editorconfig-tools`, `eslint`, `semver`, `replace` [`4d895c6`](https://github.com/inspect-js/is-regex/commit/4d895c68a0cdbb5803185928963c15147aad0404)
+- Update `eslint`, `tape`, `semver` [`f387f03`](https://github.com/inspect-js/is-regex/commit/f387f03b260b56372bfca301d4e79c4067633854)
+- All grade A-supported `node`/`iojs` versions now ship with an `npm` that understands `^`. [`55e480f`](https://github.com/inspect-js/is-regex/commit/55e480f407cafb6c21a6c32aef04ccaa3ba4216c)
+- [Dev Deps] update `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver` [`89d9528`](https://github.com/inspect-js/is-regex/commit/89d95285b364913ebcd8ac7e0872570fe009a5d3)
+- [Dev Deps] update `jscs` [`eb222a8`](https://github.com/inspect-js/is-regex/commit/eb222a8435e59909354f3700fd4880e4ce1cb13e)
+- [Tests] up to `io.js` `v3.3`, `node` `v4.1` [`c65429c`](https://github.com/inspect-js/is-regex/commit/c65429cea0366508c10ad2ab773af7b83a34fc81)
+- Update `nsp`, `eslint` [`c60fbd8`](https://github.com/inspect-js/is-regex/commit/c60fbd8680f7fb3508ec3c5be8ebb788672516c8)
+- Update `eslint`, `semver` [`6a62116`](https://github.com/inspect-js/is-regex/commit/6a621168c63616bf004ca8b1f885b4eb8a58a3e5)
+- [Tests] on `node` `v7.5`, `v4.7` [`e764651`](https://github.com/inspect-js/is-regex/commit/e764651336f5da5e239e9fe8869f3a3201c19d2b)
+- Test up to `io.js` `v2.1` [`3bf326a`](https://github.com/inspect-js/is-regex/commit/3bf326a9bcd530fd16c9fc806e249a68e25ab7e3)
+- Test on the latest `io.js` versions. [`693d047`](https://github.com/inspect-js/is-regex/commit/693d0477631c5d7671f6c99eca5594ffffa75771)
+- [Refactor] use an early return instead of a ternary. [`31eaca2`](https://github.com/inspect-js/is-regex/commit/31eaca28b7d0aaac0599fe7a569b93b842f8ab16)
+- Test on `io.js` `v2.2` [`c18c55a`](https://github.com/inspect-js/is-regex/commit/c18c55aee6358d70531f935e98851e42b698d93c)
+- Run `travis-ci` tests on `iojs` and `node` v0.12; speed up builds; allow 0.8 failures. [`a1c237d`](https://github.com/inspect-js/is-regex/commit/a1c237d35f880fe0bcbc9275254611a6a2300aaf)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config` [`aa3ea0f`](https://github.com/inspect-js/is-regex/commit/aa3ea0f148af31d75f7ef8a800412729d82def04)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config` [`d97831d`](https://github.com/inspect-js/is-regex/commit/d97831d0e2ccd3d00d1f7354b7f81e2575f90953)
+- [Dev Deps] Update `tape`, `eslint` [`95e6def`](https://github.com/inspect-js/is-regex/commit/95e6defe3178c45dc9df16e474e558979d5f5c05)
+- Update `eslint`, `nsp` [`3844c93`](https://github.com/inspect-js/is-regex/commit/3844c935cfe7c52fae0dc74d27e884c417cb4616)
+- Update `tape`, `jscs` [`0d6dac8`](https://github.com/inspect-js/is-regex/commit/0d6dac818ed251910171965932f021291919e770)
+- Fix tests for faked @@toStringTag [`2ebef9f`](https://github.com/inspect-js/is-regex/commit/2ebef9f0759843e9a063de7a512b46e3e7daea7e)
+- Test up to `io.js` `v3.0` [`ec1d2d4`](https://github.com/inspect-js/is-regex/commit/ec1d2d44481fa0fa11448527da8030c99fe47a12)
+- [Refactor] bail earlier when the value is falsy. [`a9e333e`](https://github.com/inspect-js/is-regex/commit/a9e333e2ac8912ca05b7e31d30e4eea683c0da4b)
+- [Dev Deps] update `tape` [`8cdcaae`](https://github.com/inspect-js/is-regex/commit/8cdcaae07be8c790cdb99849e6076ea7702a4c84)
+- Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG. [`281c4ef`](https://github.com/inspect-js/is-regex/commit/281c4efeb71c86dd380e741bcaee3f7dbf956151)
+- Test on `io.js` `v2.4` [`4d54c68`](https://github.com/inspect-js/is-regex/commit/4d54c68a81b5332a3b76259d8aa8f514be5efd13)
+- Test on `io.js` `v2.3` [`23170f5`](https://github.com/inspect-js/is-regex/commit/23170f5cae632d0377de73bd2febc53db8aebbc9)
+- Test on `iojs-v1.6` [`4487ad0`](https://github.com/inspect-js/is-regex/commit/4487ad0194a5684223bfa2690da4e0a441f7132a)
+
+## [v1.0.3](https://github.com/inspect-js/is-regex/compare/v1.0.2...v1.0.3) - 2015-01-29
+
+### Commits
+
+- Update npm run scripts. [`dc528dd`](https://github.com/inspect-js/is-regex/commit/dc528dd25e775089bc0a3f5a8f7ae7ffc4cdf52a)
+- Add toStringTag tests. [`f48a83a`](https://github.com/inspect-js/is-regex/commit/f48a83a78720b78ab60ca586c16f6f3dbcfec825)
+- If @@toStringTag is not present, use the old-school Object#toString test. [`50b0ffd`](https://github.com/inspect-js/is-regex/commit/50b0ffd9c7fdbd54aee8cde1b07e680ae84f6a0d)
+
+## [v1.0.2](https://github.com/inspect-js/is-regex/compare/v1.0.1...v1.0.2) - 2015-01-29
+
+### Commits
+
+- `make release` [`a1de7ec`](https://github.com/inspect-js/is-regex/commit/a1de7eca4cecc8015fd27804669f8fc61bd16a68)
+- Improve optimization by separating the try/catch, and bailing out early when not typeof "object". [`5ab7632`](https://github.com/inspect-js/is-regex/commit/5ab76322a348487fa8b16761e83f6824c3c27d11)
+
+## [v1.0.1](https://github.com/inspect-js/is-regex/compare/v1.0.0...v1.0.1) - 2015-01-28
+
+### Commits
+
+- Using my standard jscs.json file [`1f1733a`](https://github.com/inspect-js/is-regex/commit/1f1733ac8433cdcceb25356f86b74136a4477cb9)
+- Adding `npm run lint` [`51ea70f`](https://github.com/inspect-js/is-regex/commit/51ea70fa7e461d022f611c195f343ea8d0333d71)
+- Use RegExp#exec to test if something is a regex, which works even with ES6 @@toStringTag. [`042c8c7`](https://github.com/inspect-js/is-regex/commit/042c8c734faade9015932b61f1e8ea4f3a93b1b3)
+- Adding license and downloads badges [`366d619`](https://github.com/inspect-js/is-regex/commit/366d61965d3a4119126e78e09b2166bbcddd0c5a)
+- Use SVG badges instead of PNG [`6a32e4f`](https://github.com/inspect-js/is-regex/commit/6a32e4fc87d7d3a3787b800dd033c9293aead6df)
+- Update `tape`, `jscs` [`f1b9462`](https://github.com/inspect-js/is-regex/commit/f1b9462f86d1b69de07176e7f277f668757ba964)
+- Update `jscs` [`1bff23f`](https://github.com/inspect-js/is-regex/commit/1bff23ff0fe88c8263e8bf04cf99e290af96d5b0)
+- Update `tape`, `jscs` [`c22ea2e`](https://github.com/inspect-js/is-regex/commit/c22ea2e7967f45618deed01ff5ea483f918be216)
+- Update `tape`, `jscs` [`b0479db`](https://github.com/inspect-js/is-regex/commit/b0479db99a1b1b872d1618fb0a71f0c74a78b29b)
+- Use consistent quotes [`1a6e347`](https://github.com/inspect-js/is-regex/commit/1a6e34730d9270f3f20519139faa4c4e6ec2e1f5)
+- Make travis builds faster. [`090a4ea`](https://github.com/inspect-js/is-regex/commit/090a4ea7c5fa709d108d596e3bc304e6ce973dec)
+- Update `tape` [`7d76129`](https://github.com/inspect-js/is-regex/commit/7d7612928bdd43230fbd835db71797249ca24f35)
+- Lock covert to v1.0.0. [`9a90b03`](https://github.com/inspect-js/is-regex/commit/9a90b03fb390e66f874223a34c58ba2bb109edd3)
+- Updating tape [`bfbc7f5`](https://github.com/inspect-js/is-regex/commit/bfbc7f593a007acd0411152bbb55f724dc4ca935)
+- Updating jscs [`13ad511`](https://github.com/inspect-js/is-regex/commit/13ad511d80cd67300c2c0c5387fc4b3b423e2768)
+- Updating jscs [`cda1945`](https://github.com/inspect-js/is-regex/commit/cda1945d603dfe99e24d5a909a931d366451bc4d)
+- Updating jscs [`de96c99`](https://github.com/inspect-js/is-regex/commit/de96c99d4bf5787df671de6df9138b6547a6545b)
+- Running linter as part of tests [`2cb6567`](https://github.com/inspect-js/is-regex/commit/2cb656733b1ed0af14ad11fb584006d22de0c69d)
+- Updating covert [`a56ae74`](https://github.com/inspect-js/is-regex/commit/a56ae74ec8d5f0473295a8b10519a18580f16624)
+- Updating tape [`ffe47f7`](https://github.com/inspect-js/is-regex/commit/ffe47f7fe9cf6d16896b4bdc286bd1d0805d5c49)
+
+## [v1.0.0](https://github.com/inspect-js/is-regex/compare/v0.0.0...v1.0.0) - 2014-05-19
+
+### Commits
+
+- Make sure old and unstable nodes don't break Travis [`05da747`](https://github.com/inspect-js/is-regex/commit/05da7478f960dc131ec3ad864e27e8c6b7d74a80)
+- toString is a reserved var name in old Opera [`885c48c`](https://github.com/inspect-js/is-regex/commit/885c48c120f921a55f1842b0607d3e7875379821)
+- Updating deps [`2ca0e79`](https://github.com/inspect-js/is-regex/commit/2ca0e79a2443ca34d85e8b2ea2e26f55855b74a7)
+- Updating tape. [`9678435`](https://github.com/inspect-js/is-regex/commit/96784355611deb0c23b9064be774216d76e3e457)
+- Updating covert [`c3bb898`](https://github.com/inspect-js/is-regex/commit/c3bb8985a422e3e0c81f9c43899b6c19a72c755f)
+- Updating tape [`7811708`](https://github.com/inspect-js/is-regex/commit/78117089688258b8f939b397b37897b5b3e30f74)
+- Testing on node 0.6 again [`dec36ae`](https://github.com/inspect-js/is-regex/commit/dec36ae58a39a3f80e832b702c3e19406363c160)
+- Run code coverage as part of tests [`e6f4ebe`](https://github.com/inspect-js/is-regex/commit/e6f4ebec26894543747603f2cb360e839f2ca290)
+
+## v0.0.0 - 2014-01-15
+
+### Commits
+
+- package.json [`aa60d43`](https://github.com/inspect-js/is-regex/commit/aa60d43d2c8adb9fdd47f5898e5e1e570bd238d8)
+- read me [`861e944`](https://github.com/inspect-js/is-regex/commit/861e944de88e84010eaa662ea9ea9f17c90cff8c)
+- Initial commit [`d0cdd71`](https://github.com/inspect-js/is-regex/commit/d0cdd71a637d8490b7ee3eaaf75c7e31d0f9242f)
+- Tests. [`b533f74`](https://github.com/inspect-js/is-regex/commit/b533f741a88dff002790fb7af054b2a74e72d4da)
+- Implementation. [`3c9a8c0`](https://github.com/inspect-js/is-regex/commit/3c9a8c06994003cdfffeb3620f251f4c4cae7755)
+- Travis CI [`742c440`](https://github.com/inspect-js/is-regex/commit/742c4407015f9108875fd108fde137f5245e9e7a)
diff --git a/node_modules/is-regex/LICENSE b/node_modules/is-regex/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..47b7b5078fce38783c58381828d9a7f762db7866
--- /dev/null
+++ b/node_modules/is-regex/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Jordan Harband
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/node_modules/is-regex/README.md b/node_modules/is-regex/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..d61332bd290fe50c87c466440e9aa170cb1c8dcb
--- /dev/null
+++ b/node_modules/is-regex/README.md
@@ -0,0 +1,52 @@
+# is-regex [![Version Badge][2]][1]
+
+[![github actions][actions-image]][actions-url]
+[![coverage][codecov-image]][codecov-url]
+[![dependency status][5]][6]
+[![dev dependency status][7]][8]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][11]][1]
+
+Is this value a JS regex?
+This module works cross-realm/iframe, and despite ES6 @@toStringTag.
+
+## Example
+
+```js
+var isRegex = require('is-regex');
+var assert = require('assert');
+
+assert.notOk(isRegex(undefined));
+assert.notOk(isRegex(null));
+assert.notOk(isRegex(false));
+assert.notOk(isRegex(true));
+assert.notOk(isRegex(42));
+assert.notOk(isRegex('foo'));
+assert.notOk(isRegex(function () {}));
+assert.notOk(isRegex([]));
+assert.notOk(isRegex({}));
+
+assert.ok(isRegex(/a/g));
+assert.ok(isRegex(new RegExp('a', 'g')));
+```
+
+## Tests
+Simply clone the repo, `npm install`, and run `npm test`
+
+[1]: https://npmjs.org/package/is-regex
+[2]: https://versionbadg.es/inspect-js/is-regex.svg
+[5]: https://david-dm.org/inspect-js/is-regex.svg
+[6]: https://david-dm.org/inspect-js/is-regex
+[7]: https://david-dm.org/inspect-js/is-regex/dev-status.svg
+[8]: https://david-dm.org/inspect-js/is-regex#info=devDependencies
+[11]: https://nodei.co/npm/is-regex.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/is-regex.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/is-regex.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=is-regex
+[codecov-image]: https://codecov.io/gh/inspect-js/is-regex/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/inspect-js/is-regex/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-regex
+[actions-url]: https://github.com/inspect-js/is-regex/actions
diff --git a/node_modules/is-regex/index.d.ts b/node_modules/is-regex/index.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..bc63cf6559595bb9558d303e0d1f3d7696e8b9e8
--- /dev/null
+++ b/node_modules/is-regex/index.d.ts
@@ -0,0 +1,3 @@
+declare function isRegex(value: unknown): value is RegExp;
+
+export = isRegex;
diff --git a/node_modules/is-regex/index.js b/node_modules/is-regex/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..c4c8cede9dd2e15f1aada64efd96ecf776175b32
--- /dev/null
+++ b/node_modules/is-regex/index.js
@@ -0,0 +1,69 @@
+'use strict';
+
+var callBound = require('call-bound');
+var hasToStringTag = require('has-tostringtag/shams')();
+var hasOwn = require('hasown');
+var gOPD = require('gopd');
+
+/** @type {import('.')} */
+var fn;
+
+if (hasToStringTag) {
+ /** @type {(receiver: ThisParameterType, ...args: Parameters) => ReturnType} */
+ var $exec = callBound('RegExp.prototype.exec');
+ /** @type {object} */
+ var isRegexMarker = {};
+
+ var throwRegexMarker = function () {
+ throw isRegexMarker;
+ };
+ /** @type {{ toString(): never, valueOf(): never, [Symbol.toPrimitive]?(): never }} */
+ var badStringifier = {
+ toString: throwRegexMarker,
+ valueOf: throwRegexMarker
+ };
+
+ if (typeof Symbol.toPrimitive === 'symbol') {
+ badStringifier[Symbol.toPrimitive] = throwRegexMarker;
+ }
+
+ /** @type {import('.')} */
+ // @ts-expect-error TS can't figure out that the $exec call always throws
+ // eslint-disable-next-line consistent-return
+ fn = function isRegex(value) {
+ if (!value || typeof value !== 'object') {
+ return false;
+ }
+
+ // eslint-disable-next-line no-extra-parens
+ var descriptor = /** @type {NonNullable} */ (gOPD)(/** @type {{ lastIndex?: unknown }} */ (value), 'lastIndex');
+ var hasLastIndexDataProperty = descriptor && hasOwn(descriptor, 'value');
+ if (!hasLastIndexDataProperty) {
+ return false;
+ }
+
+ try {
+ // eslint-disable-next-line no-extra-parens
+ $exec(value, /** @type {string} */ (/** @type {unknown} */ (badStringifier)));
+ } catch (e) {
+ return e === isRegexMarker;
+ }
+ };
+} else {
+ /** @type {(receiver: ThisParameterType, ...args: Parameters) => ReturnType} */
+ var $toString = callBound('Object.prototype.toString');
+ /** @const @type {'[object RegExp]'} */
+ var regexClass = '[object RegExp]';
+
+ /** @type {import('.')} */
+ fn = function isRegex(value) {
+ // In older browsers, typeof regex incorrectly returns 'function'
+ if (!value || (typeof value !== 'object' && typeof value !== 'function')) {
+ return false;
+ }
+
+ return $toString(value) === regexClass;
+ };
+}
+
+module.exports = fn;
diff --git a/node_modules/is-regex/package.json b/node_modules/is-regex/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..9e61b5b7d6faf3cda4ce697bdc1ae7f301be8876
--- /dev/null
+++ b/node_modules/is-regex/package.json
@@ -0,0 +1,104 @@
+{
+ "name": "is-regex",
+ "version": "1.2.1",
+ "description": "Is this value a JS regex? Works cross-realm/iframe, and despite ES6 @@toStringTag",
+ "author": "Jordan Harband ",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ },
+ "license": "MIT",
+ "main": "index.js",
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=autogenerated",
+ "prepublishOnly": "safe-publish-latest",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "pretest": "npm run lint",
+ "test": "npm run tests-only && npm run test:harmony",
+ "tests-only": "nyc node test",
+ "test:harmony": "nyc node --harmony --es-staging test",
+ "test:corejs": "nyc tape test-corejs.js",
+ "posttest": "npx npm@'>=10.2' audit --production",
+ "prelint": "eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git')",
+ "lint": "eslint --ext=js,mjs .",
+ "postlint": "tsc -p . && attw -P",
+ "version": "auto-changelog && git add CHANGELOG.md",
+ "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
+ },
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/inspect-js/is-regex.git"
+ },
+ "bugs": {
+ "url": "https://github.com/inspect-js/is-regex/issues"
+ },
+ "homepage": "https://github.com/inspect-js/is-regex",
+ "keywords": [
+ "regex",
+ "regexp",
+ "is",
+ "regular expression",
+ "regular",
+ "expression"
+ ],
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "gopd": "^1.2.0",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.2"
+ },
+ "devDependencies": {
+ "@arethetypeswrong/cli": "^0.17.1",
+ "@ljharb/eslint-config": "^21.1.1",
+ "@ljharb/tsconfig": "^0.2.2",
+ "@types/core-js": "^2.5.8",
+ "@types/for-each": "^0.3.3",
+ "@types/tape": "^5.6.5",
+ "auto-changelog": "^2.5.0",
+ "core-js": "^3.39.0",
+ "eclint": "^2.8.1",
+ "encoding": "^0.1.13",
+ "eslint": "=8.8.0",
+ "for-each": "^0.3.3",
+ "in-publish": "^2.0.1",
+ "npmignore": "^0.3.1",
+ "nyc": "^10.3.2",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.9.0",
+ "typescript": "^5.8.0-dev.20241129"
+ },
+ "testling": {
+ "files": "test/index.js",
+ "browsers": [
+ "iexplore/6.0..latest",
+ "firefox/3.0..6.0",
+ "firefox/15.0..latest",
+ "firefox/nightly",
+ "chrome/4.0..10.0",
+ "chrome/20.0..latest",
+ "chrome/canary",
+ "opera/10.0..latest",
+ "opera/next",
+ "safari/4.0..latest",
+ "ipad/6.0..latest",
+ "iphone/6.0..latest",
+ "android-browser/4.2"
+ ]
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows",
+ "test-corejs.js"
+ ]
+ }
+}
diff --git a/node_modules/is-regex/test/index.js b/node_modules/is-regex/test/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..fa558d63f43104b028b7a284c9912650ae0e24db
--- /dev/null
+++ b/node_modules/is-regex/test/index.js
@@ -0,0 +1,121 @@
+'use strict';
+
+var hasToStringTag = require('has-tostringtag/shams')();
+var forEach = require('for-each');
+var test = require('tape');
+var isRegex = require('..');
+
+test('not regexes', function (t) {
+ // @ts-expect-error
+ t.notOk(isRegex(), 'undefined is not regex');
+ t.notOk(isRegex(null), 'null is not regex');
+ t.notOk(isRegex(false), 'false is not regex');
+ t.notOk(isRegex(true), 'true is not regex');
+ t.notOk(isRegex(42), 'number is not regex');
+ t.notOk(isRegex('foo'), 'string is not regex');
+ t.notOk(isRegex([]), 'array is not regex');
+ t.notOk(isRegex({}), 'object is not regex');
+ t.notOk(isRegex(function () {}), 'function is not regex');
+ t.end();
+});
+
+test('@@toStringTag', { skip: !hasToStringTag }, function (t) {
+ var regex = /a/g;
+ /** @type {{ toString(): string, valueOf(): RegExp, [Symbol.toStringTag]?: string}} */
+ var fakeRegex = {
+ toString: function () { return String(regex); },
+ valueOf: function () { return regex; }
+ };
+ fakeRegex[Symbol.toStringTag] = 'RegExp';
+ t.notOk(isRegex(fakeRegex), 'fake RegExp with @@toStringTag "RegExp" is not regex');
+ t.end();
+});
+
+test('regexes', function (t) {
+ t.ok(isRegex(/a/g), 'regex literal is regex');
+ t.ok(isRegex(new RegExp('a', 'g')), 'regex object is regex');
+ t.end();
+});
+
+test('does not mutate regexes', function (t) {
+ t.test('lastIndex is a marker object', function (st) {
+ var regex = /a/;
+ var marker = {};
+ // @ts-expect-error
+ regex.lastIndex = marker;
+ st.equal(regex.lastIndex, marker, 'lastIndex is the marker object');
+ st.ok(isRegex(regex), 'is regex');
+ st.equal(regex.lastIndex, marker, 'lastIndex is the marker object after isRegex');
+ st.end();
+ });
+
+ t.test('lastIndex is nonzero', function (st) {
+ var regex = /a/;
+ regex.lastIndex = 3;
+ st.equal(regex.lastIndex, 3, 'lastIndex is 3');
+ st.ok(isRegex(regex), 'is regex');
+ st.equal(regex.lastIndex, 3, 'lastIndex is 3 after isRegex');
+ st.end();
+ });
+
+ t.end();
+});
+
+test('does not perform operations observable to Proxies', { skip: typeof Proxy !== 'function' }, function (t) {
+ /** @constructor */
+ function Handler() {
+ /** @type (keyof Reflect)[]} */
+ this.trapCalls = [];
+ }
+
+ // eslint-disable-next-line no-extra-parens
+ forEach(/** @const @type {(keyof Reflect)[]} */ ([
+ 'defineProperty',
+ 'deleteProperty',
+ 'get',
+ 'getOwnPropertyDescriptor',
+ 'getPrototypeOf',
+ 'has',
+ 'isExtensible',
+ 'ownKeys',
+ 'preventExtensions',
+ 'set',
+ 'setPrototypeOf'
+ ]), function (trapName) {
+ Handler.prototype[trapName] = function () {
+ this.trapCalls.push(trapName);
+ // @ts-expect-error TODO: not sure why this is erroring
+ return Reflect[trapName].apply(Reflect, arguments);
+ };
+ });
+
+ t.test('proxy of object', function (st) {
+ var handler = new Handler();
+ // @ts-expect-error Proxy handlers can be any object
+ var proxy = new Proxy({ lastIndex: 0 }, handler);
+
+ st.equal(isRegex(proxy), false, 'proxy of plain object is not regex');
+ st.deepEqual(
+ handler.trapCalls,
+ handler.trapCalls.length > 0 ? ['getOwnPropertyDescriptor'] : [],
+ 'no unexpected proxy traps were triggered'
+ );
+ st.end();
+ });
+
+ t.test('proxy of RegExp instance', function (st) {
+ var handler = new Handler();
+ // @ts-expect-error Proxy handlers can be any object
+ var proxy = new Proxy(/a/, handler);
+
+ st.equal(isRegex(proxy), false, 'proxy of RegExp instance is not regex');
+ st.deepEqual(
+ handler.trapCalls,
+ handler.trapCalls.length > 0 ? ['getOwnPropertyDescriptor'] : [],
+ 'no unexpected proxy traps were triggered'
+ );
+ st.end();
+ });
+
+ t.end();
+});
diff --git a/node_modules/is-regex/tsconfig.json b/node_modules/is-regex/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..707cf95103eea5754b0141455f421ec38d129dd9
--- /dev/null
+++ b/node_modules/is-regex/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "@ljharb/tsconfig",
+ "compilerOptions": {
+ "target": "ES2021",
+ },
+ "exclude": [
+ "coverage"
+ ]
+}
diff --git a/node_modules/is-set/.editorconfig b/node_modules/is-set/.editorconfig
new file mode 100644
index 0000000000000000000000000000000000000000..8f9d77e2dc2ccfe65326efc167617a2f85fd5e30
--- /dev/null
+++ b/node_modules/is-set/.editorconfig
@@ -0,0 +1,15 @@
+root = true
+
+[*]
+indent_style = tab
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+[{package.json,*.yml}]
+indent_style = space
+indent_size = 2
+
+[*.md]
+trim_trailing_whitespace = false
diff --git a/node_modules/is-set/.eslintrc b/node_modules/is-set/.eslintrc
new file mode 100644
index 0000000000000000000000000000000000000000..3b5d9e90ec405f85dd7f9066656efccc51193697
--- /dev/null
+++ b/node_modules/is-set/.eslintrc
@@ -0,0 +1,5 @@
+{
+ "root": true,
+
+ "extends": "@ljharb",
+}
diff --git a/node_modules/is-set/.gitattributes b/node_modules/is-set/.gitattributes
new file mode 100644
index 0000000000000000000000000000000000000000..176a458f94e0ea5272ce67c36bf30b6be9caf623
--- /dev/null
+++ b/node_modules/is-set/.gitattributes
@@ -0,0 +1 @@
+* text=auto
diff --git a/node_modules/is-set/.github/FUNDING.yml b/node_modules/is-set/.github/FUNDING.yml
new file mode 100644
index 0000000000000000000000000000000000000000..731df8ad486d58d36b6031021d56667734c9be1a
--- /dev/null
+++ b/node_modules/is-set/.github/FUNDING.yml
@@ -0,0 +1,12 @@
+# These are supported funding model platforms
+
+github: [ljharb]
+patreon: # Replace with a single Patreon username
+open_collective: # Replace with a single Open Collective username
+ko_fi: # Replace with a single Ko-fi username
+tidelift: npm/is-set
+community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
+liberapay: # Replace with a single Liberapay username
+issuehunt: # Replace with a single IssueHunt username
+otechie: # Replace with a single Otechie username
+custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/node_modules/is-set/.nycrc b/node_modules/is-set/.nycrc
new file mode 100644
index 0000000000000000000000000000000000000000..bdd626ce91477abbdd489b79988baebadbd3c897
--- /dev/null
+++ b/node_modules/is-set/.nycrc
@@ -0,0 +1,9 @@
+{
+ "all": true,
+ "check-coverage": false,
+ "reporter": ["text-summary", "text", "html", "json"],
+ "exclude": [
+ "coverage",
+ "test"
+ ]
+}
diff --git a/node_modules/is-set/CHANGELOG.md b/node_modules/is-set/CHANGELOG.md
new file mode 100644
index 0000000000000000000000000000000000000000..09e67c3ea35a9cf8deb936cf92d8e8551569e3cc
--- /dev/null
+++ b/node_modules/is-set/CHANGELOG.md
@@ -0,0 +1,81 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [v2.0.3](https://github.com/inspect-js/is-set/compare/v2.0.2...v2.0.3) - 2024-03-08
+
+### Commits
+
+- [actions] reuse common workflows [`9d26ac6`](https://github.com/inspect-js/is-set/commit/9d26ac673752d89ba855a50616d36f09d49d6113)
+- [actions] use `node/install` instead of `node/run`; use `codecov` action [`3c91325`](https://github.com/inspect-js/is-set/commit/3c91325782b9dac5a602e150cd007e51029930f9)
+- add types [`8fcc646`](https://github.com/inspect-js/is-set/commit/8fcc646ba3befa5448f987c7c12e0863443c9533)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `object-inspect`, `safe-publish-latest`, `tape` [`91caa24`](https://github.com/inspect-js/is-set/commit/91caa24511234e8f105f4534b681abdb2139b650)
+- [readme] update URLs [`130e57b`](https://github.com/inspect-js/is-set/commit/130e57bc4d6386bd500d6886b9f094dd201cb88b)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `es5-shim`, `object-inspect`, `tape` [`4d75ee2`](https://github.com/inspect-js/is-set/commit/4d75ee27c0351999ba3093d519c12dc8bc0ff0ee)
+- [actions] remove redundant finisher [`052fdce`](https://github.com/inspect-js/is-set/commit/052fdce2ee22fe49186c4d848063600f0c3f968d)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `auto-changelog`, `core-js`, `es5-shim`, `object-inspect`, `safe-publish-latest`, `tape` [`eb31797`](https://github.com/inspect-js/is-set/commit/eb317975ea6240cc2dc043db9e4a837b00f82ffc)
+- [actions] update rebase action to use reusable workflow [`8c478ba`](https://github.com/inspect-js/is-set/commit/8c478ba28881beb9f07650e409f6ef7df4a92455)
+- [actions] update codecov uploader [`a0dac6b`](https://github.com/inspect-js/is-set/commit/a0dac6b9abb0c5a3eff6849cca4ba7f1c0c8dc17)
+- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `es6-shim`, `object-inspect`, `tape` [`28d75a3`](https://github.com/inspect-js/is-set/commit/28d75a3ecb22235593b43e32505b90578da0dfab)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `object-inspect`, `tape` [`7b2a4a7`](https://github.com/inspect-js/is-set/commit/7b2a4a75bae0f1a9163a83ac8760f10cfbcdb001)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `es5-shim`, `tape` [`20ce047`](https://github.com/inspect-js/is-set/commit/20ce04714d7be5fbee40c757e2ba7194e248c1a2)
+- [readme] add actions and codecov badges [`e6e1796`](https://github.com/inspect-js/is-set/commit/e6e1796da1700594a3988466762405462f082cda)
+- [meta] add missing `engines.node` [`9ed19af`](https://github.com/inspect-js/is-set/commit/9ed19afb98ad26e29378c2a7f1c82359d5c5a809)
+- [meta] use `prepublishOnly` script for npm 7+ [`618f861`](https://github.com/inspect-js/is-set/commit/618f86128277814075fe56f7a69a272c31a48f85)
+- [readme] remove dead badges [`76e890e`](https://github.com/inspect-js/is-set/commit/76e890ea165c6cb9088604ea010968d5e3e877c6)
+- [meta] add `sideEffects` flag [`e21859b`](https://github.com/inspect-js/is-set/commit/e21859bb58bd5aafb907fe53045ec3bc14d07449)
+
+## [v2.0.2](https://github.com/inspect-js/is-set/compare/v2.0.1...v2.0.2) - 2020-12-13
+
+### Commits
+
+- [Tests] migrate tests to Github Actions [`10a1a86`](https://github.com/inspect-js/is-set/commit/10a1a869d5f76921eed5bb7f1503be6f03eea8a2)
+- [meta] do not publish github action workflow files [`9611423`](https://github.com/inspect-js/is-set/commit/9611423c4a6baa08a38f46ddafcca3ed4ea0ad97)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `es6-shim`, `object-inspect`, `tape` [`7d4d9b3`](https://github.com/inspect-js/is-set/commit/7d4d9b3ce8434a96c238cef62a7ce9ce79bd6079)
+- [Tests] run `nyc` on all tests [`dff5fb6`](https://github.com/inspect-js/is-set/commit/dff5fb6cec206e51c6a7311fdb866bb0a0783b1a)
+- [actions] add "Allow Edits" workflow [`6bed76a`](https://github.com/inspect-js/is-set/commit/6bed76af3119e489e622b3ea30807484dbb7fca9)
+- [readme] remove travis badge [`ee9e740`](https://github.com/inspect-js/is-set/commit/ee9e74012ba35e86a4e92d7165548341d4323755)
+- [Tests] add `core-js` tests [`9ef1b4e`](https://github.com/inspect-js/is-set/commit/9ef1b4ed0e55cec4154189247b6d7f6ad570e2f1)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`5661354`](https://github.com/inspect-js/is-set/commit/5661354f7a9861998257fdacfa9975feae9415b8)
+- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`2cea69e`](https://github.com/inspect-js/is-set/commit/2cea69e16f64d7e706945010e03401a0a66507a3)
+- [Dev Deps] update `es5-shim`, `tape` [`9e24b51`](https://github.com/inspect-js/is-set/commit/9e24b5158a0490c6b94deb31e76b06337eaafce6)
+- [Dev Deps] update `auto-changelog`; add `aud` [`69ae556`](https://github.com/inspect-js/is-set/commit/69ae5561fe2408f301479dfa65dac0255e16952e)
+- Fix typo in README.md, Map -> Set [`5fe826a`](https://github.com/inspect-js/is-set/commit/5fe826a1e11bf810b7174e2dfaf893a5682511d4)
+- [Tests] only audit prod deps [`c7c67f6`](https://github.com/inspect-js/is-set/commit/c7c67f6b1a32b2b24709d733a6681cbe1ec67640)
+- [meta] normalize line endings [`6ef4ebd`](https://github.com/inspect-js/is-set/commit/6ef4ebdf090bdf1f42eb912b6af2cf31df4abaef)
+
+## [v2.0.1](https://github.com/inspect-js/is-set/compare/v2.0.0...v2.0.1) - 2019-12-17
+
+### Fixed
+
+- [Refactor] avoid top-level return, because babel and webpack are broken [`#5`](https://github.com/inspect-js/is-set/issues/5) [`#4`](https://github.com/inspect-js/is-set/issues/4) [`#3`](https://github.com/inspect-js/is-set/issues/3) [`#78`](https://github.com/inspect-js/node-deep-equal/issues/78) [`#7`](https://github.com/es-shims/Promise.allSettled/issues/7) [`#12`](https://github.com/airbnb/js-shims/issues/12)
+
+### Commits
+
+- [actions] add automatic rebasing / merge commit blocking [`db358ba`](https://github.com/inspect-js/is-set/commit/db358ba503aa86fe2d375e188dcdfa7174a070c8)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`13e5083`](https://github.com/inspect-js/is-set/commit/13e50834eacb1c1830feb598da70ca6d0c53d2f7)
+
+## [v2.0.0](https://github.com/inspect-js/is-set/compare/v1.0.0...v2.0.0) - 2019-11-12
+
+### Commits
+
+- Initial commit [`0299bc8`](https://github.com/inspect-js/is-set/commit/0299bc8fce41dce4586ac2f79c73802ad6a72c3d)
+- Tests [`dec24eb`](https://github.com/inspect-js/is-set/commit/dec24eb0b9f57f14be8eedd0e572f94f81572e82)
+- readme [`9b16e7f`](https://github.com/inspect-js/is-set/commit/9b16e7ff417b5c7be9829f22e32249d737bb8f6e)
+- implementation [`3da6156`](https://github.com/inspect-js/is-set/commit/3da6156dae02e71d541bc8a0d3b751734b98e06d)
+- npm init [`89fdc8b`](https://github.com/inspect-js/is-set/commit/89fdc8b3d980f6ca414f71dff2af38ed102321a1)
+- [meta] add `funding` field; create `FUNDING.yml` [`77f2be9`](https://github.com/inspect-js/is-set/commit/77f2be9f281439472f81a0378632bc5eeb25a79b)
+- [meta] add `safe-publish-latest`, `auto-changelog` [`cef1b4c`](https://github.com/inspect-js/is-set/commit/cef1b4cef15c565e76e3d46e66087821c4c437ae)
+- [Tests] add `npm run lint` [`2a8284c`](https://github.com/inspect-js/is-set/commit/2a8284c6d2265ecd5c98bd4a008a82f0b519cd0a)
+- [Tests] use shared travis-ci configs [`d2e342f`](https://github.com/inspect-js/is-set/commit/d2e342f3b8477cc74bcab44297d20d10fcf3718b)
+- Only apps should have lockfiles [`624072b`](https://github.com/inspect-js/is-set/commit/624072b92774aaa6d851837c882181995d88ece8)
+- [Tests] add `npx aud` in `posttest` [`214247c`](https://github.com/inspect-js/is-set/commit/214247c3fcd61b164c18b56524cdc183fc485450)
+
+## v1.0.0 - 2015-02-18
+
+### Commits
+
+- init [`2f11646`](https://github.com/inspect-js/is-set/commit/2f1164617bee9c05c0f7ffae8fca2feed13bade7)
diff --git a/node_modules/is-set/LICENSE b/node_modules/is-set/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..c05eb206bdf4955213919987028657acd99ed92c
--- /dev/null
+++ b/node_modules/is-set/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 Inspect JS
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/is-set/README.md b/node_modules/is-set/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..8a62f0b61c833b757cb66a194aa465a525ccf4c5
--- /dev/null
+++ b/node_modules/is-set/README.md
@@ -0,0 +1,50 @@
+# is-set [![Version Badge][npm-version-svg]][package-url]
+
+[![github actions][actions-image]][actions-url]
+[![coverage][codecov-image]][codecov-url]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][npm-badge-png]][package-url]
+
+Is this value a JS Set? This module works cross-realm/iframe, and despite ES6 @@toStringTag.
+
+## Example
+
+```js
+var isSet = require('is-set');
+assert(!isSet(function () {}));
+assert(!isSet(null));
+assert(!isSet(function* () { yield 42; return Infinity; });
+assert(!isSet(Symbol('foo')));
+assert(!isSet(1n));
+assert(!isSet(Object(1n)));
+
+assert(!isSet(new Map()));
+assert(!isSet(new WeakSet()));
+assert(!isSet(new WeakMap()));
+
+assert(isSet(new Set()));
+
+class MySet extends Set {}
+assert(isSet(new MySet()));
+```
+
+## Tests
+Simply clone the repo, `npm install`, and run `npm test`
+
+[package-url]: https://npmjs.org/package/is-set
+[npm-version-svg]: https://versionbadg.es/inspect-js/is-set.svg
+[deps-svg]: https://david-dm.org/inspect-js/is-set.svg
+[deps-url]: https://david-dm.org/inspect-js/is-set
+[dev-deps-svg]: https://david-dm.org/inspect-js/is-set/dev-status.svg
+[dev-deps-url]: https://david-dm.org/inspect-js/is-set#info=devDependencies
+[npm-badge-png]: https://nodei.co/npm/is-set.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/is-set.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/is-set.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=is-set
+[codecov-image]: https://codecov.io/gh/inspect-js/is-set/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/inspect-js/is-set/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-set
+[actions-url]: https://github.com/inspect-js/is-set/actions
diff --git a/node_modules/is-set/index.d.ts b/node_modules/is-set/index.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..af111aa6a0b72c9c24ba5a680a17d2c8944da0d2
--- /dev/null
+++ b/node_modules/is-set/index.d.ts
@@ -0,0 +1,3 @@
+declare function isSet(x: unknown): x is Set;
+
+export = isSet;
diff --git a/node_modules/is-set/index.js b/node_modules/is-set/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..296dfd2cba7d4a9821573025fdfa4f2484610cde
--- /dev/null
+++ b/node_modules/is-set/index.js
@@ -0,0 +1,46 @@
+'use strict';
+
+var $Map = typeof Map === 'function' && Map.prototype ? Map : null;
+var $Set = typeof Set === 'function' && Set.prototype ? Set : null;
+
+var exported;
+
+if (!$Set) {
+ /** @type {import('.')} */
+ // eslint-disable-next-line no-unused-vars
+ exported = function isSet(x) {
+ // `Set` is not present in this environment.
+ return false;
+ };
+}
+
+var $mapHas = $Map ? Map.prototype.has : null;
+var $setHas = $Set ? Set.prototype.has : null;
+if (!exported && !$setHas) {
+ /** @type {import('.')} */
+ // eslint-disable-next-line no-unused-vars
+ exported = function isSet(x) {
+ // `Set` does not have a `has` method
+ return false;
+ };
+}
+
+/** @type {import('.')} */
+module.exports = exported || function isSet(x) {
+ if (!x || typeof x !== 'object') {
+ return false;
+ }
+ try {
+ $setHas.call(x);
+ if ($mapHas) {
+ try {
+ $mapHas.call(x);
+ } catch (e) {
+ return true;
+ }
+ }
+ // @ts-expect-error TS can't figure out that $Set is always truthy here
+ return x instanceof $Set; // core-js workaround, pre-v2.5.0
+ } catch (e) {}
+ return false;
+};
diff --git a/node_modules/is-set/package.json b/node_modules/is-set/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..9057c6e4b63cb59d0d9265754dd021233dc6a3f2
--- /dev/null
+++ b/node_modules/is-set/package.json
@@ -0,0 +1,72 @@
+{
+ "name": "is-set",
+ "version": "2.0.3",
+ "description": "Is this value a JS Set? This module works cross-realm/iframe, and despite ES6 @@toStringTag.",
+ "main": "index.js",
+ "sideEffects": false,
+ "scripts": {
+ "version": "auto-changelog && git add CHANGELOG.md",
+ "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"",
+ "prepublishOnly": "safe-publish-latest",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "pretest": "npm run lint",
+ "lint": "eslint --ext=.js,.mjs .",
+ "postlint": "tsc -p . && attw -P",
+ "tests-only": "nyc tape 'test/**/*.js'",
+ "tests:shims": "nyc tape --require=es5-shim --require=es5-shim 'test/**/*.js'",
+ "tests:corejs": "nyc tape --require=core-js 'test/**/*.js'",
+ "test": "npm run tests-only && npm run tests:shims && npm run tests:corejs",
+ "posttest": "npx aud --production"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/inspect-js/is-set.git"
+ },
+ "keywords": [
+ "map",
+ "set",
+ "collection",
+ "is",
+ "robust"
+ ],
+ "author": "Jordan Harband ",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ },
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/inspect-js/is-set/issues"
+ },
+ "homepage": "https://github.com/inspect-js/is-set#readme",
+ "devDependencies": {
+ "@arethetypeswrong/cli": "^0.15.0",
+ "@ljharb/eslint-config": "^21.1.0",
+ "@types/for-each": "^0.3.3",
+ "@types/object-inspect": "^1.8.4",
+ "@types/tape": "^5.6.4",
+ "aud": "^2.0.4",
+ "auto-changelog": "^2.4.0",
+ "core-js": "^2.6.12",
+ "es5-shim": "^4.6.7",
+ "es6-shim": "^0.35.8",
+ "eslint": "=8.8.0",
+ "for-each": "^0.3.3",
+ "in-publish": "^2.0.1",
+ "nyc": "^10.3.2",
+ "object-inspect": "^1.13.1",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.7.5",
+ "typescript": "next"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+}
diff --git a/node_modules/is-set/test/index.js b/node_modules/is-set/test/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..c21a1233edc87e22b5bf492e546b94675bc247f4
--- /dev/null
+++ b/node_modules/is-set/test/index.js
@@ -0,0 +1,59 @@
+'use strict';
+
+var test = require('tape');
+var debug = require('object-inspect');
+var forEach = require('for-each');
+
+var isSet = require('..');
+
+test('non-collections', function (t) {
+ forEach([
+ null,
+ undefined,
+ true,
+ false,
+ 42,
+ 0,
+ -0,
+ NaN,
+ Infinity,
+ '',
+ 'foo',
+ /a/g,
+ [],
+ {},
+ function () {}
+ ], function (nonCollection) {
+ t.equal(isSet(nonCollection), false, debug(nonCollection) + ' is not a Set');
+ });
+
+ t.end();
+});
+
+test('Maps', { skip: typeof Map !== 'function' }, function (t) {
+ var m = new Map();
+ t.equal(isSet(m), false, debug(m) + ' is not a Set');
+
+ t.end();
+});
+
+test('Sets', { skip: typeof Set !== 'function' }, function (t) {
+ var s = new Set();
+ t.equal(isSet(s), true, debug(s) + ' is a Set');
+
+ t.end();
+});
+
+test('WeakMaps', { skip: typeof WeakMap !== 'function' }, function (t) {
+ var wm = new WeakMap();
+ t.equal(isSet(wm), false, debug(wm) + ' is not a Set');
+
+ t.end();
+});
+
+test('WeakSets', { skip: typeof WeakSet !== 'function' }, function (t) {
+ var ws = new WeakSet();
+ t.equal(isSet(ws), false, debug(ws) + ' is not a Set');
+
+ t.end();
+});
diff --git a/node_modules/is-set/tsconfig.json b/node_modules/is-set/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..2002ce5a53532769b9b5bc561dac11518c384d13
--- /dev/null
+++ b/node_modules/is-set/tsconfig.json
@@ -0,0 +1,49 @@
+{
+ "compilerOptions": {
+ /* Visit https://aka.ms/tsconfig to read more about this file */
+
+ /* Projects */
+
+ /* Language and Environment */
+ "target": "ESNext", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
+ // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
+ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
+ "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
+ // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
+
+ /* Modules */
+ "module": "commonjs", /* Specify what module code is generated. */
+ // "rootDir": "./", /* Specify the root folder within your source files. */
+ // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */
+ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
+ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
+ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
+ "typeRoots": ["types"], /* Specify multiple folders that act like './node_modules/@types'. */
+ "resolveJsonModule": true, /* Enable importing .json files. */
+ // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */
+
+ /* JavaScript Support */
+ "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
+ "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
+ "maxNodeModuleJsDepth": 0, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
+
+ /* Emit */
+ "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
+ "declarationMap": true, /* Create sourcemaps for d.ts files. */
+ "noEmit": true, /* Disable emitting files from a compilation. */
+
+ /* Interop Constraints */
+ "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
+ "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
+ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
+
+ /* Type Checking */
+ "strict": true, /* Enable all strict type-checking options. */
+
+ /* Completeness */
+ //"skipLibCheck": true /* Skip type checking all .d.ts files. */
+ },
+ "exclude": [
+ "coverage"
+ ]
+}
diff --git a/node_modules/is-shared-array-buffer/.eslintrc b/node_modules/is-shared-array-buffer/.eslintrc
new file mode 100644
index 0000000000000000000000000000000000000000..3b5d9e90ec405f85dd7f9066656efccc51193697
--- /dev/null
+++ b/node_modules/is-shared-array-buffer/.eslintrc
@@ -0,0 +1,5 @@
+{
+ "root": true,
+
+ "extends": "@ljharb",
+}
diff --git a/node_modules/is-shared-array-buffer/.github/FUNDING.yml b/node_modules/is-shared-array-buffer/.github/FUNDING.yml
new file mode 100644
index 0000000000000000000000000000000000000000..61db3c4f9ccdd09f662df4f3d49fce9e8d193b48
--- /dev/null
+++ b/node_modules/is-shared-array-buffer/.github/FUNDING.yml
@@ -0,0 +1,12 @@
+# These are supported funding model platforms
+
+github: [ljharb]
+patreon: # Replace with a single Patreon username
+open_collective: # Replace with a single Open Collective username
+ko_fi: # Replace with a single Ko-fi username
+tidelift: npm/is-shared-array-buffer
+community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
+liberapay: # Replace with a single Liberapay username
+issuehunt: # Replace with a single IssueHunt username
+otechie: # Replace with a single Otechie username
+custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/node_modules/is-shared-array-buffer/.nycrc b/node_modules/is-shared-array-buffer/.nycrc
new file mode 100644
index 0000000000000000000000000000000000000000..bdd626ce91477abbdd489b79988baebadbd3c897
--- /dev/null
+++ b/node_modules/is-shared-array-buffer/.nycrc
@@ -0,0 +1,9 @@
+{
+ "all": true,
+ "check-coverage": false,
+ "reporter": ["text-summary", "text", "html", "json"],
+ "exclude": [
+ "coverage",
+ "test"
+ ]
+}
diff --git a/node_modules/is-shared-array-buffer/CHANGELOG.md b/node_modules/is-shared-array-buffer/CHANGELOG.md
new file mode 100644
index 0000000000000000000000000000000000000000..824ea14706be852822cae9b8f029096e325178b2
--- /dev/null
+++ b/node_modules/is-shared-array-buffer/CHANGELOG.md
@@ -0,0 +1,75 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [v1.0.4](https://github.com/inspect-js/is-shared-array-buffer/compare/v1.0.3...v1.0.4) - 2024-12-18
+
+### Commits
+
+- [types] use shared config [`2966419`](https://github.com/inspect-js/is-shared-array-buffer/commit/2966419ac786ee171a38b80e77b21becc59fd7be)
+- [actions] split out node 10-20, and 20+ [`9961138`](https://github.com/inspect-js/is-shared-array-buffer/commit/9961138844e05cf66846597410110aa92dfbf5cb)
+- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/eslint-config`, `@ljharb/tsconfig`, `@types/node`, `@types/object-inspect`, `@types/tape auto-changelog`, `es-value-fixtures`, `object-inspect`, `tape` [`a808a5d`](https://github.com/inspect-js/is-shared-array-buffer/commit/a808a5d53445f9d498d6d445b728fde63eac3fdb)
+- [Refactor] use `call-bound` directly [`5235143`](https://github.com/inspect-js/is-shared-array-buffer/commit/5235143ef80f1c2e5f5168fd445db386a3b82224)
+- [Tests] replace `aud` with `npm audit` [`954a0c7`](https://github.com/inspect-js/is-shared-array-buffer/commit/954a0c7c4922f8c034b7d7258b1f28337dc59746)
+- [Tests] use `@arethetypeswrong/cli` [`0ba297a`](https://github.com/inspect-js/is-shared-array-buffer/commit/0ba297a7b243380179d982761cd96a04aa33e108)
+- [Deps] update `call-bind` [`d5c5bab`](https://github.com/inspect-js/is-shared-array-buffer/commit/d5c5babb76e502c00d8982e6c551dddd648f2bcd)
+- [Dev Deps] update `@types/node` [`705f5c7`](https://github.com/inspect-js/is-shared-array-buffer/commit/705f5c7dd5605fb4ac09fcb1041b3336f245bfb4)
+- [Dev Deps] add missing peer dep [`4123434`](https://github.com/inspect-js/is-shared-array-buffer/commit/412343426cc6a264a5d7dcbfa673b4ca4248291d)
+
+## [v1.0.3](https://github.com/inspect-js/is-shared-array-buffer/compare/v1.0.2...v1.0.3) - 2024-02-20
+
+### Commits
+
+- [meta] use `npmignore` to autogenerate an npmignore file [`c4131f5`](https://github.com/inspect-js/is-shared-array-buffer/commit/c4131f568b1828c1b5d068871332712f475e6c96)
+- add types [`41cb419`](https://github.com/inspect-js/is-shared-array-buffer/commit/41cb41918c2cf423938c767ffc67fd352130f6d1)
+- [actions] skip ls check on node < 10; remove redundant finisher [`2655b01`](https://github.com/inspect-js/is-shared-array-buffer/commit/2655b0142c06220a2f7912dc10caab31a465e9bc)
+- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `available-typed-arrays`, `npmignore`, `object-inspect`, `tape` [`5917f9a`](https://github.com/inspect-js/is-shared-array-buffer/commit/5917f9ac45800df43d53fb77b1506c6d08e58370)
+- [Tests] add tests that TypedArrays are not SABs [`823dd7a`](https://github.com/inspect-js/is-shared-array-buffer/commit/823dd7a0c933efa3abdb2e9ae5c903fe15d6b2fe)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `es-value-fixtures`, `object-inspect`, `tape` [`6701ad4`](https://github.com/inspect-js/is-shared-array-buffer/commit/6701ad425da15c6557d01744bfe68eaf56fd9ab3)
+- [actions] update rebase action to use reusable workflow [`b5119f0`](https://github.com/inspect-js/is-shared-array-buffer/commit/b5119f05ececf1f0f516a38d7f444e3a7174bd43)
+- [Dev Deps] update `@ljharb/eslint-config`, `aud` [`38a6d72`](https://github.com/inspect-js/is-shared-array-buffer/commit/38a6d721588e6e4db83fd24e63b8a19fd4398123)
+- [meta] add missing `engines.node` [`aac97e1`](https://github.com/inspect-js/is-shared-array-buffer/commit/aac97e1839f671dbba07941c6d7c4f153918548f)
+- [readme] remove dead badges [`07c452d`](https://github.com/inspect-js/is-shared-array-buffer/commit/07c452daa96c1cfe49a428b11da692facb72eb08)
+- [Deps] update `call-bind` [`b8576fe`](https://github.com/inspect-js/is-shared-array-buffer/commit/b8576feb56508f3bf43905f5d23f7178c9e1af39)
+- [meta] add `sideEffects` flag [`3e6730e`](https://github.com/inspect-js/is-shared-array-buffer/commit/3e6730e0ee3a47cb6d7c2ee8bc34bd61dd8f2455)
+
+## [v1.0.2](https://github.com/inspect-js/is-shared-array-buffer/compare/v1.0.1...v1.0.2) - 2022-04-01
+
+### Commits
+
+- [actions] reuse common workflows [`48d01e6`](https://github.com/inspect-js/is-shared-array-buffer/commit/48d01e690f76c92f5c9072fbcb9b6215402db8a7)
+- [actions] use `node/install` instead of `node/run`; use `codecov` action [`7b0e12a`](https://github.com/inspect-js/is-shared-array-buffer/commit/7b0e12a4e8f5db8eac586be68c879119a4a12e7a)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `object-inspect`, `safe-publish-latest`, `tape` [`8d57a8e`](https://github.com/inspect-js/is-shared-array-buffer/commit/8d57a8e1d9ce093f04f83e196ca7c80a02617939)
+- [readme] update URLs [`dca4d27`](https://github.com/inspect-js/is-shared-array-buffer/commit/dca4d27d35352309da5abb4feb584158004008cf)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `object-inspect`, `tape` [`2a7bb99`](https://github.com/inspect-js/is-shared-array-buffer/commit/2a7bb990610d7f6c058bdae7f21c49cc7276848f)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `auto-changelog`, `object-inspect`, `safe-publish-latest`, `tape` [`389c6db`](https://github.com/inspect-js/is-shared-array-buffer/commit/389c6db4311a85a84fd4cb75646f26023b0c1685)
+- [actions] update codecov uploader [`b9661f9`](https://github.com/inspect-js/is-shared-array-buffer/commit/b9661f9ac2e1e002372b9b1e136faca837a6647f)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `object-inspect` [`f99cd48`](https://github.com/inspect-js/is-shared-array-buffer/commit/f99cd4827e23bc893ed711cbffe28f3e51a4d401)
+- [readme] add actions and codecov badges [`9515ed2`](https://github.com/inspect-js/is-shared-array-buffer/commit/9515ed2184a3ed1ce913b92b5092884dad5ac794)
+- [Fix] add missing `call-bind` dependency [`cff5358`](https://github.com/inspect-js/is-shared-array-buffer/commit/cff53582740f9f053ec67e1acbf2bafc83bdb7b5)
+- [meta] add `safe-publish-latest`; use `prepublishOnly` script for npm 7+ [`ba0b719`](https://github.com/inspect-js/is-shared-array-buffer/commit/ba0b7190a42d4290d31a5fce215e874da573dd77)
+
+## [v1.0.1](https://github.com/inspect-js/is-shared-array-buffer/compare/v1.0.0...v1.0.1) - 2021-03-04
+
+### Commits
+
+- [readme] fix repo URLs [`37c38f3`](https://github.com/inspect-js/is-shared-array-buffer/commit/37c38f347392da177197dd2fd518b61240a56203)
+
+## v1.0.0 - 2021-03-04
+
+### Commits
+
+- [Tests] add tests [`9c7b806`](https://github.com/inspect-js/is-shared-array-buffer/commit/9c7b806ab1528814308a7420f8198644f55c916f)
+- Initial commit [`4e65c5e`](https://github.com/inspect-js/is-shared-array-buffer/commit/4e65c5ecdaa255162bc6507de4ff98cea2472e3b)
+- [meta] do not publish github action workflow files [`ac3693d`](https://github.com/inspect-js/is-shared-array-buffer/commit/ac3693db8ec26db5444ef4b46aa38a81e8841d30)
+- readme [`7a984d0`](https://github.com/inspect-js/is-shared-array-buffer/commit/7a984d0db73b77943f6731098134e3351a36793b)
+- npm init [`a586c99`](https://github.com/inspect-js/is-shared-array-buffer/commit/a586c99316f3c8ae4fd5125621ea933e97a1bf1b)
+- [actions] add automatic rebasing / merge commit blocking [`184fe62`](https://github.com/inspect-js/is-shared-array-buffer/commit/184fe622680d523e89ac322fa1a52dbba46a8fc0)
+- Implementation [`207e26d`](https://github.com/inspect-js/is-shared-array-buffer/commit/207e26d1128930f28384cb213b38d69fd52bbd7c)
+- [meta] create `FUNDING.yml`; add "funding" field [`3cad3fc`](https://github.com/inspect-js/is-shared-array-buffer/commit/3cad3fc9509f91fbc71e84565529f53a94d538d4)
+- [meta] add auto-changelog [`31f1f2c`](https://github.com/inspect-js/is-shared-array-buffer/commit/31f1f2cbcd616d6c09089d62198d5cc775053324)
+- [Tests] add `npm run lint` [`2e5146e`](https://github.com/inspect-js/is-shared-array-buffer/commit/2e5146e18f44533382a781fa09a50d4f47caa0e5)
+- Only apps should have lockfiles [`7b2adfa`](https://github.com/inspect-js/is-shared-array-buffer/commit/7b2adfad6dcd95271ab6ba34658a9a1a21dbeacf)
diff --git a/node_modules/is-shared-array-buffer/LICENSE b/node_modules/is-shared-array-buffer/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..7948bc02a7937478ae009ff3796e76b25bdfbb08
--- /dev/null
+++ b/node_modules/is-shared-array-buffer/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2021 Inspect JS
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/is-shared-array-buffer/README.md b/node_modules/is-shared-array-buffer/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..05e780f26c13adbc13e7216256c3b607e1d21406
--- /dev/null
+++ b/node_modules/is-shared-array-buffer/README.md
@@ -0,0 +1,56 @@
+# is-shared-array-buffer [![Version Badge][npm-version-svg]][package-url]
+
+[![github actions][actions-image]][actions-url]
+[![coverage][codecov-image]][codecov-url]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][npm-badge-png]][package-url]
+
+Is this value a JS SharedArrayBuffer? This module works cross-realm/iframe, does not depend on `instanceof` or mutable properties, and despite ES6 Symbol.toStringTag.
+
+## Example
+
+```js
+var assert = require('assert');
+var isSharedArrayBuffer = require('is-shared-array-buffer');
+
+assert(!isSharedArrayBuffer(function () {}));
+assert(!isSharedArrayBuffer(null));
+assert(!isSharedArrayBuffer(function* () { yield 42; return Infinity; });
+assert(!isSharedArrayBuffer(Symbol('foo')));
+assert(!isSharedArrayBuffer(1n));
+assert(!isSharedArrayBuffer(Object(1n)));
+
+assert(!isSharedArrayBuffer(new Set()));
+assert(!isSharedArrayBuffer(new WeakSet()));
+assert(!isSharedArrayBuffer(new Map()));
+assert(!isSharedArrayBuffer(new WeakMap()));
+assert(!isSharedArrayBuffer(new WeakRef({})));
+assert(!isSharedArrayBuffer(new FinalizationRegistry(() => {})));
+assert(!isSharedArrayBuffer(new ArrayBuffer()));
+
+assert(isSharedArrayBuffer(new SharedArrayBuffer()));
+
+class MySharedArrayBuffer extends SharedArrayBuffer {}
+assert(isSharedArrayBuffer(new MySharedArrayBuffer()));
+```
+
+## Tests
+Simply clone the repo, `npm install`, and run `npm test`
+
+[package-url]: https://npmjs.org/package/is-shared-array-buffer
+[npm-version-svg]: https://versionbadg.es/inspect-js/is-shared-array-buffer.svg
+[deps-svg]: https://david-dm.org/inspect-js/is-shared-array-buffer.svg
+[deps-url]: https://david-dm.org/inspect-js/is-shared-array-buffer
+[dev-deps-svg]: https://david-dm.org/inspect-js/is-shared-array-buffer/dev-status.svg
+[dev-deps-url]: https://david-dm.org/inspect-js/is-shared-array-buffer#info=devDependencies
+[npm-badge-png]: https://nodei.co/npm/is-shared-array-buffer.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/is-shared-array-buffer.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/is-shared-array-buffer.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=is-shared-array-buffer
+[codecov-image]: https://codecov.io/gh/inspect-js/is-shared-array-buffer/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/inspect-js/is-shared-array-buffer/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-shared-array-buffer
+[actions-url]: https://github.com/inspect-js/is-shared-array-buffer/actions
diff --git a/node_modules/is-shared-array-buffer/index.d.ts b/node_modules/is-shared-array-buffer/index.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..688214595e72a581bab6383dad863b3558bc06aa
--- /dev/null
+++ b/node_modules/is-shared-array-buffer/index.d.ts
@@ -0,0 +1,3 @@
+declare function isSharedArrayBuffer(obj: unknown): obj is SharedArrayBuffer;
+
+export = isSharedArrayBuffer;
\ No newline at end of file
diff --git a/node_modules/is-shared-array-buffer/index.js b/node_modules/is-shared-array-buffer/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..dd0f199d1ecf63557a531046a1feab2deda19808
--- /dev/null
+++ b/node_modules/is-shared-array-buffer/index.js
@@ -0,0 +1,24 @@
+'use strict';
+
+var callBound = require('call-bound');
+
+/** @type {undefined | ((thisArg: SharedArrayBuffer) => number)} */
+var $byteLength = callBound('SharedArrayBuffer.prototype.byteLength', true);
+
+/** @type {import('.')} */
+module.exports = $byteLength
+ ? function isSharedArrayBuffer(obj) {
+ if (!obj || typeof obj !== 'object') {
+ return false;
+ }
+ try {
+ // @ts-expect-error TS can't figure out this closed-over variable is non-nullable, and it's fine that `obj` might not be a SAB
+ $byteLength(obj);
+ return true;
+ } catch (e) {
+ return false;
+ }
+ }
+ : function isSharedArrayBuffer(_obj) { // eslint-disable-line no-unused-vars
+ return false;
+ };
diff --git a/node_modules/is-shared-array-buffer/package.json b/node_modules/is-shared-array-buffer/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..e01ec0bb963ad15135bbdf8dc7338e508c820f2c
--- /dev/null
+++ b/node_modules/is-shared-array-buffer/package.json
@@ -0,0 +1,92 @@
+{
+ "name": "is-shared-array-buffer",
+ "version": "1.0.4",
+ "author": {
+ "name": "Jordan Harband",
+ "email": "ljharb@gmail.com",
+ "url": "http://ljharb.codes"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ },
+ "description": "Is this value a JS SharedArrayBuffer?",
+ "license": "MIT",
+ "main": "index.js",
+ "exports": {
+ ".": "./index.js",
+ "./package.json": "./package.json"
+ },
+ "sideEffects": false,
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=autogenerated",
+ "prepublishOnly": "safe-publish-latest",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "lint": "eslint --ext=.js,.mjs .",
+ "postlint": "tsc -p . && attw -P",
+ "pretest": "npm run lint",
+ "tests-only": "nyc tape 'test/**/*.js'",
+ "test": "npm run tests-only --",
+ "posttest": "npx npm@'>= 10.2' audit --production",
+ "version": "auto-changelog && git add CHANGELOG.md",
+ "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/inspect-js/is-shared-array-buffer.git"
+ },
+ "keywords": [
+ "javascript",
+ "ecmascript",
+ "is",
+ "sharedarraybuffer",
+ "shared",
+ "array",
+ "buffer"
+ ],
+ "bugs": {
+ "url": "https://github.com/inspect-js/is-shared-array-buffer/issues"
+ },
+ "homepage": "https://github.com/inspect-js/is-shared-array-buffer#readme",
+ "devDependencies": {
+ "@arethetypeswrong/cli": "^0.17.1",
+ "@ljharb/eslint-config": "^21.1.1",
+ "@ljharb/tsconfig": "^0.2.2",
+ "@types/es-value-fixtures": "^1.4.4",
+ "@types/for-each": "^0.3.3",
+ "@types/node": "^20.17.10",
+ "@types/object-inspect": "^1.13.0",
+ "@types/tape": "^5.7.0",
+ "auto-changelog": "^2.5.0",
+ "available-typed-arrays": "^1.0.7",
+ "encoding": "^0.1.13",
+ "es-value-fixtures": "^1.5.0",
+ "eslint": "=8.8.0",
+ "for-each": "^0.3.3",
+ "in-publish": "^2.0.1",
+ "npmignore": "^0.3.1",
+ "nyc": "^10.3.2",
+ "object-inspect": "^1.13.3",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.9.0",
+ "typescript": "next"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "dependencies": {
+ "call-bound": "^1.0.3"
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows"
+ ]
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+}
diff --git a/node_modules/is-shared-array-buffer/test/index.js b/node_modules/is-shared-array-buffer/test/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..8fd9227920205811c79e168d4d7ece6057cb4933
--- /dev/null
+++ b/node_modules/is-shared-array-buffer/test/index.js
@@ -0,0 +1,39 @@
+'use strict';
+
+var test = require('tape');
+var inspect = require('object-inspect');
+var forEach = require('for-each');
+var v = require('es-value-fixtures');
+var availableTypedArrays = require('available-typed-arrays')();
+
+var isSharedArrayBuffer = require('..');
+
+test('isSharedArrayBuffer', function (t) {
+ t.equal(typeof isSharedArrayBuffer, 'function', 'is a function');
+
+ // @ts-expect-error TS sucks with concat
+ var nonSABs = [].concat(v.primitives, v.objects);
+ forEach(nonSABs, function (nonSAB) {
+ t.equal(isSharedArrayBuffer(nonSAB), false, inspect(nonSAB) + ' is not a SharedArrayBuffer');
+ });
+
+ t.test('actual SharedArrayBuffer instances', { skip: typeof SharedArrayBuffer === 'undefined' }, function (st) {
+ var sab = new SharedArrayBuffer(0);
+
+ st.equal(isSharedArrayBuffer(sab), true, inspect(sab) + ' is a SharedArrayBuffer');
+
+ st.end();
+ });
+
+ t.test('Typed Arrays', { skip: availableTypedArrays.length === 0 }, function (st) {
+ forEach(availableTypedArrays, function (TypedArray) {
+ var ta = new global[TypedArray](0);
+ st.equal(isSharedArrayBuffer(ta.buffer), false, inspect(ta.buffer) + ', the TA\'s buffer, is not a SharedArrayBuffer');
+ st.equal(isSharedArrayBuffer(ta), false, inspect(ta) + ' is not a SharedArrayBuffer');
+ });
+
+ st.end();
+ });
+
+ t.end();
+});
diff --git a/node_modules/is-shared-array-buffer/tsconfig.json b/node_modules/is-shared-array-buffer/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..dabbe230d74beb5962f67a6da7da18c707441ad5
--- /dev/null
+++ b/node_modules/is-shared-array-buffer/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "@ljharb/tsconfig",
+ "compilerOptions": {
+ "target": "ES2021",
+ },
+ "exclude": [
+ "coverage",
+ ],
+}
diff --git a/node_modules/is-string/.eslintrc b/node_modules/is-string/.eslintrc
new file mode 100644
index 0000000000000000000000000000000000000000..a6dec9472b0c0e0b7f5e1ff433a1e63ed7ea7745
--- /dev/null
+++ b/node_modules/is-string/.eslintrc
@@ -0,0 +1,9 @@
+{
+ "root": true,
+
+ "extends": "@ljharb",
+
+ "rules": {
+ "func-name-matching": 0,
+ },
+}
diff --git a/node_modules/is-string/.github/FUNDING.yml b/node_modules/is-string/.github/FUNDING.yml
new file mode 100644
index 0000000000000000000000000000000000000000..519746be3f0d077005c7bc681e472fb8da2bb310
--- /dev/null
+++ b/node_modules/is-string/.github/FUNDING.yml
@@ -0,0 +1,12 @@
+# These are supported funding model platforms
+
+github: [ljharb]
+patreon: # Replace with a single Patreon username
+open_collective: # Replace with a single Open Collective username
+ko_fi: # Replace with a single Ko-fi username
+tidelift: npm/is-string
+community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
+liberapay: # Replace with a single Liberapay username
+issuehunt: # Replace with a single IssueHunt username
+otechie: # Replace with a single Otechie username
+custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/node_modules/is-string/.nycrc b/node_modules/is-string/.nycrc
new file mode 100644
index 0000000000000000000000000000000000000000..a69aa2d8273d8c598f8e3aa5c8d779e28d63862f
--- /dev/null
+++ b/node_modules/is-string/.nycrc
@@ -0,0 +1,10 @@
+{
+ "all": true,
+ "check-coverage": false,
+ "reporter": ["text-summary", "text", "html", "json"],
+ "exclude": [
+ "coverage",
+ "test",
+ "test-corejs.js"
+ ]
+}
diff --git a/node_modules/is-string/CHANGELOG.md b/node_modules/is-string/CHANGELOG.md
new file mode 100644
index 0000000000000000000000000000000000000000..4bffc42aee432fbb8d2efe942656fe72d3bce4bd
--- /dev/null
+++ b/node_modules/is-string/CHANGELOG.md
@@ -0,0 +1,146 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
+
+## [v1.1.1](https://github.com/inspect-js/is-string/compare/v1.1.0...v1.1.1) - 2024-12-15
+
+### Commits
+
+- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/tsconfig`, `@types/tape` [`c1f7ef7`](https://github.com/inspect-js/is-string/commit/c1f7ef7948b012f769ee3a59952f34ba75a5f5c0)
+- [Refactor] use `call-bound` directly [`ba8a78f`](https://github.com/inspect-js/is-string/commit/ba8a78fc1c1fe9b4223c9a8721579026d5ddbce1)
+- [Deps] update `call-bind` [`93c352f`](https://github.com/inspect-js/is-string/commit/93c352fd578379c03cd068aea7590de60068a44e)
+
+## [v1.1.0](https://github.com/inspect-js/is-string/compare/v1.0.7...v1.1.0) - 2024-12-01
+
+### Commits
+
+- [actions] reuse common workflows [`12aa75b`](https://github.com/inspect-js/is-string/commit/12aa75b96e2d3f5cd0da139073afba41e6250951)
+- [meta] use `npmignore` to autogenerate an npmignore file [`6401572`](https://github.com/inspect-js/is-string/commit/64015720bd63e517d84752eb750bc78178bf707c)
+- [actions] split out node 10-20, and 20+ [`223540c`](https://github.com/inspect-js/is-string/commit/223540c6fd5ec982b866bb1b8b3fac37ef5913de)
+- [New] add types [`7e83d67`](https://github.com/inspect-js/is-string/commit/7e83d67ae35a65b4d59d59760c7af9e68aafb4a4)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `core-js`, `safe-publish-latest`, `tape` [`febd26e`](https://github.com/inspect-js/is-string/commit/febd26e9211519506d36cd236eca293c7773ae99)
+- [readme] add github actions/codecov badges; update URLs [`f6bf065`](https://github.com/inspect-js/is-string/commit/f6bf0657c3b4882844af6b93ecc49872ca15f503)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `core-js`, `tape` [`8afc37a`](https://github.com/inspect-js/is-string/commit/8afc37ae53d7a1888a28e298eb986a9f534fb46e)
+- [Robustness] use `call-bind` [`ac86dd7`](https://github.com/inspect-js/is-string/commit/ac86dd7fcf68b90772d1c9f8dd931e0442908f4a)
+- [actions] update rebase action to use reusable workflow [`77058c8`](https://github.com/inspect-js/is-string/commit/77058c8c9e70dc77a5331dd654004e1f8500e985)
+- [actions] update codecov uploader [`4312be5`](https://github.com/inspect-js/is-string/commit/4312be511df011bb3f3bcc9a46e57755c18465ea)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `core-js`, `tape` [`98c3779`](https://github.com/inspect-js/is-string/commit/98c3779e29220c495b216b6d7cb0813dbe146b59)
+- [Dev Deps] update `@ljharb/eslint-config`, `auto-changelog`, `core-js`, `npmignore`, `tape` [`7d8e0e5`](https://github.com/inspect-js/is-string/commit/7d8e0e5e8a9631ffef4def01c7fe4029147cbf89)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `core-js`, `safe-publish-latest`, `tape` [`3284ad1`](https://github.com/inspect-js/is-string/commit/3284ad1a9aeff3eed23d177501c0920e9c5841e3)
+- [Tests] replace `aud` with `npm audit` [`8cb7ea7`](https://github.com/inspect-js/is-string/commit/8cb7ea7a493d51435bb093a55acbd32a206e7c1a)
+- [Refactor] skip expensive check, for null [`20fde50`](https://github.com/inspect-js/is-string/commit/20fde5092adddc024562f391a96db0b61478a56d)
+- [Deps] update `has-tostringtag` [`b67a78d`](https://github.com/inspect-js/is-string/commit/b67a78d4b64d6337d0b6f07ae0af6b04dec327d4)
+- [meta] fix repo URL [`1a2ee6b`](https://github.com/inspect-js/is-string/commit/1a2ee6b4556ebd56bdc1288cf34b942ee3b60458)
+- [meta] better `eccheck` command [`6913c75`](https://github.com/inspect-js/is-string/commit/6913c75f6e7469e421880a1593c440783aa50ac6)
+- [Dev Deps] add missing peer dep [`8ac8551`](https://github.com/inspect-js/is-string/commit/8ac8551d76bf8b68a94ad3504fcbf8f99d16e756)
+
+## [v1.0.7](https://github.com/inspect-js/is-string/compare/v1.0.6...v1.0.7) - 2021-08-05
+
+### Commits
+
+- [Refactor] use `has-tostringtag` to behave correctly in the presence of symbol shams [`d973ffd`](https://github.com/inspect-js/is-string/commit/d973ffd2268e10c0e2cd4f0c57ecf8ce0a8d8578)
+- [Dev Deps] update `auto-changelog`, `core-js`, `eslint`, `tape` [`4bfaabf`](https://github.com/inspect-js/is-string/commit/4bfaabf877e874ca21d2c44be26f13add8ee2761)
+
+## [v1.0.6](https://github.com/inspect-js/is-string/compare/v1.0.5...v1.0.6) - 2021-05-07
+
+### Commits
+
+- [Tests] migrate tests to Github Actions [`c7790c8`](https://github.com/inspect-js/is-string/commit/c7790c89e5077251fe7ca32ac29eeee02f1b2751)
+- [actions] use `node/install` instead of `node/run`; use `codecov` action [`1e52bbd`](https://github.com/inspect-js/is-string/commit/1e52bbd19b1608f6932c0335d9981824584c3186)
+- [Fix] do not use `Object.prototype.toString` when `Symbol.toStringTag` is shammed [`83337eb`](https://github.com/inspect-js/is-string/commit/83337ebf55308b7bb9c1befae420760e0f8d8016)
+- [meta] do not publish github action workflow files [`b25aea2`](https://github.com/inspect-js/is-string/commit/b25aea2e8a53ed9e9090cf96481590cdc00a0957)
+- [readme] update badges [`759ccd9`](https://github.com/inspect-js/is-string/commit/759ccd94de4a2000231a179f91af6b5c12c11e00)
+- [Tests] run `nyc` on all tests [`dc02f70`](https://github.com/inspect-js/is-string/commit/dc02f7080c355f0d24368c1622db09f7cc30cdbd)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `auto-changelog`, `tape`; add `aud` [`a0f76fa`](https://github.com/inspect-js/is-string/commit/a0f76fa1990bb580948f9e2daa89bdcda3fae7f0)
+- [actions] add "Allow Edits" workflow [`9ec3902`](https://github.com/inspect-js/is-string/commit/9ec390295b4faef7744d2b579c1050be66168cb7)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`57fbe21`](https://github.com/inspect-js/is-string/commit/57fbe215da83a3b601855a9c6543ad1a96de5702)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`191e55f`](https://github.com/inspect-js/is-string/commit/191e55ff1fa782654ffcce2df922e23345b56690)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog` [`1ea2b81`](https://github.com/inspect-js/is-string/commit/1ea2b81e866775a7890e75c44c742204124aa354)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`105d1b9`](https://github.com/inspect-js/is-string/commit/105d1b9851e366ef23c2a27d4064e0d36da25939)
+- [Dev Deps] update `auto-changelog`, `tape`; add `aud` [`114cfad`](https://github.com/inspect-js/is-string/commit/114cfad854d8860421f847cd99a3bdb8ef1353dc)
+- [meta] use `prepublishOnly` script for npm 7+ [`fc38f26`](https://github.com/inspect-js/is-string/commit/fc38f26adb486f50880c5771d145ab2bffb6247a)
+- [meta] gitignore coverage output [`3419127`](https://github.com/inspect-js/is-string/commit/34191278f1fa09ba4da801a6fd7a32e31050e759)
+- [actions] update rebase action to use checkout v2 [`334eca0`](https://github.com/inspect-js/is-string/commit/334eca02d40f4cf7dc15a8e7d5ff06852028abb5)
+- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`7a332e9`](https://github.com/inspect-js/is-string/commit/7a332e963f1ab717fafa671e0fa8a1b20c53d861)
+- [meta] remove explicit audit level config [`04630b1`](https://github.com/inspect-js/is-string/commit/04630b1b535084322ddeae8efb79a8810d7cf325)
+
+## [v1.0.5](https://github.com/inspect-js/is-string/compare/v1.0.4...v1.0.5) - 2019-12-18
+
+### Commits
+
+- [Tests] use shared travis-ci configs [`4121d6b`](https://github.com/inspect-js/is-string/commit/4121d6b168ae1d54a81791ee6877f9813cab6253)
+- [Tests] up to `node` `v12.4`, `v11.15`, `v10.15`, `v9.11`, `v8.15`, `v7.10`, `v6.17`, `v5.12`, `v4.9`; use `nvm install-latest-npm` [`e7a3e89`](https://github.com/inspect-js/is-string/commit/e7a3e89ccb9638d73f45dbcb2a42e509bd3153c4)
+- Update `eslint`, `tape`, `semver`; use my personal shared `eslint` config [`6c380a7`](https://github.com/inspect-js/is-string/commit/6c380a70011714370e754fa0df95f56cdcaa3e60)
+- [Tests] remove `jscs` [`3d49592`](https://github.com/inspect-js/is-string/commit/3d49592b9880fcb1a23b67286445281131a553e3)
+- Update `is`, `tape`, `covert`, `jscs`, `editorconfig-tools`, `eslint`, `nsp`, `semver`. [`cc6983d`](https://github.com/inspect-js/is-string/commit/cc6983d06bc98f4ae9b7c9439d5d73c7318d8acd)
+- [meta] add `auto-changelog` [`b857897`](https://github.com/inspect-js/is-string/commit/b85789723ce3a7064536598e0fcdd495257c6134)
+- [meta] remove unused Makefile and associated utilities [`3f0f51c`](https://github.com/inspect-js/is-string/commit/3f0f51cbae1f97dbe1466eee88d105b3df0d2f0a)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `is`, `covert`, `tape`, `semver` [`9d4a95e`](https://github.com/inspect-js/is-string/commit/9d4a95e4473fe8195501878525b5af5948aa45c9)
+- Update `eslint` [`e861b4b`](https://github.com/inspect-js/is-string/commit/e861b4bc71f5390670aebdff91119a1f8aeeb88a)
+- Update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`172e2dd`](https://github.com/inspect-js/is-string/commit/172e2dd1a0b9eb042bcb9a80ff5e774a90ff0695)
+- Test on `node` and `io.js` latest. [`fd426cd`](https://github.com/inspect-js/is-string/commit/fd426cd18b22b0d0e1731598125393dcfe0c5704)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest` [`23bdf83`](https://github.com/inspect-js/is-string/commit/23bdf83cf42138eba09f45bd0b040b069f9839d4)
+- [actions] add automatic rebasing / merge commit blocking [`96153c0`](https://github.com/inspect-js/is-string/commit/96153c0d687a7fda2261f4c02add5d0b41e8aed7)
+- [meta] create FUNDING.yml [`66ae246`](https://github.com/inspect-js/is-string/commit/66ae246d6cdaa4ccbc21f7c144b672139b8ccef6)
+- [Dev Deps] update `is`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver` [`817361a`](https://github.com/inspect-js/is-string/commit/817361a9673cd1ec9854b52578a980159f7d8701)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `semver`, `tape` [`fc35d3f`](https://github.com/inspect-js/is-string/commit/fc35d3feb40921bb22e1639903cb7f2fab77814b)
+- [Dev Deps] update `jscs` [`886767e`](https://github.com/inspect-js/is-string/commit/886767e04e5ad59ac0bc926a87233cc8546c8b4f)
+- [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`3410922`](https://github.com/inspect-js/is-string/commit/341092203c11a3b92eee55a7ecb7b8265e8fcecd)
+- [Tests] up to `io.js` `v3.3`, `node` `v4.1` [`4d6c73b`](https://github.com/inspect-js/is-string/commit/4d6c73b507bcd39050ef71e554069f72fc5b222a)
+- Update `nsp`, `eslint` [`b11de49`](https://github.com/inspect-js/is-string/commit/b11de4910beee1ffe1e67fbe25ec6707ca796b27)
+- Update `eslint`, `semver` [`0777977`](https://github.com/inspect-js/is-string/commit/0777977757a85a1db75831d03a14b4b1fde05d7e)
+- Only apps should have lockfiles [`78b49ff`](https://github.com/inspect-js/is-string/commit/78b49ffd04d4cd8c57d9e7b485421fbf3641b41b)
+- [meta] add `funding` field [`81328a6`](https://github.com/inspect-js/is-string/commit/81328a6ef3eee989164127e4c0c82f1da73d3567)
+- [Dev Deps] update `eslint`, `tape` [`fc9a225`](https://github.com/inspect-js/is-string/commit/fc9a225b27935f7c9c2704281d7fddd3614d3cb8)
+- [Tests] use `eclint` instead of `editorconfig-tools` [`59c2c61`](https://github.com/inspect-js/is-string/commit/59c2c610dbd8e8ca1e4aa3fa9c9f93205cab9b07)
+- [Dev Deps] Update `tape`, `eslint` [`a429816`](https://github.com/inspect-js/is-string/commit/a429816688e23c81948b4ae72324c26c27849b7c)
+- Test on `io.js` `v2.2` [`08b476e`](https://github.com/inspect-js/is-string/commit/08b476ed0734a70e3091c04ddd2f173a2df21eb2)
+- Test up to `io.js` `v3.0` [`22637ef`](https://github.com/inspect-js/is-string/commit/22637ef9e0030533df85cf1992fc099a88b1924c)
+- [meta] add `safe-publish-latest` [`20ccb48`](https://github.com/inspect-js/is-string/commit/20ccb48fd85f0245eb893507d00003090da020d0)
+- [Dev Deps] update `tape` [`06b58a0`](https://github.com/inspect-js/is-string/commit/06b58a048c2a820e5611ad2bd9ddfbe893295a57)
+- Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG. [`ea7cf84`](https://github.com/inspect-js/is-string/commit/ea7cf849b952c924d1687a302098251a7b827c80)
+- Test on `io.js` `v2.4` [`66ec3ea`](https://github.com/inspect-js/is-string/commit/66ec3ea390b364583a792799b53857fd186ccc88)
+- Test on `io.js` `v2.3` [`ca6e796`](https://github.com/inspect-js/is-string/commit/ca6e796f16ec433b88962162fde8012f28e18f1e)
+- Fix tests for faked @@toStringTag [`3cce832`](https://github.com/inspect-js/is-string/commit/3cce8329133dfd233987359df151018b3b136be1)
+
+## [v1.0.4](https://github.com/inspect-js/is-string/compare/v1.0.3...v1.0.4) - 2015-01-29
+
+### Commits
+
+- If @@toStringTag is not present, use the old-school Object#toString test. [`30675ec`](https://github.com/inspect-js/is-string/commit/30675ecb5c5cc43873918661a414a1d0f8b77325)
+
+## [v1.0.3](https://github.com/inspect-js/is-string/compare/v1.0.2...v1.0.3) - 2015-01-29
+
+### Commits
+
+- Refactor to aid optimization of non-try/catch code. [`9b2772a`](https://github.com/inspect-js/is-string/commit/9b2772abe09ba8cbaa631322cc226ee906d2db22)
+
+## [v1.0.2](https://github.com/inspect-js/is-string/compare/v1.0.1...v1.0.2) - 2015-01-29
+
+### Commits
+
+- Fix broken package.json [`dc921d3`](https://github.com/inspect-js/is-string/commit/dc921d332b64e4041162f04e4712b0dc687863a5)
+
+## [v1.0.1](https://github.com/inspect-js/is-string/compare/v1.0.0...v1.0.1) - 2015-01-29
+
+### Commits
+
+- Fix eslint config. [`c4e05bd`](https://github.com/inspect-js/is-string/commit/c4e05bd171da6002d432e451fd48912db8b048e0)
+- Add early exits for typeof "string", or typeof not "object". [`82f41d3`](https://github.com/inspect-js/is-string/commit/82f41d36a599bc6a06152792c84c7683e412c513)
+
+## v1.0.0 - 2015-01-29
+
+### Commits
+
+- Dotfiles. [`45bc9dd`](https://github.com/inspect-js/is-string/commit/45bc9dd60201722344986a6c7536be9ea9ccefbf)
+- `make release` [`23707f5`](https://github.com/inspect-js/is-string/commit/23707f5ecfdf00afb0e57c06ac07f7f49cdeb606)
+- package.json [`575ad81`](https://github.com/inspect-js/is-string/commit/575ad811c61b156cfbcc60ff61947183c6ebe6a2)
+- Read me [`3f67c9a`](https://github.com/inspect-js/is-string/commit/3f67c9a0725f811845d38646a19322895cd03981)
+- Initial commit [`2c26a7a`](https://github.com/inspect-js/is-string/commit/2c26a7a2e41dec77be2c59d5847f29a6ab7c0b29)
+- Tests. [`38c987b`](https://github.com/inspect-js/is-string/commit/38c987b8513b0ac03b0897e0fce7de8135d4ee0f)
+- Implementation. [`0471d59`](https://github.com/inspect-js/is-string/commit/0471d59078d7f3f77619913ec21c57c0af27114c)
diff --git a/node_modules/is-string/LICENSE b/node_modules/is-string/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..b43df444e518288ceef6eaa9badd33388191b1d3
--- /dev/null
+++ b/node_modules/is-string/LICENSE
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Jordan Harband
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
diff --git a/node_modules/is-string/README.md b/node_modules/is-string/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..2dbe50474a0ae37b49d4075807a71f33cbbeca29
--- /dev/null
+++ b/node_modules/is-string/README.md
@@ -0,0 +1,56 @@
+# is-string [![Version Badge][npm-version-svg]][package-url]
+
+[![github actions][actions-image]][actions-url]
+[![coverage][codecov-image]][codecov-url]
+[![dependency status][deps-svg]][deps-url]
+[![dev dependency status][dev-deps-svg]][dev-deps-url]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][npm-badge-png]][package-url]
+
+Is this value a JS String object or primitive? This module works cross-realm/iframe, and despite ES6 @@toStringTag.
+
+## Example
+
+```js
+var isString = require('is-string');
+var assert = require('assert');
+
+assert.notOk(isString(undefined));
+assert.notOk(isString(null));
+assert.notOk(isString(false));
+assert.notOk(isString(true));
+assert.notOk(isString(function () {}));
+assert.notOk(isString([]));
+assert.notOk(isString({}));
+assert.notOk(isString(/a/g));
+assert.notOk(isString(new RegExp('a', 'g')));
+assert.notOk(isString(new Date()));
+assert.notOk(isString(42));
+assert.notOk(isString(NaN));
+assert.notOk(isString(Infinity));
+assert.notOk(isString(new Number(42)));
+
+assert.ok(isString('foo'));
+assert.ok(isString(Object('foo')));
+```
+
+## Tests
+Simply clone the repo, `npm install`, and run `npm test`
+
+[package-url]: https://npmjs.org/package/is-string
+[npm-version-svg]: https://versionbadg.es/inspect-js/is-string.svg
+[deps-svg]: https://david-dm.org/inspect-js/is-string.svg
+[deps-url]: https://david-dm.org/inspect-js/is-string
+[dev-deps-svg]: https://david-dm.org/inspect-js/is-string/dev-status.svg
+[dev-deps-url]: https://david-dm.org/inspect-js/is-string#info=devDependencies
+[npm-badge-png]: https://nodei.co/npm/is-string.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/is-string.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/is-string.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=is-string
+[codecov-image]: https://codecov.io/gh/inspect-js/is-string/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/inspect-js/is-string/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-string
+[actions-url]: https://github.com/inspect-js/is-string/actions
diff --git a/node_modules/is-string/index.d.ts b/node_modules/is-string/index.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ef56f4cca2cee3959a8e585f45e59ae861e0fb11
--- /dev/null
+++ b/node_modules/is-string/index.d.ts
@@ -0,0 +1,3 @@
+declare function isString(value: unknown): value is string | String;
+
+export = isString;
\ No newline at end of file
diff --git a/node_modules/is-string/index.js b/node_modules/is-string/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..3a3d0582c8e1be646411e57ae57dff14ac94b6a2
--- /dev/null
+++ b/node_modules/is-string/index.js
@@ -0,0 +1,31 @@
+'use strict';
+
+var callBound = require('call-bound');
+
+/** @type {(receiver: ThisParameterType, ...args: Parameters) => ReturnType} */
+var $strValueOf = callBound('String.prototype.valueOf');
+
+/** @type {import('.')} */
+var tryStringObject = function tryStringObject(value) {
+ try {
+ $strValueOf(value);
+ return true;
+ } catch (e) {
+ return false;
+ }
+};
+/** @type {(receiver: ThisParameterType, ...args: Parameters) => ReturnType} */
+var $toString = callBound('Object.prototype.toString');
+var strClass = '[object String]';
+var hasToStringTag = require('has-tostringtag/shams')();
+
+/** @type {import('.')} */
+module.exports = function isString(value) {
+ if (typeof value === 'string') {
+ return true;
+ }
+ if (!value || typeof value !== 'object') {
+ return false;
+ }
+ return hasToStringTag ? tryStringObject(value) : $toString(value) === strClass;
+};
diff --git a/node_modules/is-string/package.json b/node_modules/is-string/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..d0cf2658ccf7e31c7dc4892fa1c93352bbd312f4
--- /dev/null
+++ b/node_modules/is-string/package.json
@@ -0,0 +1,95 @@
+{
+ "name": "is-string",
+ "version": "1.1.1",
+ "author": "Jordan Harband ",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ },
+ "description": "Is this value a JS String object or primitive? This module works cross-realm/iframe, and despite ES6 @@toStringTag.",
+ "license": "MIT",
+ "main": "index.js",
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=autogenerated",
+ "prepublishOnly": "safe-publish-latest",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "pretest": "npm run lint",
+ "tests-only": "nyc tape 'test/**/*.js'",
+ "test:corejs": "nyc tape test-corejs.js",
+ "test": "npm run tests-only && npm run test:corejs",
+ "posttest": "npx npm@'>=10.2' audit --production",
+ "prelint": "eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git')",
+ "lint": "eslint --ext=js,mjs .",
+ "postlint": "tsc -p . && attw -P",
+ "version": "auto-changelog && git add CHANGELOG.md",
+ "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
+ },
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/inspect-js/is-string.git"
+ },
+ "keywords": [
+ "String",
+ "string",
+ "ES6",
+ "toStringTag",
+ "@@toStringTag",
+ "String object"
+ ],
+ "dependencies": {
+ "call-bound": "^1.0.3",
+ "has-tostringtag": "^1.0.2"
+ },
+ "devDependencies": {
+ "@arethetypeswrong/cli": "^0.17.1",
+ "@ljharb/eslint-config": "^21.1.1",
+ "@ljharb/tsconfig": "^0.2.2",
+ "@types/core-js": "^2.5.8",
+ "@types/tape": "^5.7.0",
+ "auto-changelog": "^2.5.0",
+ "core-js": "^3.39.0",
+ "eclint": "^2.8.1",
+ "encoding": "^0.1.13",
+ "eslint": "=8.8.0",
+ "in-publish": "^2.0.1",
+ "is": "^3.3.0",
+ "npmignore": "^0.3.1",
+ "nyc": "^10.3.2",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.9.0",
+ "typescript": "next"
+ },
+ "testling": {
+ "files": "test/index.js",
+ "browsers": [
+ "iexplore/6.0..latest",
+ "firefox/3.0..6.0",
+ "firefox/15.0..latest",
+ "firefox/nightly",
+ "chrome/4.0..10.0",
+ "chrome/20.0..latest",
+ "chrome/canary",
+ "opera/10.0..latest",
+ "opera/next",
+ "safari/4.0..latest",
+ "ipad/6.0..latest",
+ "iphone/6.0..latest",
+ "android-browser/4.2"
+ ]
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows",
+ "test-corejs.js"
+ ]
+ }
+}
diff --git a/node_modules/is-string/test/index.js b/node_modules/is-string/test/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..e9a203b4e383e4cd29148560f80179266f56508e
--- /dev/null
+++ b/node_modules/is-string/test/index.js
@@ -0,0 +1,41 @@
+'use strict';
+
+var test = require('tape');
+var isString = require('../');
+var hasToStringTag = require('has-tostringtag/shams')();
+
+test('not Strings', function (t) {
+ // @ts-expect-error
+ t.notOk(isString(), 'undefined is not String');
+ t.notOk(isString(null), 'null is not String');
+ t.notOk(isString(false), 'false is not String');
+ t.notOk(isString(true), 'true is not String');
+ t.notOk(isString([]), 'array is not String');
+ t.notOk(isString({}), 'object is not String');
+ t.notOk(isString(function () {}), 'function is not String');
+ t.notOk(isString(/a/g), 'regex literal is not String');
+ t.notOk(isString(new RegExp('a', 'g')), 'regex object is not String');
+ t.notOk(isString(new Date()), 'new Date() is not String');
+ t.notOk(isString(42), 'number is not String');
+ t.notOk(isString(Object(42)), 'number object is not String');
+ t.notOk(isString(NaN), 'NaN is not String');
+ t.notOk(isString(Infinity), 'Infinity is not String');
+ t.end();
+});
+
+test('@@toStringTag', { skip: !hasToStringTag }, function (t) {
+ /** @type {{ toString(): unknown; valueOf(): unknown; [Symbol.toStringTag]?: string; }} */
+ var fakeString = {
+ toString: function () { return '7'; },
+ valueOf: function () { return '42'; }
+ };
+ fakeString[Symbol.toStringTag] = 'String';
+ t.notOk(isString(fakeString), 'fake String with @@toStringTag "String" is not String');
+ t.end();
+});
+
+test('Strings', function (t) {
+ t.ok(isString('foo'), 'string primitive is String');
+ t.ok(isString(Object('foo')), 'string object is String');
+ t.end();
+});
diff --git a/node_modules/is-string/tsconfig.json b/node_modules/is-string/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..6716d81ce28cf3af2a23d2d9237c7a3d53114217
--- /dev/null
+++ b/node_modules/is-string/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "@ljharb/tsconfig",
+ "compilerOptions": {
+ "target": "ES2021",
+ },
+ "exclude": [
+ "coverage"
+ ]
+}
diff --git a/node_modules/is-symbol/.editorconfig b/node_modules/is-symbol/.editorconfig
new file mode 100644
index 0000000000000000000000000000000000000000..eaa214161f5cdb409c32465fd822624c633a6bd8
--- /dev/null
+++ b/node_modules/is-symbol/.editorconfig
@@ -0,0 +1,13 @@
+root = true
+
+[*]
+indent_style = tab;
+insert_final_newline = true;
+quote_type = auto;
+space_after_anonymous_functions = true;
+space_after_control_statements = true;
+spaces_around_operators = true;
+trim_trailing_whitespace = true;
+spaces_in_brackets = false;
+end_of_line = lf;
+
diff --git a/node_modules/is-symbol/.eslintrc b/node_modules/is-symbol/.eslintrc
new file mode 100644
index 0000000000000000000000000000000000000000..046dd071413e73d54b0fc23a48536fc7960e3c82
--- /dev/null
+++ b/node_modules/is-symbol/.eslintrc
@@ -0,0 +1,14 @@
+{
+ "root": true,
+
+ "extends": "@ljharb",
+
+ "overrides": [
+ {
+ "files": "test/**",
+ "rules": {
+ "no-restricted-properties": 0,
+ },
+ },
+ ],
+}
diff --git a/node_modules/is-symbol/.github/FUNDING.yml b/node_modules/is-symbol/.github/FUNDING.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a65600e7f6b73e5f445dbeda8ccbed22cc8e3235
--- /dev/null
+++ b/node_modules/is-symbol/.github/FUNDING.yml
@@ -0,0 +1,12 @@
+# These are supported funding model platforms
+
+github: [ljharb]
+patreon: # Replace with a single Patreon username
+open_collective: # Replace with a single Open Collective username
+ko_fi: # Replace with a single Ko-fi username
+tidelift: npm/is-symbol
+community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
+liberapay: # Replace with a single Liberapay username
+issuehunt: # Replace with a single IssueHunt username
+otechie: # Replace with a single Otechie username
+custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/node_modules/is-symbol/.nycrc b/node_modules/is-symbol/.nycrc
new file mode 100644
index 0000000000000000000000000000000000000000..bdd626ce91477abbdd489b79988baebadbd3c897
--- /dev/null
+++ b/node_modules/is-symbol/.nycrc
@@ -0,0 +1,9 @@
+{
+ "all": true,
+ "check-coverage": false,
+ "reporter": ["text-summary", "text", "html", "json"],
+ "exclude": [
+ "coverage",
+ "test"
+ ]
+}
diff --git a/node_modules/is-symbol/CHANGELOG.md b/node_modules/is-symbol/CHANGELOG.md
new file mode 100644
index 0000000000000000000000000000000000000000..e782b83a3c21befed74be3508b1fbd2773e9c24d
--- /dev/null
+++ b/node_modules/is-symbol/CHANGELOG.md
@@ -0,0 +1,145 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [v1.1.1](https://github.com/inspect-js/is-symbol/compare/v1.1.0...v1.1.1) - 2024-12-12
+
+### Commits
+
+- [actions] re-add finishers [`9b9d06f`](https://github.com/inspect-js/is-symbol/commit/9b9d06f571cf5b8481216b32474b567b02b14ae3)
+- [Deps] update `call-bind`, `has-symbols`, `safe-regex-test` [`07f3647`](https://github.com/inspect-js/is-symbol/commit/07f36476b69e98353c09dc58cbcab8891e3ed2b7)
+- [Refactor] use `call-bound` directly [`799402d`](https://github.com/inspect-js/is-symbol/commit/799402d3b0f291981b6406ec92c8c45cdad4e75e)
+- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/tsconfig` [`4b8b2f9`](https://github.com/inspect-js/is-symbol/commit/4b8b2f9e844ebac93e89cf8e88e08ae0e8f4cc7f)
+- [types] remove unneeded DT packages [`398abaa`](https://github.com/inspect-js/is-symbol/commit/398abaaea5a6192cd0eb9fda5f0a3cfb5b1da845)
+
+## [v1.1.0](https://github.com/inspect-js/is-symbol/compare/v1.0.4...v1.1.0) - 2024-12-02
+
+### Commits
+
+- [actions] reuse common workflows [`acf85f0`](https://github.com/inspect-js/is-symbol/commit/acf85f027ec6ea70a7023646c47f9324ff9a5e25)
+- [meta] use `npmignore` to autogenerate an npmignore file [`77c818e`](https://github.com/inspect-js/is-symbol/commit/77c818ebf4dc1107d945854185071ca76ef94d31)
+- [Tests] use `for-each` and `es-value-fixtures` [`93dfed0`](https://github.com/inspect-js/is-symbol/commit/93dfed0de6c1da2946d83017cc0f44f8f7d15ded)
+- [New] add types [`ed6a057`](https://github.com/inspect-js/is-symbol/commit/ed6a057e9595fb14c7d322ed4aba3433386d07bb)
+- [actions] split out node 10-20, and 20+ [`7f81ccc`](https://github.com/inspect-js/is-symbol/commit/7f81ccc8bb2c667e6975f278c9dec7310a923749)
+- [Robustness] use `call-bind` and `safe-regex-test` [`dc7e142`](https://github.com/inspect-js/is-symbol/commit/dc7e142724e9dce678b1ead151c7fedd02411a03)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `object-inspect`, `tape` [`70f87c2`](https://github.com/inspect-js/is-symbol/commit/70f87c2715ad4cc8e66ce0eb4a4d2c4034b8e19c)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `object-inspect`, `safe-publish-latest`, `tape` [`3f02ff4`](https://github.com/inspect-js/is-symbol/commit/3f02ff4459ec96e22be4ef8cda0c966fafb5509a)
+- [Dev Deps] update `@ljharb/eslint-config`, `auto-changelog`, `has-tostringtag`, `npmignore`, `object-inspect`, `tape` [`9588872`](https://github.com/inspect-js/is-symbol/commit/95888727f109c7e9d2fdfe7ed419cc8452505503)
+- [actions] update rebase action to use reusable workflow [`59e2f68`](https://github.com/inspect-js/is-symbol/commit/59e2f680992f630eb1d76dd8e009d7fa074e3055)
+- [actions] update codecov uploader [`e4759f8`](https://github.com/inspect-js/is-symbol/commit/e4759f8bea3b66d6d70f8b7b2656cc9b987ca874)
+- [Dev Deps] update `eslint`, `auto-changelog`, `object-inspect`, `tape` [`33990c0`](https://github.com/inspect-js/is-symbol/commit/33990c0d76db7f44bcf177f7f5b602747b159a35)
+- [Tests] use `has-tostringtag` for more robust Symbol.toStringTag detection [`d6154e1`](https://github.com/inspect-js/is-symbol/commit/d6154e10f79b572630fd309543160c446d7e46ef)
+- [Tests] replace `aud` with `npm audit` [`3215a60`](https://github.com/inspect-js/is-symbol/commit/3215a60cf4ffce688e3911025cf2ccca95e259d0)
+- [Refactor] avoid an expensive check, for primitives [`59f1a42`](https://github.com/inspect-js/is-symbol/commit/59f1a428ae625b59b618493c2454096900451d84)
+- [Deps] update `has-symbols` [`06be1a9`](https://github.com/inspect-js/is-symbol/commit/06be1a9d1bf57181e35b1ffe446196243cc8becc)
+- [Dev Deps] add missing peer dep [`799b0da`](https://github.com/inspect-js/is-symbol/commit/799b0da1902dfa5b02456fcf32887ead6e332358)
+
+## [v1.0.4](https://github.com/inspect-js/is-symbol/compare/v1.0.3...v1.0.4) - 2021-05-08
+
+### Commits
+
+- [Tests] migrate tests to Github Actions [`997d43c`](https://github.com/inspect-js/is-symbol/commit/997d43c091d1f8d3a2b3d7dfb17a73cdc5a75dde)
+- [actions] use `node/install` instead of `node/run`; use `codecov` action [`fe0ccb7`](https://github.com/inspect-js/is-symbol/commit/fe0ccb7b7b64e74e095ef782dcc1d24d6c4b0be4)
+- [meta] remove unused Makefile and associated utilities [`3ab2748`](https://github.com/inspect-js/is-symbol/commit/3ab2748ab6c2de21fc24f131bb880c68ba0b7b34)
+- [meta] do not publish github action workflow files [`f20fafe`](https://github.com/inspect-js/is-symbol/commit/f20fafeb21585c7b4871ea19f104fd7696734fe8)
+- [Tests] run `nyc` on all tests [`5c332fc`](https://github.com/inspect-js/is-symbol/commit/5c332fc92cecbed4a2041bc0c52b991b4a593f34)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `object-inspect`, `tape` [`c5a58a8`](https://github.com/inspect-js/is-symbol/commit/c5a58a8bea390a9b02e1c8c4aac30c223370297b)
+- [readme] fix repo URLs; remove travis badge [`bcd9258`](https://github.com/inspect-js/is-symbol/commit/bcd9258d161fe709148fcc47962df3372c544727)
+- [actions] add "Allow Edits" workflow [`33ae2d3`](https://github.com/inspect-js/is-symbol/commit/33ae2d3940e9daa6003a84c232874ee558b2fb44)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `object-inspect`, `tape` [`e53def0`](https://github.com/inspect-js/is-symbol/commit/e53def0b77c38cbfae87fd8bbfd78953b845ea94)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `object-inspect` [`ae36504`](https://github.com/inspect-js/is-symbol/commit/ae365048c0c1b13457faa78658b80561f5a0bcd0)
+- [readme] add actions and codecov badges [`aae7f09`](https://github.com/inspect-js/is-symbol/commit/aae7f09bd59d36df69d3b66d9b351c39fe072330)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`d993fae`](https://github.com/inspect-js/is-symbol/commit/d993fae6d89856d4ab7818874be597249cb8a8cc)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`51808a5`](https://github.com/inspect-js/is-symbol/commit/51808a55f272023201f40a59b2459ec6305bf73a)
+- [Dev Deps] update `auto-changelog`, `tape` [`c90040f`](https://github.com/inspect-js/is-symbol/commit/c90040f0aeded8d0071a78d5cd593b385f8828ee)
+- [Dev Deps] update `eslint`, `tape` [`9fee159`](https://github.com/inspect-js/is-symbol/commit/9fee159403d499a5ed2f5cb5db03747d09ab1766)
+- [meta] use `prepublishOnly` script for npm 7+ [`b166afc`](https://github.com/inspect-js/is-symbol/commit/b166afc3ae3c6d11721a9558ddb112a28261688d)
+- [meta] gitignore coverage output [`4a0fe3a`](https://github.com/inspect-js/is-symbol/commit/4a0fe3aa074b933074fcc231ce739005e1fec195)
+- [actions] update workflows [`fbcbc9e`](https://github.com/inspect-js/is-symbol/commit/fbcbc9eb5bfe2cf9a77d5bd86bb1dece8e5f81d0)
+- [Dev Deps] update `auto-changelog`; add `aud` [`e66ab98`](https://github.com/inspect-js/is-symbol/commit/e66ab989e48b81b48bd443d35dba0071950c5d7a)
+- [Deps] update `has-symbols` [`6ce7de5`](https://github.com/inspect-js/is-symbol/commit/6ce7de53c866c068de2c28d97b3a64cf6d5f6a76)
+- [actions] update rebase action to use checkout v2 [`1173c79`](https://github.com/inspect-js/is-symbol/commit/1173c79914076d73aec9aebc22dce4122e7bd3ae)
+- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`94a6348`](https://github.com/inspect-js/is-symbol/commit/94a6348f6274eac9bf4c5a6057b4f6120fc7d1d1)
+- [Tests] only audit prod deps [`0692681`](https://github.com/inspect-js/is-symbol/commit/06926811fa029fe0fded5d0af4553a7808c143d1)
+- [meta] do not publish .nvmrc file [`ed47833`](https://github.com/inspect-js/is-symbol/commit/ed478333c72384f8dbeb51e5fd501238f52a4972)
+
+## [v1.0.3](https://github.com/inspect-js/is-symbol/compare/v1.0.2...v1.0.3) - 2019-11-20
+
+### Commits
+
+- [Tests] use shared travis-ci configs [`034afdd`](https://github.com/inspect-js/is-symbol/commit/034afdd677c1b72b76751f3e5131acc927a32916)
+- [Tests] remove `jscs` [`0c026a0`](https://github.com/inspect-js/is-symbol/commit/0c026a06815e46a33a8a5b4b1be8965d32d38e5c)
+- [meta] add `auto-changelog` [`9a1776b`](https://github.com/inspect-js/is-symbol/commit/9a1776bb49f3e6ac12a5b3a447edcc651216891b)
+- [Tests] up to `node` `v12.10`, `v11.15`, `v10.16`, `v8.16`, `v6.17` [`23a6db4`](https://github.com/inspect-js/is-symbol/commit/23a6db49a338d19eab19d876745513820bb6a9dc)
+- [Tests] up to `node` `v11.7`, `v10.15`, `v8.15`, `v6.16` [`892d92e`](https://github.com/inspect-js/is-symbol/commit/892d92e7c40f3c0577583a98134106181c38bb7e)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `semver`, `tape` [`c2e6d6a`](https://github.com/inspect-js/is-symbol/commit/c2e6d6a71f839522bbd124b7419f5fc42ffff6d3)
+- [readme] fix repo URLs [`655c288`](https://github.com/inspect-js/is-symbol/commit/655c288a815856e647dba4b6049b1743cec3533c)
+- [actions] add automatic rebasing / merge commit blocking [`97b1229`](https://github.com/inspect-js/is-symbol/commit/97b12296bf8fa1ce0c6121bf3de56c413da10aae)
+- [meta] add FUNDING.yml [`94c64a3`](https://github.com/inspect-js/is-symbol/commit/94c64a367a1c34f960cf6007fc65cfbbcba34ba3)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `tape`, `semver` [`71ab543`](https://github.com/inspect-js/is-symbol/commit/71ab543e09b820378362f4f66248addd410c6388)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `semver`, `tape` [`c6212f9`](https://github.com/inspect-js/is-symbol/commit/c6212f94e28622c94bb37189ffc241ee88b5b1dd)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `object-inspect` [`91bc802`](https://github.com/inspect-js/is-symbol/commit/91bc802e18e63f4e8230ee0148302ce849e2f733)
+- [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`8cbe69c`](https://github.com/inspect-js/is-symbol/commit/8cbe69c3fafe9cfbe7d27f710c88d02d2d2c6a00)
+- [Tests] use `npm audit` instead of `nsp` [`741b51d`](https://github.com/inspect-js/is-symbol/commit/741b51dac868f6b22736c204910d257bcf4d5044)
+- [meta] add `funding` field [`65b58d1`](https://github.com/inspect-js/is-symbol/commit/65b58d1e9fc572712d462d615e6b2418627d8fb9)
+- [Deps] update `has-symbols` [`9cb5b2a`](https://github.com/inspect-js/is-symbol/commit/9cb5b2a9a3b89e8e0246be8df4fff3f5ceac7309)
+
+## [v1.0.2](https://github.com/inspect-js/is-symbol/compare/v1.0.1...v1.0.2) - 2018-09-20
+
+### Commits
+
+- Update `eslint`, `tape`, `semver`; use my personal shared `eslint` config [`e86aaea`](https://github.com/inspect-js/is-symbol/commit/e86aaea8d81356801ecfc60540523e9b809a55f4)
+- [Tests] on all node minors; improve test matrix [`50bc07f`](https://github.com/inspect-js/is-symbol/commit/50bc07f2ff73e5499b02a61f0a00ea48a84ae213)
+- [Dev Deps] update `tape`, `jscs`, `nsp`, `semver`, `eslint`, `@ljharb/eslint-config` [`45e17bd`](https://github.com/inspect-js/is-symbol/commit/45e17bdf145846f30122348a94c5e506b90836ba)
+- [Tests] up to `node` `v10.0`, `v9.11`, `v8.11`, `v6.14`, `v4.9`; use `nvm install-latest-npm` [`44402cb`](https://github.com/inspect-js/is-symbol/commit/44402cb82d4499e947b48b31b14667d1ebe7e2b4)
+- [Tests] up to `node` `v8.1`, `v7.10`, `v6.11`, `v4.8`; improve matrix; old npm breaks on newer nodes [`9047c23`](https://github.com/inspect-js/is-symbol/commit/9047c232857ecb80551a21cc0b1cc4c91d28da1f)
+- Update `tape`, `covert`, `jscs`, `semver` [`d57d1ce`](https://github.com/inspect-js/is-symbol/commit/d57d1ce3fc0b740885a1ed5c0738d4a27b29ab07)
+- Add `npm run eslint` [`0d75a66`](https://github.com/inspect-js/is-symbol/commit/0d75a6638ad6f7ff7d5bc958531a6328fb13e3fe)
+- Update `eslint` [`042fb3a`](https://github.com/inspect-js/is-symbol/commit/042fb3aec590f0c0d205b15812b285ad95cfff6b)
+- [Refactor] use `has-symbols` and `object-inspect` [`129bc68`](https://github.com/inspect-js/is-symbol/commit/129bc68dd619b789b9956ac9b63b46257ee1060c)
+- [Tests] up to `node` `v10.11`, `v8.12` [`c1822e8`](https://github.com/inspect-js/is-symbol/commit/c1822e84d6cc0cee9f1c2893e91b1aa999ad41db)
+- Update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`089d2cf`](https://github.com/inspect-js/is-symbol/commit/089d2cf7cad87b75aa534769af11524ad2e79080)
+- [Tests] up to `node` `v8.4`; newer npm breaks on older node [`05ce701`](https://github.com/inspect-js/is-symbol/commit/05ce701e3c1be8b3266ffac49806832e410491c1)
+- All grade A-supported `node`/`iojs` versions now ship with an `npm` that understands `^`. [`241e6a6`](https://github.com/inspect-js/is-symbol/commit/241e6a655c0e19e9dcf0ae88e7fddd4cde394c5c)
+- Test on latest `node` and `io.js` versions. [`5c8d5de`](https://github.com/inspect-js/is-symbol/commit/5c8d5deb9b7c01a8cdf959082a3d619c19751b0a)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `nsp`, `semver`, `tape` [`06047bf`](https://github.com/inspect-js/is-symbol/commit/06047bf72b20a66c0b455e80856b2d00b1910391)
+- [Dev Deps] update `jscs`, `nsp`, `semver`, `eslint`, `@ljharb/eslint-config` [`9d25dd7`](https://github.com/inspect-js/is-symbol/commit/9d25dd79347c89f98207a3bad39f667f1f8a410e)
+- [Tests] up to `io.js` `v3.3`, `node` `v4.1` [`ce173bd`](https://github.com/inspect-js/is-symbol/commit/ce173bda6e146907e3061a0e70463107d955de35)
+- Update `nsp`, `eslint` [`29e5214`](https://github.com/inspect-js/is-symbol/commit/29e52140fac2049b4a32e175787bb3b184a1dd72)
+- Update `semver`, `eslint` [`53be884`](https://github.com/inspect-js/is-symbol/commit/53be884c2811f7a4452581003d9cdaf6f9bddd3c)
+- [Dev Deps] update `eslint`, `nsp`, `semver`, `tape` [`3bd149c`](https://github.com/inspect-js/is-symbol/commit/3bd149c869c099b07104b06c0692755a01f8298c)
+- [Dev Deps] update `jscs` [`69b4231`](https://github.com/inspect-js/is-symbol/commit/69b4231632b170e5ddb350db2f0c59e6cad6f548)
+- Test up to `io.js` `v2.1` [`0b61ac7`](https://github.com/inspect-js/is-symbol/commit/0b61ac7ac4de390296aeefb9395549592ea87da4)
+- [Dev Deps] update `tape` [`5e1b200`](https://github.com/inspect-js/is-symbol/commit/5e1b2008c910bcdabee299a1ac599143ea07c3f9)
+- Only apps should have lockfiles. [`a191ff5`](https://github.com/inspect-js/is-symbol/commit/a191ff5f0320fc16db42fdaa40f0c21d4326255e)
+- [Dev Deps] update `nsp`, `eslint`, `@ljharb/eslint-config` [`97c87ef`](https://github.com/inspect-js/is-symbol/commit/97c87ef52b966f211e231092a54ef6ed05c99a26)
+- Test on `io.js` `v2.2` [`42560e4`](https://github.com/inspect-js/is-symbol/commit/42560e466e17cbbb9fa71c0121f4bbbcf266c887)
+- [Dev Deps] Update `tape`, `eslint` [`149b2f2`](https://github.com/inspect-js/is-symbol/commit/149b2f20bde92b2da12ccfeb8988beb2dc95c37c)
+- [Tests] fix test messages [`28bd1ed`](https://github.com/inspect-js/is-symbol/commit/28bd1eda310590e13ada19cbd718c85c25d8a0c5)
+- Test up to `io.js` `v3.0` [`c0dcc98`](https://github.com/inspect-js/is-symbol/commit/c0dcc98313d17151ec043e5452df306618be865e)
+- `node` now supports Symbols now. [`d1853ad`](https://github.com/inspect-js/is-symbol/commit/d1853adf6369ab9d4c4516bdb032c2e42f52f90a)
+- [Dev Deps] update `tape` [`f7a6575`](https://github.com/inspect-js/is-symbol/commit/f7a6575fbdef13abcc412c63d22b56943ed85969)
+- Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG. [`aae9c6a`](https://github.com/inspect-js/is-symbol/commit/aae9c6a724578659976ea74e11ec9fe35608607b)
+- Test on `io.js` `v2.4` [`ab8f449`](https://github.com/inspect-js/is-symbol/commit/ab8f4492115270cc00a479915b02ac1bac75dfed)
+- Test on `io.js` `v2.3` [`58ce871`](https://github.com/inspect-js/is-symbol/commit/58ce871674e857955b333aa057eeecd68b40e988)
+
+## [v1.0.1](https://github.com/inspect-js/is-symbol/compare/v1.0.0...v1.0.1) - 2015-01-26
+
+### Commits
+
+- Correct package description. [`f4d15b9`](https://github.com/inspect-js/is-symbol/commit/f4d15b928b4b754b097a84f7c3ceac73c486aceb)
+
+## v1.0.0 - 2015-01-24
+
+### Commits
+
+- Dotfiles. [`5d9a744`](https://github.com/inspect-js/is-symbol/commit/5d9a7441f724630070e9bd74a995191cafa1064b)
+- Tests. [`8af5663`](https://github.com/inspect-js/is-symbol/commit/8af56631950dcee48b36f517837273193a6ba119)
+- `make release` [`6293446`](https://github.com/inspect-js/is-symbol/commit/629344654a72e7fc8059607d6a86c64b002c3e5d)
+- package.json [`7d4082c`](https://github.com/inspect-js/is-symbol/commit/7d4082ca9502118e70d24f526704d45a1a7f2067)
+- Initial commit [`cbb179f`](https://github.com/inspect-js/is-symbol/commit/cbb179f677bd3dcb56ac5e3f0a7a9af503fd8952)
+- Read me. [`099a775`](https://github.com/inspect-js/is-symbol/commit/099a775e7e751706283ae1cab7a8635c094773a9)
+- Implementation. [`cb51248`](https://github.com/inspect-js/is-symbol/commit/cb51248eedaf55e0b8ad7dacdab179db2d76e96e)
diff --git a/node_modules/is-symbol/LICENSE b/node_modules/is-symbol/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..b43df444e518288ceef6eaa9badd33388191b1d3
--- /dev/null
+++ b/node_modules/is-symbol/LICENSE
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Jordan Harband
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
diff --git a/node_modules/is-symbol/README.md b/node_modules/is-symbol/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..5432594c7b46bfed4e9f0db4ca2afd09716125e7
--- /dev/null
+++ b/node_modules/is-symbol/README.md
@@ -0,0 +1,45 @@
+# is-symbol [![Version Badge][2]][1]
+
+[![github actions][actions-image]][actions-url]
+[![coverage][codecov-image]][codecov-url]
+[![dependency status][5]][6]
+[![dev dependency status][7]][8]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][11]][1]
+
+Is this an ES6 Symbol value?
+
+## Example
+
+```js
+var isSymbol = require('is-symbol');
+assert(!isSymbol(function () {}));
+assert(!isSymbol(null));
+assert(!isSymbol(function* () { yield 42; return Infinity; });
+
+assert(isSymbol(Symbol.iterator));
+assert(isSymbol(Symbol('foo')));
+assert(isSymbol(Symbol.for('foo')));
+assert(isSymbol(Object(Symbol('foo'))));
+```
+
+## Tests
+Simply clone the repo, `npm install`, and run `npm test`
+
+[1]: https://npmjs.org/package/is-symbol
+[2]: https://versionbadg.es/inspect-js/is-symbol.svg
+[5]: https://david-dm.org/inspect-js/is-symbol.svg
+[6]: https://david-dm.org/inspect-js/is-symbol
+[7]: https://david-dm.org/inspect-js/is-symbol/dev-status.svg
+[8]: https://david-dm.org/inspect-js/is-symbol#info=devDependencies
+[11]: https://nodei.co/npm/is-symbol.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/is-symbol.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/is-symbol.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=is-symbol
+[codecov-image]: https://codecov.io/gh/inspect-js/is-symbol/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/inspect-js/is-symbol/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-symbol
+[actions-url]: https://github.com/inspect-js/is-symbol/actions
diff --git a/node_modules/is-symbol/index.d.ts b/node_modules/is-symbol/index.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..62f0c3c2d42c298f61501e39a820ffdd3407b218
--- /dev/null
+++ b/node_modules/is-symbol/index.d.ts
@@ -0,0 +1,3 @@
+declare function isSymbol(value: unknown): value is (symbol | Symbol);
+
+export = isSymbol;
diff --git a/node_modules/is-symbol/index.js b/node_modules/is-symbol/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..dfd62a8b60b512b413096f779d9bae240505efcf
--- /dev/null
+++ b/node_modules/is-symbol/index.js
@@ -0,0 +1,40 @@
+'use strict';
+
+var callBound = require('call-bound');
+var $toString = callBound('Object.prototype.toString');
+var hasSymbols = require('has-symbols')();
+var safeRegexTest = require('safe-regex-test');
+
+if (hasSymbols) {
+ var $symToStr = callBound('Symbol.prototype.toString');
+ var isSymString = safeRegexTest(/^Symbol\(.*\)$/);
+
+ /** @type {(value: object) => value is Symbol} */
+ var isSymbolObject = function isRealSymbolObject(value) {
+ if (typeof value.valueOf() !== 'symbol') {
+ return false;
+ }
+ return isSymString($symToStr(value));
+ };
+
+ /** @type {import('.')} */
+ module.exports = function isSymbol(value) {
+ if (typeof value === 'symbol') {
+ return true;
+ }
+ if (!value || typeof value !== 'object' || $toString(value) !== '[object Symbol]') {
+ return false;
+ }
+ try {
+ return isSymbolObject(value);
+ } catch (e) {
+ return false;
+ }
+ };
+} else {
+ /** @type {import('.')} */
+ module.exports = function isSymbol(value) {
+ // this environment does not support Symbols.
+ return false && value;
+ };
+}
diff --git a/node_modules/is-symbol/package.json b/node_modules/is-symbol/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..ed0aa237cb3f5aae4570d9c6d8b11e0468a1acd0
--- /dev/null
+++ b/node_modules/is-symbol/package.json
@@ -0,0 +1,98 @@
+{
+ "name": "is-symbol",
+ "version": "1.1.1",
+ "description": "Determine if a value is an ES6 Symbol or not.",
+ "main": "index.js",
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=autogenerated",
+ "prepublishOnly": "safe-publish-latest",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "pretest": "npm run lint",
+ "tests-only": "nyc tape 'test/**/*.js'",
+ "test": "npm run tests-only",
+ "posttest": "npx npm@'>=10.2' audit --production",
+ "lint": "eslint --ext=js,mjs .",
+ "postlint": "tsc -p . && attw -P",
+ "version": "auto-changelog && git add CHANGELOG.md",
+ "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
+ },
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/inspect-js/is-symbol.git"
+ },
+ "keywords": [
+ "symbol",
+ "es6",
+ "is",
+ "Symbol"
+ ],
+ "author": "Jordan Harband ",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ },
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/inspect-js/is-symbol/issues"
+ },
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "has-symbols": "^1.1.0",
+ "safe-regex-test": "^1.1.0"
+ },
+ "devDependencies": {
+ "@arethetypeswrong/cli": "^0.17.1",
+ "@ljharb/eslint-config": "^21.1.1",
+ "@ljharb/tsconfig": "^0.2.2",
+ "@types/for-each": "^0.3.3",
+ "@types/object-inspect": "^1.13.0",
+ "@types/tape": "^5.6.5",
+ "auto-changelog": "^2.5.0",
+ "encoding": "^0.1.13",
+ "es-value-fixtures": "^1.5.0",
+ "eslint": "=8.8.0",
+ "for-each": "^0.3.3",
+ "has-tostringtag": "^1.0.2",
+ "in-publish": "^2.0.1",
+ "npmignore": "^0.3.1",
+ "nyc": "^10.3.2",
+ "object-inspect": "^1.13.3",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.9.0",
+ "typescript": "next"
+ },
+ "testling": {
+ "files": "test/index.js",
+ "browsers": [
+ "iexplore/6.0..latest",
+ "firefox/3.0..6.0",
+ "firefox/15.0..latest",
+ "firefox/nightly",
+ "chrome/4.0..10.0",
+ "chrome/20.0..latest",
+ "chrome/canary",
+ "opera/10.0..latest",
+ "opera/next",
+ "safari/4.0..latest",
+ "ipad/6.0..latest",
+ "iphone/6.0..latest",
+ "android-browser/4.2"
+ ]
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows",
+ ".nvmrc"
+ ]
+ }
+}
diff --git a/node_modules/is-symbol/test/index.js b/node_modules/is-symbol/test/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..873c928b4442cafe9d7792036bb2be09ea34233a
--- /dev/null
+++ b/node_modules/is-symbol/test/index.js
@@ -0,0 +1,88 @@
+'use strict';
+
+var test = require('tape');
+var forEach = require('for-each');
+var v = require('es-value-fixtures');
+
+var isSymbol = require('../index');
+
+var hasSymbols = require('has-symbols')();
+var hasToStringTag = require('has-tostringtag/shams')();
+var inspect = require('object-inspect');
+
+test('non-symbol values', function (t) {
+ var nonSymbols = v.nonSymbolPrimitives.concat(
+ Object(true),
+ Object(false),
+ // @ts-expect-error TS sucks with concat
+ {},
+ [],
+ /a/g,
+ new Date(),
+ function () {},
+ NaN
+ );
+ t.plan(nonSymbols.length);
+ forEach(nonSymbols, function (nonSymbol) {
+ t.equal(isSymbol(nonSymbol), false, inspect(nonSymbol) + ' is not a symbol');
+ });
+ t.end();
+});
+
+test('faked symbol values', function (t) {
+ t.test('real symbol valueOf', { skip: !hasSymbols }, function (st) {
+ var fakeSymbol = { valueOf: function () { return Symbol('foo'); } };
+ st.equal(isSymbol(fakeSymbol), false, 'object with valueOf returning a symbol is not a symbol');
+ st.end();
+ });
+
+ t.test('faked @@toStringTag', { skip: !hasToStringTag }, function (st) {
+ /** @type {{ valueOf(): unknown; [Symbol.toStringTag]?: unknown }} */
+ var fakeSymbol = { valueOf: function () { return Symbol('foo'); } };
+ fakeSymbol[Symbol.toStringTag] = 'Symbol';
+ st.equal(isSymbol(fakeSymbol), false, 'object with fake Symbol @@toStringTag and valueOf returning a symbol is not a symbol');
+
+ /** @type {{ valueOf(): unknown; [Symbol.toStringTag]?: unknown }} */
+ var notSoFakeSymbol = { valueOf: function () { return 42; } };
+ notSoFakeSymbol[Symbol.toStringTag] = 'Symbol';
+ st.equal(isSymbol(notSoFakeSymbol), false, 'object with fake Symbol @@toStringTag and valueOf not returning a symbol is not a symbol');
+ st.end();
+ });
+
+ var fakeSymbolString = { toString: function () { return 'Symbol(foo)'; } };
+ t.equal(isSymbol(fakeSymbolString), false, 'object with toString returning Symbol(foo) is not a symbol');
+
+ t.end();
+});
+
+test('Symbol support', { skip: !hasSymbols }, function (t) {
+ t.test('well-known Symbols', function (st) {
+ /** @type {(name: string) => name is Exclude} */
+ var isWellKnown = function filterer(name) {
+ return name !== 'for' && name !== 'keyFor' && !(name in filterer);
+ };
+ var wellKnownSymbols = Object.getOwnPropertyNames(Symbol).filter(isWellKnown);
+ wellKnownSymbols.forEach(function (name) {
+ // eslint-disable-next-line no-extra-parens
+ var sym = Symbol[/** @type {keyof SymbolConstructor} */ (name)];
+ st.equal(isSymbol(sym), true, inspect(sym) + ' is a symbol');
+ });
+ st.end();
+ });
+
+ t.test('user-created symbols', function (st) {
+ var symbols = v.symbols.concat(
+ Symbol(),
+ Symbol('foo'),
+ Symbol['for']('foo'),
+ Object(Symbol('object'))
+ );
+ symbols.forEach(function (sym) {
+ st.equal(isSymbol(sym), true, inspect(sym) + ' is a symbol');
+ });
+ st.end();
+ });
+
+ t.end();
+});
+
diff --git a/node_modules/is-symbol/tsconfig.json b/node_modules/is-symbol/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..707cf95103eea5754b0141455f421ec38d129dd9
--- /dev/null
+++ b/node_modules/is-symbol/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "@ljharb/tsconfig",
+ "compilerOptions": {
+ "target": "ES2021",
+ },
+ "exclude": [
+ "coverage"
+ ]
+}
diff --git a/node_modules/is-typed-array/.editorconfig b/node_modules/is-typed-array/.editorconfig
new file mode 100644
index 0000000000000000000000000000000000000000..bc228f8269443bf772b437890dde7756a3e8a894
--- /dev/null
+++ b/node_modules/is-typed-array/.editorconfig
@@ -0,0 +1,20 @@
+root = true
+
+[*]
+indent_style = tab
+indent_size = 4
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+max_line_length = 150
+
+[CHANGELOG.md]
+indent_style = space
+indent_size = 2
+
+[*.json]
+max_line_length = off
+
+[Makefile]
+max_line_length = off
diff --git a/node_modules/is-typed-array/.eslintrc b/node_modules/is-typed-array/.eslintrc
new file mode 100644
index 0000000000000000000000000000000000000000..34a62620e3d28724ef3fc44878562231174b28c8
--- /dev/null
+++ b/node_modules/is-typed-array/.eslintrc
@@ -0,0 +1,13 @@
+{
+ "root": true,
+
+ "extends": "@ljharb",
+
+ "globals": {
+ "globalThis": false
+ },
+
+ "rules": {
+ "max-statements-per-line": [2, { "max": 2 }]
+ },
+}
diff --git a/node_modules/is-typed-array/.github/FUNDING.yml b/node_modules/is-typed-array/.github/FUNDING.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7dd24b969689c940d2d35f91381ccd813235009f
--- /dev/null
+++ b/node_modules/is-typed-array/.github/FUNDING.yml
@@ -0,0 +1,12 @@
+# These are supported funding model platforms
+
+github: [ljharb]
+patreon: # Replace with a single Patreon username
+open_collective: # Replace with a single Open Collective username
+ko_fi: # Replace with a single Ko-fi username
+tidelift: npm/is-typed-array
+community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
+liberapay: # Replace with a single Liberapay username
+issuehunt: # Replace with a single IssueHunt username
+otechie: # Replace with a single Otechie username
+custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/node_modules/is-typed-array/.nycrc b/node_modules/is-typed-array/.nycrc
new file mode 100644
index 0000000000000000000000000000000000000000..bdd626ce91477abbdd489b79988baebadbd3c897
--- /dev/null
+++ b/node_modules/is-typed-array/.nycrc
@@ -0,0 +1,9 @@
+{
+ "all": true,
+ "check-coverage": false,
+ "reporter": ["text-summary", "text", "html", "json"],
+ "exclude": [
+ "coverage",
+ "test"
+ ]
+}
diff --git a/node_modules/is-typed-array/CHANGELOG.md b/node_modules/is-typed-array/CHANGELOG.md
new file mode 100644
index 0000000000000000000000000000000000000000..a2f6fb355b92c2ed11115943160bc680bbd44ead
--- /dev/null
+++ b/node_modules/is-typed-array/CHANGELOG.md
@@ -0,0 +1,166 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [v1.1.15](https://github.com/inspect-js/is-typed-array/compare/v1.1.14...v1.1.15) - 2024-12-18
+
+### Commits
+
+- [types] improve types [`d934b49`](https://github.com/inspect-js/is-typed-array/commit/d934b49f7a16d5e20ba437a795b887f1f71ef240)
+- [Dev Deps] update `@types/tape` [`da26511`](https://github.com/inspect-js/is-typed-array/commit/da26511ad7515c50fdc720701d5735b0d8a40800)
+
+## [v1.1.14](https://github.com/inspect-js/is-typed-array/compare/v1.1.13...v1.1.14) - 2024-12-17
+
+### Commits
+
+- [types] use shared config [`eafa7fa`](https://github.com/inspect-js/is-typed-array/commit/eafa7fad2fc8d464a68e218d39a7eab782d9ce76)
+- [actions] split out node 10-20, and 20+ [`cd6d5a3`](https://github.com/inspect-js/is-typed-array/commit/cd6d5a3283a1e65cf5885e57daede65a5176fd91)
+- [types] use `which-typed-array`’s `TypedArray` type; re-export it [`d7d9fcd`](https://github.com/inspect-js/is-typed-array/commit/d7d9fcd75d538b7f8146dcd9faca5142534a3d45)
+- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/eslint-config`, `@ljharb/tsconfig`, `@types/node`, `@types/object-inspect`, `@types/tape`, `auto-changelog`, `object-inspect`, `tape` [`65afb42`](https://github.com/inspect-js/is-typed-array/commit/65afb4263ff4f4ee4ee51b284dc7519ce969a666)
+- [Dev Deps] update `@types/node`, `has-tostringtag`, `tape` [`9e27ddd`](https://github.com/inspect-js/is-typed-array/commit/9e27ddd62a51ebae46781de0adbd8871341c633c)
+- [Tests] replace `aud` with `npm audit` [`ad4defe`](https://github.com/inspect-js/is-typed-array/commit/ad4defe211c77d42b880d13faf7737b8f1adaf13)
+- [Tests] use `@arethetypeswrong/cli` [`ac4bcca`](https://github.com/inspect-js/is-typed-array/commit/ac4bcca4ee2215662e79aa21681756984bb0b6d1)
+- [Deps] update `which-typed-array` [`c298129`](https://github.com/inspect-js/is-typed-array/commit/c2981299c09cd64d89bf1e496447c0379b45d03a)
+- [Deps] update `which-typed-array` [`744c29a`](https://github.com/inspect-js/is-typed-array/commit/744c29aa8d4f9df360082074f7b4f2f0d42d76e5)
+- [Dev Deps] add missing peer dep [`94d2f5a`](https://github.com/inspect-js/is-typed-array/commit/94d2f5a11016516823e8d943e0bfc7b29dcb146d)
+
+## [v1.1.13](https://github.com/inspect-js/is-typed-array/compare/v1.1.12...v1.1.13) - 2024-02-01
+
+### Commits
+
+- [patch] add types [`8a8a679`](https://github.com/inspect-js/is-typed-array/commit/8a8a679937d1c4b970c98556460cef2b7fa0bffb)
+- [Dev Deps] update `aud`, `has-tostringtag`, `npmignore`, `object-inspect`, `tape` [`8146b60`](https://github.com/inspect-js/is-typed-array/commit/8146b6019a24f502e66e2c224ce5bea8df9f39bc)
+- [actions] optimize finishers [`34f875a`](https://github.com/inspect-js/is-typed-array/commit/34f875ace16c4900d6b0ef4688e9e3eb7d502715)
+- [Deps] update `which-typed-array` [`19c974f`](https://github.com/inspect-js/is-typed-array/commit/19c974f4bbd93ffc45cb8638b86688bc00f1420b)
+- [meta] add `sideEffects` flag [`0b68e5e`](https://github.com/inspect-js/is-typed-array/commit/0b68e5e58684b79110a82a0a51df8beb7574d6a2)
+
+## [v1.1.12](https://github.com/inspect-js/is-typed-array/compare/v1.1.11...v1.1.12) - 2023-07-17
+
+### Commits
+
+- [Refactor] use `which-typed-array` for all internals [`7619405`](https://github.com/inspect-js/is-typed-array/commit/761940532de595f6721fed101b02814dcfa7fe4e)
+
+## [v1.1.11](https://github.com/inspect-js/is-typed-array/compare/v1.1.10...v1.1.11) - 2023-07-17
+
+### Commits
+
+- [Fix] `node < v0.6` lacks proper Object toString behavior [`c94b90d`](https://github.com/inspect-js/is-typed-array/commit/c94b90dc6bc457783d6f8cc208415a49da0933b7)
+- [Robustness] use `call-bind` [`573b00b`](https://github.com/inspect-js/is-typed-array/commit/573b00b8deec42ac1ac262415e442ea0b7e1c96b)
+- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `object-inspect`, `tape` [`c88c2d4`](https://github.com/inspect-js/is-typed-array/commit/c88c2d479976110478fa4038fe8921251c06a163)
+
+## [v1.1.10](https://github.com/inspect-js/is-typed-array/compare/v1.1.9...v1.1.10) - 2022-11-02
+
+### Commits
+
+- [meta] add `auto-changelog` [`cf6d86b`](https://github.com/inspect-js/is-typed-array/commit/cf6d86bf2f693eca357439d4d12e76d641f91f92)
+- [actions] update rebase action to use reusable workflow [`8da51a5`](https://github.com/inspect-js/is-typed-array/commit/8da51a5dce6d2442ae31ccbc2be136f2e04d6bef)
+- [Dev Deps] update `aud`, `is-callable`, `object-inspect`, `tape` [`554e3de`](https://github.com/inspect-js/is-typed-array/commit/554e3deec59dec926d0badc628e589ab363e465b)
+- [Refactor] use `gopd` instead of an `es-abstract` helper` [`cdaa465`](https://github.com/inspect-js/is-typed-array/commit/cdaa465d5f94bfc9e32475e31209e1c2458a9603)
+- [Deps] update `es-abstract` [`677ae4b`](https://github.com/inspect-js/is-typed-array/commit/677ae4b3c8323b59d6650a9254ab945045c33f79)
+
+
+
+1.1.9 / 2022-05-13
+=================
+ * [Refactor] use `foreach` instead of `for-each`
+ * [readme] markdown URL cleanup
+ * [Deps] update `es-abstract`
+ * [meta] use `npmignore` to autogenerate an npmignore file
+ * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `object-inspect`, `safe-publish-latest`, `tape`
+ * [actions] reuse common workflows
+ * [actions] update codecov uploader
+
+1.1.8 / 2021-08-30
+=================
+ * [Refactor] use `globalThis` if available (#53)
+ * [Deps] update `available-typed-arrays`
+ * [Dev Deps] update `@ljharb/eslint-config`
+
+1.1.7 / 2021-08-07
+=================
+ * [Fix] if Symbol.toStringTag exists but is not present, use Object.prototype.toString
+ * [Dev Deps] update `is-callable`, `tape`
+
+1.1.6 / 2021-08-05
+=================
+ * [Fix] use `has-tostringtag` to behave correctly in the presence of symbol shams
+ * [readme] add actions and codecov badges
+ * [meta] use `prepublishOnly` script for npm 7+
+ * [Deps] update `available-typed-arrays`, `es-abstract`
+ * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `object-inspect`, `tape`
+ * [actions] use `node/install` instead of `node/run`; use `codecov` action
+
+1.1.5 / 2021-02-14
+=================
+ * [meta] do not publish github action workflow files or nyc output
+ * [Deps] update `call-bind`, `es-abstract`
+ * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `is-callable`, `tape`
+
+1.1.4 / 2020-12-05
+=================
+ * [readme] fix repo URLs, remove defunct badges
+ * [Deps] update `available-typed-arrays`, `es-abstract`; use `call-bind` where applicable
+ * [meta] gitignore nyc output
+ * [meta] only audit prod deps
+ * [actions] add "Allow Edits" workflow
+ * [actions] switch Automatic Rebase workflow to `pull_request_target` event
+ * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `is-callable`, `make-arrow-function`, `make-generator-function`, `object-inspect`, `tape`; add `aud`
+ * [Tests] migrate tests to Github Actions
+ * [Tests] run `nyc` on all tests
+
+1.1.3 / 2020-01-24
+=================
+ * [Refactor] use `es-abstract`’s `callBound`, `available-typed-arrays`, `has-symbols`
+
+1.1.2 / 2020-01-20
+=================
+ * [Fix] in envs without Symbol.toStringTag, dc8a8cc made arrays return `true`
+ * [Tests] add `evalmd` to `prelint`
+
+1.1.1 / 2020-01-18
+=================
+ * [Robustness] don’t rely on Array.prototype.indexOf existing
+ * [meta] remove unused Makefile and associated utilities
+ * [meta] add `funding` field; create FUNDING.yml
+ * [actions] add automatic rebasing / merge commit blocking
+ * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `is-callable`, `replace`, `semver`, `tape`; add `safe-publish-latest`
+ * [Tests] use shared travis-ci configs
+ * [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops
+
+1.1.0 / 2019-02-16
+=================
+ * [New] add `BigInt64Array` and `BigUint64Array`
+ * [Refactor] use an array instead of an object for storing Typed Array names
+ * [meta] ignore `test.html`
+ * [Tests] up to `node` `v11.10`, `v10.15`, `v8.15`, `v7.10`, `v6.16`, `v5.10`, `v4.9`
+ * [Tests] remove `jscs`
+ * [Tests] use `npm audit` instead of `nsp`
+ * [Dev Deps] update `eslint`,` @ljharb/eslint-config`, `is-callable`, `tape`, `replace`, `semver`
+ * [Dev Deps] remove unused eccheck script + dep
+
+1.0.4 / 2016-03-19
+=================
+ * [Fix] `Symbol.toStringTag` is on the super-`[[Prototype]]` of Float32Array, not the `[[Prototype]]` (#3)
+ * [Tests] up to `node` `v5.9`, `v4.4`
+ * [Tests] use pretest/posttest for linting/security
+ * [Dev Deps] update `tape`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver`, `is-callable`
+
+1.0.3 / 2015-10-13
+=================
+ * [Deps] Add missing `foreach` dependency (#1)
+
+1.0.2 / 2015-10-05
+=================
+ * [Deps] Remove unneeded "isarray" dependency
+ * [Dev Deps] update `eslint`, `@ljharb/eslint-config`
+
+1.0.1 / 2015-10-02
+=================
+ * Rerelease: avoid instanceof and the constructor property; work cross-realm; work with Symbol.toStringTag.
+
+1.0.0 / 2015-05-06
+=================
+ * Initial release.
diff --git a/node_modules/is-typed-array/LICENSE b/node_modules/is-typed-array/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..b43df444e518288ceef6eaa9badd33388191b1d3
--- /dev/null
+++ b/node_modules/is-typed-array/LICENSE
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Jordan Harband
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
diff --git a/node_modules/is-typed-array/README.md b/node_modules/is-typed-array/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..5075257207e2276ba02c04b8bbb8f9bd3d18b0a8
--- /dev/null
+++ b/node_modules/is-typed-array/README.md
@@ -0,0 +1,70 @@
+# is-typed-array [![Version Badge][npm-version-svg]][package-url]
+
+[![github actions][actions-image]][actions-url]
+[![coverage][codecov-image]][codecov-url]
+[![dependency status][5]][6]
+[![dev dependency status][7]][8]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][npm-badge-png]][package-url]
+
+Is this value a JS Typed Array? This module works cross-realm/iframe, does not depend on `instanceof` or mutable properties, and despite ES6 Symbol.toStringTag.
+
+## Example
+
+```js
+var isTypedArray = require('is-typed-array');
+var assert = require('assert');
+
+assert.equal(false, isTypedArray(undefined));
+assert.equal(false, isTypedArray(null));
+assert.equal(false, isTypedArray(false));
+assert.equal(false, isTypedArray(true));
+assert.equal(false, isTypedArray([]));
+assert.equal(false, isTypedArray({}));
+assert.equal(false, isTypedArray(/a/g));
+assert.equal(false, isTypedArray(new RegExp('a', 'g')));
+assert.equal(false, isTypedArray(new Date()));
+assert.equal(false, isTypedArray(42));
+assert.equal(false, isTypedArray(NaN));
+assert.equal(false, isTypedArray(Infinity));
+assert.equal(false, isTypedArray(new Number(42)));
+assert.equal(false, isTypedArray('foo'));
+assert.equal(false, isTypedArray(Object('foo')));
+assert.equal(false, isTypedArray(function () {}));
+assert.equal(false, isTypedArray(function* () {}));
+assert.equal(false, isTypedArray(x => x * x));
+assert.equal(false, isTypedArray([]));
+
+assert.ok(isTypedArray(new Int8Array()));
+assert.ok(isTypedArray(new Uint8Array()));
+assert.ok(isTypedArray(new Uint8ClampedArray()));
+assert.ok(isTypedArray(new Int16Array()));
+assert.ok(isTypedArray(new Uint16Array()));
+assert.ok(isTypedArray(new Int32Array()));
+assert.ok(isTypedArray(new Uint32Array()));
+assert.ok(isTypedArray(new Float32Array()));
+assert.ok(isTypedArray(new Float64Array()));
+assert.ok(isTypedArray(new BigInt64Array()));
+assert.ok(isTypedArray(new BigUint64Array()));
+```
+
+## Tests
+Simply clone the repo, `npm install`, and run `npm test`
+
+[package-url]: https://npmjs.org/package/is-typed-array
+[npm-version-svg]: https://versionbadg.es/inspect-js/is-typed-array.svg
+[deps-svg]: https://david-dm.org/inspect-js/is-typed-array.svg
+[deps-url]: https://david-dm.org/inspect-js/is-typed-array
+[dev-deps-svg]: https://david-dm.org/inspect-js/is-typed-array/dev-status.svg
+[dev-deps-url]: https://david-dm.org/inspect-js/is-typed-array#info=devDependencies
+[npm-badge-png]: https://nodei.co/npm/is-typed-array.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/is-typed-array.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/is-typed-array.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=is-typed-array
+[codecov-image]: https://codecov.io/gh/inspect-js/is-typed-array/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/inspect-js/is-typed-array/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-typed-array
+[actions-url]: https://github.com/inspect-js/is-typed-array/actions
diff --git a/node_modules/is-typed-array/index.d.ts b/node_modules/is-typed-array/index.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..73bcf35af29f5a70777b253d7a068210b3f6e557
--- /dev/null
+++ b/node_modules/is-typed-array/index.d.ts
@@ -0,0 +1,9 @@
+import type { TypedArray } from 'which-typed-array';
+
+declare namespace isTypedArray {
+ export { TypedArray };
+}
+
+declare function isTypedArray(value: unknown): value is isTypedArray.TypedArray;
+
+export = isTypedArray;
diff --git a/node_modules/is-typed-array/index.js b/node_modules/is-typed-array/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..6e38c53505d9fddf5c7c890d49f586a4b22fb21e
--- /dev/null
+++ b/node_modules/is-typed-array/index.js
@@ -0,0 +1,8 @@
+'use strict';
+
+var whichTypedArray = require('which-typed-array');
+
+/** @type {import('.')} */
+module.exports = function isTypedArray(value) {
+ return !!whichTypedArray(value);
+};
diff --git a/node_modules/is-typed-array/package.json b/node_modules/is-typed-array/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..a8b1e772df70a6bfdccc0e9362e5dcc20b9914f9
--- /dev/null
+++ b/node_modules/is-typed-array/package.json
@@ -0,0 +1,129 @@
+{
+ "name": "is-typed-array",
+ "version": "1.1.15",
+ "author": {
+ "name": "Jordan Harband",
+ "email": "ljharb@gmail.com",
+ "url": "http://ljharb.codes"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ },
+ "contributors": [
+ {
+ "name": "Jordan Harband",
+ "email": "ljharb@gmail.com",
+ "url": "http://ljharb.codes"
+ }
+ ],
+ "description": "Is this value a JS Typed Array? This module works cross-realm/iframe, does not depend on `instanceof` or mutable properties, and despite ES6 Symbol.toStringTag.",
+ "license": "MIT",
+ "main": "index.js",
+ "types": "./index.d.ts",
+ "sideEffects": false,
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=autogenerated",
+ "prepublishOnly": "safe-publish-latest",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "prelint": "evalmd README.md",
+ "lint": "eslint --ext=js,mjs .",
+ "postlint": "tsc -p . && attw -P",
+ "pretest": "npm run --silent lint",
+ "test": "npm run tests-only && npm run test:harmony",
+ "tests-only": "nyc tape test",
+ "test:harmony": "nyc node --harmony --es-staging test",
+ "posttest": "npx npm@'>= 10.2' audit --production",
+ "version": "auto-changelog && git add CHANGELOG.md",
+ "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
+ },
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/inspect-js/is-typed-array.git"
+ },
+ "keywords": [
+ "array",
+ "TypedArray",
+ "typed array",
+ "is",
+ "typed",
+ "Int8Array",
+ "Uint8Array",
+ "Uint8ClampedArray",
+ "Int16Array",
+ "Uint16Array",
+ "Int32Array",
+ "Uint32Array",
+ "Float32Array",
+ "Float64Array",
+ "ES6",
+ "toStringTag",
+ "Symbol.toStringTag",
+ "@@toStringTag"
+ ],
+ "dependencies": {
+ "which-typed-array": "^1.1.16"
+ },
+ "devDependencies": {
+ "@arethetypeswrong/cli": "^0.17.1",
+ "@ljharb/eslint-config": "^21.1.1",
+ "@ljharb/tsconfig": "^0.2.2",
+ "@types/for-each": "^0.3.3",
+ "@types/is-callable": "^1.1.2",
+ "@types/make-arrow-function": "^1.2.2",
+ "@types/make-generator-function": "^2.0.3",
+ "@types/node": "^20.17.10",
+ "@types/object-inspect": "^1.13.0",
+ "@types/tape": "^5.8.0",
+ "auto-changelog": "^2.5.0",
+ "encoding": "^0.1.13",
+ "eslint": "=8.8.0",
+ "evalmd": "^0.0.19",
+ "for-each": "^0.3.3",
+ "has-tostringtag": "^1.0.2",
+ "in-publish": "^2.0.1",
+ "is-callable": "^1.2.7",
+ "make-arrow-function": "^1.2.0",
+ "make-generator-function": "^2.0.0",
+ "npmignore": "^0.3.1",
+ "nyc": "^10.3.2",
+ "object-inspect": "^1.13.3",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.9.0",
+ "typescript": "next"
+ },
+ "testling": {
+ "files": "test/index.js",
+ "browsers": [
+ "iexplore/6.0..latest",
+ "firefox/3.0..6.0",
+ "firefox/15.0..latest",
+ "firefox/nightly",
+ "chrome/4.0..10.0",
+ "chrome/20.0..latest",
+ "chrome/canary",
+ "opera/10.0..latest",
+ "opera/next",
+ "safari/4.0..latest",
+ "ipad/6.0..latest",
+ "iphone/6.0..latest",
+ "android-browser/4.2"
+ ]
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true,
+ "startingVersion": "1.1.10"
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows"
+ ]
+ }
+}
diff --git a/node_modules/is-typed-array/test/index.js b/node_modules/is-typed-array/test/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..c96e3976f313a52a48dd175f21a91da75bad419d
--- /dev/null
+++ b/node_modules/is-typed-array/test/index.js
@@ -0,0 +1,111 @@
+'use strict';
+
+var test = require('tape');
+var isTypedArray = require('../');
+var isCallable = require('is-callable');
+var hasToStringTag = require('has-tostringtag/shams')();
+var generators = require('make-generator-function')();
+var arrowFn = require('make-arrow-function')();
+var forEach = require('for-each');
+var inspect = require('object-inspect');
+
+var typedArrayNames = [
+ 'Int8Array',
+ 'Uint8Array',
+ 'Uint8ClampedArray',
+ 'Int16Array',
+ 'Uint16Array',
+ 'Int32Array',
+ 'Uint32Array',
+ 'Float32Array',
+ 'Float64Array',
+ 'BigInt64Array',
+ 'BigUint64Array'
+];
+
+test('not arrays', function (t) {
+ t.test('non-number/string primitives', function (st) {
+ // @ts-expect-error Expected 1 arguments, but got 0.ts(2554)
+ st.notOk(isTypedArray(), 'undefined is not typed array');
+ st.notOk(isTypedArray(null), 'null is not typed array');
+ st.notOk(isTypedArray(false), 'false is not typed array');
+ st.notOk(isTypedArray(true), 'true is not typed array');
+ st.end();
+ });
+
+ t.notOk(isTypedArray({}), 'object is not typed array');
+ t.notOk(isTypedArray(/a/g), 'regex literal is not typed array');
+ t.notOk(isTypedArray(new RegExp('a', 'g')), 'regex object is not typed array');
+ t.notOk(isTypedArray(new Date()), 'new Date() is not typed array');
+
+ t.test('numbers', function (st) {
+ st.notOk(isTypedArray(42), 'number is not typed array');
+ st.notOk(isTypedArray(Object(42)), 'number object is not typed array');
+ st.notOk(isTypedArray(NaN), 'NaN is not typed array');
+ st.notOk(isTypedArray(Infinity), 'Infinity is not typed array');
+ st.end();
+ });
+
+ t.test('strings', function (st) {
+ st.notOk(isTypedArray('foo'), 'string primitive is not typed array');
+ st.notOk(isTypedArray(Object('foo')), 'string object is not typed array');
+ st.end();
+ });
+
+ t.end();
+});
+
+test('Functions', function (t) {
+ t.notOk(isTypedArray(function () {}), 'function is not typed array');
+ t.end();
+});
+
+test('Generators', { skip: generators.length === 0 }, function (t) {
+ forEach(generators, function (genFn) {
+ t.notOk(isTypedArray(genFn), 'generator function ' + inspect(genFn) + ' is not typed array');
+ });
+ t.end();
+});
+
+test('Arrow functions', { skip: !arrowFn }, function (t) {
+ t.notOk(isTypedArray(arrowFn), 'arrow function is not typed array');
+ t.end();
+});
+
+test('@@toStringTag', { skip: !hasToStringTag }, function (t) {
+ forEach(typedArrayNames, function (typedArray) {
+ // @ts-expect-error
+ if (typeof global[typedArray] === 'function') {
+ // @ts-expect-error
+ var fakeTypedArray = [];
+ // @ts-expect-error
+ fakeTypedArray[Symbol.toStringTag] = typedArray;
+ // @ts-expect-error
+ t.notOk(isTypedArray(fakeTypedArray), 'faked ' + typedArray + ' is not typed array');
+ } else {
+ t.comment('# SKIP ' + typedArray + ' is not supported');
+ }
+ });
+ t.end();
+});
+
+test('non-Typed Arrays', function (t) {
+ t.notOk(isTypedArray([]), '[] is not typed array');
+ t.end();
+});
+
+/** @typedef {Int8ArrayConstructor | Uint8ArrayConstructor | Uint8ClampedArrayConstructor | Int16ArrayConstructor | Uint16ArrayConstructor | Int32ArrayConstructor | Uint32ArrayConstructor | Float32ArrayConstructor | Float64ArrayConstructor | BigInt64ArrayConstructor | BigUint64ArrayConstructor} TypedArrayConstructor */
+
+test('Typed Arrays', function (t) {
+ forEach(typedArrayNames, function (typedArray) {
+ // @ts-expect-error
+ /** @type {TypedArrayConstructor} */ var TypedArray = global[typedArray];
+ if (isCallable(TypedArray)) {
+ var arr = new TypedArray(10);
+ t.ok(isTypedArray(arr), 'new ' + typedArray + '(10) is typed array');
+ } else {
+ t.comment('# SKIP ' + typedArray + ' is not supported');
+ }
+ });
+ t.end();
+});
diff --git a/node_modules/is-typed-array/tsconfig.json b/node_modules/is-typed-array/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..ac228e22653e8847873f9c675f7c7bc2ef16bb9e
--- /dev/null
+++ b/node_modules/is-typed-array/tsconfig.json
@@ -0,0 +1,6 @@
+{
+ "extends": "@ljharb/tsconfig",
+ "exclude": [
+ "coverage",
+ ],
+}
diff --git a/node_modules/is-weakmap/.editorconfig b/node_modules/is-weakmap/.editorconfig
new file mode 100644
index 0000000000000000000000000000000000000000..8f9d77e2dc2ccfe65326efc167617a2f85fd5e30
--- /dev/null
+++ b/node_modules/is-weakmap/.editorconfig
@@ -0,0 +1,15 @@
+root = true
+
+[*]
+indent_style = tab
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+[{package.json,*.yml}]
+indent_style = space
+indent_size = 2
+
+[*.md]
+trim_trailing_whitespace = false
diff --git a/node_modules/is-weakmap/.eslintrc b/node_modules/is-weakmap/.eslintrc
new file mode 100644
index 0000000000000000000000000000000000000000..3b5d9e90ec405f85dd7f9066656efccc51193697
--- /dev/null
+++ b/node_modules/is-weakmap/.eslintrc
@@ -0,0 +1,5 @@
+{
+ "root": true,
+
+ "extends": "@ljharb",
+}
diff --git a/node_modules/is-weakmap/.github/FUNDING.yml b/node_modules/is-weakmap/.github/FUNDING.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0c76bf951e69296b06faef8a35dc79f23165eff5
--- /dev/null
+++ b/node_modules/is-weakmap/.github/FUNDING.yml
@@ -0,0 +1,12 @@
+# These are supported funding model platforms
+
+github: [ljharb]
+patreon: # Replace with a single Patreon username
+open_collective: # Replace with a single Open Collective username
+ko_fi: # Replace with a single Ko-fi username
+tidelift: npm/is-weakmap
+community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
+liberapay: # Replace with a single Liberapay username
+issuehunt: # Replace with a single IssueHunt username
+otechie: # Replace with a single Otechie username
+custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/node_modules/is-weakmap/.nycrc b/node_modules/is-weakmap/.nycrc
new file mode 100644
index 0000000000000000000000000000000000000000..bdd626ce91477abbdd489b79988baebadbd3c897
--- /dev/null
+++ b/node_modules/is-weakmap/.nycrc
@@ -0,0 +1,9 @@
+{
+ "all": true,
+ "check-coverage": false,
+ "reporter": ["text-summary", "text", "html", "json"],
+ "exclude": [
+ "coverage",
+ "test"
+ ]
+}
diff --git a/node_modules/is-weakmap/CHANGELOG.md b/node_modules/is-weakmap/CHANGELOG.md
new file mode 100644
index 0000000000000000000000000000000000000000..d50c5b2c3ca922b878a392bc573ff311d9ca67d1
--- /dev/null
+++ b/node_modules/is-weakmap/CHANGELOG.md
@@ -0,0 +1,83 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [v2.0.2](https://github.com/inspect-js/is-weakmap/compare/v2.0.1...v2.0.2) - 2024-03-08
+
+### Commits
+
+- [actions] reuse common workflows [`0af1292`](https://github.com/inspect-js/is-weakmap/commit/0af1292f196cb1192acd4cea1b2eef00267a7e35)
+- [Tests] migrate tests to Github Actions [`f35679b`](https://github.com/inspect-js/is-weakmap/commit/f35679bad4f11be0b6e46aae85cbcab14d8a107e)
+- [actions] use `node/install` instead of `node/run`; use `codecov` action [`cd2f0fa`](https://github.com/inspect-js/is-weakmap/commit/cd2f0fa90293650cfdad8b933f976445071b34c9)
+- add types [`6e28e6a`](https://github.com/inspect-js/is-weakmap/commit/6e28e6ab76e9227aefdf39049f261873e5b391b6)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `es6-shim`, `object-inspect`, `tape` [`95815ce`](https://github.com/inspect-js/is-weakmap/commit/95815ce0e51ce37fa799314828ad87e73a08b37d)
+- [readme] update URLs [`2c4eb0b`](https://github.com/inspect-js/is-weakmap/commit/2c4eb0bec14e5015da378a8b6547b2740d7bcff3)
+- [Tests] run `nyc` on all tests; use `tape` runner [`0a45b37`](https://github.com/inspect-js/is-weakmap/commit/0a45b37a18afc28476e39f9fdf0fb42c78a1ff4c)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `object-inspect`, `safe-publish-latest`, `tape` [`ffe9459`](https://github.com/inspect-js/is-weakmap/commit/ffe945997accbae9583f76bd695559b0ba50274d)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `es5-shim`, `object-inspect`, `tape` [`c3c2f11`](https://github.com/inspect-js/is-weakmap/commit/c3c2f1176078dedf5138b7928b539c3a26e72685)
+- [actions] remove redundant finisher [`afa4018`](https://github.com/inspect-js/is-weakmap/commit/afa4018a6759b7c603c7c104a8035295ea6eb2eb)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `auto-changelog`, `core-js`, `es5-shim`, `object-inspect`, `safe-publish-latest`, `tape` [`3f22fc1`](https://github.com/inspect-js/is-weakmap/commit/3f22fc126fc442c020858266af7c46a741638e62)
+- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `es6-shim`, `npmignore`, `object-inspect`, `tape` [`84ba754`](https://github.com/inspect-js/is-weakmap/commit/84ba7549ce1ef2f01d4aae6436b821c52fe49b22)
+- [actions] update rebase action to use reusable workflow [`def85cb`](https://github.com/inspect-js/is-weakmap/commit/def85cb49bff74528f5e13610ca8b823fbb02aae)
+- [actions] update codecov uploader [`659031e`](https://github.com/inspect-js/is-weakmap/commit/659031e04714fe5a0225501a6f2589d8fae0d046)
+- [actions] add "Allow Edits" workflow [`a916e89`](https://github.com/inspect-js/is-weakmap/commit/a916e8952f0ac5091704ce8fd3e7dfd3c265c2e1)
+- [readme] remove travis badge [`01d0c7d`](https://github.com/inspect-js/is-weakmap/commit/01d0c7d19354ac73968be67290b81becfff428cf)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `object-inspect`, `tape` [`ad90d06`](https://github.com/inspect-js/is-weakmap/commit/ad90d063213d305a6c8226f5a45d8991f74eb10a)
+- [meta] use `npmignore` to autogenerate an npmignore file [`8b0b44f`](https://github.com/inspect-js/is-weakmap/commit/8b0b44f77be97b3c6c09c1ff7464a23774dd9ee6)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `es5-shim`, `tape` [`9d8a683`](https://github.com/inspect-js/is-weakmap/commit/9d8a683d23d755fe6d55364d0c7ebee65af572de)
+- [Tests] add `core-js` tests [`8ba8d2b`](https://github.com/inspect-js/is-weakmap/commit/8ba8d2b07b126b5c87a2ba837984337cde9e9ab9)
+- [readme] add actions and codecov badges [`49769ce`](https://github.com/inspect-js/is-weakmap/commit/49769ce6e57edb6a1461b4c786ca3ef7609a7972)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`377dfac`](https://github.com/inspect-js/is-weakmap/commit/377dfac3dfc0ad193a45d1d2bd13c1e5f00194f8)
+- [actions] switch Automatic Rease workflow to `pull_request_target` event [`00f8c17`](https://github.com/inspect-js/is-weakmap/commit/00f8c172d18c929dc6a5b43fe1854a7742200432)
+- [Dev Deps] update `es5-shim`, `tape` [`3a82ee8`](https://github.com/inspect-js/is-weakmap/commit/3a82ee8aff1d5f3c450edac1d4c96d824918d42c)
+- [meta] add missing `engines.node` [`3671b4f`](https://github.com/inspect-js/is-weakmap/commit/3671b4f0b2f07d03c447d2297807c17bbbaf313e)
+- [meta] use `prepublishOnly` script for npm 7+ [`2a5d5ea`](https://github.com/inspect-js/is-weakmap/commit/2a5d5ea541d3a25667a549fbdc95f7969791c7ba)
+- [Dev Deps] update `auto-changelog`; add `aud` [`595583b`](https://github.com/inspect-js/is-weakmap/commit/595583b5a1383ab3768038f8532d87e85d7fa1f2)
+- [readme] remove dead badges [`4d6cb2c`](https://github.com/inspect-js/is-weakmap/commit/4d6cb2cc35abd931e52abc4bc915eafc9d6f74b9)
+- [Tests] run all tests on `npm test` [`9da2487`](https://github.com/inspect-js/is-weakmap/commit/9da24874b64807159d1f80add60804ccf32ac84a)
+- [Tests] only audit prod deps [`2f9281a`](https://github.com/inspect-js/is-weakmap/commit/2f9281aa6fc26b15353515a089f2a312cf48b081)
+- [meta] add `sideEffects` flag [`b9c8797`](https://github.com/inspect-js/is-weakmap/commit/b9c87974922c16768f1cf11bf450ca7d5dc55ef9)
+
+## [v2.0.1](https://github.com/inspect-js/is-weakmap/compare/v2.0.0...v2.0.1) - 2019-12-17
+
+### Fixed
+
+- [Refactor] avoid top-level return, because babel and webpack are broken [`#79`](https://github.com/inspect-js/node-deep-equal/issues/79) [`#78`](https://github.com/inspect-js/node-deep-equal/issues/78) [`#7`](https://github.com/es-shims/Promise.allSettled/issues/7) [`#12`](https://github.com/airbnb/js-shims/issues/12)
+
+### Commits
+
+- [actions] add automatic rebasing / merge commit blocking [`4fa3010`](https://github.com/inspect-js/is-weakmap/commit/4fa301026787589c5a061072fda64b11d65bda18)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`44bafb6`](https://github.com/inspect-js/is-weakmap/commit/44bafb65829d687fcf8205d0c451cc407d96463c)
+
+## [v2.0.0](https://github.com/inspect-js/is-weakmap/compare/v1.0.1...v2.0.0) - 2019-11-12
+
+### Commits
+
+- Initial commit [`6e9bd4a`](https://github.com/inspect-js/is-weakmap/commit/6e9bd4a0d61deadbf40d9875033ebdf430924236)
+- Tests [`61985dd`](https://github.com/inspect-js/is-weakmap/commit/61985ddf042687f2c6d8c884200f576e9cc0f29d)
+- implementation [`67b468d`](https://github.com/inspect-js/is-weakmap/commit/67b468db3390671c14ad656d3489e7422151b2bf)
+- readme [`b0ed982`](https://github.com/inspect-js/is-weakmap/commit/b0ed9826547c25cfe2ed0c6e1258d407cb76e6f4)
+- npm init [`54a1f81`](https://github.com/inspect-js/is-weakmap/commit/54a1f815702bde057a83d6bc0d69816c3644d698)
+- [meta] add `funding` field; create `FUNDING.yml` [`74579bc`](https://github.com/inspect-js/is-weakmap/commit/74579bc96345f9d15392b384d765204f398fb3c3)
+- [meta] add `safe-publish-latest`, `auto-changelog` [`9495b13`](https://github.com/inspect-js/is-weakmap/commit/9495b13cea989c344fbb5747f1471feb24f35959)
+- [Tests] add `npm run lint` [`4d4657d`](https://github.com/inspect-js/is-weakmap/commit/4d4657d396ec9e2b6625b937fcc8794bd5583fd3)
+- [Tests] use shared travis-ci configs [`1db25d5`](https://github.com/inspect-js/is-weakmap/commit/1db25d515fa042c39828c3cbfac65667722a679b)
+- Only apps should have lockfiles [`f6b0152`](https://github.com/inspect-js/is-weakmap/commit/f6b015293a4702c9cb7672a364d725ae6cc8bca8)
+- [Tests] add `npx aud` in `posttest` [`35dce96`](https://github.com/inspect-js/is-weakmap/commit/35dce964f73ef11237d12b0759468526e0e628a2)
+
+## [v1.0.1](https://github.com/inspect-js/is-weakmap/compare/v1.0.0...v1.0.1) - 2015-08-31
+
+### Commits
+
+- Add XO [`180fb3e`](https://github.com/inspect-js/is-weakmap/commit/180fb3edf1ab1a2a449bdf5fae5911115d804f44)
+- tweaks [`b0d7b30`](https://github.com/inspect-js/is-weakmap/commit/b0d7b307d191513ee6fae80dda81db4bfe9ace00)
+- Add `related` section to readme [`5644247`](https://github.com/inspect-js/is-weakmap/commit/5644247240a74bc19ea2791f0b609a98a4af5f9f)
+
+## v1.0.0 - 2015-02-18
+
+### Commits
+
+- init [`837063d`](https://github.com/inspect-js/is-weakmap/commit/837063d1ac83ce194eda9135562113c035df4346)
diff --git a/node_modules/is-weakmap/LICENSE b/node_modules/is-weakmap/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..c05eb206bdf4955213919987028657acd99ed92c
--- /dev/null
+++ b/node_modules/is-weakmap/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 Inspect JS
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/is-weakmap/README.md b/node_modules/is-weakmap/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..7487e5d790cf8a42929d262e58d20a4906b0fb5e
--- /dev/null
+++ b/node_modules/is-weakmap/README.md
@@ -0,0 +1,50 @@
+# is-weakmap [![Version Badge][npm-version-svg]][package-url]
+
+[![github actions][actions-image]][actions-url]
+[![coverage][codecov-image]][codecov-url]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][npm-badge-png]][package-url]
+
+Is this value a JS WeakMap? This module works cross-realm/iframe, and despite ES6 @@toStringTag.
+
+## Example
+
+```js
+var isWeakMap = require('is-weakmap');
+assert(!isWeakMap(function () {}));
+assert(!isWeakMap(null));
+assert(!isWeakMap(function* () { yield 42; return Infinity; });
+assert(!isWeakMap(Symbol('foo')));
+assert(!isWeakMap(1n));
+assert(!isWeakMap(Object(1n)));
+
+assert(!isWeakMap(new Set()));
+assert(!isWeakMap(new WeakSet()));
+assert(!isWeakMap(new Map()));
+
+assert(isWeakMap(new WeakMap()));
+
+class MyWeakMap extends WeakMap {}
+assert(isWeakMap(new MyWeakMap()));
+```
+
+## Tests
+Simply clone the repo, `npm install`, and run `npm test`
+
+[package-url]: https://npmjs.org/package/is-weakmap
+[npm-version-svg]: https://versionbadg.es/inspect-js/is-weakmap.svg
+[deps-svg]: https://david-dm.org/inspect-js/is-weakmap.svg
+[deps-url]: https://david-dm.org/inspect-js/is-weakmap
+[dev-deps-svg]: https://david-dm.org/inspect-js/is-weakmap/dev-status.svg
+[dev-deps-url]: https://david-dm.org/inspect-js/is-weakmap#info=devDependencies
+[npm-badge-png]: https://nodei.co/npm/is-weakmap.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/is-weakmap.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/is-weakmap.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=is-weakmap
+[codecov-image]: https://codecov.io/gh/inspect-js/is-weakmap/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/inspect-js/is-weakmap/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-weakmap
+[actions-url]: https://github.com/inspect-js/is-weakmap/actions
diff --git a/node_modules/is-weakmap/index.d.ts b/node_modules/is-weakmap/index.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..81ed323817ebe5b2a8e0f18ef8fc785f13b44ad6
--- /dev/null
+++ b/node_modules/is-weakmap/index.d.ts
@@ -0,0 +1,3 @@
+declare function isWeakMap(value: unknown): value is WeakMap;
+
+export = isWeakMap;
\ No newline at end of file
diff --git a/node_modules/is-weakmap/index.js b/node_modules/is-weakmap/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..b7f6e9f22d95fb293ad2b955a9bf01f2d203f87c
--- /dev/null
+++ b/node_modules/is-weakmap/index.js
@@ -0,0 +1,46 @@
+'use strict';
+
+var $WeakMap = typeof WeakMap === 'function' && WeakMap.prototype ? WeakMap : null;
+var $WeakSet = typeof WeakSet === 'function' && WeakSet.prototype ? WeakSet : null;
+
+var exported;
+
+if (!$WeakMap) {
+ /** @type {import('.')} */
+ // eslint-disable-next-line no-unused-vars
+ exported = function isWeakMap(x) {
+ // `WeakMap` is not present in this environment.
+ return false;
+ };
+}
+
+var $mapHas = $WeakMap ? $WeakMap.prototype.has : null;
+var $setHas = $WeakSet ? $WeakSet.prototype.has : null;
+if (!exported && !$mapHas) {
+ /** @type {import('.')} */
+ // eslint-disable-next-line no-unused-vars
+ exported = function isWeakMap(x) {
+ // `WeakMap` does not have a `has` method
+ return false;
+ };
+}
+
+/** @type {import('.')} */
+module.exports = exported || function isWeakMap(x) {
+ if (!x || typeof x !== 'object') {
+ return false;
+ }
+ try {
+ $mapHas.call(x, $mapHas);
+ if ($setHas) {
+ try {
+ $setHas.call(x, $setHas);
+ } catch (e) {
+ return true;
+ }
+ }
+ // @ts-expect-error TS can't figure out that $WeakMap is always truthy here
+ return x instanceof $WeakMap; // core-js workaround, pre-v3
+ } catch (e) {}
+ return false;
+};
diff --git a/node_modules/is-weakmap/package.json b/node_modules/is-weakmap/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..7eb770598a6a7fe68e4efcef67a5571065496cb2
--- /dev/null
+++ b/node_modules/is-weakmap/package.json
@@ -0,0 +1,81 @@
+{
+ "name": "is-weakmap",
+ "version": "2.0.2",
+ "description": "Is this value a JS WeakMap? This module works cross-realm/iframe, and despite ES6 @@toStringTag.",
+ "main": "index.js",
+ "sideEffects": true,
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=autogenerated",
+ "version": "auto-changelog && git add CHANGELOG.md",
+ "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"",
+ "prepublishOnly": "safe-publish-latest",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "pretest": "npm run lint",
+ "lint": "eslint --ext=js,mjs .",
+ "postlint": "tsc -p . && attw -P",
+ "tests-only": "nyc tape 'test/**/*.js'",
+ "tests:shims": "nyc tape --require=es5-shim --require=es5-shim 'test/**/*.js'",
+ "tests:corejs": "nyc tape --require=core-js 'test/**/*.js'",
+ "test": "npm run tests-only && npm run tests:shims && npm run tests:corejs",
+ "posttest": "aud --production"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/inspect-js/is-weakmap.git"
+ },
+ "keywords": [
+ "map",
+ "weakmap",
+ "set",
+ "weakset",
+ "collection",
+ "is",
+ "robust"
+ ],
+ "author": "Jordan Harband ",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ },
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/inspect-js/is-weakmap/issues"
+ },
+ "homepage": "https://github.com/inspect-js/is-weakmap#readme",
+ "devDependencies": {
+ "@arethetypeswrong/cli": "^0.15.0",
+ "@ljharb/eslint-config": "^21.1.0",
+ "@types/for-each": "^0.3.3",
+ "@types/object-inspect": "^1.8.4",
+ "@types/tape": "^5.6.4",
+ "aud": "^2.0.4",
+ "auto-changelog": "^2.4.0",
+ "core-js": "^2.6.12",
+ "es5-shim": "^4.6.7",
+ "es6-shim": "^0.35.8",
+ "eslint": "=8.8.0",
+ "for-each": "^0.3.3",
+ "in-publish": "^2.0.1",
+ "npmignore": "^0.3.1",
+ "nyc": "^10.3.2",
+ "object-inspect": "^1.13.1",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.7.5",
+ "typescript": "next"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows"
+ ]
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+}
diff --git a/node_modules/is-weakmap/test/index.js b/node_modules/is-weakmap/test/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..5ca660078669877aa71b965a8314ca7770a4d827
--- /dev/null
+++ b/node_modules/is-weakmap/test/index.js
@@ -0,0 +1,59 @@
+'use strict';
+
+var test = require('tape');
+var debug = require('object-inspect');
+var forEach = require('for-each');
+
+var isWeakMap = require('..');
+
+test('non-collections', function (t) {
+ forEach([
+ null,
+ undefined,
+ true,
+ false,
+ 42,
+ 0,
+ -0,
+ NaN,
+ Infinity,
+ '',
+ 'foo',
+ /a/g,
+ [],
+ {},
+ function () {}
+ ], function (nonCollection) {
+ t.equal(isWeakMap(nonCollection), false, debug(nonCollection) + ' is not a WeakMap');
+ });
+
+ t.end();
+});
+
+test('Maps', { skip: typeof Map !== 'function' }, function (t) {
+ var m = new Map();
+ t.equal(isWeakMap(m), false, debug(m) + ' is not a WeakMap');
+
+ t.end();
+});
+
+test('Sets', { skip: typeof Set !== 'function' }, function (t) {
+ var s = new Set();
+ t.equal(isWeakMap(s), false, debug(s) + ' is not a WeakMap');
+
+ t.end();
+});
+
+test('WeakMaps', { skip: typeof WeakMap !== 'function' }, function (t) {
+ var wm = new WeakMap();
+ t.equal(isWeakMap(wm), true, debug(wm) + ' is a WeakMap');
+
+ t.end();
+});
+
+test('WeakSets', { skip: typeof WeakSet !== 'function' }, function (t) {
+ var ws = new WeakSet();
+ t.equal(isWeakMap(ws), false, debug(ws) + ' is not a WeakMap');
+
+ t.end();
+});
diff --git a/node_modules/is-weakmap/tsconfig.json b/node_modules/is-weakmap/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..2002ce5a53532769b9b5bc561dac11518c384d13
--- /dev/null
+++ b/node_modules/is-weakmap/tsconfig.json
@@ -0,0 +1,49 @@
+{
+ "compilerOptions": {
+ /* Visit https://aka.ms/tsconfig to read more about this file */
+
+ /* Projects */
+
+ /* Language and Environment */
+ "target": "ESNext", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
+ // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
+ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
+ "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
+ // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
+
+ /* Modules */
+ "module": "commonjs", /* Specify what module code is generated. */
+ // "rootDir": "./", /* Specify the root folder within your source files. */
+ // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */
+ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
+ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
+ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
+ "typeRoots": ["types"], /* Specify multiple folders that act like './node_modules/@types'. */
+ "resolveJsonModule": true, /* Enable importing .json files. */
+ // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */
+
+ /* JavaScript Support */
+ "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
+ "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
+ "maxNodeModuleJsDepth": 0, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
+
+ /* Emit */
+ "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
+ "declarationMap": true, /* Create sourcemaps for d.ts files. */
+ "noEmit": true, /* Disable emitting files from a compilation. */
+
+ /* Interop Constraints */
+ "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
+ "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
+ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
+
+ /* Type Checking */
+ "strict": true, /* Enable all strict type-checking options. */
+
+ /* Completeness */
+ //"skipLibCheck": true /* Skip type checking all .d.ts files. */
+ },
+ "exclude": [
+ "coverage"
+ ]
+}
diff --git a/node_modules/is-weakref/.eslintrc b/node_modules/is-weakref/.eslintrc
new file mode 100644
index 0000000000000000000000000000000000000000..3b5d9e90ec405f85dd7f9066656efccc51193697
--- /dev/null
+++ b/node_modules/is-weakref/.eslintrc
@@ -0,0 +1,5 @@
+{
+ "root": true,
+
+ "extends": "@ljharb",
+}
diff --git a/node_modules/is-weakref/.github/FUNDING.yml b/node_modules/is-weakref/.github/FUNDING.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a9ccddf2a7550f55f37d951fb6b273237d609f9f
--- /dev/null
+++ b/node_modules/is-weakref/.github/FUNDING.yml
@@ -0,0 +1,12 @@
+# These are supported funding model platforms
+
+github: [ljharb]
+patreon: # Replace with a single Patreon username
+open_collective: # Replace with a single Open Collective username
+ko_fi: # Replace with a single Ko-fi username
+tidelift: npm/is-weakref
+community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
+liberapay: # Replace with a single Liberapay username
+issuehunt: # Replace with a single IssueHunt username
+otechie: # Replace with a single Otechie username
+custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/node_modules/is-weakref/.nycrc b/node_modules/is-weakref/.nycrc
new file mode 100644
index 0000000000000000000000000000000000000000..bdd626ce91477abbdd489b79988baebadbd3c897
--- /dev/null
+++ b/node_modules/is-weakref/.nycrc
@@ -0,0 +1,9 @@
+{
+ "all": true,
+ "check-coverage": false,
+ "reporter": ["text-summary", "text", "html", "json"],
+ "exclude": [
+ "coverage",
+ "test"
+ ]
+}
diff --git a/node_modules/is-weakref/CHANGELOG.md b/node_modules/is-weakref/CHANGELOG.md
new file mode 100644
index 0000000000000000000000000000000000000000..a94bcc1bac3a32674b7033abc63568202d669789
--- /dev/null
+++ b/node_modules/is-weakref/CHANGELOG.md
@@ -0,0 +1,82 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [v1.1.1](https://github.com/inspect-js/is-weakref/compare/v1.1.0...v1.1.1) - 2025-02-03
+
+### Commits
+
+- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/tsconfig`, `@types/tape`, `for-each` [`e0bccbc`](https://github.com/inspect-js/is-weakref/commit/e0bccbcfc4fa0176ef6e07876fcf67b2d7a99884)
+- [types] use WeakKey instead of object [`9ec7583`](https://github.com/inspect-js/is-weakref/commit/9ec75834bfceb6b153bf6a55f9e410fe5ecdb90a)
+- [Deps] update `call-bound` [`7655eb0`](https://github.com/inspect-js/is-weakref/commit/7655eb01853dda6ac7ad85c067e290ff18ce1879)
+
+## [v1.1.0](https://github.com/inspect-js/is-weakref/compare/v1.0.2...v1.1.0) - 2024-12-13
+
+### Commits
+
+- [meta] use `npmignore` to autogenerate an npmignore file [`34494a3`](https://github.com/inspect-js/is-weakref/commit/34494a3a7df0b144fbb55b578ee383d676a5b3df)
+- [actions] split out node 10-20, and 20+ [`78cb11d`](https://github.com/inspect-js/is-weakref/commit/78cb11d8a02f028c9566f8a75cfc516d4f789c15)
+- [New] add types [`f4ceaf5`](https://github.com/inspect-js/is-weakref/commit/f4ceaf53638c97c65ebe2342080acd931443833d)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `object-inspect`, `tape` [`24fccf5`](https://github.com/inspect-js/is-weakref/commit/24fccf5ac81aa562a87fa5354fb9bb26e43fb95f)
+- [actions] update rebase action to use reusable workflow [`b27c6e9`](https://github.com/inspect-js/is-weakref/commit/b27c6e90004d71627bebbac846213e980ea988ce)
+- [Dev Deps] update `@ljharb/eslint-config`, `auto-changelog`, `npmignore`, `object-inspect`, `tape` [`30fe836`](https://github.com/inspect-js/is-weakref/commit/30fe836a57043092f400739c0e5190d5651bf8db)
+- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `object-inspect`, `tape` [`0185ba7`](https://github.com/inspect-js/is-weakref/commit/0185ba74824e9122bdcc42b929a4d3017779041f)
+- [Refactor] use `call-bound` directly [`641d87c`](https://github.com/inspect-js/is-weakref/commit/641d87c36f6a7a19fafee6840be5fe06e216b355)
+- [meta] add missing `engines.node` [`8543506`](https://github.com/inspect-js/is-weakref/commit/8543506b1a11dca0c7d041d5e822acae4a027f0b)
+- [Tests] replace `aud` with `npm audit` [`883c75c`](https://github.com/inspect-js/is-weakref/commit/883c75cfa404dbbf1aba2547c023ee48745baad0)
+- [Deps] update `call-bind` [`805de0e`](https://github.com/inspect-js/is-weakref/commit/805de0e6b9649bceb144cb323bcadc499ff42d66)
+- [Deps] update `call-bind` [`6a7ee43`](https://github.com/inspect-js/is-weakref/commit/6a7ee43f7bd6a9197daa7f9fcd0378c22d7066ca)
+- [Dev Deps] update `object-inspect` [`d3d6a99`](https://github.com/inspect-js/is-weakref/commit/d3d6a992e4ac41e93743b25556c4adeee3f0ab05)
+- [meta] add `sideEffects` flag [`2b13054`](https://github.com/inspect-js/is-weakref/commit/2b13054ee66de02d38fdf3d18d61552c871ac5a3)
+- [Dev Deps] add missing peer dep [`54cb0bc`](https://github.com/inspect-js/is-weakref/commit/54cb0bc2d4bd1aa11714d15feb671e3dc085eaf0)
+
+## [v1.0.2](https://github.com/inspect-js/is-weakref/compare/v1.0.1...v1.0.2) - 2021-12-10
+
+### Commits
+
+- [actions] reuse common workflows [`2375b1f`](https://github.com/inspect-js/is-weakref/commit/2375b1f9798b08c7af98481bbb38b4105835dacf)
+- [meta] do not publish workflow files [`4c1be42`](https://github.com/inspect-js/is-weakref/commit/4c1be423afacabf2f3aa9e8bf02f668bdeaf3a20)
+- [actions] use `node/install` instead of `node/run`; use `codecov` action [`7ec78ce`](https://github.com/inspect-js/is-weakref/commit/7ec78ce58c7553469eee97ae82fe147dfccde611)
+- [readme] update URLs [`6306f09`](https://github.com/inspect-js/is-weakref/commit/6306f09a7df388150fb1d0b855b6f9e60165a457)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `object-inspect`, `safe-publish-latest`, `tape` [`7a1601e`](https://github.com/inspect-js/is-weakref/commit/7a1601e93ae50a791751a96d33073f5e65f3d3c9)
+- [readme] add actions and codecov badges [`67ecd14`](https://github.com/inspect-js/is-weakref/commit/67ecd14b8b0192456932d1d54838accbf90ff5c0)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `auto-changelog`, `object-inspect`, `safe-publish-latest`, `tape` [`1a5013b`](https://github.com/inspect-js/is-weakref/commit/1a5013bddcb9edc23025571810f9a2eebda53683)
+- [actions] update codecov uploader [`b57b037`](https://github.com/inspect-js/is-weakref/commit/b57b037a547f3ecfa3d3f079a8015ec005c7181b)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `object-inspect`, `tape` [`da49017`](https://github.com/inspect-js/is-weakref/commit/da49017800d628c9bcd2f094d49783d6ee649c50)
+- [meta] simplify "exports" [`9b88835`](https://github.com/inspect-js/is-weakref/commit/9b8883585506c135a3fcb9f55d0944a13b4eb3e6)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`c7e77f4`](https://github.com/inspect-js/is-weakref/commit/c7e77f495308f3385adfaa1f4ac78a2632e0bcde)
+- [Dev Deps] update `eslint` [`417b29e`](https://github.com/inspect-js/is-weakref/commit/417b29e7ceacebe24aef15422544443f4b59e181)
+- [meta] add `safe-publish-latest`; use `prepublishOnly` script for npm 7+ [`b1b99f4`](https://github.com/inspect-js/is-weakref/commit/b1b99f45e0977d10f8472e9272e48a696145c2b1)
+- [Deps] update `call-bind` [`aea342e`](https://github.com/inspect-js/is-weakref/commit/aea342e9e301deeb938e62b92a37cf991c5f7dbc)
+- [actions] update workflows [`786c2d3`](https://github.com/inspect-js/is-weakref/commit/786c2d3dd4486acec09786220d3dd9fd48e70e93)
+
+## [v1.0.1](https://github.com/inspect-js/is-weakref/compare/v1.0.0...v1.0.1) - 2020-12-04
+
+### Commits
+
+- [Tests] migrate tests to Github Actions [`05b4faa`](https://github.com/inspect-js/is-weakref/commit/05b4faa167c67f42c792e35c07adcb6b87e7dea0)
+- [Tests] run `nyc` on all tests [`8df2e4b`](https://github.com/inspect-js/is-weakref/commit/8df2e4bd66bb6b7d55f389f28e6bb167fe1deb5a)
+- [actions] add "Allow Edits" workflow [`4a716b8`](https://github.com/inspect-js/is-weakref/commit/4a716b8fcc025fe889a0f09ccaee7a9f748b1c66)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `object-inspect` [`be23cf3`](https://github.com/inspect-js/is-weakref/commit/be23cf305f46db8b1c8a26d1c74b096fdba00056)
+- [Refactor] use `call-bind` instead of `es-abstract` [`a933a96`](https://github.com/inspect-js/is-weakref/commit/a933a9643ddf7cddfd9f9f3cf44d675cc4c86ce5)
+- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`4473ed2`](https://github.com/inspect-js/is-weakref/commit/4473ed2e73fed47cd2fa42b8d9cac17e941d2c08)
+- [readme] remove travis badge [`bd3bfcd`](https://github.com/inspect-js/is-weakref/commit/bd3bfcd2c187099d2215232a7621fb960e1e2807)
+
+## v1.0.0 - 2020-08-01
+
+### Commits
+
+- Initial commit [`dd86394`](https://github.com/inspect-js/is-weakref/commit/dd86394d7da000724c6e17c79077879c381e9ea3)
+- readme [`f4defca`](https://github.com/inspect-js/is-weakref/commit/f4defcac48d1d99b019b596ab26bd868de1adfe9)
+- Tests [`13d8139`](https://github.com/inspect-js/is-weakref/commit/13d8139dedf424239daf357261c39d3f8c33d662)
+- npm init [`55a2bb7`](https://github.com/inspect-js/is-weakref/commit/55a2bb7c53b893396a51da969e352702cafe9a0e)
+- Implementation [`1ec84e3`](https://github.com/inspect-js/is-weakref/commit/1ec84e36de4315d44c8da540faa27836832bb0f3)
+- [meta] add auto-changelog [`ab9ce44`](https://github.com/inspect-js/is-weakref/commit/ab9ce44be717312c5221bf3d2f3f6d2dd8c6ac88)
+- [actions] add automatic rebasing / merge commit blocking [`3d3f4d5`](https://github.com/inspect-js/is-weakref/commit/3d3f4d54bed6e455b2a0d0f20c87d454bf78af26)
+- [meta] add "funding"; create `FUNDING.yml` [`f35ef3d`](https://github.com/inspect-js/is-weakref/commit/f35ef3de16eb06447acf3c39bdc164ba0e7bdf45)
+- [Tests] add `npm run lint` [`af2123d`](https://github.com/inspect-js/is-weakref/commit/af2123d4754c14f7befa66ba01e1d72858723651)
+- [Tests] use shared travis-ci configs [`042b4de`](https://github.com/inspect-js/is-weakref/commit/042b4dec08d882ae9137f4ad05ae24a1457da0f8)
+- Only apps should have lockfiles [`fcae604`](https://github.com/inspect-js/is-weakref/commit/fcae604cb1422faae9311dd4219032895c0a9a2e)
diff --git a/node_modules/is-weakref/LICENSE b/node_modules/is-weakref/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..707437b5750a24d0ed2dd693ce221283ff4508a0
--- /dev/null
+++ b/node_modules/is-weakref/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2020 Inspect JS
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/is-weakref/README.md b/node_modules/is-weakref/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..abbb978bf32cf48d6bbbd546fe77dcb46bd34ce7
--- /dev/null
+++ b/node_modules/is-weakref/README.md
@@ -0,0 +1,52 @@
+# is-weakref [![Version Badge][npm-version-svg]][package-url]
+
+[![github actions][actions-image]][actions-url]
+[![coverage][codecov-image]][codecov-url]
+[![dependency status][deps-svg]][deps-url]
+[![dev dependency status][dev-deps-svg]][dev-deps-url]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][11]][1]
+
+Is this value a JS WeakRef? This module works cross-realm/iframe, and despite ES6 @@toStringTag.
+
+## Example
+
+```js
+var isWeakRef = require('is-weakref');
+assert(!isWeakRef(function () {}));
+assert(!isWeakRef(null));
+assert(!isWeakRef(function* () { yield 42; return Infinity; });
+assert(!isWeakRef(Symbol('foo')));
+assert(!isWeakRef(1n));
+assert(!isWeakRef(Object(1n)));
+
+assert(!isWeakRef(new Set()));
+assert(!isWeakRef(new WeakSet()));
+assert(!isWeakRef(new Map()));
+assert(!isWeakRef(new WeakMap()));
+
+assert(isWeakRef(new WeakRef({})));
+
+class MyWeakRef extends WeakRef {}
+assert(isWeakRef(new MyWeakRef({})));
+```
+
+## Tests
+Simply clone the repo, `npm install`, and run `npm test`
+
+[package-url]: https://npmjs.org/package/is-weakref
+[npm-version-svg]: https://versionbadg.es/inspect-js/is-weakref.svg
+[deps-svg]: https://david-dm.org/inspect-js/is-weakref.svg
+[deps-url]: https://david-dm.org/inspect-js/is-weakref
+[dev-deps-svg]: https://david-dm.org/inspect-js/is-weakref/dev-status.svg
+[dev-deps-url]: https://david-dm.org/inspect-js/is-weakref#info=devDependencies
+[license-image]: https://img.shields.io/npm/l/is-weakref.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/is-weakref.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=is-weakref
+[codecov-image]: https://codecov.io/gh/inspect-js/is-weakref/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/inspect-js/is-weakref/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-weakref
+[actions-url]: https://github.com/inspect-js/is-weakref/actions
diff --git a/node_modules/is-weakref/index.d.ts b/node_modules/is-weakref/index.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..7f67ae4f0c8829795dfd2d480c31289bbb9bf2e1
--- /dev/null
+++ b/node_modules/is-weakref/index.d.ts
@@ -0,0 +1,3 @@
+declare function isWeakRef(value: unknown): value is WeakRef;
+
+export = isWeakRef;
\ No newline at end of file
diff --git a/node_modules/is-weakref/index.js b/node_modules/is-weakref/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..378e2b48b9723c7ec24810cfed739061dd6313bf
--- /dev/null
+++ b/node_modules/is-weakref/index.js
@@ -0,0 +1,24 @@
+'use strict';
+
+var callBound = require('call-bound');
+
+// eslint-disable-next-line no-extra-parens
+var $deref = /** @type {(thisArg: WeakRef) => T | undefined} */ (callBound('WeakRef.prototype.deref', true));
+
+/** @type {import('.')} */
+module.exports = typeof WeakRef === 'undefined'
+ ? function isWeakRef(_value) { // eslint-disable-line no-unused-vars
+ return false;
+ }
+ : function isWeakRef(value) {
+ if (!value || typeof value !== 'object') {
+ return false;
+ }
+ try {
+ // @ts-expect-error
+ $deref(value);
+ return true;
+ } catch (e) {
+ return false;
+ }
+ };
diff --git a/node_modules/is-weakref/package.json b/node_modules/is-weakref/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..06de4d4541f2d7a93d5df8e538d8b28c3172ac1a
--- /dev/null
+++ b/node_modules/is-weakref/package.json
@@ -0,0 +1,82 @@
+{
+ "name": "is-weakref",
+ "version": "1.1.1",
+ "description": "Is this value a JS WeakRef? This module works cross-realm/iframe, and despite ES6 @@toStringTag.",
+ "main": "index.js",
+ "exports": {
+ ".": "./index.js",
+ "./package.json": "./package.json"
+ },
+ "sideEffects": false,
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=autogenerated",
+ "version": "auto-changelog && git add CHANGELOG.md",
+ "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"",
+ "prepublishOnly": "safe-publish-latest",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "lint": "eslint --ext=js,mjs .",
+ "postlint": "tsc && attw -P",
+ "pretest": "npm run lint",
+ "tests-only": "nyc tape 'test/**/*.js'",
+ "test": "npm run tests-only",
+ "posttest": "npx npm@'>=10.2' audit --production"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/inspect-js/is-weakref.git"
+ },
+ "keywords": [
+ "weakref",
+ "weak",
+ "ref",
+ "finalization",
+ "finalization registry"
+ ],
+ "author": "Jordan Harband ",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ },
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/inspect-js/is-weakref/issues"
+ },
+ "homepage": "https://github.com/inspect-js/is-weakref#readme",
+ "devDependencies": {
+ "@arethetypeswrong/cli": "^0.17.3",
+ "@ljharb/eslint-config": "^21.1.1",
+ "@ljharb/tsconfig": "^0.2.3",
+ "@types/for-each": "^0.3.3",
+ "@types/object-inspect": "^1.13.0",
+ "@types/tape": "^5.8.1",
+ "auto-changelog": "^2.5.0",
+ "encoding": "^0.1.13",
+ "eslint": "=8.8.0",
+ "for-each": "^0.3.4",
+ "in-publish": "^2.0.1",
+ "npmignore": "^0.3.1",
+ "nyc": "^10.3.2",
+ "object-inspect": "^1.13.3",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.9.0",
+ "typescript": "next"
+ },
+ "dependencies": {
+ "call-bound": "^1.0.3"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows"
+ ]
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+}
diff --git a/node_modules/is-weakref/test/index.js b/node_modules/is-weakref/test/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..c1c5b6f966a20a5c1fe812222b3a7b9e43c9b4aa
--- /dev/null
+++ b/node_modules/is-weakref/test/index.js
@@ -0,0 +1,26 @@
+'use strict';
+
+var test = require('tape');
+var inspect = require('object-inspect');
+var forEach = require('for-each');
+
+var isWeakRef = require('..');
+
+test('isWeakRef', function (t) {
+ t.equal(typeof isWeakRef, 'function', 'is a function');
+
+ var nonWeakRefs = [undefined, null, true, false, 42, 0, Infinity, NaN, /a/g, function () {}, {}, []];
+ forEach(nonWeakRefs, function (nonWeakRef) {
+ t.equal(isWeakRef(nonWeakRef), false, inspect(nonWeakRef) + ' is not a WeakRef');
+ });
+
+ t.test('actual WeakRefs', { skip: typeof WeakRef === 'undefined' }, function (st) {
+ var ref = new WeakRef({});
+
+ st.equal(isWeakRef(ref), true, inspect(ref) + ' is a WeakRef');
+
+ st.end();
+ });
+
+ t.end();
+});
diff --git a/node_modules/is-weakref/tsconfig.json b/node_modules/is-weakref/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..6716d81ce28cf3af2a23d2d9237c7a3d53114217
--- /dev/null
+++ b/node_modules/is-weakref/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "@ljharb/tsconfig",
+ "compilerOptions": {
+ "target": "ES2021",
+ },
+ "exclude": [
+ "coverage"
+ ]
+}
diff --git a/node_modules/is-weakset/.editorconfig b/node_modules/is-weakset/.editorconfig
new file mode 100644
index 0000000000000000000000000000000000000000..86c8f59f7dab3aeb9f6ed9f2067dc689a2da5089
--- /dev/null
+++ b/node_modules/is-weakset/.editorconfig
@@ -0,0 +1,15 @@
+root = true
+
+[*]
+indent_style = tab
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+[package.json]
+indent_style = space
+indent_size = 2
+
+[*.md]
+trim_trailing_whitespace = false
diff --git a/node_modules/is-weakset/.eslintrc b/node_modules/is-weakset/.eslintrc
new file mode 100644
index 0000000000000000000000000000000000000000..46f3b120b8724f7a62ece8975157c2df19e5f1b3
--- /dev/null
+++ b/node_modules/is-weakset/.eslintrc
@@ -0,0 +1,13 @@
+{
+ "root": true,
+
+ "extends": "@ljharb",
+
+ "rules": {
+ "new-cap": ["error", {
+ "capIsNewExceptions": [
+ "GetIntrinsic",
+ ],
+ }],
+ },
+}
diff --git a/node_modules/is-weakset/.gitattributes b/node_modules/is-weakset/.gitattributes
new file mode 100644
index 0000000000000000000000000000000000000000..176a458f94e0ea5272ce67c36bf30b6be9caf623
--- /dev/null
+++ b/node_modules/is-weakset/.gitattributes
@@ -0,0 +1 @@
+* text=auto
diff --git a/node_modules/is-weakset/.github/FUNDING.yml b/node_modules/is-weakset/.github/FUNDING.yml
new file mode 100644
index 0000000000000000000000000000000000000000..228065775cd204e2d5334bd55b08f377f61dfd30
--- /dev/null
+++ b/node_modules/is-weakset/.github/FUNDING.yml
@@ -0,0 +1,12 @@
+# These are supported funding model platforms
+
+github: [ljharb]
+patreon: # Replace with a single Patreon username
+open_collective: # Replace with a single Open Collective username
+ko_fi: # Replace with a single Ko-fi username
+tidelift: npm/is-weakset
+community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
+liberapay: # Replace with a single Liberapay username
+issuehunt: # Replace with a single IssueHunt username
+otechie: # Replace with a single Otechie username
+custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/node_modules/is-weakset/.nycrc b/node_modules/is-weakset/.nycrc
new file mode 100644
index 0000000000000000000000000000000000000000..bdd626ce91477abbdd489b79988baebadbd3c897
--- /dev/null
+++ b/node_modules/is-weakset/.nycrc
@@ -0,0 +1,9 @@
+{
+ "all": true,
+ "check-coverage": false,
+ "reporter": ["text-summary", "text", "html", "json"],
+ "exclude": [
+ "coverage",
+ "test"
+ ]
+}
diff --git a/node_modules/is-weakset/CHANGELOG.md b/node_modules/is-weakset/CHANGELOG.md
new file mode 100644
index 0000000000000000000000000000000000000000..c43f88e502a2b958d2a717df0702195d10dd4796
--- /dev/null
+++ b/node_modules/is-weakset/CHANGELOG.md
@@ -0,0 +1,107 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [v2.0.4](https://github.com/inspect-js/is-weakset/compare/v2.0.3...v2.0.4) - 2024-12-16
+
+### Commits
+
+- [types] use shared config [`5fe9848`](https://github.com/inspect-js/is-weakset/commit/5fe98485c31c8269b90fe93b6f0d002259510786)
+- [actions] split out node 10-20, and 20+ [`bd400b9`](https://github.com/inspect-js/is-weakset/commit/bd400b94a77eddeea29f940a2e18708f760deaab)
+- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/eslint-config`, `@types/object-inspect`, `auto-changelog`, `object-inspect`, `tape` [`8b290fc`](https://github.com/inspect-js/is-weakset/commit/8b290fc32cdd37e4464a2f3df192e71bf77a4636)
+- [Refactor] use `call-bound` directly [`265971b`](https://github.com/inspect-js/is-weakset/commit/265971b6c1cf9d01b4c48b7182e13b4d46e4825a)
+- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/tsconfig`, `@types/tape` [`f39dc78`](https://github.com/inspect-js/is-weakset/commit/f39dc787ab85cd24f62013f1dd416e2f3bf2197a)
+- [Dev Deps] update `@arethetypeswrong/cli`, `@types/get-intrinsic`, `object-inspect` [`ce6c6a9`](https://github.com/inspect-js/is-weakset/commit/ce6c6a936bbd40743021b6b96835d328dd924e1b)
+- [Deps] update `call-bind`, `get-intrinsic` [`ebd5d82`](https://github.com/inspect-js/is-weakset/commit/ebd5d822ca3b8479ebebc99d8f268a7c2a264f8e)
+- [Tests] replace `aud` with `npm audit` [`3eb16c8`](https://github.com/inspect-js/is-weakset/commit/3eb16c8b9e9b368f1e2a342867e10972e81b194b)
+- [Dev Deps] update `@arethetypeswrong/cli` [`9fe99f3`](https://github.com/inspect-js/is-weakset/commit/9fe99f3ebc084129576e4f467df8eef834b2f25f)
+- [Dev Deps] add missing peer dep [`a2fc30e`](https://github.com/inspect-js/is-weakset/commit/a2fc30ed83a6592c6ac56b425ebadc311dc96102)
+
+## [v2.0.3](https://github.com/inspect-js/is-weakset/compare/v2.0.2...v2.0.3) - 2024-03-08
+
+### Commits
+
+- [meta] use `npmignore` to autogenerate an npmignore file [`e70d6aa`](https://github.com/inspect-js/is-weakset/commit/e70d6aa49d997930d3d88103090279ca1e480c7d)
+- add types [`c9bbc35`](https://github.com/inspect-js/is-weakset/commit/c9bbc35f4d87cfa206281ddf6eb0e595f7994b7e)
+- [readme] remove dead badges [`fb443f6`](https://github.com/inspect-js/is-weakset/commit/fb443f66e34a71a4d4ff41e09429f7479c9f4895)
+- [actions] remove redundant finisher [`eb292cc`](https://github.com/inspect-js/is-weakset/commit/eb292cc1c056725c1a9c7d5861c3bca03734710e)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `es5-shim`, `object-inspect`, `tape` [`49d0c35`](https://github.com/inspect-js/is-weakset/commit/49d0c3583793fa2f097b66198a3a33dc2846c659)
+- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `es6-shim`, `npmignore`, `object-inspect`, `tape` [`6ec0a57`](https://github.com/inspect-js/is-weakset/commit/6ec0a5720c92ac3624283580d4af58a1b8846f43)
+- [actions] update rebase action to use reusable workflow [`d996166`](https://github.com/inspect-js/is-weakset/commit/d9961664d6beb649e3ea8ee9b80309a0b60252fa)
+- [Deps] update `call-bind`, `get-intrinsic` [`e207da3`](https://github.com/inspect-js/is-weakset/commit/e207da3865a658e83c1e9f453edfc5c52e63ccc3)
+- [meta] add missing `engines.node` [`4d9dd14`](https://github.com/inspect-js/is-weakset/commit/4d9dd14f6919c969d7e6b8378d3aae2a7ea78a8f)
+- [Deps] update `get-intrinsic` [`cf796dd`](https://github.com/inspect-js/is-weakset/commit/cf796dd7e71ea08abb81332f244ae3ffd34bffd5)
+- [meta] add `sideEffects` flag [`c88a25d`](https://github.com/inspect-js/is-weakset/commit/c88a25df1f14630d937e730e75fd6b182356fc0b)
+
+## [v2.0.2](https://github.com/inspect-js/is-weakset/compare/v2.0.1...v2.0.2) - 2021-12-12
+
+### Commits
+
+- [actions] reuse common workflows [`a8f7c7f`](https://github.com/inspect-js/is-weakset/commit/a8f7c7fa22088dabbadf82cd52cf962eca646c59)
+- [Tests] migrate tests to Github Actions [`f38af72`](https://github.com/inspect-js/is-weakset/commit/f38af729300d425360caad1763e7f904dcd3e393)
+- [Refactor] use `call-bind` and `get-intrinsic` to be more robust [`5102e7e`](https://github.com/inspect-js/is-weakset/commit/5102e7ef227f06da1bc8dcee2579af74f1e1a477)
+- [meta] do not publish github action workflow files [`6ac6e8e`](https://github.com/inspect-js/is-weakset/commit/6ac6e8e5b15181e73d30f6d37e41955372b07792)
+- [actions] use `node/install` instead of `node/run`; use `codecov` action [`304af52`](https://github.com/inspect-js/is-weakset/commit/304af52f4c40743b055e252d50c8e804cac4054f)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `es6-shim`, `object-inspect`, `tape` [`b82fb5f`](https://github.com/inspect-js/is-weakset/commit/b82fb5fafdeea05f93420e0966fe63785362649a)
+- [Tests] run `nyc` on all tests; use `tape` runner [`89e2611`](https://github.com/inspect-js/is-weakset/commit/89e26115ab1aa58b37816d6b5e2aad62508bd79c)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `es5-shim`, `object-inspect`, `safe-publish-latest`, `tape` [`42b0bdc`](https://github.com/inspect-js/is-weakset/commit/42b0bdc5a8785ddb589ea16629c933ec01359ca8)
+- [actions] update codecov uploader [`112697a`](https://github.com/inspect-js/is-weakset/commit/112697aaf3b6f2e22275575ce4b684059fa5dcaa)
+- [actions] add "Allow Edits" workflow [`1af6ffe`](https://github.com/inspect-js/is-weakset/commit/1af6ffe2793a5784ac70048e50850f4d6e650de4)
+- [readme] remove travis badge [`dff769b`](https://github.com/inspect-js/is-weakset/commit/dff769b367aa4886ab082dd6330cbc54d0dcf03f)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `object-inspect`, `tape` [`4494ced`](https://github.com/inspect-js/is-weakset/commit/4494cedea891e3617768b30721e3b5ddee5c41e4)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `es5-shim`, `tape` [`a2c11c6`](https://github.com/inspect-js/is-weakset/commit/a2c11c6dcef990b7f6fabb26d58837a7fe4f3a3e)
+- [Tests] add `core-js` tests [`cd619e9`](https://github.com/inspect-js/is-weakset/commit/cd619e95f64cc02cbec8f4b0b29a806f371eab9e)
+- [readme] add actions and codecov badges [`d3cbefe`](https://github.com/inspect-js/is-weakset/commit/d3cbefeb526773a565eb4e501b2e7da7947b215d)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`3d54035`](https://github.com/inspect-js/is-weakset/commit/3d54035e2ca66969f6cc779b85902ac3507d7297)
+- [Dev Deps] update `auto-changelog`, `eslint` [`a80fb4a`](https://github.com/inspect-js/is-weakset/commit/a80fb4a7c1a90a2929d80f9b2a9adaa56c94d2d2)
+- [actions] switch Automatic Rease workflow to `pull_request_target` event [`b3b8aee`](https://github.com/inspect-js/is-weakset/commit/b3b8aeeb3e133d88da897d42530aea4bcc729b23)
+- [Dev Deps] update `es5-shim`, `tape` [`5ba5ca8`](https://github.com/inspect-js/is-weakset/commit/5ba5ca84a3d4bb4acacb9fd9265a21476d4f0457)
+- [meta] use `prepublishOnly` script for npm 7+ [`b4f7636`](https://github.com/inspect-js/is-weakset/commit/b4f76366574ac4b4d854c330cbad33a8d9ff48ff)
+- [Dev Deps] update `auto-changelog`; add `aud` [`2ccd594`](https://github.com/inspect-js/is-weakset/commit/2ccd5944c8fd161fa463620de268bd6f40ff0e59)
+- [Fix] when `WeakSet` lacks a `has`, return false [`53a2cbc`](https://github.com/inspect-js/is-weakset/commit/53a2cbce11d2493b4ff82132f3d14e22c909b541)
+- [Tests] only audit prod deps [`f74aaf5`](https://github.com/inspect-js/is-weakset/commit/f74aaf5746fc49d424742184025288d0d565639c)
+- [meta] normalize line endings [`31f60a6`](https://github.com/inspect-js/is-weakset/commit/31f60a6a70e38851743e602e30bb0907cd3cc6ba)
+
+## [v2.0.1](https://github.com/inspect-js/is-weakset/compare/v2.0.0...v2.0.1) - 2019-12-17
+
+### Fixed
+
+- [Refactor] avoid top-level return, because babel and webpack are broken [`#79`](https://github.com/inspect-js/node-deep-equal/issues/79) [`#78`](https://github.com/inspect-js/node-deep-equal/issues/78) [`#7`](https://github.com/es-shims/Promise.allSettled/issues/7) [`#12`](https://github.com/airbnb/js-shims/issues/12)
+
+### Commits
+
+- [actions] add automatic rebasing / merge commit blocking [`d85eb2c`](https://github.com/inspect-js/is-weakset/commit/d85eb2ca5fe1f1890a04c5504e4c23d68db68447)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config` [`790128b`](https://github.com/inspect-js/is-weakset/commit/790128b8e7c2abe39f70a5c25a303646f8555487)
+- [Dev Deps] update `tape` [`e4bda71`](https://github.com/inspect-js/is-weakset/commit/e4bda71a8a6b1233285e91f54a05a08b75cdbd6e)
+
+## [v2.0.0](https://github.com/inspect-js/is-weakset/compare/v1.0.1...v2.0.0) - 2019-11-12
+
+### Commits
+
+- Initial commit [`095ce1f`](https://github.com/inspect-js/is-weakset/commit/095ce1f56c52aa547b57dd326e9b5c2c8a7c2765)
+- Tests [`2e8f26d`](https://github.com/inspect-js/is-weakset/commit/2e8f26d1b632fbfe4ded276d046e34276780671b)
+- implementation [`acae1ef`](https://github.com/inspect-js/is-weakset/commit/acae1ef8d29a84ff0729135ac4acfe42f18c1328)
+- readme [`344db89`](https://github.com/inspect-js/is-weakset/commit/344db8951568a3206847e7b00820622c2364e1ff)
+- npm init [`e318679`](https://github.com/inspect-js/is-weakset/commit/e318679acc2c3c168a32fb648ddf3d54ff3e6d5e)
+- [meta] add `funding` field; create `FUNDING.yml` [`a1e9277`](https://github.com/inspect-js/is-weakset/commit/a1e927798405e643e570a43d0ee30f5ae16d9d18)
+- [meta] add `safe-publish-latest`, `auto-changelog` [`066a08c`](https://github.com/inspect-js/is-weakset/commit/066a08cd939ec1efe433af23688f8c73d3524b5c)
+- [Tests] add `npm run lint` [`6af0730`](https://github.com/inspect-js/is-weakset/commit/6af07301fda27f1450184f31b941cf9fbefe261d)
+- [Tests] use shared travis-ci configs [`a44f4ec`](https://github.com/inspect-js/is-weakset/commit/a44f4ec03d734274e351acef37698272f3e500c1)
+- Only apps should have lockfiles [`11e4115`](https://github.com/inspect-js/is-weakset/commit/11e41153e46eb3ead4be9187770fe8cb47a21e12)
+- [Tests] add `npx aud` in `posttest` [`53ceba1`](https://github.com/inspect-js/is-weakset/commit/53ceba16b0a98f968e40439f7bd2ffc98a406de8)
+
+## [v1.0.1](https://github.com/inspect-js/is-weakset/compare/v1.0.0...v1.0.1) - 2015-06-03
+
+### Commits
+
+- Tweaks [`cb3a689`](https://github.com/inspect-js/is-weakset/commit/cb3a68985d734632423ffe81704500bd04e95934)
+- Add `related` section to readme [`7c2766b`](https://github.com/inspect-js/is-weakset/commit/7c2766b3e1992b34d5ad933f2cf8901352aa4fcd)
+
+## v1.0.0 - 2015-02-18
+
+### Commits
+
+- init [`579f442`](https://github.com/inspect-js/is-weakset/commit/579f442c42afa4e3880f9f62b3ccea79e0b6edd5)
diff --git a/node_modules/is-weakset/LICENSE b/node_modules/is-weakset/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..c05eb206bdf4955213919987028657acd99ed92c
--- /dev/null
+++ b/node_modules/is-weakset/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 Inspect JS
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/is-weakset/README.md b/node_modules/is-weakset/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..a666d6d6472ab1afe5dd8961896018bd6172211b
--- /dev/null
+++ b/node_modules/is-weakset/README.md
@@ -0,0 +1,50 @@
+# is-weakset [![Version Badge][npm-version-svg]][package-url]
+
+[![github actions][actions-image]][actions-url]
+[![coverage][codecov-image]][codecov-url]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][npm-badge-png]][package-url]
+
+Is this value a JS WeakSet? This module works cross-realm/iframe, and despite ES6 @@toStringTag.
+
+## Example
+
+```js
+var isWeakSet = require('is-weakset');
+assert(!isWeakSet(function () {}));
+assert(!isWeakSet(null));
+assert(!isWeakSet(function* () { yield 42; return Infinity; });
+assert(!isWeakSet(Symbol('foo')));
+assert(!isWeakSet(1n));
+assert(!isWeakSet(Object(1n)));
+
+assert(!isWeakSet(new Set()));
+assert(!isWeakSet(new WeakMap()));
+assert(!isWeakSet(new Map()));
+
+assert(isWeakSet(new WeakSet()));
+
+class MyWeakSet extends WeakSet {}
+assert(isWeakSet(new MyWeakSet()));
+```
+
+## Tests
+Simply clone the repo, `npm install`, and run `npm test`
+
+[package-url]: https://npmjs.org/package/is-weakset
+[npm-version-svg]: https://versionbadg.es/inspect-js/is-weakset.svg
+[deps-svg]: https://david-dm.org/inspect-js/is-weakset.svg
+[deps-url]: https://david-dm.org/inspect-js/is-weakset
+[dev-deps-svg]: https://david-dm.org/inspect-js/is-weakset/dev-status.svg
+[dev-deps-url]: https://david-dm.org/inspect-js/is-weakset#info=devDependencies
+[npm-badge-png]: https://nodei.co/npm/is-weakset.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/is-weakset.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/is-weakset.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=is-weakset
+[codecov-image]: https://codecov.io/gh/inspect-js/is-weakset/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/inspect-js/is-weakset/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-weakset
+[actions-url]: https://github.com/inspect-js/is-weakset/actions
diff --git a/node_modules/is-weakset/index.d.ts b/node_modules/is-weakset/index.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..36192e6d26d82be57cfbe458060f5259ea78e7d8
--- /dev/null
+++ b/node_modules/is-weakset/index.d.ts
@@ -0,0 +1,3 @@
+declare function isWeakSet(value: unknown): value is WeakSet;
+
+export = isWeakSet;
\ No newline at end of file
diff --git a/node_modules/is-weakset/index.js b/node_modules/is-weakset/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..1cc58fa5aa8927c61258b07c801bf77d969b260e
--- /dev/null
+++ b/node_modules/is-weakset/index.js
@@ -0,0 +1,43 @@
+'use strict';
+
+var GetIntrinsic = require('get-intrinsic');
+var callBound = require('call-bound');
+
+var $WeakSet = GetIntrinsic('%WeakSet%', true);
+
+/** @type {undefined | ((thisArg: Set, value: V) => boolean)} */
+var $setHas = callBound('WeakSet.prototype.has', true);
+
+if ($setHas) {
+ /** @type {undefined | ((thisArg: WeakMap, key: K) => boolean)} */
+ var $mapHas = callBound('WeakMap.prototype.has', true);
+
+ /** @type {import('.')} */
+ module.exports = function isWeakSet(x) {
+ if (!x || typeof x !== 'object') {
+ return false;
+ }
+ try {
+ // @ts-expect-error TS can't figure out that $setHas is always truthy here
+ $setHas(x, $setHas);
+ if ($mapHas) {
+ try {
+ // @ts-expect-error this indeed might not be a weak collection
+ $mapHas(x, $mapHas);
+ } catch (e) {
+ return true;
+ }
+ }
+ // @ts-expect-error TS can't figure out that $WeakSet is always truthy here
+ return x instanceof $WeakSet; // core-js workaround, pre-v3
+ } catch (e) {}
+ return false;
+ };
+} else {
+ /** @type {import('.')} */
+ // @ts-expect-error
+ module.exports = function isWeakSet(x) { // eslint-disable-line no-unused-vars
+ // `WeakSet` does not exist, or does not have a `has` method
+ return false;
+ };
+}
diff --git a/node_modules/is-weakset/package.json b/node_modules/is-weakset/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..89ff9bbb352c26c33463a008eeafa4acbc4e98f1
--- /dev/null
+++ b/node_modules/is-weakset/package.json
@@ -0,0 +1,87 @@
+{
+ "name": "is-weakset",
+ "version": "2.0.4",
+ "description": "Is this value a JS WeakSet? This module works cross-realm/iframe, and despite ES6 @@toStringTag.",
+ "main": "index.js",
+ "sideEffects": false,
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=autogenerated",
+ "version": "auto-changelog && git add CHANGELOG.md",
+ "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"",
+ "prepublishOnly": "safe-publish-latest",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "pretest": "npm run lint",
+ "lint": "eslint --ext=js,mjs .",
+ "postlint": "tsc -p . && attw -P",
+ "tests-only": "nyc tape 'test/**/*.js'",
+ "tests:shims": "nyc tape --require=es5-shim --require=es6-shim 'test/**/*.js'",
+ "tests:corejs": "nyc tape --require=core-js 'test/**/*.js'",
+ "test": "npm run tests-only && npm run tests:shims && npm run tests:corejs",
+ "posttest": "npx npm@'>=10.2' audit --production"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/inspect-js/is-weakset.git"
+ },
+ "keywords": [
+ "map",
+ "weakmap",
+ "set",
+ "weakset",
+ "collection",
+ "is",
+ "robust"
+ ],
+ "author": "Jordan Harband ",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ },
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/inspect-js/is-weakset/issues"
+ },
+ "homepage": "https://github.com/inspect-js/is-weakset#readme",
+ "dependencies": {
+ "call-bound": "^1.0.3",
+ "get-intrinsic": "^1.2.6"
+ },
+ "devDependencies": {
+ "@arethetypeswrong/cli": "^0.17.1",
+ "@ljharb/eslint-config": "^21.1.1",
+ "@ljharb/tsconfig": "^0.2.2",
+ "@types/for-each": "^0.3.3",
+ "@types/get-intrinsic": "^1.2.3",
+ "@types/object-inspect": "^1.13.0",
+ "@types/tape": "^5.7.0",
+ "auto-changelog": "^2.5.0",
+ "core-js": "^2.6.12",
+ "encoding": "^0.1.13",
+ "es5-shim": "^4.6.7",
+ "es6-shim": "^0.35.8",
+ "eslint": "=8.8.0",
+ "for-each": "^0.3.3",
+ "in-publish": "^2.0.1",
+ "npmignore": "^0.3.1",
+ "nyc": "^10.3.2",
+ "object-inspect": "^1.13.3",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.9.0",
+ "typescript": "next"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows"
+ ]
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+}
diff --git a/node_modules/is-weakset/test/index.js b/node_modules/is-weakset/test/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..aeb8f365a94de641f712a7af46410f82ed3e2990
--- /dev/null
+++ b/node_modules/is-weakset/test/index.js
@@ -0,0 +1,59 @@
+'use strict';
+
+var test = require('tape');
+var debug = require('object-inspect');
+var forEach = require('for-each');
+
+var isWeakSet = require('..');
+
+test('non-collections', function (t) {
+ forEach([
+ null,
+ undefined,
+ true,
+ false,
+ 42,
+ 0,
+ -0,
+ NaN,
+ Infinity,
+ '',
+ 'foo',
+ /a/g,
+ [],
+ {},
+ function () {}
+ ], function (nonCollection) {
+ t.equal(isWeakSet(nonCollection), false, debug(nonCollection) + ' is not a WeakSet');
+ });
+
+ t.end();
+});
+
+test('Maps', { skip: typeof Map !== 'function' }, function (t) {
+ var m = new Map();
+ t.equal(isWeakSet(m), false, debug(m) + ' is not a WeakSet');
+
+ t.end();
+});
+
+test('Sets', { skip: typeof Set !== 'function' }, function (t) {
+ var s = new Set();
+ t.equal(isWeakSet(s), false, debug(s) + ' is not a WeakSet');
+
+ t.end();
+});
+
+test('WeakMaps', { skip: typeof WeakMap !== 'function' }, function (t) {
+ var wm = new WeakMap();
+ t.equal(isWeakSet(wm), false, debug(wm) + ' is not a WeakSet');
+
+ t.end();
+});
+
+test('WeakSets', { skip: typeof WeakSet !== 'function' }, function (t) {
+ var ws = new WeakSet();
+ t.equal(isWeakSet(ws), true, debug(ws) + ' is a WeakSet');
+
+ t.end();
+});
diff --git a/node_modules/is-weakset/tsconfig.json b/node_modules/is-weakset/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..dabbe230d74beb5962f67a6da7da18c707441ad5
--- /dev/null
+++ b/node_modules/is-weakset/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "@ljharb/tsconfig",
+ "compilerOptions": {
+ "target": "ES2021",
+ },
+ "exclude": [
+ "coverage",
+ ],
+}
diff --git a/node_modules/isarray/.npmignore b/node_modules/isarray/.npmignore
new file mode 100644
index 0000000000000000000000000000000000000000..3c3629e647f5ddf82548912e337bea9826b434af
--- /dev/null
+++ b/node_modules/isarray/.npmignore
@@ -0,0 +1 @@
+node_modules
diff --git a/node_modules/isarray/.travis.yml b/node_modules/isarray/.travis.yml
new file mode 100644
index 0000000000000000000000000000000000000000..cc4dba29d959a2da7b97f9edd3c7c91384b2ee5b
--- /dev/null
+++ b/node_modules/isarray/.travis.yml
@@ -0,0 +1,4 @@
+language: node_js
+node_js:
+ - "0.8"
+ - "0.10"
diff --git a/node_modules/isarray/Makefile b/node_modules/isarray/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..787d56e1e982e48588bc199f36f0d50cb4724066
--- /dev/null
+++ b/node_modules/isarray/Makefile
@@ -0,0 +1,6 @@
+
+test:
+ @node_modules/.bin/tape test.js
+
+.PHONY: test
+
diff --git a/node_modules/isarray/README.md b/node_modules/isarray/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..16d2c59c6195f9a1ac9af37cb9d75f1a6b85ab01
--- /dev/null
+++ b/node_modules/isarray/README.md
@@ -0,0 +1,60 @@
+
+# isarray
+
+`Array#isArray` for older browsers.
+
+[](http://travis-ci.org/juliangruber/isarray)
+[](https://www.npmjs.org/package/isarray)
+
+[
+](https://ci.testling.com/juliangruber/isarray)
+
+## Usage
+
+```js
+var isArray = require('isarray');
+
+console.log(isArray([])); // => true
+console.log(isArray({})); // => false
+```
+
+## Installation
+
+With [npm](http://npmjs.org) do
+
+```bash
+$ npm install isarray
+```
+
+Then bundle for the browser with
+[browserify](https://github.com/substack/browserify).
+
+With [component](http://component.io) do
+
+```bash
+$ component install juliangruber/isarray
+```
+
+## License
+
+(MIT)
+
+Copyright (c) 2013 Julian Gruber <julian@juliangruber.com>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/isarray/component.json b/node_modules/isarray/component.json
new file mode 100644
index 0000000000000000000000000000000000000000..9e31b6838890159e397063bdd2ea7de80b4e4a42
--- /dev/null
+++ b/node_modules/isarray/component.json
@@ -0,0 +1,19 @@
+{
+ "name" : "isarray",
+ "description" : "Array#isArray for older browsers",
+ "version" : "0.0.1",
+ "repository" : "juliangruber/isarray",
+ "homepage": "https://github.com/juliangruber/isarray",
+ "main" : "index.js",
+ "scripts" : [
+ "index.js"
+ ],
+ "dependencies" : {},
+ "keywords": ["browser","isarray","array"],
+ "author": {
+ "name": "Julian Gruber",
+ "email": "mail@juliangruber.com",
+ "url": "http://juliangruber.com"
+ },
+ "license": "MIT"
+}
diff --git a/node_modules/isarray/index.js b/node_modules/isarray/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..a57f63495943a07b3b08d17e0f9ef6793548c801
--- /dev/null
+++ b/node_modules/isarray/index.js
@@ -0,0 +1,5 @@
+var toString = {}.toString;
+
+module.exports = Array.isArray || function (arr) {
+ return toString.call(arr) == '[object Array]';
+};
diff --git a/node_modules/isarray/package.json b/node_modules/isarray/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..1a4317a9c41c73d52934337143b974a35074e6f2
--- /dev/null
+++ b/node_modules/isarray/package.json
@@ -0,0 +1,45 @@
+{
+ "name": "isarray",
+ "description": "Array#isArray for older browsers",
+ "version": "1.0.0",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/juliangruber/isarray.git"
+ },
+ "homepage": "https://github.com/juliangruber/isarray",
+ "main": "index.js",
+ "dependencies": {},
+ "devDependencies": {
+ "tape": "~2.13.4"
+ },
+ "keywords": [
+ "browser",
+ "isarray",
+ "array"
+ ],
+ "author": {
+ "name": "Julian Gruber",
+ "email": "mail@juliangruber.com",
+ "url": "http://juliangruber.com"
+ },
+ "license": "MIT",
+ "testling": {
+ "files": "test.js",
+ "browsers": [
+ "ie/8..latest",
+ "firefox/17..latest",
+ "firefox/nightly",
+ "chrome/22..latest",
+ "chrome/canary",
+ "opera/12..latest",
+ "opera/next",
+ "safari/5.1..latest",
+ "ipad/6.0..latest",
+ "iphone/6.0..latest",
+ "android-browser/4.2..latest"
+ ]
+ },
+ "scripts": {
+ "test": "tape test.js"
+ }
+}
diff --git a/node_modules/isarray/test.js b/node_modules/isarray/test.js
new file mode 100644
index 0000000000000000000000000000000000000000..e0c3444d85d5c799bd70b2ee9df62ef56d9763ea
--- /dev/null
+++ b/node_modules/isarray/test.js
@@ -0,0 +1,20 @@
+var isArray = require('./');
+var test = require('tape');
+
+test('is array', function(t){
+ t.ok(isArray([]));
+ t.notOk(isArray({}));
+ t.notOk(isArray(null));
+ t.notOk(isArray(false));
+
+ var obj = {};
+ obj[0] = true;
+ t.notOk(isArray(obj));
+
+ var arr = [];
+ arr.foo = 'bar';
+ t.ok(isArray(arr));
+
+ t.end();
+});
+
diff --git a/node_modules/isexe/.npmignore b/node_modules/isexe/.npmignore
new file mode 100644
index 0000000000000000000000000000000000000000..c1cb757acf58a46c2c962c963c2d965f1d0eccec
--- /dev/null
+++ b/node_modules/isexe/.npmignore
@@ -0,0 +1,2 @@
+.nyc_output/
+coverage/
diff --git a/node_modules/isexe/LICENSE b/node_modules/isexe/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..19129e315fe593965a2fdd50ec0d1253bcbd2ece
--- /dev/null
+++ b/node_modules/isexe/LICENSE
@@ -0,0 +1,15 @@
+The ISC License
+
+Copyright (c) Isaac Z. Schlueter and Contributors
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/isexe/README.md b/node_modules/isexe/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..35769e84408ce9076572c84e17d4a3f3eb611d08
--- /dev/null
+++ b/node_modules/isexe/README.md
@@ -0,0 +1,51 @@
+# isexe
+
+Minimal module to check if a file is executable, and a normal file.
+
+Uses `fs.stat` and tests against the `PATHEXT` environment variable on
+Windows.
+
+## USAGE
+
+```javascript
+var isexe = require('isexe')
+isexe('some-file-name', function (err, isExe) {
+ if (err) {
+ console.error('probably file does not exist or something', err)
+ } else if (isExe) {
+ console.error('this thing can be run')
+ } else {
+ console.error('cannot be run')
+ }
+})
+
+// same thing but synchronous, throws errors
+var isExe = isexe.sync('some-file-name')
+
+// treat errors as just "not executable"
+isexe('maybe-missing-file', { ignoreErrors: true }, callback)
+var isExe = isexe.sync('maybe-missing-file', { ignoreErrors: true })
+```
+
+## API
+
+### `isexe(path, [options], [callback])`
+
+Check if the path is executable. If no callback provided, and a
+global `Promise` object is available, then a Promise will be returned.
+
+Will raise whatever errors may be raised by `fs.stat`, unless
+`options.ignoreErrors` is set to true.
+
+### `isexe.sync(path, [options])`
+
+Same as `isexe` but returns the value and throws any errors raised.
+
+### Options
+
+* `ignoreErrors` Treat all errors as "no, this is not executable", but
+ don't raise them.
+* `uid` Number to use as the user id
+* `gid` Number to use as the group id
+* `pathExt` List of path extensions to use instead of `PATHEXT`
+ environment variable on Windows.
diff --git a/node_modules/isexe/index.js b/node_modules/isexe/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..553fb32b119bdf2efaeffeefe1bef4bfd10f3e43
--- /dev/null
+++ b/node_modules/isexe/index.js
@@ -0,0 +1,57 @@
+var fs = require('fs')
+var core
+if (process.platform === 'win32' || global.TESTING_WINDOWS) {
+ core = require('./windows.js')
+} else {
+ core = require('./mode.js')
+}
+
+module.exports = isexe
+isexe.sync = sync
+
+function isexe (path, options, cb) {
+ if (typeof options === 'function') {
+ cb = options
+ options = {}
+ }
+
+ if (!cb) {
+ if (typeof Promise !== 'function') {
+ throw new TypeError('callback not provided')
+ }
+
+ return new Promise(function (resolve, reject) {
+ isexe(path, options || {}, function (er, is) {
+ if (er) {
+ reject(er)
+ } else {
+ resolve(is)
+ }
+ })
+ })
+ }
+
+ core(path, options || {}, function (er, is) {
+ // ignore EACCES because that just means we aren't allowed to run it
+ if (er) {
+ if (er.code === 'EACCES' || options && options.ignoreErrors) {
+ er = null
+ is = false
+ }
+ }
+ cb(er, is)
+ })
+}
+
+function sync (path, options) {
+ // my kingdom for a filtered catch
+ try {
+ return core.sync(path, options || {})
+ } catch (er) {
+ if (options && options.ignoreErrors || er.code === 'EACCES') {
+ return false
+ } else {
+ throw er
+ }
+ }
+}
diff --git a/node_modules/isexe/mode.js b/node_modules/isexe/mode.js
new file mode 100644
index 0000000000000000000000000000000000000000..1995ea4a06aec4c1506509b11f8e9ae941b86439
--- /dev/null
+++ b/node_modules/isexe/mode.js
@@ -0,0 +1,41 @@
+module.exports = isexe
+isexe.sync = sync
+
+var fs = require('fs')
+
+function isexe (path, options, cb) {
+ fs.stat(path, function (er, stat) {
+ cb(er, er ? false : checkStat(stat, options))
+ })
+}
+
+function sync (path, options) {
+ return checkStat(fs.statSync(path), options)
+}
+
+function checkStat (stat, options) {
+ return stat.isFile() && checkMode(stat, options)
+}
+
+function checkMode (stat, options) {
+ var mod = stat.mode
+ var uid = stat.uid
+ var gid = stat.gid
+
+ var myUid = options.uid !== undefined ?
+ options.uid : process.getuid && process.getuid()
+ var myGid = options.gid !== undefined ?
+ options.gid : process.getgid && process.getgid()
+
+ var u = parseInt('100', 8)
+ var g = parseInt('010', 8)
+ var o = parseInt('001', 8)
+ var ug = u | g
+
+ var ret = (mod & o) ||
+ (mod & g) && gid === myGid ||
+ (mod & u) && uid === myUid ||
+ (mod & ug) && myUid === 0
+
+ return ret
+}
diff --git a/node_modules/isexe/package.json b/node_modules/isexe/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..e452689442f2018bfa2b9ef3885cf4ce6a6e7912
--- /dev/null
+++ b/node_modules/isexe/package.json
@@ -0,0 +1,31 @@
+{
+ "name": "isexe",
+ "version": "2.0.0",
+ "description": "Minimal module to check if a file is executable.",
+ "main": "index.js",
+ "directories": {
+ "test": "test"
+ },
+ "devDependencies": {
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.0",
+ "tap": "^10.3.0"
+ },
+ "scripts": {
+ "test": "tap test/*.js --100",
+ "preversion": "npm test",
+ "postversion": "npm publish",
+ "postpublish": "git push origin --all; git push origin --tags"
+ },
+ "author": "Isaac Z. Schlueter (http://blog.izs.me/)",
+ "license": "ISC",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/isaacs/isexe.git"
+ },
+ "keywords": [],
+ "bugs": {
+ "url": "https://github.com/isaacs/isexe/issues"
+ },
+ "homepage": "https://github.com/isaacs/isexe#readme"
+}
diff --git a/node_modules/isexe/test/basic.js b/node_modules/isexe/test/basic.js
new file mode 100644
index 0000000000000000000000000000000000000000..d926df64b902457c1487bb29e3258e7eca9c6753
--- /dev/null
+++ b/node_modules/isexe/test/basic.js
@@ -0,0 +1,221 @@
+var t = require('tap')
+var fs = require('fs')
+var path = require('path')
+var fixture = path.resolve(__dirname, 'fixtures')
+var meow = fixture + '/meow.cat'
+var mine = fixture + '/mine.cat'
+var ours = fixture + '/ours.cat'
+var fail = fixture + '/fail.false'
+var noent = fixture + '/enoent.exe'
+var mkdirp = require('mkdirp')
+var rimraf = require('rimraf')
+
+var isWindows = process.platform === 'win32'
+var hasAccess = typeof fs.access === 'function'
+var winSkip = isWindows && 'windows'
+var accessSkip = !hasAccess && 'no fs.access function'
+var hasPromise = typeof Promise === 'function'
+var promiseSkip = !hasPromise && 'no global Promise'
+
+function reset () {
+ delete require.cache[require.resolve('../')]
+ return require('../')
+}
+
+t.test('setup fixtures', function (t) {
+ rimraf.sync(fixture)
+ mkdirp.sync(fixture)
+ fs.writeFileSync(meow, '#!/usr/bin/env cat\nmeow\n')
+ fs.chmodSync(meow, parseInt('0755', 8))
+ fs.writeFileSync(fail, '#!/usr/bin/env false\n')
+ fs.chmodSync(fail, parseInt('0644', 8))
+ fs.writeFileSync(mine, '#!/usr/bin/env cat\nmine\n')
+ fs.chmodSync(mine, parseInt('0744', 8))
+ fs.writeFileSync(ours, '#!/usr/bin/env cat\nours\n')
+ fs.chmodSync(ours, parseInt('0754', 8))
+ t.end()
+})
+
+t.test('promise', { skip: promiseSkip }, function (t) {
+ var isexe = reset()
+ t.test('meow async', function (t) {
+ isexe(meow).then(function (is) {
+ t.ok(is)
+ t.end()
+ })
+ })
+ t.test('fail async', function (t) {
+ isexe(fail).then(function (is) {
+ t.notOk(is)
+ t.end()
+ })
+ })
+ t.test('noent async', function (t) {
+ isexe(noent).catch(function (er) {
+ t.ok(er)
+ t.end()
+ })
+ })
+ t.test('noent ignore async', function (t) {
+ isexe(noent, { ignoreErrors: true }).then(function (is) {
+ t.notOk(is)
+ t.end()
+ })
+ })
+ t.end()
+})
+
+t.test('no promise', function (t) {
+ global.Promise = null
+ var isexe = reset()
+ t.throws('try to meow a promise', function () {
+ isexe(meow)
+ })
+ t.end()
+})
+
+t.test('access', { skip: accessSkip || winSkip }, function (t) {
+ runTest(t)
+})
+
+t.test('mode', { skip: winSkip }, function (t) {
+ delete fs.access
+ delete fs.accessSync
+ var isexe = reset()
+ t.ok(isexe.sync(ours, { uid: 0, gid: 0 }))
+ t.ok(isexe.sync(mine, { uid: 0, gid: 0 }))
+ runTest(t)
+})
+
+t.test('windows', function (t) {
+ global.TESTING_WINDOWS = true
+ var pathExt = '.EXE;.CAT;.CMD;.COM'
+ t.test('pathExt option', function (t) {
+ runTest(t, { pathExt: '.EXE;.CAT;.CMD;.COM' })
+ })
+ t.test('pathExt env', function (t) {
+ process.env.PATHEXT = pathExt
+ runTest(t)
+ })
+ t.test('no pathExt', function (t) {
+ // with a pathExt of '', any filename is fine.
+ // so the "fail" one would still pass.
+ runTest(t, { pathExt: '', skipFail: true })
+ })
+ t.test('pathext with empty entry', function (t) {
+ // with a pathExt of '', any filename is fine.
+ // so the "fail" one would still pass.
+ runTest(t, { pathExt: ';' + pathExt, skipFail: true })
+ })
+ t.end()
+})
+
+t.test('cleanup', function (t) {
+ rimraf.sync(fixture)
+ t.end()
+})
+
+function runTest (t, options) {
+ var isexe = reset()
+
+ var optionsIgnore = Object.create(options || {})
+ optionsIgnore.ignoreErrors = true
+
+ if (!options || !options.skipFail) {
+ t.notOk(isexe.sync(fail, options))
+ }
+ t.notOk(isexe.sync(noent, optionsIgnore))
+ if (!options) {
+ t.ok(isexe.sync(meow))
+ } else {
+ t.ok(isexe.sync(meow, options))
+ }
+
+ t.ok(isexe.sync(mine, options))
+ t.ok(isexe.sync(ours, options))
+ t.throws(function () {
+ isexe.sync(noent, options)
+ })
+
+ t.test('meow async', function (t) {
+ if (!options) {
+ isexe(meow, function (er, is) {
+ if (er) {
+ throw er
+ }
+ t.ok(is)
+ t.end()
+ })
+ } else {
+ isexe(meow, options, function (er, is) {
+ if (er) {
+ throw er
+ }
+ t.ok(is)
+ t.end()
+ })
+ }
+ })
+
+ t.test('mine async', function (t) {
+ isexe(mine, options, function (er, is) {
+ if (er) {
+ throw er
+ }
+ t.ok(is)
+ t.end()
+ })
+ })
+
+ t.test('ours async', function (t) {
+ isexe(ours, options, function (er, is) {
+ if (er) {
+ throw er
+ }
+ t.ok(is)
+ t.end()
+ })
+ })
+
+ if (!options || !options.skipFail) {
+ t.test('fail async', function (t) {
+ isexe(fail, options, function (er, is) {
+ if (er) {
+ throw er
+ }
+ t.notOk(is)
+ t.end()
+ })
+ })
+ }
+
+ t.test('noent async', function (t) {
+ isexe(noent, options, function (er, is) {
+ t.ok(er)
+ t.notOk(is)
+ t.end()
+ })
+ })
+
+ t.test('noent ignore async', function (t) {
+ isexe(noent, optionsIgnore, function (er, is) {
+ if (er) {
+ throw er
+ }
+ t.notOk(is)
+ t.end()
+ })
+ })
+
+ t.test('directory is not executable', function (t) {
+ isexe(__dirname, options, function (er, is) {
+ if (er) {
+ throw er
+ }
+ t.notOk(is)
+ t.end()
+ })
+ })
+
+ t.end()
+}
diff --git a/node_modules/isexe/windows.js b/node_modules/isexe/windows.js
new file mode 100644
index 0000000000000000000000000000000000000000..34996734d8ef3921c9590def676d79c58c06b61c
--- /dev/null
+++ b/node_modules/isexe/windows.js
@@ -0,0 +1,42 @@
+module.exports = isexe
+isexe.sync = sync
+
+var fs = require('fs')
+
+function checkPathExt (path, options) {
+ var pathext = options.pathExt !== undefined ?
+ options.pathExt : process.env.PATHEXT
+
+ if (!pathext) {
+ return true
+ }
+
+ pathext = pathext.split(';')
+ if (pathext.indexOf('') !== -1) {
+ return true
+ }
+ for (var i = 0; i < pathext.length; i++) {
+ var p = pathext[i].toLowerCase()
+ if (p && path.substr(-p.length).toLowerCase() === p) {
+ return true
+ }
+ }
+ return false
+}
+
+function checkStat (stat, path, options) {
+ if (!stat.isSymbolicLink() && !stat.isFile()) {
+ return false
+ }
+ return checkPathExt(path, options)
+}
+
+function isexe (path, options, cb) {
+ fs.stat(path, function (er, stat) {
+ cb(er, er ? false : checkStat(stat, path, options))
+ })
+}
+
+function sync (path, options) {
+ return checkStat(fs.statSync(path), path, options)
+}
diff --git a/node_modules/iterator.prototype/.eslintrc b/node_modules/iterator.prototype/.eslintrc
new file mode 100644
index 0000000000000000000000000000000000000000..2612ed8fefad45d3a68ae842a28e0353ebcb5cf1
--- /dev/null
+++ b/node_modules/iterator.prototype/.eslintrc
@@ -0,0 +1,13 @@
+{
+ "root": true,
+
+ "extends": "@ljharb",
+
+ "rules": {
+ "new-cap": [2, {
+ "capIsNewExceptions": [
+ "GetIntrinsic",
+ ],
+ }],
+ },
+}
diff --git a/node_modules/iterator.prototype/.github/FUNDING.yml b/node_modules/iterator.prototype/.github/FUNDING.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9cae44a3b746a87a725ccb9be4e0c5d420eb4cc1
--- /dev/null
+++ b/node_modules/iterator.prototype/.github/FUNDING.yml
@@ -0,0 +1,12 @@
+# These are supported funding model platforms
+
+github: [ljharb]
+patreon: # Replace with a single Patreon username
+open_collective: # Replace with a single Open Collective username
+ko_fi: # Replace with a single Ko-fi username
+tidelift: npm/iterator.prototype
+community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
+liberapay: # Replace with a single Liberapay username
+issuehunt: # Replace with a single IssueHunt username
+otechie: # Replace with a single Otechie username
+custom: # Replace with a single custom sponsorship URL
diff --git a/node_modules/iterator.prototype/CHANGELOG.md b/node_modules/iterator.prototype/CHANGELOG.md
new file mode 100644
index 0000000000000000000000000000000000000000..58a63b64565cbba54bef0d44d73b8ab03ee73cc9
--- /dev/null
+++ b/node_modules/iterator.prototype/CHANGELOG.md
@@ -0,0 +1,71 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [v1.1.5](https://github.com/ljharb/Iterator.prototype/compare/v1.1.4...v1.1.5) - 2025-01-01
+
+### Commits
+
+- [Refactor] use `get-proto` directly [`c36361a`](https://github.com/ljharb/Iterator.prototype/commit/c36361a6a83b128c054cc8ebed15a16436332255)
+- [Deps] update `reflect.getprototypeof` [`c3f9c2a`](https://github.com/ljharb/Iterator.prototype/commit/c3f9c2a4aa0b84585e4990f465ca28771337c4b9)
+
+## [v1.1.4](https://github.com/ljharb/Iterator.prototype/compare/v1.1.3...v1.1.4) - 2024-12-11
+
+### Commits
+
+- [actions] split out node 10-20, and 20+ [`a6e7fa2`](https://github.com/ljharb/Iterator.prototype/commit/a6e7fa21e5f470551594db6caf497ac3a1e1aa29)
+- [Refactor] use `define-data-property` directly instead of `define-properties` [`9c55a02`](https://github.com/ljharb/Iterator.prototype/commit/9c55a029f606e751deb3bcbca4cff622acf806bc)
+- [Deps] update `get-intrinsic`, `has-symbols`, `reflect.getprototypeof`, `set-function-name` [`958fdf5`](https://github.com/ljharb/Iterator.prototype/commit/958fdf52e5a331a2c35d7c70ca51272e7800c2f9)
+- [Dev Deps] update `@ljharb/eslint-config`, `auto-changelog`, `npmignore`, `tape` [`ab7c77d`](https://github.com/ljharb/Iterator.prototype/commit/ab7c77d7be8fe91b0a54b7e61eae85ba9c717bbe)
+- [Robustness] use `es-object-atoms` [`ed8ee34`](https://github.com/ljharb/Iterator.prototype/commit/ed8ee3447ea912e6f915247d0245f59717ece94f)
+
+## [v1.1.3](https://github.com/ljharb/Iterator.prototype/compare/v1.1.2...v1.1.3) - 2024-10-08
+
+### Commits
+
+- [Fix] in node 0.12 - 4, do not mutate Object.prototype [`4a4fa45`](https://github.com/ljharb/Iterator.prototype/commit/4a4fa458728ec2cb0c8e182956020989c7fb0573)
+- [Tests] replace `aud` with `npm audit` [`ece6082`](https://github.com/ljharb/Iterator.prototype/commit/ece60822ffcd87c82db10add871cb9958c875e4f)
+- [meta] add missing `engines.node` [`7ee3359`](https://github.com/ljharb/Iterator.prototype/commit/7ee335941706c5cebf940b541a73b4414fd47508)
+- [Dev Deps] add missing peer dep [`fb90acc`](https://github.com/ljharb/Iterator.prototype/commit/fb90accee214ee8c40046edd6f90d6d0e983961a)
+
+## [v1.1.2](https://github.com/ljharb/Iterator.prototype/compare/v1.1.1...v1.1.2) - 2023-09-13
+
+### Commits
+
+- [Fix] properly name `Iterator.prototype[Symbol.iterator]` method [`42ddaf7`](https://github.com/ljharb/Iterator.prototype/commit/42ddaf757d941ab3e5baf341ccb2598b8b86a1a1)
+- [Deps] update `define-properties`, `reflect.getprototypeof` [`8b06aec`](https://github.com/ljharb/Iterator.prototype/commit/8b06aec1a6e79c14806a4ba1e783a2dc79de5e5d)
+
+## [v1.1.1](https://github.com/ljharb/Iterator.prototype/compare/v1.1.0...v1.1.1) - 2023-08-30
+
+### Commits
+
+- [Fix] stop mutating node 4+ Iterator.prototype with Symbol.toStringTag [`74e9560`](https://github.com/ljharb/Iterator.prototype/commit/74e9560c10fcdadb207fea82577946976b9a87da)
+- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`63fd269`](https://github.com/ljharb/Iterator.prototype/commit/63fd269da6a0a39f79bc48b887b7ec81b6e5e0a0)
+- [Deps] update `define-properties`, `get-intrinsic` [`ef73f0e`](https://github.com/ljharb/Iterator.prototype/commit/ef73f0e78223e7eb09a987bc0614a802585e376a)
+
+## [v1.1.0](https://github.com/ljharb/Iterator.prototype/compare/v1.0.1...v1.1.0) - 2022-12-09
+
+### Commits
+
+- [New] define `Symbol.toStringTag` [`d3f94aa`](https://github.com/ljharb/Iterator.prototype/commit/d3f94aaebf65eba391f702815216a32c5b6cbf18)
+
+## [v1.0.1](https://github.com/ljharb/Iterator.prototype/compare/v1.0.0...v1.0.1) - 2022-12-09
+
+### Commits
+
+- [meta] fix repo URLs [`670823e`](https://github.com/ljharb/Iterator.prototype/commit/670823e0c547003a1006dcd0d27a22395a8dff1a)
+- [Fix] move `has-symbols` to a runtime dep [`1b15df1`](https://github.com/ljharb/Iterator.prototype/commit/1b15df1dd481d9e12fbcf25f540b6ccfe9c51502)
+
+## v1.0.0 - 2022-12-05
+
+### Commits
+
+- Initial implementation, tests, readme [`2db7663`](https://github.com/ljharb/Iterator.prototype/commit/2db76638655461506671b62ee97800288ae6d95b)
+- Initial commit [`5c97994`](https://github.com/ljharb/Iterator.prototype/commit/5c979947a473848bf28d1bf286b813a6756a9700)
+- npm init [`0c61e07`](https://github.com/ljharb/Iterator.prototype/commit/0c61e079e02b7604bfeaab3aa383171286bd4563)
+- [meta] add `auto-changelog` [`8df6001`](https://github.com/ljharb/Iterator.prototype/commit/8df6001310793f8753fd776dc5db485e51624867)
+- [meta] use `npmignore` to autogenerate an npmignore file [`d173afc`](https://github.com/ljharb/Iterator.prototype/commit/d173afcd7ef5bdfc1c5b9e90baf75885186a339e)
+- Only apps should have lockfiles [`0fde03f`](https://github.com/ljharb/Iterator.prototype/commit/0fde03f141f5053fcba79a8bff09d410e25be201)
diff --git a/node_modules/iterator.prototype/LICENSE b/node_modules/iterator.prototype/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..6abfe1434ebd5c15c245b9f0a7c25e36b581df19
--- /dev/null
+++ b/node_modules/iterator.prototype/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2022 Jordan Harband
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/iterator.prototype/README.md b/node_modules/iterator.prototype/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..978a362e11017d1f13f0e715826b0362f8c4a3ab
--- /dev/null
+++ b/node_modules/iterator.prototype/README.md
@@ -0,0 +1,35 @@
+# iterator.prototype [![Version Badge][npm-version-svg]][package-url]
+
+[![github actions][actions-image]][actions-url]
+[![coverage][codecov-image]][codecov-url]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][npm-badge-png]][package-url]
+
+`Iterator.prototype`, or a shared object to use.
+
+## Usage
+
+```javascript
+var iterProto = require('iterator.prototype');
+var assert = require('assert');
+
+assert.equal(Object.getPrototypeOf(Object.getPrototypeOf([].keys())), iterProto);
+```
+
+[package-url]: https://npmjs.org/package/iterator.prototype
+[npm-version-svg]: https://versionbadg.es/ljharb/Iterator.prototype.svg
+[deps-svg]: https://david-dm.org/ljharb/Iterator.prototype.svg
+[deps-url]: https://david-dm.org/ljharb/Iterator.prototype
+[dev-deps-svg]: https://david-dm.org/ljharb/Iterator.prototype/dev-status.svg
+[dev-deps-url]: https://david-dm.org/ljharb/Iterator.prototype#info=devDependencies
+[npm-badge-png]: https://nodei.co/npm/iterator.prototype.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/iterator.prototype.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/iterator.prototype.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=iterator.prototype
+[codecov-image]: https://codecov.io/gh/ljharb/Iterator.prototype/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/ljharb/Iterator.prototype/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/Iterator.prototype
+[actions-url]: https://github.com/ljharb/Iterator.prototype/actions
diff --git a/node_modules/iterator.prototype/index.js b/node_modules/iterator.prototype/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..65a999755d9875bc593d4070d73fb94015da7f94
--- /dev/null
+++ b/node_modules/iterator.prototype/index.js
@@ -0,0 +1,27 @@
+'use strict';
+
+var GetIntrinsic = require('get-intrinsic');
+var gPO = require('get-proto');
+var hasSymbols = require('has-symbols');
+var setFunctionName = require('set-function-name');
+var defineDataProperty = require('define-data-property');
+var $Object = require('es-object-atoms');
+
+var arrayIterProto = GetIntrinsic('%ArrayIteratorPrototype%', true);
+
+var iterProto = arrayIterProto && gPO(arrayIterProto);
+
+var result = (iterProto !== $Object.prototype && iterProto) || {};
+
+if (hasSymbols()) {
+ if (!(Symbol.iterator in result)) {
+ // needed when result === iterProto, or, node 0.11.15 - 3
+ var iter = setFunctionName(function SymbolIterator() {
+ return this;
+ }, '[Symbol.iterator]', true);
+
+ defineDataProperty(result, Symbol.iterator, iter, true);
+ }
+}
+
+module.exports = result;
diff --git a/node_modules/iterator.prototype/package.json b/node_modules/iterator.prototype/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..ec236822d351ae0d54ca3a79dacc34d42bd0a240
--- /dev/null
+++ b/node_modules/iterator.prototype/package.json
@@ -0,0 +1,77 @@
+{
+ "name": "iterator.prototype",
+ "version": "1.1.5",
+ "description": "`Iterator.prototype`, or a shared object to use.",
+ "main": "index.js",
+ "exports": {
+ ".": "./index.js",
+ "./package.json": "./package.json"
+ },
+ "scripts": {
+ "prepack": "npmignore --auto --commentLines=autogenerated",
+ "prepublishOnly": "safe-publish-latest",
+ "prepublish": "not-in-publish || npm run prepublishOnly",
+ "prelint": "evalmd README.md",
+ "lint": "eslint --ext=js,mjs .",
+ "pretest": "npm run lint",
+ "tests-only": "tape 'test/**/*.js'",
+ "test": "npm run tests-only",
+ "posttest": "npx npm@'>=10.2' audit --production",
+ "version": "auto-changelog && git add CHANGELOG.md",
+ "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/ljharb/Iterator.prototype.git"
+ },
+ "keywords": [
+ "javascript",
+ "ecmascript",
+ "iterator",
+ "prototype"
+ ],
+ "author": "Jordan Harband ",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/ljharb/Iterator.prototype/issues"
+ },
+ "homepage": "https://github.com/ljharb/Iterator.prototype#readme",
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.6",
+ "get-proto": "^1.0.0",
+ "has-symbols": "^1.1.0",
+ "set-function-name": "^2.0.2"
+ },
+ "devDependencies": {
+ "@ljharb/eslint-config": "^21.1.1",
+ "auto-changelog": "^2.5.0",
+ "encoding": "^0.1.13",
+ "eslint": "=8.8.0",
+ "evalmd": "^0.0.19",
+ "in-publish": "^2.0.1",
+ "npmignore": "^0.3.1",
+ "safe-publish-latest": "^2.0.0",
+ "tape": "^5.9.0"
+ },
+ "testling": {
+ "files": "test/index.js"
+ },
+ "auto-changelog": {
+ "output": "CHANGELOG.md",
+ "template": "keepachangelog",
+ "unreleased": false,
+ "commitLimit": false,
+ "backfillLimit": false,
+ "hideCredit": true
+ },
+ "publishConfig": {
+ "ignore": [
+ ".github/workflows"
+ ]
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+}
diff --git a/node_modules/iterator.prototype/test/index.js b/node_modules/iterator.prototype/test/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..21d3fab22e30468f652ad25250bd9659fc6c67c2
--- /dev/null
+++ b/node_modules/iterator.prototype/test/index.js
@@ -0,0 +1,54 @@
+'use strict';
+
+var test = require('tape');
+var hasSymbols = require('has-symbols')();
+var getProto = require('get-proto');
+
+var iterProto = require('../');
+
+test('Iterator.prototype', function (t) {
+ t.ok(iterProto, 'is truthy');
+ t.equal(typeof iterProto, 'object', 'is an object');
+ t.notEqual(iterProto, Object.prototype, 'is not Object.prototype');
+
+ t.test('Symbol.iterator', { skip: !hasSymbols }, function (st) {
+ var fn = iterProto[Symbol.iterator];
+
+ st.equal(typeof fn, 'function', 'Symbol.iterator is a function');
+
+ var sentinel = {};
+ st.equal(
+ fn.call(sentinel),
+ sentinel,
+ 'Symbol.iterator returns receiver'
+ );
+
+ st.end();
+ });
+
+ t.test('Array keys', { skip: typeof [].keys !== 'function' }, function (st) {
+ var grandProto = getProto(getProto([].keys()));
+ st.equal(
+ grandProto,
+ iterProto,
+ 'ArrayIterator [[Prototype]] is Iterator.prototype',
+ { skip: grandProto === Object.prototype && 'this environment lacks Iterator.prototype' }
+ );
+
+ st.end();
+ });
+
+ t.test('Set keys', { skip: typeof Set !== 'function' || typeof Set.prototype.keys !== 'function' }, function (st) {
+ var grandProto = getProto(getProto(new Set().keys()));
+ st.equal(
+ grandProto,
+ iterProto,
+ 'SetIterator [[Prototype]] is Iterator.prototype',
+ { skip: grandProto === Object.prototype && 'this environment lacks Iterator.prototype' }
+ );
+
+ st.end();
+ });
+
+ t.end();
+});
diff --git a/node_modules/jiti/LICENSE b/node_modules/jiti/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..e739abce461d8b2899aaec6529a4af24a417e0fc
--- /dev/null
+++ b/node_modules/jiti/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) Pooya Parsa
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/jiti/README.md b/node_modules/jiti/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..2c957a9fa4f424dd22ad079f5a8428412f698a00
--- /dev/null
+++ b/node_modules/jiti/README.md
@@ -0,0 +1,243 @@
+# jiti
+
+
+
+[](https://npmjs.com/package/jiti)
+[](https://npmjs.com/package/jiti)
+[](https://bundlephobia.com/package/jiti)
+
+
+
+> This is the active development branch. Check out [jiti/v1](https://github.com/unjs/jiti/tree/v1) for legacy v1 docs and code.
+
+## 🌟 Used in
+
+[Docusaurus](https://docusaurus.io/), [ESLint](https://github.com/eslint/eslint), [FormKit](https://formkit.com/), [Histoire](https://histoire.dev/), [Knip](https://knip.dev/), [Nitro](https://nitro.unjs.io/), [Nuxt](https://nuxt.com/), [PostCSS loader](https://github.com/webpack-contrib/postcss-loader), [Rsbuild](https://rsbuild.dev/), [Size Limit](https://github.com/ai/size-limit), [Slidev](https://sli.dev/), [Tailwindcss](https://tailwindcss.com/), [Tokenami](https://github.com/tokenami/tokenami), [UnoCSS](https://unocss.dev/), [WXT](https://wxt.dev/), [Winglang](https://www.winglang.io/), [Graphql code generator](https://the-guild.dev/graphql/codegen), [Lingui](https://lingui.dev/), [Scaffdog](https://scaff.dog/), [Storybook](https://storybook.js.org), [...UnJS ecosystem](https://unjs.io/), [...60M+ npm monthly downloads](https://npm.chart.dev/jiti), [...6M+ public repositories](https://github.com/unjs/jiti/network/dependents).
+
+## ✅ Features
+
+- Seamless TypeScript and ESM syntax support for Node.js
+- Seamless interoperability between ESM and CommonJS
+- Asynchronous API to replace `import()`
+- Synchronous API to replace `require()` (deprecated)
+- Super slim and zero dependency
+- Custom resolve aliases
+- Smart syntax detection to avoid extra transforms
+- Node.js native `require.cache` integration
+- Filesystem transpile with hard disk caches
+- ESM Loader support
+- JSX support (opt-in)
+
+> [!IMPORTANT]
+> To enhance compatibility, jiti `>=2.1` enabled [`interopDefault`](#interopdefault) using a new Proxy method. If you migrated to `2.0.0` earlier, this might have caused behavior changes. In case of any issues during the upgrade, please [report](https://github.com/unjs/jiti/issues) so we can investigate to solve them. 🙏🏼
+
+## 💡 Usage
+
+### CLI
+
+You can use `jiti` CLI to quickly run any script with TypeScript and native ESM support!
+
+```bash
+npx jiti ./index.ts
+```
+
+### Programmatic
+
+Initialize a jiti instance:
+
+```js
+// ESM
+import { createJiti } from "jiti";
+const jiti = createJiti(import.meta.url);
+
+// CommonJS (deprecated)
+const { createJiti } = require("jiti");
+const jiti = createJiti(__filename);
+```
+
+Import (async) and resolve with ESM compatibility:
+
+```js
+// jiti.import(id) is similar to import(id)
+const mod = await jiti.import("./path/to/file.ts");
+
+// jiti.esmResolve(id) is similar to import.meta.resolve(id)
+const resolvedPath = jiti.esmResolve("./src");
+```
+
+If you need the default export of module, you can use `jiti.import(id, { default: true })` as shortcut to `mod?.default ?? mod`.
+
+```js
+// shortcut to mod?.default ?? mod
+const modDefault = await jiti.import("./path/to/file.ts", { default: true });
+```
+
+CommonJS (sync & deprecated):
+
+```js
+// jiti() is similar to require(id)
+const mod = jiti("./path/to/file.ts");
+
+// jiti.resolve() is similar to require.resolve(id)
+const resolvedPath = jiti.resolve("./src");
+```
+
+You can also pass options as the second argument:
+
+```js
+const jiti = createJiti(import.meta.url, { debug: true });
+```
+
+### Register global ESM loader
+
+You can globally register jiti using [global hooks](https://nodejs.org/api/module.html#initialize). (Important: Requires Node.js > 20)
+
+```js
+import "jiti/register";
+```
+
+Or:
+
+```bash
+node --import jiti/register index.ts
+```
+
+## 🎈 `jiti/native`
+
+You can alias `jiti` to `jiti/native` to directly depend on runtime's [`import.meta.resolve`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/import.meta/resolve) and dynamic [`import()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/import) support. This allows easing up the ecosystem transition to runtime native support by giving the same API of jiti.
+
+## ⚙️ Options
+
+### `debug`
+
+- Type: Boolean
+- Default: `false`
+- Environment variable: `JITI_DEBUG`
+
+Enable verbose logging. You can use `JITI_DEBUG=1 ` to enable it.
+
+### `fsCache`
+
+- Type: Boolean | String
+- Default: `true`
+- Environment variable: `JITI_FS_CACHE`
+
+Filesystem source cache (enabled by default)
+
+By default (when is `true`), jiti uses `node_modules/.cache/jiti` (if exists) or `{TMP_DIR}/jiti`.
+
+**Note:** It is recommended that this option be enabled for better performance.
+
+### `rebuildFsCache`
+
+- Type: Boolean
+- Default: `false`
+- Environment variable: `JITI_REBUILD_FS_CACHE`
+
+Rebuild filesystem source cache created by `fsCache`.
+
+### `moduleCache`
+
+- Type: String
+- Default: `true`
+- Environment variable: `JITI_MODULE_CACHE`
+
+Runtime module cache (enabled by default).
+
+Disabling allows editing code and importing the same module multiple times.
+
+When enabled, jiti integrates with Node.js native CommonJS cache-store.
+
+### `transform`
+
+- Type: Function
+- Default: Babel (lazy loaded)
+
+Transform function. See [src/babel](./src/babel.ts) for more details
+
+### `sourceMaps`
+
+- Type: Boolean
+- Default `false`
+- Environment variable: `JITI_SOURCE_MAPS`
+
+Add inline source map to transformed source for better debugging.
+
+### `interopDefault`
+
+- Type: Boolean
+- Default: `true`
+- Environment variable: `JITI_INTEROP_DEFAULT`
+
+Jiti combines module exports with the `default` export using an internal Proxy to improve compatibility with mixed CJS/ESM usage. You can check the current implementation [here](https://github.com/unjs/jiti/blob/main/src/utils.ts#L105).
+
+### `alias`
+
+- Type: Object
+- Default: -
+- Environment variable: `JITI_ALIAS`
+
+You can also pass an object to the environment variable for inline config. Example: `JITI_ALIAS='{"~/*": "./src/*"}' jiti ...`.
+
+Custom alias map used to resolve IDs.
+
+### `nativeModules`
+
+- Type: Array
+- Default: ['typescript']
+- Environment variable: `JITI_NATIVE_MODULES`
+
+List of modules (within `node_modules`) to always use native `require()` for them.
+
+### `transformModules`
+
+- Type: Array
+- Default: []
+- Environment variable: `JITI_TRANSFORM_MODULES`
+
+List of modules (within `node_modules`) to transform them regardless of syntax.
+
+### `importMeta`
+
+Parent module's [`import.meta`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/import.meta) context to use for ESM resolution. (only used for `jiti/native` import).
+
+### `tryNative`
+
+- Type: Boolean
+- Default: Enabled if bun is detected
+- Environment variable: `JITI_TRY_NATIVE`
+
+Try to use native require and import without jiti transformations first.
+
+### `jsx`
+
+- Type: Boolean | {options}
+- Default: `false`
+- Environment Variable: `JITI_JSX`
+
+Enable JSX support using [`@babel/plugin-transform-react-jsx`](https://babeljs.io/docs/babel-plugin-transform-react-jsx).
+
+See [`test/fixtures/jsx`](./test/fixtures/jsx) for framework integration examples.
+
+## Development
+
+- Clone this repository
+- Enable [Corepack](https://github.com/nodejs/corepack) using `corepack enable`
+- Install dependencies using `pnpm install`
+- Run `pnpm dev`
+- Run `pnpm jiti ./test/path/to/file.ts`
+
+## License
+
+
+
+Published under the [MIT](https://github.com/unjs/jiti/blob/main/LICENSE) license.
+Made by [@pi0](https://github.com/pi0) and [community](https://github.com/unjs/jiti/graphs/contributors) 💛
+
+
+
+
+
+
+
+
diff --git a/node_modules/jiti/dist/babel.cjs b/node_modules/jiti/dist/babel.cjs
new file mode 100644
index 0000000000000000000000000000000000000000..088011dd9b08ea270e4109bc2dabb9d732d40b86
--- /dev/null
+++ b/node_modules/jiti/dist/babel.cjs
@@ -0,0 +1,246 @@
+(()=>{var e={"./node_modules/.pnpm/@babel+core@7.28.4/node_modules/@babel/core/lib/config/files lazy recursive":function(e){function webpackEmptyAsyncContext(e){return Promise.resolve().then(function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t})}webpackEmptyAsyncContext.keys=()=>[],webpackEmptyAsyncContext.resolve=webpackEmptyAsyncContext,webpackEmptyAsyncContext.id="./node_modules/.pnpm/@babel+core@7.28.4/node_modules/@babel/core/lib/config/files lazy recursive",e.exports=webpackEmptyAsyncContext},"./node_modules/.pnpm/@babel+core@7.28.4/node_modules/@babel/core/lib/config/files sync recursive":function(e){function webpackEmptyContext(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}webpackEmptyContext.keys=()=>[],webpackEmptyContext.resolve=webpackEmptyContext,webpackEmptyContext.id="./node_modules/.pnpm/@babel+core@7.28.4/node_modules/@babel/core/lib/config/files sync recursive",e.exports=webpackEmptyContext},"./node_modules/.pnpm/@babel+plugin-syntax-class-properties@7.12.13_@babel+core@7.28.4/node_modules/@babel/plugin-syntax-class-properties/lib/index.js":function(e,t,r){"use strict";t.default=void 0;var n=(0,r("./node_modules/.pnpm/@babel+helper-plugin-utils@7.27.1/node_modules/@babel/helper-plugin-utils/lib/index.js").declare)(e=>(e.assertVersion(7),{name:"syntax-class-properties",manipulateOptions(e,t){t.plugins.push("classProperties","classPrivateProperties","classPrivateMethods")}}));t.default=n},"./node_modules/.pnpm/@jridgewell+gen-mapping@0.3.13/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js":function(e,t,r){var n;!function(e,t,r){"use strict";var n=Object.create,s=Object.defineProperty,i=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,a=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,__commonJS=(e,t)=>function(){return t||(0,e[o(e)[0]])((t={exports:{}}).exports,t),t.exports},__export=(e,t)=>{for(var r in t)s(e,r,{get:t[r],enumerable:!0})},__copyProps=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of o(t))l.call(e,a)||a===r||s(e,a,{get:()=>t[a],enumerable:!(n=i(t,a))||n.enumerable});return e},__toESM=(e,t,r)=>(r=null!=e?n(a(e)):{},__copyProps(!t&&e&&e.__esModule?r:s(r,"default",{value:e,enumerable:!0}),e)),__toCommonJS=e=>__copyProps(s({},"__esModule",{value:!0}),e),p=__commonJS({"umd:@jridgewell/sourcemap-codec"(e,r){r.exports=t}}),c=__commonJS({"umd:@jridgewell/trace-mapping"(e,t){t.exports=r}}),u={};__export(u,{GenMapping:()=>E,addMapping:()=>addMapping,addSegment:()=>addSegment,allMappings:()=>allMappings,fromMap:()=>fromMap,maybeAddMapping:()=>maybeAddMapping,maybeAddSegment:()=>maybeAddSegment,setIgnore:()=>setIgnore,setSourceContent:()=>setSourceContent,toDecodedMap:()=>toDecodedMap,toEncodedMap:()=>toEncodedMap}),e.exports=__toCommonJS(u);var d=class{constructor(){this._indexes={__proto__:null},this.array=[]}};function cast(e){return e}function get(e,t){return cast(e)._indexes[t]}function put(e,t){const r=get(e,t);if(void 0!==r)return r;const{array:n,_indexes:s}=cast(e),i=n.push(t);return s[t]=i-1}function remove(e,t){const r=get(e,t);if(void 0===r)return;const{array:n,_indexes:s}=cast(e);for(let e=r+1;eaddSegmentInternal(!0,e,t,r,n,s,i,o,a),maybeAddMapping=(e,t)=>addMappingInternal(!0,e,t);function setSourceContent(e,t,r){const{_sources:n,_sourcesContent:s}=cast2(e);s[put(n,t)]=r}function setIgnore(e,t,r=!0){const{_sources:n,_sourcesContent:s,_ignoreList:i}=cast2(e),o=put(n,t);o===s.length&&(s[o]=null),r?put(i,o):remove(i,o)}function toDecodedMap(e){const{_mappings:t,_sources:r,_sourcesContent:n,_names:s,_ignoreList:i}=cast2(e);return removeEmptyFinalLines(t),{version:3,file:e.file||void 0,names:s.array,sourceRoot:e.sourceRoot||void 0,sources:r.array,sourcesContent:n,mappings:t,ignoreList:i.array}}function toEncodedMap(e){const t=toDecodedMap(e);return Object.assign({},t,{mappings:(0,h.encode)(t.mappings)})}function fromMap(e){const t=new m.TraceMap(e),r=new E({file:t.file,sourceRoot:t.sourceRoot});return putAll(cast2(r)._names,t.names),putAll(cast2(r)._sources,t.sources),cast2(r)._sourcesContent=t.sourcesContent||t.sources.map(()=>null),cast2(r)._mappings=(0,m.decodedMappings)(t),t.ignoreList&&putAll(cast2(r)._ignoreList,t.ignoreList),r}function allMappings(e){const t=[],{_mappings:r,_sources:n,_names:s}=cast2(e);for(let e=0;e=0&&!(t>=e[n][f]);r=n--);return r}function insert(e,t,r){for(let r=e.length;r>t;r--)e[r]=e[r-1];e[t]=r}function removeEmptyFinalLines(e){const{length:t}=e;let r=t;for(let t=r-1;t>=0&&!(e[t].length>0);r=t,t--);rfunction(){return t||(0,e[o(e)[0]])((t={exports:{}}).exports,t),t.exports},__export=(e,t)=>{for(var r in t)s(e,r,{get:t[r],enumerable:!0})},__copyProps=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of o(t))l.call(e,a)||a===r||s(e,a,{get:()=>t[a],enumerable:!(n=i(t,a))||n.enumerable});return e},__toESM=(e,t,r)=>(r=null!=e?n(a(e)):{},__copyProps(!t&&e&&e.__esModule?r:s(r,"default",{value:e,enumerable:!0}),e)),__toCommonJS=e=>__copyProps(s({},"__esModule",{value:!0}),e),p=__commonJS({"umd:@jridgewell/trace-mapping"(e,t){t.exports=r}}),c=__commonJS({"umd:@jridgewell/gen-mapping"(e,r){r.exports=t}}),u={};__export(u,{default:()=>remapping}),e.exports=__toCommonJS(u);var d=__toESM(p()),h=__toESM(c()),m=__toESM(p()),f=SegmentObject("",-1,-1,"",null,!1),y=[];function SegmentObject(e,t,r,n,s,i){return{source:e,line:t,column:r,name:n,content:s,ignore:i}}function Source(e,t,r,n,s){return{map:e,sources:t,source:r,content:n,ignore:s}}function MapSource(e,t){return Source(e,t,"",null,!1)}function OriginalSource(e,t,r){return Source(null,y,e,t,r)}function traceMappings(e){const t=new h.GenMapping({file:e.map.file}),{sources:r,map:n}=e,s=n.names,i=(0,m.decodedMappings)(n);for(let e=0;enew d.TraceMap(e,"")),n=r.pop();for(let e=0;e1)throw new Error(`Transformation map ${e} must have exactly one source file.\nDid you specify these with the most recent transformation maps first?`);let s=build(n,t,"",0);for(let e=r.length-1;e>=0;e--)s=MapSource(r[e],[s]);return s}function build(e,t,r,n){const{resolvedSources:s,sourcesContent:i,ignoreList:o}=e,a=n+1;return MapSource(e,s.map((e,n)=>{const s={importer:r,depth:a,source:e||"",content:void 0,ignore:void 0},l=t(s.source,s),{source:p,content:c,ignore:u}=s;return l?build(new d.TraceMap(l,p),t,p,a):OriginalSource(p,void 0!==c?c:i?i[n]:null,void 0!==u?u:!!o&&o.includes(n))}))}var b=__toESM(c()),g=class{constructor(e,t){const r=t.decodedMappings?(0,b.toDecodedMap)(e):(0,b.toEncodedMap)(e);this.version=r.version,this.file=r.file,this.mappings=r.mappings,this.names=r.names,this.ignoreList=r.ignoreList,this.sourceRoot=r.sourceRoot,this.sources=r.sources,t.excludeContent||(this.sourcesContent=r.sourcesContent)}toString(){return JSON.stringify(this)}};function remapping(e,t,r){const n="object"==typeof r?r:{excludeContent:!!r,decodedMappings:!1},s=buildSourceMapTree(e,t);return new g(traceMappings(s),n)}}(e=r.nmd(e),r("./node_modules/.pnpm/@jridgewell+gen-mapping@0.3.13/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js"),r("./node_modules/.pnpm/@jridgewell+trace-mapping@0.3.31/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js")),e.exports="default"in(n=e).exports?n.exports.default:n.exports},"./node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js":function(e){e.exports=function(){"use strict";const e=/^[\w+.-]+:\/\//,t=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,r=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function isAbsoluteUrl(t){return e.test(t)}function isSchemeRelativeUrl(e){return e.startsWith("//")}function isAbsolutePath(e){return e.startsWith("/")}function isFileUrl(e){return e.startsWith("file:")}function isRelative(e){return/^[.?#]/.test(e)}function parseAbsoluteUrl(e){const r=t.exec(e);return makeUrl(r[1],r[2]||"",r[3],r[4]||"",r[5]||"/",r[6]||"",r[7]||"")}function parseFileUrl(e){const t=r.exec(e),n=t[2];return makeUrl("file:","",t[1]||"","",isAbsolutePath(n)?n:"/"+n,t[3]||"",t[4]||"")}function makeUrl(e,t,r,n,s,i,o){return{scheme:e,user:t,host:r,port:n,path:s,query:i,hash:o,type:7}}function parseUrl(e){if(isSchemeRelativeUrl(e)){const t=parseAbsoluteUrl("http:"+e);return t.scheme="",t.type=6,t}if(isAbsolutePath(e)){const t=parseAbsoluteUrl("http://foo.com"+e);return t.scheme="",t.host="",t.type=5,t}if(isFileUrl(e))return parseFileUrl(e);if(isAbsoluteUrl(e))return parseAbsoluteUrl(e);const t=parseAbsoluteUrl("http://foo.com/"+e);return t.scheme="",t.host="",t.type=e?e.startsWith("?")?3:e.startsWith("#")?2:4:1,t}function stripPathFilename(e){if(e.endsWith("/.."))return e;const t=e.lastIndexOf("/");return e.slice(0,t+1)}function mergePaths(e,t){normalizePath(t,t.type),"/"===e.path?e.path=t.path:e.path=stripPathFilename(t.path)+e.path}function normalizePath(e,t){const r=t<=4,n=e.path.split("/");let s=1,i=0,o=!1;for(let e=1;en&&(n=s)}normalizePath(r,n);const s=r.query+r.hash;switch(n){case 2:case 3:return s;case 4:{const n=r.path.slice(1);return n?isRelative(t||e)&&!isRelative(n)?"./"+n+s:n+s:s||"."}case 5:return r.path+s;default:return r.scheme+"//"+r.user+r.host+r.port+r.path+s}}return resolve}()},"./node_modules/.pnpm/@jridgewell+sourcemap-codec@1.5.5/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js":function(e,t,r){var n;!function(e){"use strict";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,__copyProps=(e,i,o,a)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let l of n(i))s.call(e,l)||l===o||t(e,l,{get:()=>i[l],enumerable:!(a=r(i,l))||a.enumerable});return e},__toCommonJS=e=>__copyProps(t({},"__esModule",{value:!0}),e),i={};((e,r)=>{for(var n in r)t(e,n,{get:r[n],enumerable:!0})})(i,{decode:()=>decode,decodeGeneratedRanges:()=>decodeGeneratedRanges,decodeOriginalScopes:()=>decodeOriginalScopes,encode:()=>encode,encodeGeneratedRanges:()=>encodeGeneratedRanges,encodeOriginalScopes:()=>encodeOriginalScopes}),e.exports=__toCommonJS(i);var o=",".charCodeAt(0),a=";".charCodeAt(0),l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",p=new Uint8Array(64),c=new Uint8Array(128);for(let e=0;e>>=1,i&&(r=-2147483648|-r),t+r}function encodeInteger(e,t,r){let n=t-r;n=n<0?-n<<1|1:n<<1;do{let t=31&n;n>>>=5,n>0&&(t|=32),e.write(p[t])}while(n>0);return t}function hasMoreVlq(e,t){return!(e.pos>=t)&&e.peek()!==o}var u=16384,d="undefined"!=typeof TextDecoder?new TextDecoder:"undefined"!=typeof Buffer?{decode:e=>Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString()}:{decode(e){let t="";for(let r=0;r0?t+d.decode(e.subarray(0,r)):t}},m=class{constructor(e){this.pos=0,this.buffer=e}next(){return this.buffer.charCodeAt(this.pos++)}peek(){return this.buffer.charCodeAt(this.pos)}indexOf(e){const{buffer:t,pos:r}=this,n=t.indexOf(e,r);return-1===n?t.length:n}},f=[];function decodeOriginalScopes(e){const{length:t}=e,r=new m(e),n=[],s=[];let i=0;for(;r.pos0&&r.write(o),n[0]=encodeInteger(r,i,n[0]),encodeInteger(r,a,0),encodeInteger(r,c,0),encodeInteger(r,6===s.length?1:0,0),6===s.length&&encodeInteger(r,s[5],0);for(const e of u)encodeInteger(r,e,0);for(t++;tl||i===l&&o>=p)break;t=_encodeOriginalScopes(e,t,r,n)}return r.write(o),n[0]=encodeInteger(r,l,n[0]),encodeInteger(r,p,0),t}function decodeGeneratedRanges(e){const{length:t}=e,r=new m(e),n=[],s=[];let i=0,o=0,a=0,l=0,p=0,c=0,u=0,d=0;do{const e=r.indexOf(";");let t=0;for(;r.pose;t--){const e=u;u=decodeInteger(r,u),d=decodeInteger(r,u===e?d:0);const t=decodeInteger(r,0);n.push([t,u,d])}}else n=[[e]];x.push(n)}while(hasMoreVlq(r,e))}b.bindings=x,n.push(b),s.push(b)}i++,r.pos=e+1}while(r.pos0&&r.write(o),n[1]=encodeInteger(r,s[1],n[1]),encodeInteger(r,(6===s.length?1:0)|(u?2:0)|(c?4:0),0),6===s.length){const{4:e,5:t}=s;e!==n[2]&&(n[3]=0),n[2]=encodeInteger(r,e,n[2]),n[3]=encodeInteger(r,t,n[3])}if(u){const{0:e,1:t,2:i}=s.callsite;e!==n[4]?(n[5]=0,n[6]=0):t!==n[5]&&(n[6]=0),n[4]=encodeInteger(r,e,n[4]),n[5]=encodeInteger(r,t,n[5]),n[6]=encodeInteger(r,i,n[6])}if(d)for(const e of d){e.length>1&&encodeInteger(r,-e.length,0),encodeInteger(r,e[0][0],0);let t=i,n=a;for(let s=1;sl||i===l&&o>=p)break;t=_encodeGeneratedRanges(e,t,r,n)}return n[0]0&&t.write(a),0===p.length)continue;let c=0;for(let e=0;e0&&t.write(o),c=encodeInteger(t,a[0],c),1!==a.length&&(r=encodeInteger(t,a[1],r),n=encodeInteger(t,a[2],n),s=encodeInteger(t,a[3],s),4!==a.length&&(i=encodeInteger(t,a[4],i)))}}return t.flush()}}(e=r.nmd(e)),e.exports="default"in(n=e).exports?n.exports.default:n.exports},"./node_modules/.pnpm/@jridgewell+trace-mapping@0.3.31/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js":function(e,t,r){var n;!function(e,t,r){"use strict";var n=Object.create,s=Object.defineProperty,i=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,a=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,__commonJS=(e,t)=>function(){return t||(0,e[o(e)[0]])((t={exports:{}}).exports,t),t.exports},__export=(e,t)=>{for(var r in t)s(e,r,{get:t[r],enumerable:!0})},__copyProps=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of o(t))l.call(e,a)||a===r||s(e,a,{get:()=>t[a],enumerable:!(n=i(t,a))||n.enumerable});return e},__toESM=(e,t,r)=>(r=null!=e?n(a(e)):{},__copyProps(!t&&e&&e.__esModule?r:s(r,"default",{value:e,enumerable:!0}),e)),__toCommonJS=e=>__copyProps(s({},"__esModule",{value:!0}),e),p=__commonJS({"umd:@jridgewell/sourcemap-codec"(e,t){t.exports=r}}),c=__commonJS({"umd:@jridgewell/resolve-uri"(e,r){r.exports=t}}),u={};__export(u,{AnyMap:()=>FlattenMap,FlattenMap:()=>FlattenMap,GREATEST_LOWER_BOUND:()=>_,LEAST_UPPER_BOUND:()=>P,TraceMap:()=>A,allGeneratedPositionsFor:()=>allGeneratedPositionsFor,decodedMap:()=>decodedMap,decodedMappings:()=>decodedMappings,eachMapping:()=>eachMapping,encodedMap:()=>encodedMap,encodedMappings:()=>encodedMappings,generatedPositionFor:()=>generatedPositionFor,isIgnored:()=>isIgnored,originalPositionFor:()=>originalPositionFor,presortedDecodedMap:()=>presortedDecodedMap,sourceContentFor:()=>sourceContentFor,traceSegment:()=>traceSegment}),e.exports=__toCommonJS(u);var d=__toESM(p()),h=__toESM(c());function stripFilename(e){if(!e)return"";const t=e.lastIndexOf("/");return e.slice(0,t+1)}function resolver(e,t){const r=stripFilename(e),n=t?t+"/":"";return e=>(0,h.default)(n+(e||""),r)}var m=0,f=1,y=2,b=3,g=4,x=1,v=2;function maybeSort(e,t){const r=nextUnsortedSegmentLine(e,0);if(r===e.length)return e;t||(e=e.slice());for(let n=r;n[]);for(let t=0;t>1),i=e[s][m]-t;if(0===i)return E=!0,s;i<0?r=s+1:n=s-1}return E=!1,r-1}function upperBound(e,t,r){for(let n=r+1;n=0&&e[n][m]===t;r=n--);return r}function memoizedState(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function memoizedBinarySearch(e,t,r,n){const{lastKey:s,lastNeedle:i,lastIndex:o}=r;let a=0,l=e.length-1;if(n===s){if(t===i)return E=-1!==o&&e[o][m]===t,o;t>=i?a=-1===o?0:o:l=o}return r.lastKey=n,r.lastNeedle=t,r.lastIndex=binarySearch(e,t,a,l)}function parse(e){return"string"==typeof e?JSON.parse(e):e}var FlattenMap=function(e,t){const r=parse(e);if(!("sections"in r))return new A(r,t);const n=[],s=[],i=[],o=[],a=[];return recurse(r,t,n,s,i,o,a,0,0,1/0,1/0),presortedDecodedMap({version:3,file:r.file,names:o,sources:s,sourcesContent:i,mappings:n,ignoreList:a})};function recurse(e,t,r,n,s,i,o,a,l,p,c){const{sections:u}=e;for(let e=0;ep)return;const n=getLine(r,t),s=0===e?l:0,i=v[e];for(let e=0;e=c)return;if(1===r.length){n.push([o]);continue}const a=h+r[f],l=r[y],u=r[b];n.push(4===r.length?[o,a,l,u]:[o,a,l,u,x+r[g]])}}}function append(e,t){for(let r=0;r=n.length)return null;const s=n[t],i=traceSegmentInternal(s,cast(e)._decodedMemo,t,r,_);return-1===i?null:s[i]}function originalPositionFor(e,t){let{line:r,column:n,bias:s}=t;if(r--,r<0)throw new Error(T);if(n<0)throw new Error(S);const i=decodedMappings(e);if(r>=i.length)return OMapping(null,null,null,null);const o=i[r],a=traceSegmentInternal(o,cast(e)._decodedMemo,r,n,s||_);if(-1===a)return OMapping(null,null,null,null);const l=o[a];if(1===l.length)return OMapping(null,null,null,null);const{names:p,resolvedSources:c}=e;return OMapping(c[l[f]],l[y]+1,l[b],5===l.length?p[l[g]]:null)}function generatedPositionFor(e,t){const{source:r,line:n,column:s,bias:i}=t;return generatedPosition(e,r,n,s,i||_,!1)}function allGeneratedPositionsFor(e,t){const{source:r,line:n,column:s,bias:i}=t;return generatedPosition(e,r,n,s,i||P,!0)}function eachMapping(e,t){const r=decodedMappings(e),{names:n,resolvedSources:s}=e;for(let e=0;e{"%%"!==e&&(n++,"%c"===e&&(s=n))}),t.splice(s,0,r)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")||t.storage.getItem("DEBUG")}catch(e){}!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG);return e},t.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=r("./node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js")(t);const{formatters:n}=e.exports;n.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},"./node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js":function(e,t,r){e.exports=function(e){function createDebug(e){let t,r,n,s=null;function debug(...e){if(!debug.enabled)return;const r=debug,n=Number(new Date),s=n-(t||n);r.diff=s,r.prev=t,r.curr=n,t=n,e[0]=createDebug.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let i=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,(t,n)=>{if("%%"===t)return"%";i++;const s=createDebug.formatters[n];if("function"==typeof s){const n=e[i];t=s.call(r,n),e.splice(i,1),i--}return t}),createDebug.formatArgs.call(r,e);(r.log||createDebug.log).apply(r,e)}return debug.namespace=e,debug.useColors=createDebug.useColors(),debug.color=createDebug.selectColor(e),debug.extend=extend,debug.destroy=createDebug.destroy,Object.defineProperty(debug,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==s?s:(r!==createDebug.namespaces&&(r=createDebug.namespaces,n=createDebug.enabled(e)),n),set:e=>{s=e}}),"function"==typeof createDebug.init&&createDebug.init(debug),debug}function extend(e,t){const r=createDebug(this.namespace+(void 0===t?":":t)+e);return r.log=this.log,r}function matchesTemplate(e,t){let r=0,n=0,s=-1,i=0;for(;r"-"+e)].join(",");return createDebug.enable(""),e},createDebug.enable=function(e){createDebug.save(e),createDebug.namespaces=e,createDebug.names=[],createDebug.skips=[];const t=("string"==typeof e?e:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(const e of t)"-"===e[0]?createDebug.skips.push(e.slice(1)):createDebug.names.push(e)},createDebug.enabled=function(e){for(const t of createDebug.skips)if(matchesTemplate(e,t))return!1;for(const t of createDebug.names)if(matchesTemplate(e,t))return!0;return!1},createDebug.humanize=r("./node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js"),createDebug.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach(t=>{createDebug[t]=e[t]}),createDebug.names=[],createDebug.skips=[],createDebug.formatters={},createDebug.selectColor=function(e){let t=0;for(let r=0;r{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),t.colors=[6,2,3,4,5,1];try{const e=r("./node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js");e&&(e.stderr||e).level>=2&&(t.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(e){}t.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{const r=t.substring(6).toLowerCase().replace(/_([a-z])/g,(e,t)=>t.toUpperCase());let n=process.env[t];return n=!!/^(yes|on|true|enabled)$/i.test(n)||!/^(no|off|false|disabled)$/i.test(n)&&("null"===n?null:Number(n)),e[r]=n,e},{}),e.exports=r("./node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js")(t);const{formatters:i}=e.exports;i.o=function(e){return this.inspectOpts.colors=this.useColors,s.inspect(e,this.inspectOpts).split("\n").map(e=>e.trim()).join(" ")},i.O=function(e){return this.inspectOpts.colors=this.useColors,s.inspect(e,this.inspectOpts)}},"./node_modules/.pnpm/gensync@1.0.0-beta.2/node_modules/gensync/index.js":function(e){"use strict";const t=Symbol.for("gensync:v1:start"),r=Symbol.for("gensync:v1:suspend"),n="GENSYNC_OPTIONS_ERROR",s="GENSYNC_RACE_NONEMPTY",i="GENSYNC_ERRBACK_NO_CALLBACK";function assertTypeof(e,t,r,s){if(typeof r===e||s&&void 0===r)return;let i;throw i=s?`Expected opts.${t} to be either a ${e}, or undefined.`:`Expected opts.${t} to be a ${e}.`,makeError(i,n)}function makeError(e,t){return Object.assign(new Error(e),{code:t})}function buildOperation({name:e,arity:n,sync:s,async:i}){return setFunctionMetadata(e,n,function*(...e){const n=yield t;if(!n){return s.call(this,e)}let o;try{i.call(this,e,e=>{o||(o={value:e},n())},e=>{o||(o={err:e},n())})}catch(e){o={err:e},n()}if(yield r,o.hasOwnProperty("err"))throw o.err;return o.value})}function evaluateSync(e){let t;for(;!({value:t}=e.next()).done;)assertStart(t,e);return t}function evaluateAsync(e,t,r){!function step(){try{let r;for(;!({value:r}=e.next()).done;){assertStart(r,e);let t=!0,n=!1;const s=e.next(()=>{t?n=!0:step()});if(t=!1,assertSuspend(s,e),!n)return}return t(r)}catch(e){return r(e)}}()}function assertStart(e,r){e!==t&&throwError(r,makeError(`Got unexpected yielded value in gensync generator: ${JSON.stringify(e)}. Did you perhaps mean to use 'yield*' instead of 'yield'?`,"GENSYNC_EXPECTED_START"))}function assertSuspend({value:e,done:t},n){(t||e!==r)&&throwError(n,makeError(t?"Unexpected generator completion. If you get this, it is probably a gensync bug.":`Expected GENSYNC_SUSPEND, got ${JSON.stringify(e)}. If you get this, it is probably a gensync bug.`,"GENSYNC_EXPECTED_SUSPEND"))}function throwError(e,t){throw e.throw&&e.throw(t),t}function setFunctionMetadata(e,t,r){if("string"==typeof e){const t=Object.getOwnPropertyDescriptor(r,"name");t&&!t.configurable||Object.defineProperty(r,"name",Object.assign(t||{},{configurable:!0,value:e}))}if("number"==typeof t){const e=Object.getOwnPropertyDescriptor(r,"length");e&&!e.configurable||Object.defineProperty(r,"length",Object.assign(e||{},{configurable:!0,value:t}))}return r}e.exports=Object.assign(function(e){let t=e;return t="function"!=typeof e?function({name:e,arity:t,sync:r,async:s,errback:i}){if(assertTypeof("string","name",e,!0),assertTypeof("number","arity",t,!0),assertTypeof("function","sync",r),assertTypeof("function","async",s,!0),assertTypeof("function","errback",i,!0),s&&i)throw makeError("Expected one of either opts.async or opts.errback, but got _both_.",n);if("string"!=typeof e){let t;i&&i.name&&"errback"!==i.name&&(t=i.name),s&&s.name&&"async"!==s.name&&(t=s.name.replace(/Async$/,"")),r&&r.name&&"sync"!==r.name&&(t=r.name.replace(/Sync$/,"")),"string"==typeof t&&(e=t)}"number"!=typeof t&&(t=r.length);return buildOperation({name:e,arity:t,sync:function(e){return r.apply(this,e)},async:function(e,t,n){s?s.apply(this,e).then(t,n):i?i.call(this,...e,(e,r)=>{null==e?t(r):n(e)}):t(r.apply(this,e))}})}(e):function(e){return setFunctionMetadata(e.name,e.length,function(...t){return e.apply(this,t)})}(e),Object.assign(t,function(e){const t={sync:function(...t){return evaluateSync(e.apply(this,t))},async:function(...t){return new Promise((r,n)=>{evaluateAsync(e.apply(this,t),r,n)})},errback:function(...t){const r=t.pop();if("function"!=typeof r)throw makeError("Asynchronous function called without callback",i);let n;try{n=e.apply(this,t)}catch(e){return void r(e)}evaluateAsync(n,e=>r(void 0,e),e=>r(e))}};return t}(t))},{all:buildOperation({name:"all",arity:1,sync:function(e){return Array.from(e[0]).map(e=>evaluateSync(e))},async:function(e,t,r){const n=Array.from(e[0]);if(0===n.length)return void Promise.resolve().then(()=>t([]));let s=0;const i=n.map(()=>{});n.forEach((e,n)=>{evaluateAsync(e,e=>{i[n]=e,s+=1,s===i.length&&t(i)},r)})}}),race:buildOperation({name:"race",arity:1,sync:function(e){const t=Array.from(e[0]);if(0===t.length)throw makeError("Must race at least 1 item",s);return evaluateSync(t[0])},async:function(e,t,r){const n=Array.from(e[0]);if(0===n.length)throw makeError("Must race at least 1 item",s);for(const e of n)evaluateAsync(e,t,r)}})})},"./node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js":function(e){"use strict";e.exports=(e,t=process.argv)=>{const r=e.startsWith("-")?"":1===e.length?"-":"--",n=t.indexOf(r+e),s=t.indexOf("--");return-1!==n&&(-1===s||n{for(const n in e)r.call(e,n)&&t(n,e[n])},fourHexEscape=e=>"\\u"+("0000"+e).slice(-4),hexadecimal=(e,t)=>{let r=e.toString(16);return t?r:r.toUpperCase()},n=t.toString,s=Array.isArray,isBigInt=e=>"bigint"==typeof e,i={"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},o=/[\\\b\f\n\r\t]/,a=/[0-9]/,l=/[\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/,p=/([\uD800-\uDBFF][\uDC00-\uDFFF])|([\uD800-\uDFFF])|(['"`])|[^]/g,c=/([\uD800-\uDBFF][\uDC00-\uDFFF])|([\uD800-\uDFFF])|(['"`])|[^ !#-&\(-\[\]-_a-~]/g,jsesc=(e,t)=>{const increaseIndentation=()=>{g=b,++t.indentLevel,b=t.indent.repeat(t.indentLevel)},r={escapeEverything:!1,minimal:!1,isScriptContext:!1,quotes:"single",wrap:!1,es6:!1,json:!1,compact:!0,lowercaseHex:!1,numbers:"decimal",indent:"\t",indentLevel:0,__inline1__:!1,__inline2__:!1},u=t&&t.json;var d,h;u&&(r.quotes="double",r.wrap=!0),d=r,"single"!=(t=(h=t)?(forOwn(h,(e,t)=>{d[e]=t}),d):d).quotes&&"double"!=t.quotes&&"backtick"!=t.quotes&&(t.quotes="single");const m="double"==t.quotes?'"':"backtick"==t.quotes?"`":"'",f=t.compact,y=t.lowercaseHex;let b=t.indent.repeat(t.indentLevel),g="";const x=t.__inline1__,v=t.__inline2__,E=f?"":"\n";let T,S=!0;const P="binary"==t.numbers,_="octal"==t.numbers,A="decimal"==t.numbers,C="hexadecimal"==t.numbers;if(u&&e&&(e=>"function"==typeof e)(e.toJSON)&&(e=e.toJSON()),!(e=>"string"==typeof e||"[object String]"==n.call(e))(e)){if((e=>"[object Map]"==n.call(e))(e))return 0==e.size?"new Map()":(f||(t.__inline1__=!0,t.__inline2__=!1),"new Map("+jsesc(Array.from(e),t)+")");if((e=>"[object Set]"==n.call(e))(e))return 0==e.size?"new Set()":"new Set("+jsesc(Array.from(e),t)+")";if((e=>"function"==typeof Buffer&&Buffer.isBuffer(e))(e))return 0==e.length?"Buffer.from([])":"Buffer.from("+jsesc(Array.from(e),t)+")";if(s(e))return T=[],t.wrap=!0,x&&(t.__inline1__=!1,t.__inline2__=!0),v||increaseIndentation(),((e,t)=>{const r=e.length;let n=-1;for(;++n{S=!1,v&&(t.__inline2__=!1),T.push((f||v?"":b)+jsesc(e,t))}),S?"[]":v?"["+T.join(", ")+"]":"["+E+T.join(","+E)+E+(f?"":g)+"]";if((e=>"number"==typeof e||"[object Number]"==n.call(e))(e)||isBigInt(e)){if(u)return JSON.stringify(Number(e));let t;if(A)t=String(e);else if(C){let r=e.toString(16);y||(r=r.toUpperCase()),t="0x"+r}else P?t="0b"+e.toString(2):_&&(t="0o"+e.toString(8));return isBigInt(e)?t+"n":t}return isBigInt(e)?u?JSON.stringify(Number(e)):e+"n":(e=>"[object Object]"==n.call(e))(e)?(T=[],t.wrap=!0,increaseIndentation(),forOwn(e,(e,r)=>{S=!1,T.push((f?"":b)+jsesc(e,t)+":"+(f?"":" ")+jsesc(r,t))}),S?"{}":"{"+E+T.join(","+E)+E+(f?"":g)+"}"):u?JSON.stringify(e)||"null":String(e)}const w=t.escapeEverything?p:c;return T=e.replace(w,(e,r,n,s,p,c)=>{if(r){if(t.minimal)return r;const e=r.charCodeAt(0),n=r.charCodeAt(1);if(t.es6){return"\\u{"+hexadecimal(1024*(e-55296)+n-56320+65536,y)+"}"}return fourHexEscape(hexadecimal(e,y))+fourHexEscape(hexadecimal(n,y))}if(n)return fourHexEscape(hexadecimal(n.charCodeAt(0),y));if("\0"==e&&!u&&!a.test(c.charAt(p+1)))return"\\0";if(s)return s==m||t.escapeEverything?"\\"+s:s;if(o.test(e))return i[e];if(t.minimal&&!l.test(e))return e;const d=hexadecimal(e.charCodeAt(0),y);return u||d.length>2?fourHexEscape(d):"\\x"+("00"+d).slice(-2)}),"`"==m&&(T=T.replace(/\$\{/g,"\\${")),t.isScriptContext&&(T=T.replace(/<\/(script|style)/gi,"<\\/$1").replace(/
+
+```
+
+If you do not control the page, you could try workarounds such as polling for the presence of a specific element.
+
+For more details, see the discussion in [#640](https://github.com/jsdom/jsdom/issues/640), especially [@matthewkastor](https://github.com/matthewkastor)'s [insightful comment](https://github.com/jsdom/jsdom/issues/640#issuecomment-22216965).
+
+### Unimplemented parts of the web platform
+
+Although we enjoy adding new features to jsdom and keeping it up to date with the latest web specs, it has many missing APIs. Please feel free to file an issue for anything missing, but we're a small and busy team, so a pull request might work even better.
+
+Some features of jsdom are provided by our dependencies. Notable documentation in that regard includes the list of [supported CSS selectors](https://github.com/dperini/nwsapi/wiki/CSS-supported-selectors) for our CSS selector engine, [`nwsapi`](https://github.com/dperini/nwsapi).
+
+Beyond just features that we haven't gotten to yet, there are two major features that are currently outside the scope of jsdom. These are:
+
+- **Navigation**: the ability to change the global object, and all other objects, when clicking a link or assigning `location.href` or similar.
+- **Layout**: the ability to calculate where elements will be visually laid out as a result of CSS, which impacts methods like `getBoundingClientRects()` or properties like `offsetTop`.
+
+Currently jsdom has dummy behaviors for some aspects of these features, such as sending a "not implemented" `"jsdomError"` to the virtual console for navigation, or returning zeros for many layout-related properties. Often you can work around these limitations in your code, e.g. by creating new `JSDOM` instances for each page you "navigate" to during a crawl, or using `Object.defineProperty()` to change what various layout-related getters and methods return.
+
+Note that other tools in the same space, such as PhantomJS, do support these features. On the wiki, we have a more complete writeup about [jsdom vs. PhantomJS](https://github.com/jsdom/jsdom/wiki/jsdom-vs.-PhantomJS).
+
+## Supporting jsdom
+
+jsdom is a community-driven project maintained by a team of [volunteers](https://github.com/orgs/jsdom/people). You could support jsdom by:
+
+- [Getting professional support for jsdom](https://tidelift.com/subscription/pkg/npm-jsdom?utm_source=npm-jsdom&utm_medium=referral&utm_campaign=readme) as part of a Tidelift subscription. Tidelift helps making open source sustainable for us while giving teams assurances for maintenance, licensing, and security.
+- [Contributing](https://github.com/jsdom/jsdom/blob/main/Contributing.md) directly to the project.
+
+## Getting help
+
+If you need help with jsdom, please feel free to use any of the following venues:
+
+- The [mailing list](https://groups.google.com/group/jsdom) (best for "how do I" questions)
+- The [issue tracker](https://github.com/jsdom/jsdom/issues) (best for bug reports)
+- The Matrix room: [#jsdom:matrix.org](https://matrix.to/#/#jsdom:matrix.org)
diff --git a/node_modules/jsdom/lib/api.js b/node_modules/jsdom/lib/api.js
new file mode 100644
index 0000000000000000000000000000000000000000..c996f9618f216b6cf166faff92325e70680a8250
--- /dev/null
+++ b/node_modules/jsdom/lib/api.js
@@ -0,0 +1,335 @@
+"use strict";
+const path = require("path");
+const fs = require("fs").promises;
+const vm = require("vm");
+const toughCookie = require("tough-cookie");
+const sniffHTMLEncoding = require("html-encoding-sniffer");
+const whatwgURL = require("whatwg-url");
+const whatwgEncoding = require("whatwg-encoding");
+const { URL } = require("whatwg-url");
+const MIMEType = require("whatwg-mimetype");
+const idlUtils = require("./jsdom/living/generated/utils.js");
+const VirtualConsole = require("./jsdom/virtual-console.js");
+const { createWindow } = require("./jsdom/browser/Window.js");
+const { parseIntoDocument } = require("./jsdom/browser/parser");
+const { fragmentSerialization } = require("./jsdom/living/domparsing/serialization.js");
+const ResourceLoader = require("./jsdom/browser/resources/resource-loader.js");
+const NoOpResourceLoader = require("./jsdom/browser/resources/no-op-resource-loader.js");
+
+class CookieJar extends toughCookie.CookieJar {
+ constructor(store, options) {
+ // jsdom cookie jars must be loose by default
+ super(store, { looseMode: true, ...options });
+ }
+}
+
+const window = Symbol("window");
+let sharedFragmentDocument = null;
+
+class JSDOM {
+ constructor(input = "", options = {}) {
+ const mimeType = new MIMEType(options.contentType === undefined ? "text/html" : options.contentType);
+ const { html, encoding } = normalizeHTML(input, mimeType);
+
+ options = transformOptions(options, encoding, mimeType);
+
+ this[window] = createWindow(options.windowOptions);
+
+ const documentImpl = idlUtils.implForWrapper(this[window]._document);
+
+ options.beforeParse(this[window]._globalProxy);
+
+ parseIntoDocument(html, documentImpl);
+
+ documentImpl.close();
+ }
+
+ get window() {
+ // It's important to grab the global proxy, instead of just the result of `createWindow(...)`, since otherwise
+ // things like `window.eval` don't exist.
+ return this[window]._globalProxy;
+ }
+
+ get virtualConsole() {
+ return this[window]._virtualConsole;
+ }
+
+ get cookieJar() {
+ // TODO NEWAPI move _cookieJar to window probably
+ return idlUtils.implForWrapper(this[window]._document)._cookieJar;
+ }
+
+ serialize() {
+ return fragmentSerialization(idlUtils.implForWrapper(this[window]._document), { requireWellFormed: false });
+ }
+
+ nodeLocation(node) {
+ if (!idlUtils.implForWrapper(this[window]._document)._parseOptions.sourceCodeLocationInfo) {
+ throw new Error("Location information was not saved for this jsdom. Use includeNodeLocations during creation.");
+ }
+
+ return idlUtils.implForWrapper(node).sourceCodeLocation;
+ }
+
+ getInternalVMContext() {
+ if (!vm.isContext(this[window])) {
+ throw new TypeError("This jsdom was not configured to allow script running. " +
+ "Use the runScripts option during creation.");
+ }
+
+ return this[window];
+ }
+
+ reconfigure(settings) {
+ if ("windowTop" in settings) {
+ this[window]._top = settings.windowTop;
+ }
+
+ if ("url" in settings) {
+ const document = idlUtils.implForWrapper(this[window]._document);
+
+ const url = whatwgURL.parseURL(settings.url);
+ if (url === null) {
+ throw new TypeError(`Could not parse "${settings.url}" as a URL`);
+ }
+
+ document._URL = url;
+ document._origin = whatwgURL.serializeURLOrigin(document._URL);
+ this[window]._sessionHistory.currentEntry.url = url;
+ document._clearBaseURLCache();
+ }
+ }
+
+ static fragment(string = "") {
+ if (!sharedFragmentDocument) {
+ sharedFragmentDocument = (new JSDOM()).window.document;
+ }
+
+ const template = sharedFragmentDocument.createElement("template");
+ template.innerHTML = string;
+ return template.content;
+ }
+
+ static fromURL(url, options = {}) {
+ return Promise.resolve().then(() => {
+ // Remove the hash while sending this through the research loader fetch().
+ // It gets added back a few lines down when constructing the JSDOM object.
+ const parsedURL = new URL(url);
+ const originalHash = parsedURL.hash;
+ parsedURL.hash = "";
+ url = parsedURL.href;
+
+ options = normalizeFromURLOptions(options);
+
+ const resourceLoader = resourcesToResourceLoader(options.resources);
+ const resourceLoaderForInitialRequest = resourceLoader.constructor === NoOpResourceLoader ?
+ new ResourceLoader() :
+ resourceLoader;
+
+ const req = resourceLoaderForInitialRequest.fetch(url, {
+ accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
+ cookieJar: options.cookieJar,
+ referrer: options.referrer
+ });
+
+ return req.then(body => {
+ const res = req.response;
+
+ options = Object.assign(options, {
+ url: req.href + originalHash,
+ contentType: res.headers["content-type"],
+ referrer: req.getHeader("referer") ?? undefined
+ });
+
+ return new JSDOM(body, options);
+ });
+ });
+ }
+
+ static async fromFile(filename, options = {}) {
+ options = normalizeFromFileOptions(filename, options);
+ const buffer = await fs.readFile(filename);
+
+ return new JSDOM(buffer, options);
+ }
+}
+
+function normalizeFromURLOptions(options) {
+ // Checks on options that are invalid for `fromURL`
+ if (options.url !== undefined) {
+ throw new TypeError("Cannot supply a url option when using fromURL");
+ }
+ if (options.contentType !== undefined) {
+ throw new TypeError("Cannot supply a contentType option when using fromURL");
+ }
+
+ // Normalization of options which must be done before the rest of the fromURL code can use them, because they are
+ // given to request()
+ const normalized = { ...options };
+
+ if (options.referrer !== undefined) {
+ normalized.referrer = (new URL(options.referrer)).href;
+ }
+
+ if (options.cookieJar === undefined) {
+ normalized.cookieJar = new CookieJar();
+ }
+
+ return normalized;
+
+ // All other options don't need to be processed yet, and can be taken care of in the normal course of things when
+ // `fromURL` calls `new JSDOM(html, options)`.
+}
+
+function normalizeFromFileOptions(filename, options) {
+ const normalized = { ...options };
+
+ if (normalized.contentType === undefined) {
+ const extname = path.extname(filename);
+ if (extname === ".xhtml" || extname === ".xht" || extname === ".xml") {
+ normalized.contentType = "application/xhtml+xml";
+ }
+ }
+
+ if (normalized.url === undefined) {
+ normalized.url = new URL("file:" + path.resolve(filename));
+ }
+
+ return normalized;
+}
+
+function transformOptions(options, encoding, mimeType) {
+ const transformed = {
+ windowOptions: {
+ // Defaults
+ url: "about:blank",
+ referrer: "",
+ contentType: "text/html",
+ parsingMode: "html",
+ parseOptions: {
+ sourceCodeLocationInfo: false,
+ scriptingEnabled: false
+ },
+ runScripts: undefined,
+ encoding,
+ pretendToBeVisual: false,
+ storageQuota: 5000000,
+
+ // Defaults filled in later
+ resourceLoader: undefined,
+ virtualConsole: undefined,
+ cookieJar: undefined
+ },
+
+ // Defaults
+ beforeParse() { }
+ };
+
+ // options.contentType was parsed into mimeType by the caller.
+ if (!mimeType.isHTML() && !mimeType.isXML()) {
+ throw new RangeError(`The given content type of "${options.contentType}" was not a HTML or XML content type`);
+ }
+
+ transformed.windowOptions.contentType = mimeType.essence;
+ transformed.windowOptions.parsingMode = mimeType.isHTML() ? "html" : "xml";
+
+ if (options.url !== undefined) {
+ transformed.windowOptions.url = (new URL(options.url)).href;
+ }
+
+ if (options.referrer !== undefined) {
+ transformed.windowOptions.referrer = (new URL(options.referrer)).href;
+ }
+
+ if (options.includeNodeLocations) {
+ if (transformed.windowOptions.parsingMode === "xml") {
+ throw new TypeError("Cannot set includeNodeLocations to true with an XML content type");
+ }
+
+ transformed.windowOptions.parseOptions = { sourceCodeLocationInfo: true };
+ }
+
+ transformed.windowOptions.cookieJar = options.cookieJar === undefined ?
+ new CookieJar() :
+ options.cookieJar;
+
+ transformed.windowOptions.virtualConsole = options.virtualConsole === undefined ?
+ (new VirtualConsole()).forwardTo(console) :
+ options.virtualConsole;
+
+ if (!(transformed.windowOptions.virtualConsole instanceof VirtualConsole)) {
+ throw new TypeError("virtualConsole must be an instance of VirtualConsole");
+ }
+
+ transformed.windowOptions.resourceLoader = resourcesToResourceLoader(options.resources);
+
+ if (options.runScripts !== undefined) {
+ transformed.windowOptions.runScripts = String(options.runScripts);
+ if (transformed.windowOptions.runScripts === "dangerously") {
+ transformed.windowOptions.parseOptions.scriptingEnabled = true;
+ } else if (transformed.windowOptions.runScripts !== "outside-only") {
+ throw new RangeError(`runScripts must be undefined, "dangerously", or "outside-only"`);
+ }
+ }
+
+ if (options.beforeParse !== undefined) {
+ transformed.beforeParse = options.beforeParse;
+ }
+
+ if (options.pretendToBeVisual !== undefined) {
+ transformed.windowOptions.pretendToBeVisual = Boolean(options.pretendToBeVisual);
+ }
+
+ if (options.storageQuota !== undefined) {
+ transformed.windowOptions.storageQuota = Number(options.storageQuota);
+ }
+
+ return transformed;
+}
+
+function normalizeHTML(html, mimeType) {
+ let encoding = "UTF-8";
+
+ if (ArrayBuffer.isView(html)) {
+ html = Buffer.from(html.buffer, html.byteOffset, html.byteLength);
+ } else if (html instanceof ArrayBuffer) {
+ html = Buffer.from(html);
+ }
+
+ if (Buffer.isBuffer(html)) {
+ encoding = sniffHTMLEncoding(html, {
+ defaultEncoding: mimeType.isXML() ? "UTF-8" : "windows-1252",
+ transportLayerEncodingLabel: mimeType.parameters.get("charset")
+ });
+ html = whatwgEncoding.decode(html, encoding);
+ } else {
+ html = String(html);
+ }
+
+ return { html, encoding };
+}
+
+function resourcesToResourceLoader(resources) {
+ switch (resources) {
+ case undefined: {
+ return new NoOpResourceLoader();
+ }
+ case "usable": {
+ return new ResourceLoader();
+ }
+ default: {
+ if (!(resources instanceof ResourceLoader)) {
+ throw new TypeError("resources must be an instance of ResourceLoader");
+ }
+ return resources;
+ }
+ }
+}
+
+exports.JSDOM = JSDOM;
+
+exports.VirtualConsole = VirtualConsole;
+exports.CookieJar = CookieJar;
+exports.ResourceLoader = ResourceLoader;
+
+exports.toughCookie = toughCookie;
diff --git a/node_modules/jsdom/lib/jsdom/browser/Window.js b/node_modules/jsdom/lib/jsdom/browser/Window.js
new file mode 100644
index 0000000000000000000000000000000000000000..1c4601d4a38d93e2a344c55b30ceea8552462cd9
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/browser/Window.js
@@ -0,0 +1,1022 @@
+"use strict";
+const vm = require("vm");
+const webIDLConversions = require("webidl-conversions");
+const { CSSStyleDeclaration } = require("cssstyle");
+const whatwgURL = require("whatwg-url");
+const { notImplementedMethod } = require("./not-implemented");
+const { installInterfaces } = require("../living/interfaces");
+const { define, mixin } = require("../utils");
+const Element = require("../living/generated/Element");
+const EventTarget = require("../living/generated/EventTarget");
+const EventHandlerNonNull = require("../living/generated/EventHandlerNonNull");
+const IDLFunction = require("../living/generated/Function");
+const OnBeforeUnloadEventHandlerNonNull = require("../living/generated/OnBeforeUnloadEventHandlerNonNull");
+const OnErrorEventHandlerNonNull = require("../living/generated/OnErrorEventHandlerNonNull");
+const { fireAPageTransitionEvent } = require("../living/helpers/page-transition-event");
+const windowProperties = require("../living/window-properties");
+const DOMException = require("../living/generated/DOMException");
+const idlUtils = require("../living/generated/utils");
+const WebSocketImpl = require("../living/websockets/WebSocket-impl").implementation;
+const BarProp = require("../living/generated/BarProp");
+const documents = require("../living/documents.js");
+const External = require("../living/generated/External");
+const Navigator = require("../living/generated/Navigator");
+const Performance = require("../living/generated/Performance");
+const Screen = require("../living/generated/Screen");
+const Crypto = require("../living/generated/Crypto");
+const Storage = require("../living/generated/Storage");
+const Selection = require("../living/generated/Selection");
+const reportException = require("../living/helpers/runtime-script-errors");
+const { getCurrentEventHandlerValue } = require("../living/helpers/create-event-accessor.js");
+const { fireAnEvent } = require("../living/helpers/events");
+const SessionHistory = require("../living/window/SessionHistory");
+const { getDeclarationForElement, getResolvedValue, propertiesWithResolvedValueImplemented,
+ SHADOW_DOM_PSEUDO_REGEXP } = require("../living/helpers/style-rules.js");
+const CustomElementRegistry = require("../living/generated/CustomElementRegistry");
+const MessageEvent = require("../living/generated/MessageEvent");
+const jsGlobals = require("./js-globals.json");
+
+const GlobalEventHandlersImpl = require("../living/nodes/GlobalEventHandlers-impl").implementation;
+const globalEventHandlersEvents = require("../living/nodes/GlobalEventHandlers-impl").events;
+const WindowEventHandlersImpl = require("../living/nodes/WindowEventHandlers-impl").implementation;
+
+const events = new Set([
+ // GlobalEventHandlers (but we have to remove error below)
+ ...globalEventHandlersEvents,
+
+ // WindowEventHandlers
+ "afterprint",
+ "beforeprint",
+ "hashchange",
+ "languagechange",
+ "message",
+ "messageerror",
+ "offline",
+ "online",
+ "pagehide",
+ "pageshow",
+ "popstate",
+ "rejectionhandled",
+ "storage",
+ "unhandledrejection",
+ "unload"
+
+ // "error" and "beforeunload" are added separately
+]);
+events.delete("error");
+
+const jsGlobalEntriesToInstall = Object.entries(jsGlobals).filter(([name]) => name in global);
+
+exports.createWindow = options => {
+ const makeVMContext = options.runScripts === "outside-only" || options.runScripts === "dangerously";
+
+ // Bootstrap with an empty object from the Node.js realm. We'll muck with its prototype chain shortly.
+ let window = {};
+
+ // Make window into a global object: either via vm, or just aliasing the Node.js globals.
+ // Also set _globalObject and _globalProxy.
+ //
+ // TODO: don't expose _globalObject and _globalProxy as public properties. While you're there, audit usage sites to
+ // see how necessary they really are.
+ if (makeVMContext) {
+ window = vm.createContext(vm.constants.DONT_CONTEXTIFY);
+
+ window._globalObject = window;
+ window._globalProxy = vm.runInContext("this", window);
+
+ // Without this, these globals will only appear to scripts running inside the context using vm.runScript; they will
+ // not appear to scripts running from the outside, including to JSDOM implementation code.
+ for (const [globalName, globalPropDesc] of jsGlobalEntriesToInstall) {
+ const propDesc = { ...globalPropDesc, value: vm.runInContext(globalName, window) };
+ Object.defineProperty(window, globalName, propDesc);
+ }
+ } else {
+ window._globalObject = window._globalProxy = window;
+
+ // Without contextifying the window, none of the globals will exist. So, let's at least alias them from the Node.js
+ // context. See https://github.com/jsdom/jsdom/issues/2727 for more background and discussion.
+ for (const [globalName, globalPropDesc] of jsGlobalEntriesToInstall) {
+ const propDesc = { ...globalPropDesc, value: global[globalName] };
+ Object.defineProperty(window, globalName, propDesc);
+ }
+ }
+
+ // Create instances of all the web platform interfaces and install them on the window.
+ installInterfaces(window, ["Window"]);
+
+ // Now we have an EventTarget contructor so we can work on the prototype chain.
+
+ // eslint-disable-next-line func-name-matching, func-style
+ const WindowConstructor = function Window() {
+ throw new TypeError("Illegal constructor");
+ };
+ Object.setPrototypeOf(WindowConstructor, window.EventTarget);
+
+ Object.defineProperty(window, "Window", {
+ configurable: true,
+ writable: true,
+ value: WindowConstructor
+ });
+
+ const windowPropertiesObject = windowProperties.create(window.EventTarget.prototype, window);
+
+ const windowPrototype = Object.create(windowPropertiesObject);
+ Object.defineProperties(windowPrototype, {
+ constructor: {
+ value: WindowConstructor,
+ writable: true,
+ configurable: true
+ },
+ [Symbol.toStringTag]: {
+ value: "Window",
+ configurable: true
+ }
+ });
+
+ WindowConstructor.prototype = windowPrototype;
+ Object.setPrototypeOf(window, windowPrototype);
+ if (makeVMContext) {
+ Object.setPrototypeOf(window._globalProxy, windowPrototype);
+ Object.setPrototypeOf(window.EventTarget.prototype, window.Object.prototype);
+ }
+
+ // Now that the prototype chain is fully set up, call the superclass setup.
+ EventTarget.setup(window, window);
+
+ installEventHandlers(window);
+
+ installOwnProperties(window, options);
+
+ // Not sure why this is necessary... TODO figure it out.
+ Object.defineProperty(idlUtils.implForWrapper(window), idlUtils.wrapperSymbol, { get: () => window._globalProxy });
+
+ // Fire or prepare to fire load and pageshow events.
+ process.nextTick(() => {
+ if (!window.document) {
+ return; // window might've been closed already
+ }
+
+ if (window.document.readyState === "complete") {
+ fireAnEvent("load", window, undefined, {}, true);
+ } else {
+ window.document.addEventListener("load", () => {
+ fireAnEvent("load", window, undefined, {}, true);
+ if (!window._document) {
+ return; // window might've been closed already
+ }
+
+ const documentImpl = idlUtils.implForWrapper(window._document);
+ if (!documentImpl._pageShowingFlag) {
+ documentImpl._pageShowingFlag = true;
+ fireAPageTransitionEvent("pageshow", window, false);
+ }
+ });
+ }
+ });
+
+ return window;
+};
+
+function installEventHandlers(window) {
+ mixin(window, WindowEventHandlersImpl.prototype);
+ mixin(window, GlobalEventHandlersImpl.prototype);
+ window._initGlobalEvents();
+
+ Object.defineProperty(window, "onbeforeunload", {
+ configurable: true,
+ enumerable: true,
+ get() {
+ return idlUtils.tryWrapperForImpl(getCurrentEventHandlerValue(window, "beforeunload"));
+ },
+ set(V) {
+ if (!idlUtils.isObject(V)) {
+ V = null;
+ } else {
+ V = OnBeforeUnloadEventHandlerNonNull.convert(window, V, {
+ context: "Failed to set the 'onbeforeunload' property on 'Window': The provided value"
+ });
+ }
+ window._setEventHandlerFor("beforeunload", V);
+ }
+ });
+
+ Object.defineProperty(window, "onerror", {
+ configurable: true,
+ enumerable: true,
+ get() {
+ return idlUtils.tryWrapperForImpl(getCurrentEventHandlerValue(window, "error"));
+ },
+ set(V) {
+ if (!idlUtils.isObject(V)) {
+ V = null;
+ } else {
+ V = OnErrorEventHandlerNonNull.convert(window, V, {
+ context: "Failed to set the 'onerror' property on 'Window': The provided value"
+ });
+ }
+ window._setEventHandlerFor("error", V);
+ }
+ });
+
+ for (const event of events) {
+ Object.defineProperty(window, `on${event}`, {
+ configurable: true,
+ enumerable: true,
+ get() {
+ return idlUtils.tryWrapperForImpl(getCurrentEventHandlerValue(window, event));
+ },
+ set(V) {
+ if (!idlUtils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(window, V, {
+ context: `Failed to set the 'on${event}' property on 'Window': The provided value`
+ });
+ }
+ window._setEventHandlerFor(event, V);
+ }
+ });
+ }
+}
+
+function installOwnProperties(window, options) {
+ const windowInitialized = performance.now();
+
+ // ### PRIVATE DATA PROPERTIES
+
+ window._resourceLoader = options.resourceLoader;
+
+ // List options explicitly to be clear which are passed through
+ window._document = documents.createWrapper(window, {
+ parsingMode: options.parsingMode,
+ contentType: options.contentType,
+ encoding: options.encoding,
+ cookieJar: options.cookieJar,
+ url: options.url,
+ lastModified: options.lastModified,
+ referrer: options.referrer,
+ parseOptions: options.parseOptions,
+ defaultView: window._globalProxy,
+ global: window,
+ parentOrigin: options.parentOrigin
+ }, { alwaysUseDocumentClass: true });
+
+ const documentOrigin = idlUtils.implForWrapper(window._document)._origin;
+ window._origin = documentOrigin;
+
+ // https://html.spec.whatwg.org/#session-history
+ window._sessionHistory = new SessionHistory({
+ document: idlUtils.implForWrapper(window._document),
+ url: idlUtils.implForWrapper(window._document)._URL,
+ stateObject: null
+ }, window);
+
+ window._virtualConsole = options.virtualConsole;
+
+ window._runScripts = options.runScripts;
+
+ // Set up the window as if it's a top level window.
+ // If it's not, then references will be corrected by frame/iframe code.
+ window._parent = window._top = window._globalProxy;
+ window._frameElement = null;
+
+ // This implements window.frames.length, since window.frames returns a
+ // self reference to the window object. This value is incremented in the
+ // HTMLFrameElement implementation.
+ window._length = 0;
+
+ // https://dom.spec.whatwg.org/#window-current-event
+ window._currentEvent = undefined;
+
+ window._pretendToBeVisual = options.pretendToBeVisual;
+ window._storageQuota = options.storageQuota;
+
+ // Some properties (such as localStorage and sessionStorage) share data
+ // between windows in the same origin. This object is intended
+ // to contain such data.
+ if (options.commonForOrigin && options.commonForOrigin[documentOrigin]) {
+ window._commonForOrigin = options.commonForOrigin;
+ } else {
+ window._commonForOrigin = {
+ [documentOrigin]: {
+ localStorageArea: new Map(),
+ sessionStorageArea: new Map(),
+ windowsInSameOrigin: [window]
+ }
+ };
+ }
+
+ window._currentOriginData = window._commonForOrigin[documentOrigin];
+
+ // ### WEB STORAGE
+
+ window._localStorage = Storage.create(window, [], {
+ associatedWindow: window,
+ storageArea: window._currentOriginData.localStorageArea,
+ type: "localStorage",
+ url: window._document.documentURI,
+ storageQuota: window._storageQuota
+ });
+ window._sessionStorage = Storage.create(window, [], {
+ associatedWindow: window,
+ storageArea: window._currentOriginData.sessionStorageArea,
+ type: "sessionStorage",
+ url: window._document.documentURI,
+ storageQuota: window._storageQuota
+ });
+
+ // ### SELECTION
+
+ // https://w3c.github.io/selection-api/#dfn-selection
+ window._selection = Selection.createImpl(window);
+
+ // https://w3c.github.io/selection-api/#dom-window
+ window.getSelection = function () {
+ return window._selection;
+ };
+
+ // ### GETTERS
+
+ const locationbar = BarProp.create(window);
+ const menubar = BarProp.create(window);
+ const personalbar = BarProp.create(window);
+ const scrollbars = BarProp.create(window);
+ const statusbar = BarProp.create(window);
+ const toolbar = BarProp.create(window);
+ const external = External.create(window);
+ const navigator = Navigator.create(window, [], { userAgent: window._resourceLoader._userAgent });
+ const performanceImpl = Performance.create(window, [], {
+ timeOrigin: performance.timeOrigin + windowInitialized,
+ nowAtTimeOrigin: windowInitialized
+ });
+ const screen = Screen.create(window);
+ const crypto = Crypto.create(window);
+ window._customElementRegistry = CustomElementRegistry.create(window);
+
+ let status = "";
+
+ define(window, {
+ name: "",
+ get status() {
+ return status;
+ },
+ set status(value) {
+ status = webIDLConversions.DOMString(value);
+ },
+ get devicePixelRatio() {
+ return 1;
+ },
+ get innerWidth() {
+ return 1024;
+ },
+ get innerHeight() {
+ return 768;
+ },
+ get outerWidth() {
+ return 1024;
+ },
+ get outerHeight() {
+ return 768;
+ },
+ get pageXOffset() {
+ return 0;
+ },
+ get pageYOffset() {
+ return 0;
+ },
+ get screenX() {
+ return 0;
+ },
+ get screenLeft() {
+ return 0;
+ },
+ get screenY() {
+ return 0;
+ },
+ get screenTop() {
+ return 0;
+ },
+ get scrollX() {
+ return 0;
+ },
+ get scrollY() {
+ return 0;
+ },
+ get length() {
+ return window._length;
+ },
+ get window() {
+ return window._globalProxy;
+ },
+ get frameElement() {
+ return idlUtils.wrapperForImpl(window._frameElement);
+ },
+ get frames() {
+ return window._globalProxy;
+ },
+ get self() {
+ return window._globalProxy;
+ },
+ get parent() {
+ return window._parent;
+ },
+ get top() {
+ return window._top;
+ },
+ get document() {
+ return window._document;
+ },
+ get external() {
+ return external;
+ },
+ get location() {
+ return idlUtils.wrapperForImpl(idlUtils.implForWrapper(window._document)._location);
+ },
+ // [PutForwards=href]:
+ set location(value) {
+ Reflect.set(window.location, "href", value);
+ },
+ get history() {
+ return idlUtils.wrapperForImpl(idlUtils.implForWrapper(window._document)._history);
+ },
+ get navigator() {
+ return navigator;
+ },
+ get locationbar() {
+ return locationbar;
+ },
+ get menubar() {
+ return menubar;
+ },
+ get personalbar() {
+ return personalbar;
+ },
+ get scrollbars() {
+ return scrollbars;
+ },
+ get statusbar() {
+ return statusbar;
+ },
+ get toolbar() {
+ return toolbar;
+ },
+ get performance() {
+ return performanceImpl;
+ },
+ get screen() {
+ return screen;
+ },
+ get crypto() {
+ return crypto;
+ },
+ get origin() {
+ return window._origin;
+ },
+ get localStorage() {
+ if (idlUtils.implForWrapper(window._document)._origin === "null") {
+ throw DOMException.create(window, [
+ "localStorage is not available for opaque origins",
+ "SecurityError"
+ ]);
+ }
+
+ return window._localStorage;
+ },
+ get sessionStorage() {
+ if (idlUtils.implForWrapper(window._document)._origin === "null") {
+ throw DOMException.create(window, [
+ "sessionStorage is not available for opaque origins",
+ "SecurityError"
+ ]);
+ }
+
+ return window._sessionStorage;
+ },
+ get customElements() {
+ return window._customElementRegistry;
+ },
+ get event() {
+ return window._currentEvent ? idlUtils.wrapperForImpl(window._currentEvent) : undefined;
+ }
+ });
+
+ Object.defineProperties(window, {
+ // [Replaceable]:
+ self: makeReplaceablePropertyDescriptor("self", window),
+ locationbar: makeReplaceablePropertyDescriptor("locationbar", window),
+ menubar: makeReplaceablePropertyDescriptor("menubar", window),
+ personalbar: makeReplaceablePropertyDescriptor("personalbar", window),
+ scrollbars: makeReplaceablePropertyDescriptor("scrollbars", window),
+ statusbar: makeReplaceablePropertyDescriptor("statusbar", window),
+ toolbar: makeReplaceablePropertyDescriptor("toolbar", window),
+ frames: makeReplaceablePropertyDescriptor("frames", window),
+ parent: makeReplaceablePropertyDescriptor("parent", window),
+ external: makeReplaceablePropertyDescriptor("external", window),
+ length: makeReplaceablePropertyDescriptor("length", window),
+ screen: makeReplaceablePropertyDescriptor("screen", window),
+ origin: makeReplaceablePropertyDescriptor("origin", window),
+ event: makeReplaceablePropertyDescriptor("event", window),
+ innerWidth: makeReplaceablePropertyDescriptor("innerWidth", window),
+ innerHeight: makeReplaceablePropertyDescriptor("innerHeight", window),
+ scrollX: makeReplaceablePropertyDescriptor("scrollX", window),
+ pageXOffset: makeReplaceablePropertyDescriptor("pageXOffset", window),
+ scrollY: makeReplaceablePropertyDescriptor("scrollY", window),
+ pageYOffset: makeReplaceablePropertyDescriptor("pageYOffset", window),
+ screenX: makeReplaceablePropertyDescriptor("screenX", window),
+ screenLeft: makeReplaceablePropertyDescriptor("screenLeft", window),
+ screenY: makeReplaceablePropertyDescriptor("screenY", window),
+ screenTop: makeReplaceablePropertyDescriptor("screenTop", window),
+ outerWidth: makeReplaceablePropertyDescriptor("outerWidth", window),
+ outerHeight: makeReplaceablePropertyDescriptor("outerHeight", window),
+ devicePixelRatio: makeReplaceablePropertyDescriptor("devicePixelRatio", window),
+
+ // [LegacyUnforgeable]:
+ window: { configurable: false },
+ document: { configurable: false },
+ location: { configurable: false },
+ top: { configurable: false }
+ });
+
+
+ // ### METHODS
+
+ // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers
+
+ // 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
+ // we can call Node.js-side clearTimeout() when clearing, and thus allow process shutdown faster.
+ const listOfActiveTimers = new Map();
+ let latestTimerId = 0;
+
+ window.setTimeout = function (handler, timeout = 0, ...args) {
+ if (typeof handler !== "function") {
+ handler = webIDLConversions.DOMString(handler);
+ }
+ timeout = webIDLConversions.long(timeout);
+
+ return timerInitializationSteps(handler, timeout, args, { methodContext: window, repeat: false });
+ };
+ window.setInterval = function (handler, timeout = 0, ...args) {
+ if (typeof handler !== "function") {
+ handler = webIDLConversions.DOMString(handler);
+ }
+ timeout = webIDLConversions.long(timeout);
+
+ return timerInitializationSteps(handler, timeout, args, { methodContext: window, repeat: true });
+ };
+
+ window.clearTimeout = function (handle = 0) {
+ handle = webIDLConversions.long(handle);
+
+ const nodejsTimer = listOfActiveTimers.get(handle);
+ if (nodejsTimer) {
+ clearTimeout(nodejsTimer);
+ listOfActiveTimers.delete(handle);
+ }
+ };
+ window.clearInterval = function (handle = 0) {
+ handle = webIDLConversions.long(handle);
+
+ const nodejsTimer = listOfActiveTimers.get(handle);
+ if (nodejsTimer) {
+ // We use setTimeout() in timerInitializationSteps even for window.setInterval().
+ clearTimeout(nodejsTimer);
+ listOfActiveTimers.delete(handle);
+ }
+ };
+
+ function timerInitializationSteps(handler, timeout, args, { methodContext, repeat, previousHandle }) {
+ // This appears to be unspecced, but matches browser behavior for close()ed windows.
+ if (!methodContext._document) {
+ return 0;
+ }
+
+ // TODO: implement timer nesting level behavior.
+
+ const methodContextProxy = methodContext._globalProxy;
+ const handle = previousHandle !== undefined ? previousHandle : ++latestTimerId;
+
+ function task() {
+ if (!listOfActiveTimers.has(handle)) {
+ return;
+ }
+
+ try {
+ if (typeof handler === "function") {
+ handler.apply(methodContextProxy, args);
+ } else if (window._runScripts === "dangerously") {
+ vm.runInContext(handler, window, { filename: window.location.href, displayErrors: false });
+ }
+ } catch (e) {
+ reportException(window, e, window.location.href);
+ }
+
+ if (listOfActiveTimers.has(handle)) {
+ if (repeat) {
+ timerInitializationSteps(handler, timeout, args, { methodContext, repeat: true, previousHandle: handle });
+ } else {
+ listOfActiveTimers.delete(handle);
+ }
+ }
+ }
+
+ if (timeout < 0) {
+ timeout = 0;
+ }
+
+ const nodejsTimer = setTimeout(task, timeout);
+ listOfActiveTimers.set(handle, nodejsTimer);
+
+ return handle;
+ }
+
+ // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#microtask-queuing
+
+ window.queueMicrotask = function (callback) {
+ callback = IDLFunction.convert(window, callback);
+
+ queueMicrotask(() => {
+ try {
+ callback();
+ } catch (e) {
+ reportException(window, e, window.location.href);
+ }
+ });
+ };
+
+ // https://html.spec.whatwg.org/multipage/imagebitmap-and-animations.html#animation-frames
+
+ let animationFrameCallbackId = 0;
+ const mapOfAnimationFrameCallbacks = new Map();
+ let animationFrameNodejsInterval = null;
+
+ // Unlike the spec, where an animation frame happens every 60 Hz regardless, we optimize so that if there are no
+ // requestAnimationFrame() calls outstanding, we don't fire the timer. This helps us track that.
+ let numberOfOngoingAnimationFrameCallbacks = 0;
+
+ if (window._pretendToBeVisual) {
+ window.requestAnimationFrame = function (callback) {
+ callback = IDLFunction.convert(window, callback);
+
+ const handle = ++animationFrameCallbackId;
+ mapOfAnimationFrameCallbacks.set(handle, callback);
+
+ ++numberOfOngoingAnimationFrameCallbacks;
+ if (numberOfOngoingAnimationFrameCallbacks === 1) {
+ animationFrameNodejsInterval = setInterval(() => {
+ runAnimationFrameCallbacks(performance.now() - windowInitialized);
+ }, 1000 / 60);
+ }
+
+ return handle;
+ };
+
+ window.cancelAnimationFrame = function (handle) {
+ handle = webIDLConversions["unsigned long"](handle);
+
+ removeAnimationFrameCallback(handle);
+ };
+
+ function runAnimationFrameCallbacks(now) {
+ // Converting to an array is important to get a sync snapshot and thus match spec semantics.
+ const callbackHandles = [...mapOfAnimationFrameCallbacks.keys()];
+ for (const handle of callbackHandles) {
+ // This has() can be false if a callback calls cancelAnimationFrame().
+ if (mapOfAnimationFrameCallbacks.has(handle)) {
+ const callback = mapOfAnimationFrameCallbacks.get(handle);
+ removeAnimationFrameCallback(handle);
+ try {
+ callback(now);
+ } catch (e) {
+ reportException(window, e, window.location.href);
+ }
+ }
+ }
+ }
+
+ function removeAnimationFrameCallback(handle) {
+ if (mapOfAnimationFrameCallbacks.has(handle)) {
+ --numberOfOngoingAnimationFrameCallbacks;
+ if (numberOfOngoingAnimationFrameCallbacks === 0) {
+ clearInterval(animationFrameNodejsInterval);
+ }
+ }
+
+ mapOfAnimationFrameCallbacks.delete(handle);
+ }
+ }
+
+ function stopAllTimers() {
+ for (const nodejsTimer of listOfActiveTimers.values()) {
+ clearTimeout(nodejsTimer);
+ }
+ listOfActiveTimers.clear();
+
+ clearInterval(animationFrameNodejsInterval);
+ }
+
+ function Option(text, value, defaultSelected, selected) {
+ if (text === undefined) {
+ text = "";
+ }
+ text = webIDLConversions.DOMString(text);
+
+ if (value !== undefined) {
+ value = webIDLConversions.DOMString(value);
+ }
+
+ defaultSelected = webIDLConversions.boolean(defaultSelected);
+ selected = webIDLConversions.boolean(selected);
+
+ const option = window._document.createElement("option");
+ const impl = idlUtils.implForWrapper(option);
+
+ if (text !== "") {
+ impl.text = text;
+ }
+ if (value !== undefined) {
+ impl.setAttributeNS(null, "value", value);
+ }
+ if (defaultSelected) {
+ impl.setAttributeNS(null, "selected", "");
+ }
+ impl._selectedness = selected;
+
+ return option;
+ }
+ Object.defineProperty(Option, "prototype", {
+ value: window.HTMLOptionElement.prototype,
+ configurable: false,
+ enumerable: false,
+ writable: false
+ });
+ Object.defineProperty(window, "Option", {
+ value: Option,
+ configurable: true,
+ enumerable: false,
+ writable: true
+ });
+
+ function Image(...args) {
+ const img = window._document.createElement("img");
+ const impl = idlUtils.implForWrapper(img);
+
+ if (args.length > 0) {
+ impl.setAttributeNS(null, "width", String(args[0]));
+ }
+ if (args.length > 1) {
+ impl.setAttributeNS(null, "height", String(args[1]));
+ }
+
+ return img;
+ }
+ Object.defineProperty(Image, "prototype", {
+ value: window.HTMLImageElement.prototype,
+ configurable: false,
+ enumerable: false,
+ writable: false
+ });
+ Object.defineProperty(window, "Image", {
+ value: Image,
+ configurable: true,
+ enumerable: false,
+ writable: true
+ });
+
+ function Audio(src) {
+ const audio = window._document.createElement("audio");
+ const impl = idlUtils.implForWrapper(audio);
+ impl.setAttributeNS(null, "preload", "auto");
+
+ if (src !== undefined) {
+ impl.setAttributeNS(null, "src", String(src));
+ }
+
+ return audio;
+ }
+ Object.defineProperty(Audio, "prototype", {
+ value: window.HTMLAudioElement.prototype,
+ configurable: false,
+ enumerable: false,
+ writable: false
+ });
+ Object.defineProperty(window, "Audio", {
+ value: Audio,
+ configurable: true,
+ enumerable: false,
+ writable: true
+ });
+
+ window.postMessage = function (message, targetOrigin) {
+ if (arguments.length < 2) {
+ throw new TypeError("'postMessage' requires 2 arguments: 'message' and 'targetOrigin'");
+ }
+
+ targetOrigin = webIDLConversions.DOMString(targetOrigin);
+
+ if (targetOrigin === "/") {
+ // TODO: targetOrigin === "/" requires getting incumbent settings object.
+ // Maybe could be done with Error stack traces??
+ return;
+ } else if (targetOrigin !== "*") {
+ const parsedURL = whatwgURL.parseURL(targetOrigin);
+ if (parsedURL === null) {
+ throw DOMException.create(window, [
+ "Failed to execute 'postMessage' on 'Window': " +
+ "Invalid target origin '" + targetOrigin + "' in a call to 'postMessage'.",
+ "SyntaxError"
+ ]);
+ }
+ targetOrigin = whatwgURL.serializeURLOrigin(parsedURL);
+
+ if (targetOrigin !== idlUtils.implForWrapper(window._document)._origin) {
+ // Not implemented.
+ return;
+ }
+ }
+
+ // TODO: event.source - requires reference to incumbent window
+ // TODO: event.origin - requires reference to incumbent window
+ // TODO: event.ports
+ // TODO: event.data - requires structured cloning
+ setTimeout(() => {
+ fireAnEvent("message", window, MessageEvent, { data: message });
+ }, 0);
+ };
+
+ window.atob = function (str) {
+ try {
+ return atob(str);
+ } catch {
+ // Convert Node.js DOMException to one from our global.
+ throw DOMException.create(window, [
+ "The string to be decoded contains invalid characters.",
+ "InvalidCharacterError"
+ ]);
+ }
+ };
+
+ window.btoa = function (str) {
+ try {
+ return btoa(str);
+ } catch {
+ // Convert Node.js DOMException to one from our global.
+ throw DOMException.create(window, [
+ "The string to be encoded contains invalid characters.",
+ "InvalidCharacterError"
+ ]);
+ }
+ };
+
+ window.stop = function () {
+ const manager = idlUtils.implForWrapper(window._document)._requestManager;
+ if (manager) {
+ manager.close();
+ }
+ };
+
+ window.close = function () {
+ // Recursively close child frame windows, then ourselves (depth-first).
+ for (let i = 0; i < window.length; ++i) {
+ window[i].close?.();
+ }
+
+ // Clear out all listeners. Any in-flight or upcoming events should not get delivered.
+ idlUtils.implForWrapper(window)._eventListeners = Object.create(null);
+
+ if (window._document) {
+ if (window._document.body) {
+ window._document.body.innerHTML = "";
+ }
+
+ if (window._document.close) {
+ // It's especially important to clear out the listeners here because document.close() causes a "load" event to
+ // fire.
+ idlUtils.implForWrapper(window._document)._eventListeners = Object.create(null);
+ window._document.close();
+ }
+ const doc = idlUtils.implForWrapper(window._document);
+ if (doc._requestManager) {
+ doc._requestManager.close();
+ }
+ delete window._document;
+ }
+
+ stopAllTimers();
+ WebSocketImpl.cleanUpWindow(window);
+ };
+
+ window.getComputedStyle = function (elt, pseudoElt = undefined) {
+ elt = Element.convert(window, elt);
+ if (pseudoElt !== undefined && pseudoElt !== null) {
+ pseudoElt = webIDLConversions.DOMString(pseudoElt);
+ }
+
+ if (pseudoElt !== undefined && pseudoElt !== null && pseudoElt !== "") {
+ // TODO: Parse pseudoElt
+
+ if (SHADOW_DOM_PSEUDO_REGEXP.test(pseudoElt)) {
+ throw new TypeError("Tried to get the computed style of a Shadow DOM pseudo-element.");
+ }
+
+ notImplementedMethod(window, "Window", "getComputedStyle", "with pseudo-elements");
+ }
+
+ const declaration = new CSSStyleDeclaration();
+ const { forEach } = Array.prototype;
+
+ const elementDeclaration = getDeclarationForElement(elt);
+ forEach.call(elementDeclaration, property => {
+ declaration.setProperty(
+ property,
+ elementDeclaration.getPropertyValue(property),
+ elementDeclaration.getPropertyPriority(property)
+ );
+ });
+
+ // https://drafts.csswg.org/cssom/#dom-window-getcomputedstyle
+ const declarations = Object.keys(propertiesWithResolvedValueImplemented);
+ forEach.call(declarations, property => {
+ declaration.setProperty(property, getResolvedValue(elt, property));
+ });
+
+ return declaration;
+ };
+
+ window.getSelection = function () {
+ return window._document.getSelection();
+ };
+
+ // The captureEvents() and releaseEvents() methods must do nothing
+ window.captureEvents = function () {};
+
+ window.releaseEvents = function () {};
+
+ // ### PUBLIC DATA PROPERTIES (TODO: should be getters)
+
+ function wrapConsoleMethod(method) {
+ return (...args) => {
+ window._virtualConsole.emit(method, ...args);
+ };
+ }
+
+ window.console = {
+ assert: wrapConsoleMethod("assert"),
+ clear: wrapConsoleMethod("clear"),
+ count: wrapConsoleMethod("count"),
+ countReset: wrapConsoleMethod("countReset"),
+ debug: wrapConsoleMethod("debug"),
+ dir: wrapConsoleMethod("dir"),
+ dirxml: wrapConsoleMethod("dirxml"),
+ error: wrapConsoleMethod("error"),
+ group: wrapConsoleMethod("group"),
+ groupCollapsed: wrapConsoleMethod("groupCollapsed"),
+ groupEnd: wrapConsoleMethod("groupEnd"),
+ info: wrapConsoleMethod("info"),
+ log: wrapConsoleMethod("log"),
+ table: wrapConsoleMethod("table"),
+ time: wrapConsoleMethod("time"),
+ timeLog: wrapConsoleMethod("timeLog"),
+ timeEnd: wrapConsoleMethod("timeEnd"),
+ trace: wrapConsoleMethod("trace"),
+ warn: wrapConsoleMethod("warn")
+ };
+
+ function notImplementedMethodWrapper(name) {
+ return function () {
+ notImplementedMethod(window, "Window", name);
+ };
+ }
+
+ define(window, {
+ alert: notImplementedMethodWrapper("alert"),
+ blur: notImplementedMethodWrapper("blur"),
+ confirm: notImplementedMethodWrapper("confirm"),
+ focus: notImplementedMethodWrapper("focus"),
+ moveBy: notImplementedMethodWrapper("moveBy"),
+ moveTo: notImplementedMethodWrapper("moveTo"),
+ open: notImplementedMethodWrapper("open"),
+ print: notImplementedMethodWrapper("print"),
+ prompt: notImplementedMethodWrapper("prompt"),
+ resizeBy: notImplementedMethodWrapper("resizeBy"),
+ resizeTo: notImplementedMethodWrapper("resizeTo"),
+ scroll: notImplementedMethodWrapper("scroll"),
+ scrollBy: notImplementedMethodWrapper("scrollBy"),
+ scrollTo: notImplementedMethodWrapper("scrollTo")
+ });
+}
+
+function makeReplaceablePropertyDescriptor(property, window) {
+ const desc = {
+ set(value) {
+ Object.defineProperty(window, property, {
+ configurable: true,
+ enumerable: true,
+ writable: true,
+ value
+ });
+ }
+ };
+
+ Object.defineProperty(desc.set, "name", { value: `set ${property}` });
+ return desc;
+}
diff --git a/node_modules/jsdom/lib/jsdom/browser/default-stylesheet.css b/node_modules/jsdom/lib/jsdom/browser/default-stylesheet.css
new file mode 100644
index 0000000000000000000000000000000000000000..e4123485d2e46393037dff8300161000328b840a
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/browser/default-stylesheet.css
@@ -0,0 +1,415 @@
+/* Omitting the below because of https://github.com/jsdom/cssstyle/issues/193.
+ And we don't implement namespace constraints anyway.
+
+@namespace "http://www.w3.org/1999/xhtml";
+*/
+
+/* https://html.spec.whatwg.org/multipage/rendering.html#the-page */
+
+html, body { display: block; }
+
+/* https://html.spec.whatwg.org/multipage/rendering.html#flow-content-3
+ - Omits presentational hints
+ - Omits quirks mode
+*/
+
+address, blockquote, center, dialog, div, figure, figcaption, footer, form,
+header, hr, legend, listing, main, p, plaintext, pre, search, xmp {
+ display: block;
+}
+
+blockquote, figure, listing, p, plaintext, pre, xmp {
+ margin-block: 1em;
+}
+
+blockquote, figure { margin-inline: 40px; }
+
+address { font-style: italic; }
+listing, plaintext, pre, xmp {
+ font-family: monospace; white-space: pre;
+}
+
+dialog:not([open]) { display: none; }
+dialog {
+ position: absolute;
+ inset-inline-start: 0; inset-inline-end: 0;
+ width: fit-content;
+ height: fit-content;
+ margin: auto;
+ border: solid;
+ padding: 1em;
+ background-color: Canvas;
+ color: CanvasText;
+}
+dialog:modal {
+ position: fixed;
+ overflow: auto;
+ inset-block: 0;
+ max-width: calc(100% - 6px - 2em);
+ max-height: calc(100% - 6px - 2em);
+}
+dialog::backdrop {
+ background: rgba(0,0,0,0.1);
+}
+
+[popover]:not(:popover-open):not(dialog[open]) {
+ display:none;
+}
+
+dialog:popover-open {
+ display:block;
+}
+
+[popover] {
+ position: fixed;
+ inset: 0;
+ width: fit-content;
+ height: fit-content;
+ margin: auto;
+ border: solid;
+ padding: 0.25em;
+ overflow: auto;
+ color: CanvasText;
+ background-color: Canvas;
+}
+
+:popover-open::backdrop {
+ position: fixed;
+ inset: 0;
+ pointer-events: none !important;
+ background-color: transparent;
+}
+
+slot {
+ display: contents;
+}
+
+/* https://html.spec.whatwg.org/multipage/rendering.html#phrasing-content-3
+ - Omits presentational hints
+*/
+
+
+cite, dfn, em, i, var { font-style: italic; }
+b, strong { font-weight: bolder; }
+code, kbd, samp, tt { font-family: monospace; }
+big { font-size: larger; }
+small { font-size: smaller; }
+
+sub { vertical-align: sub; }
+sup { vertical-align: super; }
+sub, sup { line-height: normal; font-size: smaller; }
+
+ruby { display: ruby; }
+rt { display: ruby-text; }
+
+:link { color: #0000EE; }
+:visited { color: #551A8B; }
+:link:active, :visited:active { color: #FF0000; }
+:link, :visited { text-decoration: underline; cursor: pointer; }
+
+:focus-visible { outline: auto; }
+
+mark { background: yellow; color: black; } /* this color is just a suggestion and can be changed based on implementation feedback */
+
+abbr[title], acronym[title] { text-decoration: dotted underline; }
+ins, u { text-decoration: underline; }
+del, s, strike { text-decoration: line-through; }
+
+q::before { content: open-quote; }
+q::after { content: close-quote; }
+
+br { display-outside: newline; } /* this also has bidi implications */
+nobr { white-space: nowrap; }
+wbr { display-outside: break-opportunity; } /* this also has bidi implications */
+nobr wbr { white-space: normal; }
+
+/* https://html.spec.whatwg.org/multipage/rendering.html#bidi-rendering
+ - Omits ISO-8859-8
+*/
+
+[dir]:dir(ltr), bdi:dir(ltr), input[type=tel i]:dir(ltr) { direction: ltr; }
+[dir]:dir(rtl), bdi:dir(rtl) { direction: rtl; }
+
+address, blockquote, center, div, figure, figcaption, footer, form, header, hr,
+legend, listing, main, p, plaintext, pre, summary, xmp, article, aside, h1, h2,
+h3, h4, h5, h6, hgroup, nav, section, search, table, caption, colgroup, col,
+thead, tbody, tfoot, tr, td, th, dir, dd, dl, dt, menu, ol, ul, li, bdi, output,
+[dir=ltr i], [dir=rtl i], [dir=auto i] {
+ unicode-bidi: isolate;
+}
+
+bdo, bdo[dir] { unicode-bidi: isolate-override; }
+
+input[dir=auto i]:is([type=search i], [type=tel i], [type=url i],
+[type=email i]), textarea[dir=auto i], pre[dir=auto i] {
+ unicode-bidi: plaintext;
+}
+/* see prose for input elements whose type attribute is in the Text state */
+
+/* the rules setting the 'content' property on br and wbr elements also has bidi implications */
+
+/* https://html.spec.whatwg.org/multipage/rendering.html#sections-and-headings
+ - Special h1 styles removed per upcoming change: https://github.com/whatwg/html/pull/11102
+*/
+
+article, aside, h1, h2, h3, h4, h5, h6, hgroup, nav, section {
+ display: block;
+}
+
+h1 { margin-block: 0.67em; font-size: 2.00em; font-weight: bold; }
+h2 { margin-block: 0.83em; font-size: 1.50em; font-weight: bold; }
+h3 { margin-block: 1.00em; font-size: 1.17em; font-weight: bold; }
+h4 { margin-block: 1.33em; font-size: 1.00em; font-weight: bold; }
+h5 { margin-block: 1.67em; font-size: 0.83em; font-weight: bold; }
+h6 { margin-block: 2.33em; font-size: 0.67em; font-weight: bold; }
+
+/* https://html.spec.whatwg.org/multipage/rendering.html#lists
+ - Omit presentational hints
+ - Omit quirks mode
+*/
+
+dir, dd, dl, dt, menu, ol, ul { display: block; }
+li { display: list-item; text-align: match-parent; }
+
+dir, dl, menu, ol, ul { margin-block: 1em; }
+
+:is(dir, dl, menu, ol, ul) :is(dir, dl, menu, ol, ul) {
+ margin-block: 0;
+}
+
+dd { margin-inline-start: 40px; }
+dir, menu, ol, ul { padding-inline-start: 40px; }
+
+ol, ul, menu { counter-reset: list-item; }
+ol { list-style-type: decimal; }
+
+dir, menu, ul {
+ list-style-type: disc;
+}
+:is(dir, menu, ol, ul) :is(dir, menu, ul) {
+ list-style-type: circle;
+}
+:is(dir, menu, ol, ul) :is(dir, menu, ol, ul) :is(dir, menu, ul) {
+ list-style-type: square;
+}
+
+/* https://html.spec.whatwg.org/multipage/rendering.html#tables-2
+ - Omit presentational hints
+ - Omit quirks mode
+ - Omit HTML documents
+*/
+
+table { display: table; }
+caption { display: table-caption; }
+colgroup, colgroup[hidden] { display: table-column-group; }
+col, col[hidden] { display: table-column; }
+thead, thead[hidden] { display: table-header-group; }
+tbody, tbody[hidden] { display: table-row-group; }
+tfoot, tfoot[hidden] { display: table-footer-group; }
+tr, tr[hidden] { display: table-row; }
+td, th { display: table-cell; }
+
+colgroup[hidden], col[hidden], thead[hidden], tbody[hidden],
+tfoot[hidden], tr[hidden] {
+ visibility: collapse;
+}
+
+table {
+ box-sizing: border-box;
+ border-spacing: 2px;
+ border-collapse: separate;
+ text-indent: initial;
+}
+td, th { padding: 1px; }
+th { font-weight: bold; }
+
+caption { text-align: center; }
+thead, tbody, tfoot, table > tr { vertical-align: middle; }
+tr, td, th { vertical-align: inherit; }
+
+thead, tbody, tfoot, tr { border-color: inherit; }
+table[rules=none i], table[rules=groups i], table[rules=rows i],
+table[rules=cols i], table[rules=all i], table[frame=void i],
+table[frame=above i], table[frame=below i], table[frame=hsides i],
+table[frame=lhs i], table[frame=rhs i], table[frame=vsides i],
+table[frame=box i], table[frame=border i],
+table[rules=none i] > tr > td, table[rules=none i] > tr > th,
+table[rules=groups i] > tr > td, table[rules=groups i] > tr > th,
+table[rules=rows i] > tr > td, table[rules=rows i] > tr > th,
+table[rules=cols i] > tr > td, table[rules=cols i] > tr > th,
+table[rules=all i] > tr > td, table[rules=all i] > tr > th,
+table[rules=none i] > thead > tr > td, table[rules=none i] > thead > tr > th,
+table[rules=groups i] > thead > tr > td, table[rules=groups i] > thead > tr > th,
+table[rules=rows i] > thead > tr > td, table[rules=rows i] > thead > tr > th,
+table[rules=cols i] > thead > tr > td, table[rules=cols i] > thead > tr > th,
+table[rules=all i] > thead > tr > td, table[rules=all i] > thead > tr > th,
+table[rules=none i] > tbody > tr > td, table[rules=none i] > tbody > tr > th,
+table[rules=groups i] > tbody > tr > td, table[rules=groups i] > tbody > tr > th,
+table[rules=rows i] > tbody > tr > td, table[rules=rows i] > tbody > tr > th,
+table[rules=cols i] > tbody > tr > td, table[rules=cols i] > tbody > tr > th,
+table[rules=all i] > tbody > tr > td, table[rules=all i] > tbody > tr > th,
+table[rules=none i] > tfoot > tr > td, table[rules=none i] > tfoot > tr > th,
+table[rules=groups i] > tfoot > tr > td, table[rules=groups i] > tfoot > tr > th,
+table[rules=rows i] > tfoot > tr > td, table[rules=rows i] > tfoot > tr > th,
+table[rules=cols i] > tfoot > tr > td, table[rules=cols i] > tfoot > tr > th,
+table[rules=all i] > tfoot > tr > td, table[rules=all i] > tfoot > tr > th {
+ border-color: black;
+}
+
+/* https://html.spec.whatwg.org/multipage/rendering.html#form-controls
+ - Omit quirks mode
+*/
+
+input, select, button, textarea {
+ letter-spacing: initial;
+ word-spacing: initial;
+ line-height: initial;
+ text-transform: initial;
+ text-indent: initial;
+ text-shadow: initial;
+ appearance: auto;
+}
+
+input:not([type=image i], [type=range i], [type=checkbox i], [type=radio i]) {
+ overflow: clip !important;
+ overflow-clip-margin: 0 !important;
+}
+
+input, select, textarea {
+ text-align: initial;
+}
+
+:autofill {
+ field-sizing: fixed !important;
+}
+
+input:is([type=reset i], [type=button i], [type=submit i]), button {
+ text-align: center;
+}
+
+input, button {
+ display: inline-block;
+}
+
+input[type=hidden i], input[type=file i], input[type=image i] {
+ appearance: none;
+}
+
+input:is([type=radio i], [type=checkbox i], [type=reset i], [type=button i],
+[type=submit i], [type=color i], [type=search i]), select, button {
+ box-sizing: border-box;
+}
+
+textarea { white-space: pre-wrap; }
+
+/* https://html.spec.whatwg.org/multipage/rendering.html#the-hr-element-2
+ - Omit presentational hints
+*/
+
+hr {
+ color: gray;
+ border-style: inset;
+ border-width: 1px;
+ margin-block: 0.5em;
+ margin-inline: auto;
+ overflow: hidden;
+}
+
+/* https://html.spec.whatwg.org/multipage/rendering.html#the-fieldset-and-legend-elements */
+
+fieldset {
+ display: block;
+ margin-inline: 2px;
+ border: groove 2px ThreeDFace;
+ padding-block: 0.35em 0.625em;
+ padding-inline: 0.75em;
+ min-inline-size: min-content;
+}
+
+legend {
+ padding-inline: 2px;
+}
+
+legend[align=left i] {
+ justify-self: left;
+}
+
+legend[align=center i] {
+ justify-self: center;
+}
+
+legend[align=right i] {
+ justify-self: right;
+}
+
+/* https://html.spec.whatwg.org/multipage/rendering.html#embedded-content-rendering-rules */
+
+iframe { border: 2px inset; }
+video { object-fit: contain; }
+
+/* https://html.spec.whatwg.org/multipage/rendering.html#images-3
+- Omit quirks mode
+*/
+
+img:is([sizes="auto" i], [sizes^="auto," i]) {
+ contain: size !important;
+ contain-intrinsic-size: 300px 150px;
+}
+
+/* https://html.spec.whatwg.org/multipage/rendering.html#the-details-and-summary-elements
+- Omit internal shadow tree styles
+*/
+
+details, summary {
+ display: block;
+}
+details > summary:first-of-type {
+ display: list-item;
+ counter-increment: list-item 0;
+ list-style: disclosure-closed inside;
+}
+details[open] > summary:first-of-type {
+ list-style-type: disclosure-open;
+}
+
+/* https://html.spec.whatwg.org/multipage/rendering.html#the-marquee-element-2 */
+
+marquee {
+ display: inline-block;
+ text-align: initial;
+ overflow: hidden !important;
+}
+
+/* https://html.spec.whatwg.org/multipage/rendering.html#the-meter-element-2 */
+
+meter { appearance: auto; }
+
+/* https://html.spec.whatwg.org/multipage/rendering.html#the-progress-element-2 */
+
+progress { appearance: auto; }
+
+/* https://html.spec.whatwg.org/multipage/rendering.html#hidden-elements
+- Moved to the bottom because our lack of specificity support causes tag name `display: block` and the below [hidden]
+ `display: none` to be last-one-wins.
+*/
+
+area, base, basefont, datalist, head, link, meta, noembed,
+noframes, param, rp, script, style, template, title {
+ display: none;
+}
+
+[hidden]:not([hidden=until-found i]):not(embed) {
+ display: none;
+}
+
+[hidden=until-found i]:not(embed) {
+ content-visibility: hidden;
+}
+
+embed[hidden] { display: inline; height: 0; width: 0; }
+
+input[type=hidden i] { display: none !important; }
+
+@media (scripting) {
+ noscript { display: none !important; }
+}
diff --git a/node_modules/jsdom/lib/jsdom/browser/js-globals.json b/node_modules/jsdom/lib/jsdom/browser/js-globals.json
new file mode 100644
index 0000000000000000000000000000000000000000..b96d1eb5c655391e44a4df30faeb5f2b143eea9e
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/browser/js-globals.json
@@ -0,0 +1,312 @@
+{
+ "Object": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Function": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Array": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Number": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "parseFloat": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "parseInt": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Infinity": {
+ "writable": false,
+ "enumerable": false,
+ "configurable": false
+ },
+ "NaN": {
+ "writable": false,
+ "enumerable": false,
+ "configurable": false
+ },
+ "undefined": {
+ "writable": false,
+ "enumerable": false,
+ "configurable": false
+ },
+ "Boolean": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "String": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Symbol": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Date": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Promise": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "RegExp": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Error": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "AggregateError": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "EvalError": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "RangeError": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "ReferenceError": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "SyntaxError": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "TypeError": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "URIError": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "globalThis": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "JSON": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Math": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Intl": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "ArrayBuffer": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Atomics": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Uint8Array": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Int8Array": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Uint16Array": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Int16Array": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Uint32Array": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Int32Array": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Float32Array": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Float64Array": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Uint8ClampedArray": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "BigUint64Array": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "BigInt64Array": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "DataView": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Map": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "BigInt": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Set": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "WeakMap": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "WeakSet": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Proxy": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Reflect": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "FinalizationRegistry": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "WeakRef": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "decodeURI": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "decodeURIComponent": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "encodeURI": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "encodeURIComponent": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "escape": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "unescape": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "eval": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "isFinite": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "isNaN": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "Iterator": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "SharedArrayBuffer": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ },
+ "WebAssembly": {
+ "writable": true,
+ "enumerable": false,
+ "configurable": true
+ }
+}
diff --git a/node_modules/jsdom/lib/jsdom/browser/not-implemented.js b/node_modules/jsdom/lib/jsdom/browser/not-implemented.js
new file mode 100644
index 0000000000000000000000000000000000000000..42204b8167946de0f6654db187442ad22f630178
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/browser/not-implemented.js
@@ -0,0 +1,20 @@
+"use strict";
+
+exports.notImplementedMethod = (window, className, methodName, specialCircumstances) => {
+ exports.notImplemented(
+ window,
+ `${className}'s ${methodName}() method${specialCircumstances ? `: ${specialCircumstances}` : ""}`
+ );
+};
+
+exports.notImplemented = (window, message) => {
+ if (!window) {
+ // Do nothing for window-less documents.
+ return;
+ }
+
+ const error = new Error(`Not implemented: ${message}`);
+ error.type = "not-implemented";
+
+ window._virtualConsole.emit("jsdomError", error);
+};
diff --git a/node_modules/jsdom/lib/jsdom/browser/parser/html.js b/node_modules/jsdom/lib/jsdom/browser/parser/html.js
new file mode 100644
index 0000000000000000000000000000000000000000..f41bf02ee69d78d65f343b526d53c6b0d98f0c87
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/browser/parser/html.js
@@ -0,0 +1,208 @@
+"use strict";
+
+const parse5 = require("parse5");
+
+const { createElement } = require("../../living/helpers/create-element");
+const { HTML_NS } = require("../../living/helpers/namespaces");
+
+const DocumentType = require("../../living/generated/DocumentType");
+const DocumentFragment = require("../../living/generated/DocumentFragment");
+const Text = require("../../living/generated/Text");
+const Comment = require("../../living/generated/Comment");
+
+const attributes = require("../../living/attributes");
+const nodeTypes = require("../../living/node-type");
+
+const serializationAdapter = require("../../living/domparsing/parse5-adapter-serialization");
+const {
+ customElementReactionsStack, invokeCEReactions, lookupCEDefinition
+} = require("../../living/helpers/custom-elements");
+
+
+class JSDOMParse5Adapter {
+ constructor(documentImpl, options = {}) {
+ this._documentImpl = documentImpl;
+ this._globalObject = documentImpl._globalObject;
+ this._fragment = options.fragment || false;
+
+ // Since the createElement hook doesn't provide the parent element, we keep track of this using _currentElement:
+ // https://github.com/inikulin/parse5/issues/285.
+ this._currentElement = undefined;
+ }
+
+ _ownerDocument() {
+ const { _currentElement } = this;
+
+ // The _currentElement is undefined when parsing elements at the root of the document.
+ if (_currentElement) {
+ return _currentElement.localName === "template" && _currentElement.namespaceURI === HTML_NS ?
+ _currentElement.content._ownerDocument :
+ _currentElement._ownerDocument;
+ }
+
+ return this._documentImpl;
+ }
+
+ createDocument() {
+ // parse5's model assumes that parse(html) will call into here to create the new Document, then return it. However,
+ // jsdom's model assumes we can create a Window (and through that create an empty Document), do some other setup
+ // stuff, and then parse, stuffing nodes into that Document as we go. So to adapt between these two models, we just
+ // return the already-created Document when asked by parse5 to "create" a Document.
+ return this._documentImpl;
+ }
+
+ createDocumentFragment() {
+ const ownerDocument = this._ownerDocument();
+ return DocumentFragment.createImpl(this._globalObject, [], { ownerDocument });
+ }
+
+ // https://html.spec.whatwg.org/#create-an-element-for-the-token
+ createElement(localName, namespace, attrs) {
+ const ownerDocument = this._ownerDocument();
+
+ const isAttribute = attrs.find(attr => attr.name === "is");
+ const isValue = isAttribute ? isAttribute.value : null;
+
+ const definition = lookupCEDefinition(ownerDocument, namespace, localName);
+
+ let willExecuteScript = false;
+ if (definition !== null && !this._fragment) {
+ willExecuteScript = true;
+ }
+
+ if (willExecuteScript) {
+ ownerDocument._throwOnDynamicMarkupInsertionCounter++;
+ customElementReactionsStack.push([]);
+ }
+
+ const element = createElement(ownerDocument, localName, namespace, null, isValue, willExecuteScript);
+ this.adoptAttributes(element, attrs);
+
+ if (willExecuteScript) {
+ const queue = customElementReactionsStack.pop();
+ invokeCEReactions(queue);
+ ownerDocument._throwOnDynamicMarkupInsertionCounter--;
+ }
+
+ if ("_parserInserted" in element) {
+ element._parserInserted = true;
+ }
+
+ return element;
+ }
+
+ createCommentNode(data) {
+ const ownerDocument = this._ownerDocument();
+ return Comment.createImpl(this._globalObject, [], { data, ownerDocument });
+ }
+
+ appendChild(parentNode, newNode) {
+ parentNode._append(newNode);
+ }
+
+ insertBefore(parentNode, newNode, referenceNode) {
+ parentNode._insert(newNode, referenceNode);
+ }
+
+ setTemplateContent(templateElement, contentFragment) {
+ // This code makes the glue between jsdom and parse5 HTMLTemplateElement parsing:
+ //
+ // * jsdom during the construction of the HTMLTemplateElement (for example when create via
+ // `document.createElement("template")`), creates a DocumentFragment and set it into _templateContents.
+ // * parse5 when parsing a tag creates an HTMLTemplateElement (`createElement` adapter hook) and also
+ // create a DocumentFragment (`createDocumentFragment` adapter hook).
+ //
+ // At this point we now have to replace the one created in jsdom with one created by parse5.
+ const { _ownerDocument, _host } = templateElement._templateContents;
+ contentFragment._ownerDocument = _ownerDocument;
+ contentFragment._host = _host;
+
+ templateElement._templateContents = contentFragment;
+ }
+
+ setDocumentType(document, name, publicId, systemId) {
+ const ownerDocument = this._ownerDocument();
+ const documentType = DocumentType.createImpl(this._globalObject, [], { name, publicId, systemId, ownerDocument });
+
+ document._append(documentType);
+ }
+
+ setDocumentMode(document, mode) {
+ // TODO: the rest of jsdom ignores this
+ document._mode = mode;
+ }
+
+ detachNode(node) {
+ node.remove();
+ }
+
+ insertText(parentNode, text) {
+ const { lastChild } = parentNode;
+ if (lastChild && lastChild.nodeType === nodeTypes.TEXT_NODE) {
+ lastChild.data += text;
+ } else {
+ const ownerDocument = this._ownerDocument();
+ const textNode = Text.createImpl(this._globalObject, [], { data: text, ownerDocument });
+ parentNode._append(textNode);
+ }
+ }
+
+ insertTextBefore(parentNode, text, referenceNode) {
+ const { previousSibling } = referenceNode;
+ if (previousSibling && previousSibling.nodeType === nodeTypes.TEXT_NODE) {
+ previousSibling.data += text;
+ } else {
+ const ownerDocument = this._ownerDocument();
+ const textNode = Text.createImpl(this._globalObject, [], { data: text, ownerDocument });
+ parentNode._append(textNode, referenceNode);
+ }
+ }
+
+ adoptAttributes(element, attrs) {
+ for (const attr of attrs) {
+ const prefix = attr.prefix === "" ? null : attr.prefix;
+ attributes.setAttributeValue(element, attr.name, attr.value, prefix, attr.namespace);
+ }
+ }
+
+ onItemPush(after) {
+ this._currentElement = after;
+ after._pushedOnStackOfOpenElements?.();
+ }
+
+ onItemPop(before, newTop) {
+ this._currentElement = newTop;
+ before._poppedOffStackOfOpenElements?.();
+ }
+}
+
+// Assign shared adapters with serializer.
+Object.assign(JSDOMParse5Adapter.prototype, serializationAdapter);
+
+function parseFragment(markup, contextElement) {
+ const ownerDocument = contextElement.localName === "template" && contextElement.namespaceURI === HTML_NS ?
+ contextElement.content._ownerDocument :
+ contextElement._ownerDocument;
+
+ const config = {
+ ...ownerDocument._parseOptions,
+ sourceCodeLocationInfo: false,
+ treeAdapter: new JSDOMParse5Adapter(ownerDocument, { fragment: true })
+ };
+
+ return parse5.parseFragment(contextElement, markup, config);
+}
+
+function parseIntoDocument(markup, ownerDocument) {
+ const config = {
+ ...ownerDocument._parseOptions,
+ treeAdapter: new JSDOMParse5Adapter(ownerDocument)
+ };
+
+ return parse5.parse(markup, config);
+}
+
+module.exports = {
+ parseFragment,
+ parseIntoDocument
+};
diff --git a/node_modules/jsdom/lib/jsdom/browser/parser/index.js b/node_modules/jsdom/lib/jsdom/browser/parser/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..e09df956e7c3e4fa447614db71acb6109e31c2f5
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/browser/parser/index.js
@@ -0,0 +1,37 @@
+"use strict";
+
+const xmlParser = require("./xml");
+const htmlParser = require("./html");
+
+// https://w3c.github.io/DOM-Parsing/#dfn-fragment-parsing-algorithm
+function parseFragment(markup, contextElement) {
+ const { _parsingMode } = contextElement._ownerDocument;
+
+ let parseAlgorithm;
+ if (_parsingMode === "html") {
+ parseAlgorithm = htmlParser.parseFragment;
+ } else if (_parsingMode === "xml") {
+ parseAlgorithm = xmlParser.parseFragment;
+ }
+
+ // Note: HTML and XML fragment parsing algorithm already return a document fragments; no need to do steps 3 and 4
+ return parseAlgorithm(markup, contextElement);
+}
+
+function parseIntoDocument(markup, ownerDocument) {
+ const { _parsingMode } = ownerDocument;
+
+ let parseAlgorithm;
+ if (_parsingMode === "html") {
+ parseAlgorithm = htmlParser.parseIntoDocument;
+ } else if (_parsingMode === "xml") {
+ parseAlgorithm = xmlParser.parseIntoDocument;
+ }
+
+ return parseAlgorithm(markup, ownerDocument);
+}
+
+module.exports = {
+ parseFragment,
+ parseIntoDocument
+};
diff --git a/node_modules/jsdom/lib/jsdom/browser/parser/xml.js b/node_modules/jsdom/lib/jsdom/browser/parser/xml.js
new file mode 100644
index 0000000000000000000000000000000000000000..b842466b9ce879e214da3f57f82d0df1bcd76fdd
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/browser/parser/xml.js
@@ -0,0 +1,202 @@
+"use strict";
+
+const { SaxesParser } = require("saxes");
+const DOMException = require("../../living/generated/DOMException");
+
+const { createElement } = require("../../living/helpers/create-element");
+
+const DocumentFragment = require("../../living/generated/DocumentFragment");
+const DocumentType = require("../../living/generated/DocumentType");
+const CDATASection = require("../../living/generated/CDATASection");
+const Comment = require("../../living/generated/Comment");
+const ProcessingInstruction = require("../../living/generated/ProcessingInstruction");
+const Text = require("../../living/generated/Text");
+
+const attributes = require("../../living/attributes");
+const { HTML_NS } = require("../../living/helpers/namespaces");
+
+const HTML5_DOCTYPE = //i;
+const PUBLIC_DOCTYPE = /]+)/i;
+
+function parseDocType(globalObject, ownerDocument, html) {
+ if (HTML5_DOCTYPE.test(html)) {
+ return createDocumentType(globalObject, ownerDocument, "html", "", "");
+ }
+
+ const publicPieces = PUBLIC_DOCTYPE.exec(html);
+ if (publicPieces) {
+ return createDocumentType(globalObject, ownerDocument, publicPieces[1], publicPieces[2], publicPieces[3]);
+ }
+
+ const systemPieces = SYSTEM_DOCTYPE.exec(html);
+ if (systemPieces) {
+ return createDocumentType(globalObject, ownerDocument, systemPieces[1], "", systemPieces[2]);
+ }
+
+ const namePiece = CUSTOM_NAME_DOCTYPE.exec(html)[1] || "html";
+ return createDocumentType(globalObject, ownerDocument, namePiece, "", "");
+}
+
+function createDocumentType(globalObject, ownerDocument, name, publicId, systemId) {
+ return DocumentType.createImpl(globalObject, [], { ownerDocument, name, publicId, systemId });
+}
+
+function isHTMLTemplateElement(element) {
+ return element.tagName === "template" && element.namespaceURI === HTML_NS;
+}
+
+
+function createParser(rootNode, globalObject, saxesOptions) {
+ const parser = new SaxesParser({
+ ...saxesOptions,
+ // Browsers always have namespace support.
+ xmlns: true,
+ // We force the parser to treat all documents (even documents declaring themselves to be XML 1.1 documents) as XML
+ // 1.0 documents. See https://github.com/jsdom/jsdom/issues/2677 for a discussion of the stakes.
+ defaultXMLVersion: "1.0",
+ forceXMLVersion: true
+ });
+ const openStack = [rootNode];
+
+ function getOwnerDocument() {
+ const currentElement = openStack[openStack.length - 1];
+
+ return isHTMLTemplateElement(currentElement) ?
+ currentElement._templateContents._ownerDocument :
+ currentElement._ownerDocument;
+ }
+
+ function appendChild(child) {
+ const parentElement = openStack[openStack.length - 1];
+
+ if (isHTMLTemplateElement(parentElement)) {
+ parentElement._templateContents._insert(child, null);
+ } else {
+ parentElement._insert(child, null);
+ }
+ }
+
+ parser.on("text", saxesOptions.fragment ?
+ // In a fragment, all text events produced by saxes must result in a text
+ // node.
+ data => {
+ const ownerDocument = getOwnerDocument();
+ appendChild(Text.createImpl(globalObject, [], { data, ownerDocument }));
+ } :
+ // When parsing a whole document, we must ignore those text nodes that are
+ // produced outside the root element. Saxes produces events for them,
+ // but DOM trees do not record text outside the root element.
+ data => {
+ if (openStack.length > 1) {
+ const ownerDocument = getOwnerDocument();
+ appendChild(Text.createImpl(globalObject, [], { data, ownerDocument }));
+ }
+ });
+
+ parser.on("cdata", data => {
+ const ownerDocument = getOwnerDocument();
+ appendChild(CDATASection.createImpl(globalObject, [], { data, ownerDocument }));
+ });
+
+ parser.on("opentag", tag => {
+ const { local: tagLocal, attributes: tagAttributes } = tag;
+
+ const ownerDocument = getOwnerDocument();
+ const tagNamespace = tag.uri === "" ? null : tag.uri;
+ const tagPrefix = tag.prefix === "" ? null : tag.prefix;
+ const isValue = tagAttributes.is === undefined ? null : tagAttributes.is.value;
+
+ const elem = createElement(ownerDocument, tagLocal, tagNamespace, tagPrefix, isValue, true);
+
+ // We mark a script element as "parser-inserted", which prevents it from
+ // being immediately executed.
+ if (tagLocal === "script" && tagNamespace === HTML_NS) {
+ elem._parserInserted = true;
+ }
+
+ for (const key of Object.keys(tagAttributes)) {
+ const { prefix, local, uri, value } = tagAttributes[key];
+ attributes.setAttributeValue(elem, local, value, prefix === "" ? null : prefix, uri === "" ? null : uri);
+ }
+
+ appendChild(elem);
+ openStack.push(elem);
+ });
+
+ parser.on("closetag", () => {
+ const elem = openStack.pop();
+ // Once a script is populated, we can execute it.
+ if (elem.localName === "script" && elem.namespaceURI === HTML_NS) {
+ elem._eval();
+ }
+ });
+
+ parser.on("comment", data => {
+ const ownerDocument = getOwnerDocument();
+ appendChild(Comment.createImpl(globalObject, [], { data, ownerDocument }));
+ });
+
+ parser.on("processinginstruction", ({ target, body }) => {
+ const ownerDocument = getOwnerDocument();
+ appendChild(ProcessingInstruction.createImpl(globalObject, [], { target, data: body, ownerDocument }));
+ });
+
+ parser.on("doctype", dt => {
+ const ownerDocument = getOwnerDocument();
+ appendChild(parseDocType(globalObject, ownerDocument, ``));
+
+ const entityMatcher = //g;
+ let result;
+ while ((result = entityMatcher.exec(dt))) {
+ const [, name, value] = result;
+ if (!(name in parser.ENTITIES)) {
+ parser.ENTITIES[name] = value;
+ }
+ }
+ });
+
+ parser.on("error", err => {
+ throw DOMException.create(globalObject, [err.message, "SyntaxError"]);
+ });
+
+ return parser;
+}
+
+function parseFragment(markup, contextElement) {
+ const { _globalObject, _ownerDocument } = contextElement;
+
+ const fragment = DocumentFragment.createImpl(_globalObject, [], { ownerDocument: _ownerDocument });
+
+ // Only parseFragment needs resolvePrefix per the saxes documentation:
+ // https://github.com/lddubeau/saxes#parsing-xml-fragments
+ const parser = createParser(fragment, _globalObject, {
+ fragment: true,
+ resolvePrefix(prefix) {
+ // saxes wants undefined as the return value if the prefix is not defined, not null.
+ return contextElement.lookupNamespaceURI(prefix) || undefined;
+ }
+ });
+
+ parser.write(markup).close();
+
+ return fragment;
+}
+
+function parseIntoDocument(markup, ownerDocument) {
+ const { _globalObject } = ownerDocument;
+
+ const parser = createParser(ownerDocument, _globalObject, {
+ fileName: ownerDocument.location && ownerDocument.location.href
+ });
+
+ parser.write(markup).close();
+
+ return ownerDocument;
+}
+
+module.exports = {
+ parseFragment,
+ parseIntoDocument
+};
diff --git a/node_modules/jsdom/lib/jsdom/browser/resources/async-resource-queue.js b/node_modules/jsdom/lib/jsdom/browser/resources/async-resource-queue.js
new file mode 100644
index 0000000000000000000000000000000000000000..51c7bb71e32782139aab7e284d7c43187e4811cc
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/browser/resources/async-resource-queue.js
@@ -0,0 +1,114 @@
+"use strict";
+
+class QueueItem {
+ constructor(onLoad, onError, dependentItem) {
+ this.onLoad = onLoad;
+ this.onError = onError;
+ this.data = null;
+ this.error = null;
+ this.dependentItem = dependentItem;
+ }
+}
+
+/**
+ * AsyncResourceQueue is the queue in charge of run the async scripts
+ * and notify when they finish.
+ */
+module.exports = class AsyncResourceQueue {
+ constructor() {
+ this.items = new Set();
+ this.dependentItems = new Set();
+ }
+
+ count() {
+ return this.items.size + this.dependentItems.size;
+ }
+
+ _notify() {
+ if (this._listener) {
+ this._listener();
+ }
+ }
+
+ _check(item) {
+ let promise;
+
+ if (item.onError && item.error) {
+ promise = item.onError(item.error);
+ } else if (item.onLoad && item.data) {
+ promise = item.onLoad(item.data);
+ }
+
+ promise
+ .then(() => {
+ this.items.delete(item);
+ this.dependentItems.delete(item);
+
+ if (this.count() === 0) {
+ this._notify();
+ }
+ });
+ }
+
+ setListener(listener) {
+ this._listener = listener;
+ }
+
+ push(request, onLoad, onError, dependentItem) {
+ const q = this;
+
+ const item = new QueueItem(onLoad, onError, dependentItem);
+
+ q.items.add(item);
+
+ return request
+ .then(data => {
+ item.data = data;
+
+ if (dependentItem && !dependentItem.finished) {
+ q.dependentItems.add(item);
+ return q.items.delete(item);
+ }
+
+ if (onLoad) {
+ return q._check(item);
+ }
+
+ q.items.delete(item);
+
+ if (q.count() === 0) {
+ q._notify();
+ }
+
+ return null;
+ })
+ .catch(err => {
+ item.error = err;
+
+ if (dependentItem && !dependentItem.finished) {
+ q.dependentItems.add(item);
+ return q.items.delete(item);
+ }
+
+ if (onError) {
+ return q._check(item);
+ }
+
+ q.items.delete(item);
+
+ if (q.count() === 0) {
+ q._notify();
+ }
+
+ return null;
+ });
+ }
+
+ notifyItem(syncItem) {
+ for (const item of this.dependentItems) {
+ if (item.dependentItem === syncItem) {
+ this._check(item);
+ }
+ }
+ }
+};
diff --git a/node_modules/jsdom/lib/jsdom/browser/resources/no-op-resource-loader.js b/node_modules/jsdom/lib/jsdom/browser/resources/no-op-resource-loader.js
new file mode 100644
index 0000000000000000000000000000000000000000..985509c4ddd79cf7ff8c423bfbee8e195f60b860
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/browser/resources/no-op-resource-loader.js
@@ -0,0 +1,8 @@
+"use strict";
+const ResourceLoader = require("./resource-loader.js");
+
+module.exports = class NoOpResourceLoader extends ResourceLoader {
+ fetch() {
+ return null;
+ }
+};
diff --git a/node_modules/jsdom/lib/jsdom/browser/resources/per-document-resource-loader.js b/node_modules/jsdom/lib/jsdom/browser/resources/per-document-resource-loader.js
new file mode 100644
index 0000000000000000000000000000000000000000..ff31dc390921b07bc4ccceee9e47df12666a8cfc
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/browser/resources/per-document-resource-loader.js
@@ -0,0 +1,98 @@
+"use strict";
+const idlUtils = require("../../living/generated/utils");
+const { fireAnEvent } = require("../../living/helpers/events");
+
+module.exports = class PerDocumentResourceLoader {
+ constructor(document) {
+ this._document = document;
+ this._defaultEncoding = document._encoding;
+ this._resourceLoader = document._defaultView ? document._defaultView._resourceLoader : null;
+ this._requestManager = document._requestManager;
+ this._queue = document._queue;
+ this._deferQueue = document._deferQueue;
+ this._asyncQueue = document._asyncQueue;
+ }
+
+ fetch(url, { element, onLoad, onError }) {
+ const request = this._resourceLoader.fetch(url, {
+ cookieJar: this._document._cookieJar,
+ element: idlUtils.wrapperForImpl(element),
+ referrer: this._document.URL
+ });
+
+ if (request === null) {
+ return null;
+ }
+
+ this._requestManager.add(request);
+
+ const onErrorWrapped = cause => {
+ this._requestManager.remove(request);
+
+ if (onError) {
+ onError(cause);
+ }
+
+ fireAnEvent("error", element);
+
+ const jsomError = new Error(`Could not load ${element.localName}: "${url}"`, { cause });
+ jsomError.type = "resource-loading";
+ jsomError.url = url;
+
+ this._document._defaultView._virtualConsole.emit("jsdomError", jsomError);
+
+ return Promise.resolve();
+ };
+
+ const onLoadWrapped = data => {
+ this._requestManager.remove(request);
+
+ this._addCookies(url, request.response ? request.response.headers : {});
+
+ try {
+ const result = onLoad ? onLoad(data) : undefined;
+
+ return Promise.resolve(result)
+ .then(() => {
+ fireAnEvent("load", element);
+
+ return Promise.resolve();
+ })
+ .catch(err => {
+ return onErrorWrapped(err);
+ });
+ } catch (err) {
+ return onErrorWrapped(err);
+ }
+ };
+
+ if (element.localName === "script" && element.hasAttributeNS(null, "async")) {
+ this._asyncQueue.push(request, onLoadWrapped, onErrorWrapped, this._queue.getLastScript());
+ } else if (
+ element.localName === "script" &&
+ element.hasAttributeNS(null, "defer") &&
+ this._document.readyState !== "interactive") {
+ this._deferQueue.push(request, onLoadWrapped, onErrorWrapped, false, element);
+ } else {
+ this._queue.push(request, onLoadWrapped, onErrorWrapped, false, element);
+ }
+
+ return request;
+ }
+
+ _addCookies(url, headers) {
+ let cookies = headers["set-cookie"];
+
+ if (!cookies) {
+ return;
+ }
+
+ if (!Array.isArray(cookies)) {
+ cookies = [cookies];
+ }
+
+ cookies.forEach(cookie => {
+ this._document._cookieJar.setCookieSync(cookie, url, { http: true, ignoreError: true });
+ });
+ }
+};
diff --git a/node_modules/jsdom/lib/jsdom/browser/resources/request-manager.js b/node_modules/jsdom/lib/jsdom/browser/resources/request-manager.js
new file mode 100644
index 0000000000000000000000000000000000000000..dbf6ccb580a67e0b6c53cd6acdef685587badee8
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/browser/resources/request-manager.js
@@ -0,0 +1,33 @@
+"use strict";
+
+/**
+ * Manage all the request and it is able to abort
+ * all pending request.
+ */
+module.exports = class RequestManager {
+ constructor() {
+ this.openedRequests = [];
+ }
+
+ add(req) {
+ this.openedRequests.push(req);
+ }
+
+ remove(req) {
+ const idx = this.openedRequests.indexOf(req);
+ if (idx !== -1) {
+ this.openedRequests.splice(idx, 1);
+ }
+ }
+
+ close() {
+ for (const openedRequest of this.openedRequests) {
+ openedRequest.abort();
+ }
+ this.openedRequests = [];
+ }
+
+ size() {
+ return this.openedRequests.length;
+ }
+};
diff --git a/node_modules/jsdom/lib/jsdom/browser/resources/resource-loader.js b/node_modules/jsdom/lib/jsdom/browser/resources/resource-loader.js
new file mode 100644
index 0000000000000000000000000000000000000000..0751b2ccdedd713103fad123df88b40558061255
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/browser/resources/resource-loader.js
@@ -0,0 +1,142 @@
+"use strict";
+const fs = require("fs");
+const { fileURLToPath } = require("url");
+const { parseURL } = require("whatwg-url");
+const dataURLFromRecord = require("data-urls").fromURLRecord;
+const packageVersion = require("../../../../package.json").version;
+const agentFactory = require("../../living/helpers/agent-factory");
+const Request = require("../../living/helpers/http-request");
+
+const IS_BROWSER = Object.prototype.toString.call(process) !== "[object process]";
+
+module.exports = class ResourceLoader {
+ constructor({
+ strictSSL = true,
+ proxy = undefined,
+ userAgent = `Mozilla/5.0 (${process.platform || "unknown OS"}) AppleWebKit/537.36 ` +
+ `(KHTML, like Gecko) jsdom/${packageVersion}`
+ } = {}) {
+ this._strictSSL = strictSSL;
+ this._proxy = proxy;
+ this._userAgent = userAgent;
+ }
+
+ _readDataURL(urlRecord) {
+ const dataURL = dataURLFromRecord(urlRecord);
+ let timeoutId;
+ const promise = new Promise(resolve => {
+ timeoutId = setTimeout(resolve, 0, Buffer.from(dataURL.body));
+ });
+ promise.abort = () => {
+ if (timeoutId !== undefined) {
+ clearTimeout(timeoutId);
+ }
+ };
+ return promise;
+ }
+
+ _readFile(filePath) {
+ let readableStream, abort; // Native Promises doesn't have an "abort" method.
+
+ // Creating a promise for two reason:
+ // 1. fetch always return a promise.
+ // 2. We need to add an abort handler.
+ const promise = new Promise((resolve, reject) => {
+ readableStream = fs.createReadStream(filePath);
+ let data = Buffer.alloc(0);
+
+ abort = reject;
+
+ readableStream.on("error", reject);
+
+ readableStream.on("data", chunk => {
+ data = Buffer.concat([data, chunk]);
+ });
+
+ readableStream.on("end", () => {
+ resolve(data);
+ });
+ });
+
+ promise.abort = () => {
+ readableStream.destroy();
+ const error = new Error("request canceled by user");
+ error.isAbortError = true;
+ abort(error);
+ };
+
+ return promise;
+ }
+
+ fetch(urlString, { accept, cookieJar, referrer } = {}) {
+ const url = parseURL(urlString);
+
+ if (!url) {
+ return Promise.reject(new Error(`Tried to fetch invalid URL ${urlString}`));
+ }
+
+ switch (url.scheme) {
+ case "data": {
+ return this._readDataURL(url);
+ }
+
+ case "http":
+ case "https": {
+ const agents = agentFactory(this._proxy, this._strictSSL);
+ const headers = {
+ "User-Agent": this._userAgent,
+ "Accept-Language": "en",
+ "Accept-Encoding": "gzip",
+ "Accept": accept || "*/*"
+ };
+ if (referrer && !IS_BROWSER) {
+ headers.Referer = referrer;
+ }
+ const requestClient = new Request(
+ urlString,
+ { followRedirects: true, cookieJar, agents },
+ { headers }
+ );
+ const promise = new Promise((resolve, reject) => {
+ const accumulated = [];
+ requestClient.once("response", res => {
+ promise.response = res;
+ const { statusCode } = res;
+ // TODO This deviates from the spec when it comes to
+ // loading resources such as images
+ if (statusCode < 200 || statusCode > 299) {
+ requestClient.abort();
+ reject(new Error(`Resource was not loaded. Status: ${statusCode}`));
+ }
+ });
+ requestClient.on("data", chunk => {
+ accumulated.push(chunk);
+ });
+ requestClient.on("end", () => resolve(Buffer.concat(accumulated)));
+ requestClient.on("error", reject);
+ });
+ // The method fromURL in lib/api.js crashes without the following four
+ // properties defined on the Promise instance, causing the test suite to halt
+ requestClient.on("end", () => {
+ promise.href = requestClient.currentURL;
+ });
+ promise.abort = requestClient.abort.bind(requestClient);
+ promise.getHeader = name => headers[name] || requestClient.getHeader(name);
+ requestClient.end();
+ return promise;
+ }
+
+ case "file": {
+ try {
+ return this._readFile(fileURLToPath(urlString));
+ } catch (e) {
+ return Promise.reject(e);
+ }
+ }
+
+ default: {
+ return Promise.reject(new Error(`Tried to fetch URL ${urlString} with invalid scheme ${url.scheme}`));
+ }
+ }
+ }
+};
diff --git a/node_modules/jsdom/lib/jsdom/browser/resources/resource-queue.js b/node_modules/jsdom/lib/jsdom/browser/resources/resource-queue.js
new file mode 100644
index 0000000000000000000000000000000000000000..c7d8f0fcc42d8710e2b73ac9f5ee5a7322a43028
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/browser/resources/resource-queue.js
@@ -0,0 +1,142 @@
+"use strict";
+
+/**
+ * Queue for all the resources to be download except async scripts.
+ * Async scripts have their own queue AsyncResourceQueue.
+ */
+module.exports = class ResourceQueue {
+ constructor({ paused, asyncQueue } = {}) {
+ this.paused = Boolean(paused);
+ this._asyncQueue = asyncQueue;
+ }
+
+ getLastScript() {
+ let head = this.tail;
+
+ while (head) {
+ if (head.isScript) {
+ return head;
+ }
+ head = head.prev;
+ }
+
+ return null;
+ }
+
+ _moreScripts() {
+ let found = false;
+
+ let head = this.tail;
+ while (head && !found) {
+ found = head.isScript;
+ head = head.prev;
+ }
+
+ return found;
+ }
+
+ _notify() {
+ if (this._listener) {
+ this._listener();
+ }
+ }
+
+ setListener(listener) {
+ this._listener = listener;
+ }
+
+ push(request, onLoad, onError, keepLast, element) {
+ const isScript = element ? element.localName === "script" : false;
+
+ if (!request) {
+ if (isScript && !this._moreScripts()) {
+ return onLoad();
+ }
+
+ request = Promise.resolve();
+ }
+ const q = this;
+ const item = {
+ isScript,
+ err: null,
+ element,
+ fired: false,
+ data: null,
+ keepLast,
+ prev: q.tail,
+ check() {
+ if (!q.paused && !this.prev && this.fired) {
+ let promise;
+
+ if (this.err && onError) {
+ promise = onError(this.err);
+ }
+
+ if (!this.err && onLoad) {
+ promise = onLoad(this.data);
+ }
+
+ Promise.resolve(promise)
+ .then(() => {
+ if (this.next) {
+ this.next.prev = null;
+ this.next.check();
+ } else { // q.tail===this
+ q.tail = null;
+ q._notify();
+ }
+
+ this.finished = true;
+
+ if (q._asyncQueue) {
+ q._asyncQueue.notifyItem(this);
+ }
+ });
+ }
+ }
+ };
+ if (q.tail) {
+ if (q.tail.keepLast) {
+ // if the tail is the load event in document and we receive a new element to load
+ // we should add this new request before the load event.
+ if (q.tail.prev) {
+ q.tail.prev.next = item;
+ }
+ item.prev = q.tail.prev;
+ q.tail.prev = item;
+ item.next = q.tail;
+ } else {
+ q.tail.next = item;
+ q.tail = item;
+ }
+ } else {
+ q.tail = item;
+ }
+ return request
+ .then(data => {
+ item.fired = 1;
+ item.data = data;
+ item.check();
+ })
+ .catch(err => {
+ item.fired = true;
+ item.err = err;
+ item.check();
+ });
+ }
+
+ resume() {
+ if (!this.paused) {
+ return;
+ }
+ this.paused = false;
+
+ let head = this.tail;
+ while (head && head.prev) {
+ head = head.prev;
+ }
+ if (head) {
+ head.check();
+ }
+ }
+};
diff --git a/node_modules/jsdom/lib/jsdom/level2/style.js b/node_modules/jsdom/lib/jsdom/level2/style.js
new file mode 100644
index 0000000000000000000000000000000000000000..09263ae7e020200875c818f96acdc035c4340cd8
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/level2/style.js
@@ -0,0 +1,57 @@
+"use strict";
+const cssom = require("rrweb-cssom");
+const cssstyle = require("cssstyle");
+
+exports.addToCore = core => {
+ // What works now:
+ // - Accessing the rules defined in individual stylesheets
+ // - Modifications to style content attribute are reflected in style property
+ // - Modifications to style property are reflected in style content attribute
+ // TODO
+ // - Modifications to style element's textContent are reflected in sheet property.
+ // - Modifications to style element's sheet property are reflected in textContent.
+ // - Modifications to link.href property are reflected in sheet property.
+ // - Less-used features of link: disabled
+ // - Less-used features of style: disabled, scoped, title
+ // - CSSOM-View
+ // - getComputedStyle(): requires default stylesheet, cascading, inheritance,
+ // filtering by @media (screen? print?), layout for widths/heights
+ // - Load events are not in the specs, but apparently some browsers
+ // implement something. Should onload only fire after all @imports have been
+ // loaded, or only the primary sheet?
+
+ core.StyleSheet = cssom.StyleSheet;
+ core.MediaList = cssom.MediaList;
+ core.CSSStyleSheet = cssom.CSSStyleSheet;
+ core.CSSRule = cssom.CSSRule;
+ core.CSSStyleRule = cssom.CSSStyleRule;
+ core.CSSMediaRule = cssom.CSSMediaRule;
+ core.CSSImportRule = cssom.CSSImportRule;
+ core.CSSStyleDeclaration = cssstyle.CSSStyleDeclaration;
+
+ // Relevant specs
+ // http://www.w3.org/TR/DOM-Level-2-Style (2000)
+ // http://www.w3.org/TR/cssom-view/ (2008)
+ // http://dev.w3.org/csswg/cssom/ (2010) Meant to replace DOM Level 2 Style
+ // http://www.whatwg.org/specs/web-apps/current-work/multipage/ HTML5, of course
+ // http://dev.w3.org/csswg/css-style-attr/ not sure what's new here
+
+ // Objects that aren't in cssom library but should be:
+ // CSSRuleList (cssom just uses array)
+ // CSSFontFaceRule
+ // CSSPageRule
+
+ // These rules don't really make sense to implement, so CSSOM draft makes them
+ // obsolete.
+ // CSSCharsetRule
+ // CSSUnknownRule
+
+ // These objects are considered obsolete by CSSOM draft, although modern
+ // browsers implement them.
+ // CSSValue
+ // CSSPrimitiveValue
+ // CSSValueList
+ // RGBColor
+ // Rect
+ // Counter
+};
diff --git a/node_modules/jsdom/lib/jsdom/level3/xpath.js b/node_modules/jsdom/lib/jsdom/level3/xpath.js
new file mode 100644
index 0000000000000000000000000000000000000000..71da751e59f6791a88addffca3a506cd12179432
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/level3/xpath.js
@@ -0,0 +1,1875 @@
+/** Here is yet another implementation of XPath 1.0 in Javascript.
+ *
+ * My goal was to make it relatively compact, but as I fixed all the axis bugs
+ * the axes became more and more complicated. :-(.
+ *
+ * I have not implemented namespaces or case-sensitive axes for XML yet.
+ *
+ * How to test it in Chrome: You can make a Chrome extension that replaces
+ * the WebKit XPath parser with this one. But it takes a bit of effort to
+ * get around isolated world and same-origin restrictions:
+ * manifest.json:
+ {
+ "name": "XPathTest",
+ "version": "0.1",
+ "content_scripts": [{
+ "matches": ["http://localhost/*"], // or wildcard host
+ "js": ["xpath.js", "injection.js"],
+ "all_frames": true, "run_at": "document_start"
+ }]
+ }
+ * injection.js:
+ // goal: give my xpath object to the website's JS context.
+ var script = document.createElement('script');
+ script.textContent =
+ "document.addEventListener('xpathextend', function(e) {\n" +
+ " console.log('extending document with xpath...');\n" +
+ " e.detail(window);" +
+ "});";
+ document.documentElement.appendChild(script);
+ document.documentElement.removeChild(script);
+ var evt = document.createEvent('CustomEvent');
+ evt.initCustomEvent('xpathextend', true, true, this.xpath.extend);
+ document.dispatchEvent(evt);
+ */
+module.exports = core => {
+ var xpath = {};
+
+ // Helper function to deal with the migration of Attr to no longer have a nodeName property despite this codebase
+ // assuming it does.
+ function getNodeName(nodeOrAttr) {
+ return nodeOrAttr.constructor.name === 'Attr' ? nodeOrAttr.name : nodeOrAttr.nodeName;
+ }
+
+ /***************************************************************************
+ * Tokenization *
+ ***************************************************************************/
+ /**
+ * The XPath lexer is basically a single regular expression, along with
+ * some helper functions to pop different types.
+ */
+ var Stream = xpath.Stream = function Stream(str) {
+ this.original = this.str = str;
+ this.peeked = null;
+ // TODO: not really needed, but supposedly tokenizer also disambiguates
+ // a * b vs. node test *
+ this.prev = null; // for debugging
+ this.prevprev = null;
+ }
+ Stream.prototype = {
+ peek: function() {
+ if (this.peeked) return this.peeked;
+ var m = this.re.exec(this.str);
+ if (!m) return null;
+ this.str = this.str.substr(m[0].length);
+ return this.peeked = m[1];
+ },
+ /** Peek 2 tokens ahead. */
+ peek2: function() {
+ this.peek(); // make sure this.peeked is set
+ var m = this.re.exec(this.str);
+ if (!m) return null;
+ return m[1];
+ },
+ pop: function() {
+ var r = this.peek();
+ this.peeked = null;
+ this.prevprev = this.prev;
+ this.prev = r;
+ return r;
+ },
+ trypop: function(tokens) {
+ var tok = this.peek();
+ if (tok === tokens) return this.pop();
+ if (Array.isArray(tokens)) {
+ for (var i = 0; i < tokens.length; ++i) {
+ var t = tokens[i];
+ if (t == tok) return this.pop();;
+ }
+ }
+ },
+ trypopfuncname: function() {
+ var tok = this.peek();
+ if (!this.isQnameRe.test(tok))
+ return null;
+ switch (tok) {
+ case 'comment': case 'text': case 'processing-instruction': case 'node':
+ return null;
+ }
+ if ('(' != this.peek2()) return null;
+ return this.pop();
+ },
+ trypopaxisname: function() {
+ var tok = this.peek();
+ switch (tok) {
+ case 'ancestor': case 'ancestor-or-self': case 'attribute':
+ case 'child': case 'descendant': case 'descendant-or-self':
+ case 'following': case 'following-sibling': case 'namespace':
+ case 'parent': case 'preceding': case 'preceding-sibling': case 'self':
+ if ('::' == this.peek2()) return this.pop();
+ }
+ return null;
+ },
+ trypopnametest: function() {
+ var tok = this.peek();
+ if ('*' === tok || this.startsWithNcNameRe.test(tok)) return this.pop();
+ return null;
+ },
+ trypopliteral: function() {
+ var tok = this.peek();
+ if (null == tok) return null;
+ var first = tok.charAt(0);
+ var last = tok.charAt(tok.length - 1);
+ if ('"' === first && '"' === last ||
+ "'" === first && "'" === last) {
+ this.pop();
+ return tok.substr(1, tok.length - 2) ?? null;
+ }
+ return null;
+ },
+ trypopnumber: function() {
+ var tok = this.peek();
+ if (this.isNumberRe.test(tok)) return parseFloat(this.pop()) ?? null;
+ else return null;
+ },
+ trypopvarref: function() {
+ var tok = this.peek();
+ if (null == tok) return null;
+ if ('$' === tok.charAt(0)) return this.pop().substr(1) ?? null;
+ else return null;
+ },
+ position: function() {
+ return this.original.length - this.str.length;
+ }
+ };
+ (function() {
+ // http://www.w3.org/TR/REC-xml-names/#NT-NCName
+ var nameStartCharsExceptColon =
+ 'A-Z_a-z\xc0-\xd6\xd8-\xf6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF' +
+ '\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF' +
+ '\uFDF0-\uFFFD'; // JS doesn't support [#x10000-#xEFFFF]
+ var nameCharExceptColon = nameStartCharsExceptColon +
+ '\\-\\.0-9\xb7\u0300-\u036F\u203F-\u2040';
+ var ncNameChars = '[' + nameStartCharsExceptColon +
+ '][' + nameCharExceptColon + ']*'
+ // http://www.w3.org/TR/REC-xml-names/#NT-QName
+ var qNameChars = ncNameChars + '(?::' + ncNameChars + ')?';
+ var otherChars = '\\.\\.|[\\(\\)\\[\\].@,]|::'; // .. must come before [.]
+ var operatorChars =
+ 'and|or|mod|div|' +
+ '//|!=|<=|>=|[*/|+\\-=<>]'; // //, !=, <=, >= before individual ones.
+ var literal = '"[^"]*"|' + "'[^']*'";
+ var numberChars = '[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+';
+ var variableReference = '\\$' + qNameChars;
+ var nameTestChars = '\\*|' + ncNameChars + ':\\*|' + qNameChars;
+ var optionalSpace = '[ \t\r\n]*'; // stricter than regexp \s.
+ var nodeType = 'comment|text|processing-instruction|node';
+ var re = new RegExp(
+ // numberChars before otherChars so that leading-decimal doesn't become .
+ '^' + optionalSpace + '(' + numberChars + '|' + otherChars + '|' +
+ nameTestChars + '|' + operatorChars + '|' + literal + '|' +
+ variableReference + ')'
+ // operatorName | nodeType | functionName | axisName are lumped into
+ // qName for now; we'll check them on pop.
+ );
+ Stream.prototype.re = re;
+ Stream.prototype.startsWithNcNameRe = new RegExp('^' + ncNameChars);
+ Stream.prototype.isQnameRe = new RegExp('^' + qNameChars + '$');
+ Stream.prototype.isNumberRe = new RegExp('^' + numberChars + '$');
+ })();
+
+ /***************************************************************************
+ * Parsing *
+ ***************************************************************************/
+ var parse = xpath.parse = function parse(stream, a) {
+ var r = orExpr(stream,a);
+ var x, unparsed = [];
+ while (x = stream.pop()) {
+ unparsed.push(x);
+ }
+ if (unparsed.length)
+ throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,
+ 'Position ' + stream.position() +
+ ': Unparsed tokens: ' + unparsed.join(' '));
+ return r;
+ }
+
+ /**
+ * binaryL ::= subExpr
+ * | binaryL op subExpr
+ * so a op b op c becomes ((a op b) op c)
+ */
+ function binaryL(subExpr, stream, a, ops) {
+ var lhs = subExpr(stream, a);
+ if (lhs == null) return null;
+ var op;
+ while (op = stream.trypop(ops)) {
+ var rhs = subExpr(stream, a);
+ if (rhs == null)
+ throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,
+ 'Position ' + stream.position() +
+ ': Expected something after ' + op);
+ lhs = a.node(op, lhs, rhs);
+ }
+ return lhs;
+ }
+ /**
+ * Too bad this is never used. If they made a ** operator (raise to power),
+ ( we would use it.
+ * binaryR ::= subExpr
+ * | subExpr op binaryR
+ * so a op b op c becomes (a op (b op c))
+ */
+ function binaryR(subExpr, stream, a, ops) {
+ var lhs = subExpr(stream, a);
+ if (lhs == null) return null;
+ var op = stream.trypop(ops);
+ if (op) {
+ var rhs = binaryR(stream, a);
+ if (rhs == null)
+ throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,
+ 'Position ' + stream.position() +
+ ': Expected something after ' + op);
+ return a.node(op, lhs, rhs);
+ } else {
+ return lhs;// TODO
+ }
+ }
+ /** [1] LocationPath::= RelativeLocationPath | AbsoluteLocationPath
+ * e.g. a, a/b, //a/b
+ */
+ function locationPath(stream, a) {
+ return absoluteLocationPath(stream, a) ||
+ relativeLocationPath(null, stream, a);
+ }
+ /** [2] AbsoluteLocationPath::= '/' RelativeLocationPath? | AbbreviatedAbsoluteLocationPath
+ * [10] AbbreviatedAbsoluteLocationPath::= '//' RelativeLocationPath
+ */
+ function absoluteLocationPath(stream, a) {
+ var op = stream.peek();
+ if ('/' === op || '//' === op) {
+ var lhs = a.node('Root');
+ return relativeLocationPath(lhs, stream, a, true);
+ } else {
+ return null;
+ }
+ }
+ /** [3] RelativeLocationPath::= Step | RelativeLocationPath '/' Step |
+ * | AbbreviatedRelativeLocationPath
+ * [11] AbbreviatedRelativeLocationPath::= RelativeLocationPath '//' Step
+ * e.g. p/a, etc.
+ */
+ function relativeLocationPath(lhs, stream, a, isOnlyRootOk) {
+ if (null == lhs) {
+ lhs = step(stream, a);
+ if (null == lhs) return lhs;
+ }
+ var op;
+ while (op = stream.trypop(['/', '//'])) {
+ if ('//' === op) {
+ lhs = a.node('/', lhs,
+ a.node('Axis', 'descendant-or-self', 'node', undefined));
+ }
+ var rhs = step(stream, a);
+ if (null == rhs && '/' === op && isOnlyRootOk) return lhs;
+ else isOnlyRootOk = false;
+ if (null == rhs)
+ throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,
+ 'Position ' + stream.position() +
+ ': Expected step after ' + op);
+ lhs = a.node('/', lhs, rhs);
+ }
+ return lhs;
+ }
+ /** [4] Step::= AxisSpecifier NodeTest Predicate* | AbbreviatedStep
+ * [12] AbbreviatedStep::= '.' | '..'
+ * e.g. @href, self::p, p, a[@href], ., ..
+ */
+ function step(stream, a) {
+ var abbrStep = stream.trypop(['.', '..']);
+ if ('.' === abbrStep) // A location step of . is short for self::node().
+ return a.node('Axis', 'self', 'node');
+ if ('..' === abbrStep) // A location step of .. is short for parent::node()
+ return a.node('Axis', 'parent', 'node');
+
+ var axis = axisSpecifier(stream, a);
+ var nodeType = nodeTypeTest(stream, a);
+ var nodeName;
+ if (null == nodeType) nodeName = nodeNameTest(stream, a);
+ if (null == axis && null == nodeType && null == nodeName) return null;
+ if (null == nodeType && null == nodeName)
+ throw new XPathException(
+ XPathException.INVALID_EXPRESSION_ERR,
+ 'Position ' + stream.position() +
+ ': Expected nodeTest after axisSpecifier ' + axis);
+ if (null == axis) axis = 'child';
+ if (null == nodeType) {
+ // When there's only a node name, then the node type is forced to be the
+ // principal node type of the axis.
+ // see http://www.w3.org/TR/xpath/#dt-principal-node-type
+ if ('attribute' === axis) nodeType = 'attribute';
+ else if ('namespace' === axis) nodeType = 'namespace';
+ else nodeType = 'element';
+ }
+ var lhs = a.node('Axis', axis, nodeType, nodeName);
+ var pred;
+ while (null != (pred = predicate(lhs, stream, a))) {
+ lhs = pred;
+ }
+ return lhs;
+ }
+ /** [5] AxisSpecifier::= AxisName '::' | AbbreviatedAxisSpecifier
+ * [6] AxisName::= 'ancestor' | 'ancestor-or-self' | 'attribute' | 'child'
+ * | 'descendant' | 'descendant-or-self' | 'following'
+ * | 'following-sibling' | 'namespace' | 'parent' |
+ * | 'preceding' | 'preceding-sibling' | 'self'
+ * [13] AbbreviatedAxisSpecifier::= '@'?
+ */
+ function axisSpecifier(stream, a) {
+ var attr = stream.trypop('@');
+ if (null != attr) return 'attribute';
+ var axisName = stream.trypopaxisname();
+ if (null != axisName) {
+ var coloncolon = stream.trypop('::');
+ if (null == coloncolon)
+ throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,
+ 'Position ' + stream.position() +
+ ': Should not happen. Should be ::.');
+ return axisName;
+ }
+ }
+ /** [7] NodeTest::= NameTest | NodeType '(' ')' | 'processing-instruction' '(' Literal ')'
+ * [38] NodeType::= 'comment' | 'text' | 'processing-instruction' | 'node'
+ * I've split nodeTypeTest from nodeNameTest for convenience.
+ */
+ function nodeTypeTest(stream, a) {
+ if ('(' !== stream.peek2()) {
+ return null;
+ }
+ var type = stream.trypop(['comment', 'text', 'processing-instruction', 'node']);
+ if (null != type) {
+ if (null == stream.trypop('('))
+ throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,
+ 'Position ' + stream.position() +
+ ': Should not happen.');
+ var param = undefined;
+ if (type == 'processing-instruction') {
+ param = stream.trypopliteral();
+ }
+ if (null == stream.trypop(')'))
+ throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,
+ 'Position ' + stream.position() +
+ ': Expected close parens.');
+ return type
+ }
+ }
+ function nodeNameTest(stream, a) {
+ var name = stream.trypopnametest();
+ if (name != null) return name;
+ else return null;
+ }
+ /** [8] Predicate::= '[' PredicateExpr ']'
+ * [9] PredicateExpr::= Expr
+ */
+ function predicate(lhs, stream, a) {
+ if (null == stream.trypop('[')) return null;
+ var expr = orExpr(stream, a);
+ if (null == expr)
+ throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,
+ 'Position ' + stream.position() +
+ ': Expected expression after [');
+ if (null == stream.trypop(']'))
+ throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,
+ 'Position ' + stream.position() +
+ ': Expected ] after expression.');
+ return a.node('Predicate', lhs, expr);
+ }
+ /** [14] Expr::= OrExpr
+ */
+ /** [15] PrimaryExpr::= VariableReference | '(' Expr ')' | Literal | Number | FunctionCall
+ * e.g. $x, (3+4), "hi", 32, f(x)
+ */
+ function primaryExpr(stream, a) {
+ var x = stream.trypopliteral();
+ if (null == x)
+ x = stream.trypopnumber();
+ if (null != x) {
+ return x;
+ }
+ var varRef = stream.trypopvarref();
+ if (null != varRef) return a.node('VariableReference', varRef);
+ var funCall = functionCall(stream, a);
+ if (null != funCall) {
+ return funCall;
+ }
+ if (stream.trypop('(')) {
+ var e = orExpr(stream, a);
+ if (null == e)
+ throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,
+ 'Position ' + stream.position() +
+ ': Expected expression after (.');
+ if (null == stream.trypop(')'))
+ throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,
+ 'Position ' + stream.position() +
+ ': Expected ) after expression.');
+ return e;
+ }
+ return null;
+ }
+ /** [16] FunctionCall::= FunctionName '(' ( Argument ( ',' Argument )* )? ')'
+ * [17] Argument::= Expr
+ */
+ function functionCall(stream, a) {
+ var name = stream.trypopfuncname(stream, a);
+ if (null == name) return null;
+ if (null == stream.trypop('('))
+ throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,
+ 'Position ' + stream.position() +
+ ': Expected ( ) after function name.');
+ var params = [];
+ var first = true;
+ while (null == stream.trypop(')')) {
+ if (!first && null == stream.trypop(','))
+ throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,
+ 'Position ' + stream.position() +
+ ': Expected , between arguments of the function.');
+ first = false;
+ var param = orExpr(stream, a);
+ if (param == null)
+ throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,
+ 'Position ' + stream.position() +
+ ': Expected expression as argument of function.');
+ params.push(param);
+ }
+ return a.node('FunctionCall', name, params);
+ }
+
+ /** [18] UnionExpr::= PathExpr | UnionExpr '|' PathExpr
+ */
+ function unionExpr(stream, a) { return binaryL(pathExpr, stream, a, '|'); }
+ /** [19] PathExpr ::= LocationPath
+ * | FilterExpr
+ * | FilterExpr '/' RelativeLocationPath
+ * | FilterExpr '//' RelativeLocationPath
+ * Unlike most other nodes, this one always generates a node because
+ * at this point all reverse nodesets must turn into a forward nodeset
+ */
+ function pathExpr(stream, a) {
+ // We have to do FilterExpr before LocationPath because otherwise
+ // LocationPath will eat up the name from a function call.
+ var filter = filterExpr(stream, a);
+ if (null == filter) {
+ var loc = locationPath(stream, a);
+ if (null == loc) {
+ throw new Error
+ throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,
+ 'Position ' + stream.position() +
+ ': The expression shouldn\'t be empty...');
+ }
+ return a.node('PathExpr', loc);
+ }
+ var rel = relativeLocationPath(filter, stream, a, false);
+ if (filter === rel) return rel;
+ else return a.node('PathExpr', rel);
+ }
+ /** [20] FilterExpr::= PrimaryExpr | FilterExpr Predicate
+ * aka. FilterExpr ::= PrimaryExpr Predicate*
+ */
+ function filterExpr(stream, a) {
+ var primary = primaryExpr(stream, a);
+ if (primary == null) return null;
+ var pred, lhs = primary;
+ while (null != (pred = predicate(lhs, stream, a))) {
+ lhs = pred;
+ }
+ return lhs;
+ }
+
+ /** [21] OrExpr::= AndExpr | OrExpr 'or' AndExpr
+ */
+ function orExpr(stream, a) {
+ var orig = (stream.peeked || '') + stream.str
+ var r = binaryL(andExpr, stream, a, 'or');
+ var now = (stream.peeked || '') + stream.str;
+ return r;
+ }
+ /** [22] AndExpr::= EqualityExpr | AndExpr 'and' EqualityExpr
+ */
+ function andExpr(stream, a) { return binaryL(equalityExpr, stream, a, 'and'); }
+ /** [23] EqualityExpr::= RelationalExpr | EqualityExpr '=' RelationalExpr
+ * | EqualityExpr '!=' RelationalExpr
+ */
+ function equalityExpr(stream, a) { return binaryL(relationalExpr, stream, a, ['=','!=']); }
+ /** [24] RelationalExpr::= AdditiveExpr | RelationalExpr '<' AdditiveExpr
+ * | RelationalExpr '>' AdditiveExpr
+ * | RelationalExpr '<=' AdditiveExpr
+ * | RelationalExpr '>=' AdditiveExpr
+ */
+ function relationalExpr(stream, a) { return binaryL(additiveExpr, stream, a, ['<','>','<=','>=']); }
+ /** [25] AdditiveExpr::= MultiplicativeExpr
+ * | AdditiveExpr '+' MultiplicativeExpr
+ * | AdditiveExpr '-' MultiplicativeExpr
+ */
+ function additiveExpr(stream, a) { return binaryL(multiplicativeExpr, stream, a, ['+','-']); }
+ /** [26] MultiplicativeExpr::= UnaryExpr
+ * | MultiplicativeExpr MultiplyOperator UnaryExpr
+ * | MultiplicativeExpr 'div' UnaryExpr
+ * | MultiplicativeExpr 'mod' UnaryExpr
+ */
+ function multiplicativeExpr(stream, a) { return binaryL(unaryExpr, stream, a, ['*','div','mod']); }
+ /** [27] UnaryExpr::= UnionExpr | '-' UnaryExpr
+ */
+ function unaryExpr(stream, a) {
+ if (stream.trypop('-')) {
+ var e = unaryExpr(stream, a);
+ if (null == e)
+ throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,
+ 'Position ' + stream.position() +
+ ': Expected unary expression after -');
+ return a.node('UnaryMinus', e);
+ }
+ else return unionExpr(stream, a);
+ }
+ var astFactory = {
+ node: function() {return Array.prototype.slice.call(arguments);}
+ };
+
+
+ /***************************************************************************
+ * Optimizations (TODO) *
+ ***************************************************************************/
+ /**
+ * Some things I've been considering:
+ * 1) a//b becomes a/descendant::b if there's no predicate that uses
+ * position() or last()
+ * 2) axis[pred]: when pred doesn't use position, evaluate it just once per
+ * node in the node-set rather than once per (node, position, last).
+ * For more optimizations, look up Gecko's optimizer:
+ * http://mxr.mozilla.org/mozilla-central/source/content/xslt/src/xpath/txXPathOptimizer.cpp
+ */
+ // TODO
+ function optimize(ast) {
+ }
+
+ /***************************************************************************
+ * Evaluation: axes *
+ ***************************************************************************/
+
+ /**
+ * Data types: For string, number, boolean, we just use Javascript types.
+ * Node-sets have the form
+ * {nodes: [node, ...]}
+ * or {nodes: [node, ...], pos: [[1], [2], ...], lasts: [[1], [2], ...]}
+ *
+ * Most of the time, only the node is used and the position information is
+ * discarded. But if you use a predicate, we need to try every value of
+ * position and last in case the predicate calls position() or last().
+ */
+
+ /**
+ * The NodeMultiSet is a helper class to help generate
+ * {nodes:[], pos:[], lasts:[]} structures. It is useful for the
+ * descendant, descendant-or-self, following-sibling, and
+ * preceding-sibling axes for which we can use a stack to organize things.
+ */
+ function NodeMultiSet(isReverseAxis) {
+ this.nodes = [];
+ this.pos = [];
+ this.lasts = [];
+ this.nextPos = [];
+ this.seriesIndexes = []; // index within nodes that each series begins.
+ this.isReverseAxis = isReverseAxis;
+ this._pushToNodes = isReverseAxis ? Array.prototype.unshift : Array.prototype.push;
+ }
+ NodeMultiSet.prototype = {
+ pushSeries: function pushSeries() {
+ this.nextPos.push(1);
+ this.seriesIndexes.push(this.nodes.length);
+ },
+ popSeries: function popSeries() {
+ console.assert(0 < this.nextPos.length, this.nextPos);
+ var last = this.nextPos.pop() - 1,
+ indexInPos = this.nextPos.length,
+ seriesBeginIndex = this.seriesIndexes.pop(),
+ seriesEndIndex = this.nodes.length;
+ for (var i = seriesBeginIndex; i < seriesEndIndex; ++i) {
+ console.assert(indexInPos < this.lasts[i].length);
+ console.assert(undefined === this.lasts[i][indexInPos]);
+ this.lasts[i][indexInPos] = last;
+ }
+ },
+ finalize: function() {
+ if (null == this.nextPos) return this;
+ console.assert(0 === this.nextPos.length);
+ var lastsJSON = JSON.stringify(this.lasts);
+ for (var i = 0; i < this.lasts.length; ++i) {
+ for (var j = 0; j < this.lasts[i].length; ++j) {
+ console.assert(null != this.lasts[i][j], i + ',' + j + ':' + lastsJSON);
+ }
+ }
+ this.pushSeries = this.popSeries = this.addNode = function() {
+ throw new Error('Already finalized.');
+ };
+ return this;
+ },
+ addNode: function addNode(node) {
+ console.assert(node);
+ this._pushToNodes.call(this.nodes, node)
+ this._pushToNodes.call(this.pos, this.nextPos.slice());
+ this._pushToNodes.call(this.lasts, new Array(this.nextPos.length));
+ for (var i = 0; i < this.nextPos.length; ++i) this.nextPos[i]++;
+ },
+ simplify: function() {
+ this.finalize();
+ return {nodes:this.nodes, pos:this.pos, lasts:this.lasts};
+ }
+ };
+ function eachContext(nodeMultiSet) {
+ var r = [];
+ for (var i = 0; i < nodeMultiSet.nodes.length; i++) {
+ var node = nodeMultiSet.nodes[i];
+ if (!nodeMultiSet.pos) {
+ r.push({nodes:[node], pos: [[i + 1]], lasts: [[nodeMultiSet.nodes.length]]});
+ } else {
+ for (var j = 0; j < nodeMultiSet.pos[i].length; ++j) {
+ r.push({nodes:[node], pos: [[nodeMultiSet.pos[i][j]]], lasts: [[nodeMultiSet.lasts[i][j]]]});
+ }
+ }
+ }
+ return r;
+ }
+ /** Matcher used in the axes.
+ */
+ function NodeMatcher(nodeTypeNum, nodeName, shouldLowerCase) {
+ this.nodeTypeNum = nodeTypeNum;
+ this.nodeName = nodeName;
+ this.shouldLowerCase = shouldLowerCase;
+ this.nodeNameTest =
+ null == nodeName ? this._alwaysTrue :
+ shouldLowerCase ? this._nodeNameLowerCaseEquals :
+ this._nodeNameEquals;
+ }
+ NodeMatcher.prototype = {
+ matches: function matches(node) {
+ if (0 === this.nodeTypeNum || this._nodeTypeMatches(node)) {
+ return this.nodeNameTest(getNodeName(node));
+ }
+
+ return false;
+ },
+ _nodeTypeMatches(nodeOrAttr) {
+ if (nodeOrAttr.constructor.name === 'Attr' && this.nodeTypeNum === 2) {
+ return true;
+ }
+ return nodeOrAttr.nodeType === this.nodeTypeNum;
+ },
+ _alwaysTrue: function(name) {return true;},
+ _nodeNameEquals: function _nodeNameEquals(name) {
+ return this.nodeName === name;
+ },
+ _nodeNameLowerCaseEquals: function _nodeNameLowerCaseEquals(name) {
+ return this.nodeName === name.toLowerCase();
+ }
+ };
+
+ function followingSiblingHelper(nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase, shift, peek, followingNode, andSelf, isReverseAxis) {
+ var matcher = new NodeMatcher(nodeTypeNum, nodeName, shouldLowerCase);
+ var nodeMultiSet = new NodeMultiSet(isReverseAxis);
+ while (0 < nodeList.length) { // can be if for following, preceding
+ var node = shift.call(nodeList);
+ console.assert(node != null);
+ node = followingNode(node);
+ nodeMultiSet.pushSeries();
+ var numPushed = 1;
+ while (null != node) {
+ if (! andSelf && matcher.matches(node))
+ nodeMultiSet.addNode(node);
+ if (node === peek.call(nodeList)) {
+ shift.call(nodeList);
+ nodeMultiSet.pushSeries();
+ numPushed++;
+ }
+ if (andSelf && matcher.matches(node))
+ nodeMultiSet.addNode(node);
+ node = followingNode(node);
+ }
+ while (0 < numPushed--)
+ nodeMultiSet.popSeries();
+ }
+ return nodeMultiSet;
+ }
+
+ /** Returns the next non-descendant node in document order.
+ * This is the first node in following::node(), if node is the context.
+ */
+ function followingNonDescendantNode(node) {
+ if (node.ownerElement) {
+ if (node.ownerElement.firstChild)
+ return node.ownerElement.firstChild;
+ node = node.ownerElement;
+ }
+ do {
+ if (node.nextSibling) return node.nextSibling;
+ } while (node = node.parentNode);
+ return null;
+ }
+
+ /** Returns the next node in a document-order depth-first search.
+ * See the definition of document order[1]:
+ * 1) element
+ * 2) namespace nodes
+ * 3) attributes
+ * 4) children
+ * [1]: http://www.w3.org/TR/xpath/#dt-document-order
+ */
+ function followingNode(node) {
+ if (node.ownerElement) // attributes: following node of element.
+ node = node.ownerElement;
+ if (null != node.firstChild)
+ return node.firstChild;
+ do {
+ if (null != node.nextSibling) {
+ return node.nextSibling;
+ }
+ node = node.parentNode;
+ } while (node);
+ return null;
+ }
+ /** Returns the previous node in document order (excluding attributes
+ * and namespace nodes).
+ */
+ function precedingNode(node) {
+ if (node.ownerElement)
+ return node.ownerElement;
+ if (null != node.previousSibling) {
+ node = node.previousSibling;
+ while (null != node.lastChild) {
+ node = node.lastChild;
+ }
+ return node;
+ }
+ if (null != node.parentNode) {
+ return node.parentNode;
+ }
+ return null;
+ }
+ /** This axis is inefficient if there are many nodes in the nodeList.
+ * But I think it's a pretty useless axis so it's ok. */
+ function followingHelper(nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase) {
+ var matcher = new NodeMatcher(nodeTypeNum, nodeName, shouldLowerCase);
+ var nodeMultiSet = new NodeMultiSet(false);
+ var cursor = nodeList[0];
+ var unorderedFollowingStarts = [];
+ for (var i = 0; i < nodeList.length; i++) {
+ var node = nodeList[i];
+ var start = followingNonDescendantNode(node);
+ if (start)
+ unorderedFollowingStarts.push(start);
+ }
+ if (0 === unorderedFollowingStarts.length)
+ return {nodes:[]};
+ var pos = [], nextPos = [];
+ var started = 0;
+ while (cursor = followingNode(cursor)) {
+ for (var i = unorderedFollowingStarts.length - 1; i >= 0; i--){
+ if (cursor === unorderedFollowingStarts[i]) {
+ nodeMultiSet.pushSeries();
+ unorderedFollowingStarts.splice(i,i+1);
+ started++;
+ }
+ }
+ if (started && matcher.matches(cursor)) {
+ nodeMultiSet.addNode(cursor);
+ }
+ }
+ console.assert(0 === unorderedFollowingStarts.length);
+ for (var i = 0; i < started; i++)
+ nodeMultiSet.popSeries();
+ return nodeMultiSet.finalize();
+ }
+ function precedingHelper(nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase) {
+ var matcher = new NodeMatcher(nodeTypeNum, nodeName, shouldLowerCase);
+ var cursor = nodeList.pop();
+ if (null == cursor) return {nodes:{}};
+ var r = {nodes:[], pos:[], lasts:[]};
+ var nextParents = [cursor.parentNode || cursor.ownerElement], nextPos = [1];
+ while (cursor = precedingNode(cursor)) {
+ if (cursor === nodeList[nodeList.length - 1]) {
+ nextParents.push(nodeList.pop());
+ nextPos.push(1);
+ }
+ var matches = matcher.matches(cursor);
+ var pos, someoneUsed = false;
+ if (matches)
+ pos = nextPos.slice();
+
+ for (var i = 0; i < nextParents.length; ++i) {
+ if (cursor === nextParents[i]) {
+ nextParents[i] = cursor.parentNode || cursor.ownerElement;
+ if (matches) {
+ pos[i] = null;
+ }
+ } else {
+ if (matches) {
+ pos[i] = nextPos[i]++;
+ someoneUsed = true;
+ }
+ }
+ }
+ if (someoneUsed) {
+ r.nodes.unshift(cursor);
+ r.pos.unshift(pos);
+ }
+ }
+ for (var i = 0; i < r.pos.length; ++i) {
+ var lasts = [];
+ r.lasts.push(lasts);
+ for (var j = r.pos[i].length - 1; j >= 0; j--) {
+ if (null == r.pos[i][j]) {
+ r.pos[i].splice(j, j+1);
+ } else {
+ lasts.unshift(nextPos[j] - 1);
+ }
+ }
+ }
+ return r;
+ }
+
+ /** node-set, axis -> node-set */
+ function descendantDfs(nodeMultiSet, node, remaining, matcher, andSelf, attrIndices, attrNodes) {
+ while (0 < remaining.length && null != remaining[0].ownerElement) {
+ var attr = remaining.shift();
+ if (andSelf && matcher.matches(attr)) {
+ attrNodes.push(attr);
+ attrIndices.push(nodeMultiSet.nodes.length);
+ }
+ }
+ if (null != node && !andSelf) {
+ if (matcher.matches(node))
+ nodeMultiSet.addNode(node);
+ }
+ var pushed = false;
+ if (null == node) {
+ if (0 === remaining.length) return;
+ node = remaining.shift();
+ nodeMultiSet.pushSeries();
+ pushed = true;
+ } else if (0 < remaining.length && node === remaining[0]) {
+ nodeMultiSet.pushSeries();
+ pushed = true;
+ remaining.shift();
+ }
+ if (andSelf) {
+ if (matcher.matches(node))
+ nodeMultiSet.addNode(node);
+ }
+ // TODO: use optimization. Also try element.getElementsByTagName
+ // var nodeList = 1 === nodeTypeNum && null != node.children ? node.children : node.childNodes;
+ var nodeList = node.childNodes;
+ for (var j = 0; j < nodeList.length; ++j) {
+ var child = nodeList[j];
+ descendantDfs(nodeMultiSet, child, remaining, matcher, andSelf, attrIndices, attrNodes);
+ }
+ if (pushed) {
+ nodeMultiSet.popSeries();
+ }
+ }
+ function descenantHelper(nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase, andSelf) {
+ var matcher = new NodeMatcher(nodeTypeNum, nodeName, shouldLowerCase);
+ var nodeMultiSet = new NodeMultiSet(false);
+ var attrIndices = [], attrNodes = [];
+ while (0 < nodeList.length) {
+ // var node = nodeList.shift();
+ descendantDfs(nodeMultiSet, null, nodeList, matcher, andSelf, attrIndices, attrNodes);
+ }
+ nodeMultiSet.finalize();
+ for (var i = attrNodes.length-1; i >= 0; --i) {
+ nodeMultiSet.nodes.splice(attrIndices[i], attrIndices[i], attrNodes[i]);
+ nodeMultiSet.pos.splice(attrIndices[i], attrIndices[i], [1]);
+ nodeMultiSet.lasts.splice(attrIndices[i], attrIndices[i], [1]);
+ }
+ return nodeMultiSet;
+ }
+ /**
+ */
+ function ancestorHelper(nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase, andSelf) {
+ var matcher = new NodeMatcher(nodeTypeNum, nodeName, shouldLowerCase);
+ var ancestors = []; // array of non-empty arrays of matching ancestors
+ for (var i = 0; i < nodeList.length; ++i) {
+ var node = nodeList[i];
+ var isFirst = true;
+ var a = [];
+ while (null != node) {
+ if (!isFirst || andSelf) {
+ if (matcher.matches(node))
+ a.push(node);
+ }
+ isFirst = false;
+ node = node.parentNode || node.ownerElement;
+ }
+ if (0 < a.length)
+ ancestors.push(a);
+ }
+ var lasts = [];
+ for (var i = 0; i < ancestors.length; ++i) lasts.push(ancestors[i].length);
+ var nodeMultiSet = new NodeMultiSet(true);
+ var newCtx = {nodes:[], pos:[], lasts:[]};
+ while (0 < ancestors.length) {
+ var pos = [ancestors[0].length];
+ var last = [lasts[0]];
+ var node = ancestors[0].pop();
+ for (var i = ancestors.length - 1; i > 0; --i) {
+ if (node === ancestors[i][ancestors[i].length - 1]) {
+ pos.push(ancestors[i].length);
+ last.push(lasts[i]);
+ ancestors[i].pop();
+ if (0 === ancestors[i].length) {
+ ancestors.splice(i, i+1);
+ lasts.splice(i, i+1);
+ }
+ }
+ }
+ if (0 === ancestors[0].length) {
+ ancestors.shift();
+ lasts.shift();
+ }
+ newCtx.nodes.push(node);
+ newCtx.pos.push(pos);
+ newCtx.lasts.push(last);
+ }
+ return newCtx;
+ }
+ /** Helper function for sortDocumentOrder. Returns a list of indices, from the
+ * node to the root, of positions within parent.
+ * For convenience, the node is the first element of the array.
+ */
+ function addressVector(node) {
+ var r = [node];
+ if (null != node.ownerElement) {
+ node = node.ownerElement;
+ r.push(-1);
+ }
+ while (null != node) {
+ var i = 0;
+ while (null != node.previousSibling) {
+ node = node.previousSibling;
+ i++;
+ }
+ r.push(i);
+ node = node.parentNode
+ }
+ return r;
+ }
+ function addressComparator(a, b) {
+ var minlen = Math.min(a.length - 1, b.length - 1), // not including [0]=node
+ alen = a.length,
+ blen = b.length;
+ if (a[0] === b[0]) return 0;
+ var c;
+ for (var i = 0; i < minlen; ++i) {
+ c = a[alen - i - 1] - b[blen - i - 1];
+ if (0 !== c)
+ break;
+ }
+ if (null == c || 0 === c) {
+ // All equal until one of the nodes. The longer one is the descendant.
+ c = alen - blen;
+ }
+ if (0 === c)
+ c = getNodeName(a) - getNodeName(b);
+ if (0 === c)
+ c = 1;
+ return c;
+ }
+ var sortUniqDocumentOrder = xpath.sortUniqDocumentOrder = function(nodes) {
+ var a = [];
+ for (var i = 0; i < nodes.length; i++) {
+ var node = nodes[i];
+ var v = addressVector(node);
+ a.push(v);
+ }
+ a.sort(addressComparator);
+ var b = [];
+ for (var i = 0; i < a.length; i++) {
+ if (0 < i && a[i][0] === a[i - 1][0])
+ continue;
+ b.push(a[i][0]);
+ }
+ return b;
+ }
+ /** Sort node multiset. Does not do any de-duping. */
+ function sortNodeMultiSet(nodeMultiSet) {
+ var a = [];
+ for (var i = 0; i < nodeMultiSet.nodes.length; i++) {
+ var v = addressVector(nodeMultiSet.nodes[i]);
+ a.push({v:v, n:nodeMultiSet.nodes[i],
+ p:nodeMultiSet.pos[i], l:nodeMultiSet.lasts[i]});
+ }
+ a.sort(compare);
+ var r = {nodes:[], pos:[], lasts:[]};
+ for (var i = 0; i < a.length; ++i) {
+ r.nodes.push(a[i].n);
+ r.pos.push(a[i].p);
+ r.lasts.push(a[i].l);
+ }
+ function compare(x, y) {
+ return addressComparator(x.v, y.v);
+ }
+ return r;
+ }
+ /** Returns an array containing all the ancestors down to a node.
+ * The array starts with document.
+ */
+ function nodeAndAncestors(node) {
+ var ancestors = [node];
+ var p = node;
+ while (p = p.parentNode || p.ownerElement) {
+ ancestors.unshift(p);
+ }
+ return ancestors;
+ }
+ function compareSiblings(a, b) {
+ if (a === b) return 0;
+ var c = a;
+ while (c = c.previousSibling) {
+ if (c === b)
+ return 1; // b < a
+ }
+ c = b;
+ while (c = c.previousSibling) {
+ if (c === a)
+ return -1; // a < b
+ }
+ throw new Error('a and b are not siblings: ' + xpath.stringifyObject(a) + ' vs ' + xpath.stringifyObject(b));
+ }
+ /** The merge in merge-sort.*/
+ function mergeNodeLists(x, y) {
+ var a, b, aanc, banc, r = [];
+ if ('object' !== typeof x)
+ throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,
+ 'Invalid LHS for | operator ' +
+ '(expected node-set): ' + x);
+ if ('object' !== typeof y)
+ throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,
+ 'Invalid LHS for | operator ' +
+ '(expected node-set): ' + y);
+ while (true) {
+ if (null == a) {
+ a = x.shift();
+ if (null != a)
+ aanc = addressVector(a);
+ }
+ if (null == b) {
+ b = y.shift();
+ if (null != b)
+ banc = addressVector(b);
+ }
+ if (null == a || null == b) break;
+ var c = addressComparator(aanc, banc);
+ if (c < 0) {
+ r.push(a);
+ a = null;
+ aanc = null;
+ } else if (c > 0) {
+ r.push(b);
+ b = null;
+ banc = null;
+ } else if (getNodeName(a) < getNodeName(b)) { // attributes
+ r.push(a);
+ a = null;
+ aanc = null;
+ } else if (getNodeName(a) > getNodeName(b)) { // attributes
+ r.push(b);
+ b = null;
+ banc = null;
+ } else if (a !== b) {
+ // choose b arbitrarily
+ r.push(b);
+ b = null;
+ banc = null;
+ } else {
+ console.assert(a === b, c);
+ // just skip b without pushing it.
+ b = null;
+ banc = null;
+ }
+ }
+ while (a) {
+ r.push(a);
+ a = x.shift();
+ }
+ while (b) {
+ r.push(b);
+ b = y.shift();
+ }
+ return r;
+ }
+ function comparisonHelper(test, x, y, isNumericComparison) {
+ var coersion;
+ if (isNumericComparison)
+ coersion = fn.number;
+ else coersion =
+ 'boolean' === typeof x || 'boolean' === typeof y ? fn['boolean'] :
+ 'number' === typeof x || 'number' === typeof y ? fn.number :
+ fn.string;
+ if ('object' === typeof x && 'object' === typeof y) {
+ var aMap = {};
+ for (var i = 0; i < x.nodes.length; ++i) {
+ var xi = coersion({nodes:[x.nodes[i]]});
+ for (var j = 0; j < y.nodes.length; ++j) {
+ var yj = coersion({nodes:[y.nodes[j]]});
+ if (test(xi, yj)) return true;
+ }
+ }
+ return false;
+ } else if ('object' === typeof x && x.nodes && x.nodes.length) {
+ for (var i = 0; i < x.nodes.length; ++i) {
+ var xi = coersion({nodes:[x.nodes[i]]}), yc = coersion(y);
+ if (test(xi, yc))
+ return true;
+ }
+ return false;
+ } else if ('object' === typeof y && x.nodes && x.nodes.length) {
+ for (var i = 0; i < x.nodes.length; ++i) {
+ var yi = coersion({nodes:[y.nodes[i]]}), xc = coersion(x);
+ if (test(xc, yi))
+ return true;
+ }
+ return false;
+ } else {
+ var xc = coersion(x), yc = coersion(y);
+ return test(xc, yc);
+ }
+ }
+ var axes = xpath.axes = {
+ 'ancestor':
+ function ancestor(nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase) {
+ return ancestorHelper(
+ nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase, false);
+ },
+ 'ancestor-or-self':
+ function ancestorOrSelf(nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase) {
+ return ancestorHelper(
+ nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase, true);
+ },
+ 'attribute':
+ function attribute(nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase) {
+ // TODO: figure out whether positions should be undefined here.
+ var matcher = new NodeMatcher(nodeTypeNum, nodeName, shouldLowerCase);
+ var nodeMultiSet = new NodeMultiSet(false);
+ if (null != nodeName) {
+ // TODO: with namespace
+ for (var i = 0; i < nodeList.length; ++i) {
+ var node = nodeList[i];
+ if (null == node.getAttributeNode)
+ continue; // only Element has .getAttributeNode
+ var attr = node.getAttributeNode(nodeName);
+ if (null != attr && matcher.matches(attr)) {
+ nodeMultiSet.pushSeries();
+ nodeMultiSet.addNode(attr);
+ nodeMultiSet.popSeries();
+ }
+ }
+ } else {
+ for (var i = 0; i < nodeList.length; ++i) {
+ var node = nodeList[i];
+ if (null != node.attributes) {
+ nodeMultiSet.pushSeries();
+ for (var j = 0; j < node.attributes.length; j++) { // all nodes have .attributes
+ var attr = node.attributes[j];
+ if (matcher.matches(attr)) // TODO: I think this check is unnecessary
+ nodeMultiSet.addNode(attr);
+ }
+ nodeMultiSet.popSeries();
+ }
+ }
+ }
+ return nodeMultiSet.finalize();
+ },
+ 'child':
+ function child(nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase) {
+ var matcher = new NodeMatcher(nodeTypeNum, nodeName, shouldLowerCase);
+ var nodeMultiSet = new NodeMultiSet(false);
+ for (var i = 0; i < nodeList.length; ++i) {
+ var n = nodeList[i];
+ if (n.ownerElement) // skip attribute nodes' text child.
+ continue;
+ if (n.childNodes) {
+ nodeMultiSet.pushSeries();
+ var childList = 1 === nodeTypeNum && null != n.children ?
+ n.children : n.childNodes;
+ for (var j = 0; j < childList.length; ++j) {
+ var child = childList[j];
+ if (matcher.matches(child)) {
+ nodeMultiSet.addNode(child);
+ }
+ // don't have to do de-duping because children have parent,
+ // which are current context.
+ }
+ nodeMultiSet.popSeries();
+ }
+ }
+ nodeMultiSet.finalize();
+ return sortNodeMultiSet(nodeMultiSet);
+ },
+ 'descendant':
+ function descenant(nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase) {
+ return descenantHelper(
+ nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase, false);
+ },
+ 'descendant-or-self':
+ function descenantOrSelf(nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase) {
+ return descenantHelper(
+ nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase, true);
+ },
+ 'following':
+ function following(nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase) {
+ return followingHelper(nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase);
+ },
+ 'following-sibling':
+ function followingSibling(nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase) {
+ return followingSiblingHelper(
+ nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase,
+ Array.prototype.shift, function() {return this[0];},
+ function(node) {return node.nextSibling;});
+ },
+ 'namespace':
+ function namespace(nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase) {
+ // TODO
+ },
+ 'parent':
+ function parent(nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase) {
+ var matcher = new NodeMatcher(nodeTypeNum, nodeName, shouldLowerCase);
+ var nodes = [], pos = [];
+ for (var i = 0; i < nodeList.length; ++i) {
+ var parent = nodeList[i].parentNode || nodeList[i].ownerElement;
+ if (null == parent)
+ continue;
+ if (!matcher.matches(parent))
+ continue;
+ if (nodes.length > 0 && parent === nodes[nodes.length-1])
+ continue;
+ nodes.push(parent);
+ pos.push([1]);
+ }
+ return {nodes:nodes, pos:pos, lasts:pos};
+ },
+ 'preceding':
+ function preceding(nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase) {
+ return precedingHelper(
+ nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase);
+ },
+ 'preceding-sibling':
+ function precedingSibling(nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase) {
+ return followingSiblingHelper(
+ nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase,
+ Array.prototype.pop, function() {return this[this.length-1];},
+ function(node) {return node.previousSibling},
+ false, true);
+ },
+ 'self':
+ function self(nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase) {
+ var nodes = [], pos = [];
+ var matcher = new NodeMatcher(nodeTypeNum, nodeName, shouldLowerCase);
+ for (var i = 0; i < nodeList.length; ++i) {
+ if (matcher.matches(nodeList[i])) {
+ nodes.push(nodeList[i]);
+ pos.push([1]);
+ }
+ }
+ return {nodes: nodes, pos: pos, lasts: pos}
+ }
+ };
+
+ /***************************************************************************
+ * Evaluation: functions *
+ ***************************************************************************/
+ var fn = {
+ 'number': function number(optObject) {
+ if ('number' === typeof optObject)
+ return optObject;
+ if ('string' === typeof optObject)
+ return parseFloat(optObject); // note: parseFloat(' ') -> NaN, unlike +' ' -> 0.
+ if ('boolean' === typeof optObject)
+ return +optObject;
+ return fn.number(fn.string.call(this, optObject)); // for node-sets
+ },
+ 'string': function string(optObject) {
+ if (null == optObject)
+ return fn.string(this);
+ if ('string' === typeof optObject || 'boolean' === typeof optObject ||
+ 'number' === typeof optObject)
+ return '' + optObject;
+ if (0 == optObject.nodes.length) return '';
+ if (null != optObject.nodes[0].textContent)
+ return optObject.nodes[0].textContent;
+ return optObject.nodes[0].nodeValue;
+ },
+ 'boolean': function booleanVal(x) {
+ return 'object' === typeof x ? x.nodes.length > 0 : !!x;
+ },
+ 'last': function last() {
+ console.assert(Array.isArray(this.pos));
+ console.assert(Array.isArray(this.lasts));
+ console.assert(1 === this.pos.length);
+ console.assert(1 === this.lasts.length);
+ console.assert(1 === this.lasts[0].length);
+ return this.lasts[0][0];
+ },
+ 'position': function position() {
+ console.assert(Array.isArray(this.pos));
+ console.assert(Array.isArray(this.lasts));
+ console.assert(1 === this.pos.length);
+ console.assert(1 === this.lasts.length);
+ console.assert(1 === this.pos[0].length);
+ return this.pos[0][0];
+ },
+ 'count': function count(nodeSet) {
+ if ('object' !== typeof nodeSet)
+ throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,
+ 'Position ' + stream.position() +
+ ': Function count(node-set) ' +
+ 'got wrong argument type: ' + nodeSet);
+ return nodeSet.nodes.length;
+ },
+ 'id': function id(object) {
+ var r = {nodes: []};
+ var doc = this.nodes[0].ownerDocument || this.nodes[0];
+ console.assert(doc);
+ var ids;
+ if ('object' === typeof object) {
+ // for node-sets, map id over each node value.
+ ids = [];
+ for (var i = 0; i < object.nodes.length; ++i) {
+ var idNode = object.nodes[i];
+ var idsString = fn.string({nodes:[idNode]});
+ var a = idsString.split(/[ \t\r\n]+/g);
+ Array.prototype.push.apply(ids, a);
+ }
+ } else {
+ var idsString = fn.string(object);
+ var a = idsString.split(/[ \t\r\n]+/g);
+ ids = a;
+ }
+ for (var i = 0; i < ids.length; ++i) {
+ var id = ids[i];
+ if (0 === id.length)
+ continue;
+ var node = doc.getElementById(id);
+ if (null != node)
+ r.nodes.push(node);
+ }
+ r.nodes = sortUniqDocumentOrder(r.nodes);
+ return r;
+ },
+ 'local-name': function(nodeSet) {
+ if (null == nodeSet)
+ return fn.name(this);
+ if (null == nodeSet.nodes) {
+ throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,
+ 'argument to name() must be a node-set. got ' + nodeSet);
+ }
+ // TODO: namespaced version
+ return nodeSet.nodes[0].localName;
+ },
+ 'namespace-uri': function(nodeSet) {
+ // TODO
+ throw new Error('not implemented yet');
+ },
+ 'name': function(nodeSet) {
+ if (null == nodeSet)
+ return fn.name(this);
+ if (null == nodeSet.nodes) {
+ throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,
+ 'argument to name() must be a node-set. got ' + nodeSet);
+ }
+ return nodeSet.nodes[0].name;
+ },
+ 'concat': function concat(x) {
+ var l = [];
+ for (var i = 0; i < arguments.length; ++i) {
+ l.push(fn.string(arguments[i]));
+ }
+ return l.join('');
+ },
+ 'starts-with': function startsWith(a, b) {
+ var as = fn.string(a), bs = fn.string(b);
+ return as.substr(0, bs.length) === bs;
+ },
+ 'contains': function contains(a, b) {
+ var as = fn.string(a), bs = fn.string(b);
+ var i = as.indexOf(bs);
+ if (-1 === i) return false;
+ return true;
+ },
+ 'substring-before': function substringBefore(a, b) {
+ var as = fn.string(a), bs = fn.string(b);
+ var i = as.indexOf(bs);
+ if (-1 === i) return '';
+ return as.substr(0, i);
+ },
+ 'substring-after': function substringBefore(a, b) {
+ var as = fn.string(a), bs = fn.string(b);
+ var i = as.indexOf(bs);
+ if (-1 === i) return '';
+ return as.substr(i + bs.length);
+ },
+ 'substring': function substring(string, start, optEnd) {
+ if (null == string || null == start) {
+ throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,
+ 'Must be at least 2 arguments to string()');
+ }
+ var sString = fn.string(string),
+ iStart = fn.round(start),
+ iEnd = optEnd == null ? null : fn.round(optEnd);
+ // Note that xpath string positions user 1-based index
+ if (iEnd == null)
+ return sString.substr(iStart - 1);
+ else
+ return sString.substr(iStart - 1, iEnd);
+ },
+ 'string-length': function stringLength(optString) {
+ return fn.string.call(this, optString).length;
+ },
+ 'normalize-space': function normalizeSpace(optString) {
+ var s = fn.string.call(this, optString);
+ return s.replace(/[ \t\r\n]+/g, ' ').replace(/^ | $/g, '');
+ },
+ 'translate': function translate(string, from, to) {
+ var sString = fn.string.call(this, string),
+ sFrom = fn.string(from),
+ sTo = fn.string(to);
+ var eachCharRe = [];
+ var map = {};
+ for (var i = 0; i < sFrom.length; ++i) {
+ var c = sFrom.charAt(i);
+ map[c] = sTo.charAt(i); // returns '' if beyond length of sTo.
+ // copied from goog.string.regExpEscape in the Closure library.
+ eachCharRe.push(
+ c.replace(/([-()\[\]{}+?*.$\^|,:#': function(x, y) {
+ return comparisonHelper(function(x, y) { return fn.number(x) > fn.number(y);}, x, y, true);
+ },
+ '>=': function(x, y) {
+ return comparisonHelper(function(x, y) { return fn.number(x) >= fn.number(y);}, x, y, true);
+ },
+ 'and': function(x, y) { return fn['boolean'](x) && fn['boolean'](y); },
+ 'or': function(x, y) { return fn['boolean'](x) || fn['boolean'](y); },
+ '|': function(x, y) { return {nodes: mergeNodeLists(x.nodes, y.nodes)}; },
+ '=': function(x, y) {
+ // optimization for two node-sets case: avoid n^2 comparisons.
+ if ('object' === typeof x && 'object' === typeof y) {
+ var aMap = {};
+ for (var i = 0; i < x.nodes.length; ++i) {
+ var s = fn.string({nodes:[x.nodes[i]]});
+ aMap[s] = true;
+ }
+ for (var i = 0; i < y.nodes.length; ++i) {
+ var s = fn.string({nodes:[y.nodes[i]]});
+ if (aMap[s]) return true;
+ }
+ return false;
+ } else {
+ return comparisonHelper(function(x, y) {return x === y;}, x, y);
+ }
+ },
+ '!=': function(x, y) {
+ // optimization for two node-sets case: avoid n^2 comparisons.
+ if ('object' === typeof x && 'object' === typeof y) {
+ if (0 === x.nodes.length || 0 === y.nodes.length) return false;
+ var aMap = {};
+ for (var i = 0; i < x.nodes.length; ++i) {
+ var s = fn.string({nodes:[x.nodes[i]]});
+ aMap[s] = true;
+ }
+ for (var i = 0; i < y.nodes.length; ++i) {
+ var s = fn.string({nodes:[y.nodes[i]]});
+ if (!aMap[s]) return true;
+ }
+ return false;
+ } else {
+ return comparisonHelper(function(x, y) {return x !== y;}, x, y);
+ }
+ }
+ };
+ var nodeTypes = xpath.nodeTypes = {
+ 'node': 0,
+ 'attribute': 2,
+ 'comment': 8, // this.doc.COMMENT_NODE,
+ 'text': 3, // this.doc.TEXT_NODE,
+ 'processing-instruction': 7, // this.doc.PROCESSING_INSTRUCTION_NODE,
+ 'element': 1 //this.doc.ELEMENT_NODE
+ };
+ /** For debugging and unit tests: returnjs a stringified version of the
+ * argument. */
+ var stringifyObject = xpath.stringifyObject = function stringifyObject(ctx) {
+ var seenKey = 'seen' + Math.floor(Math.random()*1000000000);
+ return JSON.stringify(helper(ctx));
+
+ function helper(ctx) {
+ if (Array.isArray(ctx)) {
+ return ctx.map(function(x) {return helper(x);});
+ }
+ if ('object' !== typeof ctx) return ctx;
+ if (null == ctx) return ctx;
+ // if (ctx.toString) return ctx.toString();
+ if (null != ctx.outerHTML) return ctx.outerHTML;
+ if (null != ctx.nodeValue) return ctx.nodeName + '=' + ctx.nodeValue;
+ if (ctx[seenKey]) return '[circular]';
+ ctx[seenKey] = true;
+ var nicer = {};
+ for (var key in ctx) {
+ if (seenKey === key)
+ continue;
+ try {
+ nicer[key] = helper(ctx[key]);
+ } catch (e) {
+ nicer[key] = '[exception: ' + e.message + ']';
+ }
+ }
+ delete ctx[seenKey];
+ return nicer;
+ }
+ }
+ var Evaluator = xpath.Evaluator = function Evaluator(doc) {
+ this.doc = doc;
+ }
+ Evaluator.prototype = {
+ val: function val(ast, ctx) {
+ console.assert(ctx.nodes);
+
+ if ('number' === typeof ast || 'string' === typeof ast) return ast;
+ if (more[ast[0]]) {
+ var evaluatedParams = [];
+ for (var i = 1; i < ast.length; ++i) {
+ evaluatedParams.push(this.val(ast[i], ctx));
+ }
+ var r = more[ast[0]].apply(ctx, evaluatedParams);
+ return r;
+ }
+ switch (ast[0]) {
+ case 'Root': return {nodes: [this.doc]};
+ case 'FunctionCall':
+ var functionName = ast[1], functionParams = ast[2];
+ if (null == fn[functionName])
+ throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,
+ 'Unknown function: ' + functionName);
+ var evaluatedParams = [];
+ for (var i = 0; i < functionParams.length; ++i) {
+ evaluatedParams.push(this.val(functionParams[i], ctx));
+ }
+ var r = fn[functionName].apply(ctx, evaluatedParams);
+ return r;
+ case 'Predicate':
+ var lhs = this.val(ast[1], ctx);
+ var ret = {nodes: []};
+ var contexts = eachContext(lhs);
+ for (var i = 0; i < contexts.length; ++i) {
+ var singleNodeSet = contexts[i];
+ var rhs = this.val(ast[2], singleNodeSet);
+ var success;
+ if ('number' === typeof rhs) {
+ success = rhs === singleNodeSet.pos[0][0];
+ } else {
+ success = fn['boolean'](rhs);
+ }
+ if (success) {
+ var node = singleNodeSet.nodes[0];
+ ret.nodes.push(node);
+ // skip over all the rest of the same node.
+ while (i+1 < contexts.length && node === contexts[i+1].nodes[0]) {
+ i++;
+ }
+ }
+ }
+ return ret;
+ case 'PathExpr':
+ // turn the path into an expressoin; i.e., remove the position
+ // information of the last axis.
+ var x = this.val(ast[1], ctx);
+ // Make the nodeset a forward-direction-only one.
+ if (x.finalize) { // it is a NodeMultiSet
+ return {nodes: x.nodes};
+ } else {
+ return x;
+ }
+ case '/':
+ // TODO: don't generate '/' nodes, just Axis nodes.
+ var lhs = this.val(ast[1], ctx);
+ console.assert(null != lhs);
+ var r = this.val(ast[2], lhs);
+ console.assert(null != r);
+ return r;
+ case 'Axis':
+ // All the axis tests from Step. We only get AxisSpecifier NodeTest,
+ // not the predicate (which is applied later)
+ var axis = ast[1],
+ nodeType = ast[2],
+ nodeTypeNum = nodeTypes[nodeType],
+ shouldLowerCase = true, // TODO: give option
+ nodeName = ast[3] && shouldLowerCase ? ast[3].toLowerCase() : ast[3];
+ nodeName = nodeName === '*' ? null : nodeName;
+ if ('object' !== typeof ctx) return {nodes:[], pos:[]};
+ var nodeList = ctx.nodes.slice(); // TODO: is copy needed?
+ var r = axes[axis](nodeList /*destructive!*/, nodeTypeNum, nodeName, shouldLowerCase);
+ return r;
+ }
+ }
+ };
+ var evaluate = xpath.evaluate = function evaluate(expr, doc, context) {
+ //var astFactory = new AstEvaluatorFactory(doc, context);
+ var stream = new Stream(expr);
+ var ast = parse(stream, astFactory);
+ var val = new Evaluator(doc).val(ast, {nodes: [context]});
+ return val;
+ }
+
+ /***************************************************************************
+ * DOM interface *
+ ***************************************************************************/
+ var XPathException = xpath.XPathException = function XPathException(code, message) {
+ var e = new Error(message);
+ e.name = 'XPathException';
+ e.code = code;
+ return e;
+ }
+ XPathException.INVALID_EXPRESSION_ERR = 51;
+ XPathException.TYPE_ERR = 52;
+
+
+ var XPathEvaluator = xpath.XPathEvaluator = function XPathEvaluator() {}
+ XPathEvaluator.prototype = {
+ createExpression: function(expression, resolver) {
+ return new XPathExpression(expression, resolver);
+ },
+ createNSResolver: function(nodeResolver) {
+ // TODO
+ },
+ evaluate: function evaluate(expression, contextNode, resolver, type, result) {
+ var expr = new XPathExpression(expression, resolver);
+ return expr.evaluate(contextNode, type, result);
+ }
+ };
+
+
+ var XPathExpression = xpath.XPathExpression = function XPathExpression(expression, resolver, optDoc) {
+ var stream = new Stream(expression);
+ this._ast = parse(stream, astFactory);
+ this._doc = optDoc;
+ }
+ XPathExpression.prototype = {
+ evaluate: function evaluate(contextNode, type, result) {
+ if (null == contextNode.nodeType)
+ throw new Error('bad argument (expected context node): ' + contextNode);
+ var doc = contextNode.ownerDocument || contextNode;
+ if (null != this._doc && this._doc !== doc) {
+ throw new core.DOMException(
+ core.DOMException.WRONG_DOCUMENT_ERR,
+ 'The document must be the same as the context node\'s document.');
+ }
+ var evaluator = new Evaluator(doc);
+ var value = evaluator.val(this._ast, {nodes: [contextNode]});
+ if (XPathResult.NUMBER_TYPE === type)
+ value = fn.number(value);
+ else if (XPathResult.STRING_TYPE === type)
+ value = fn.string(value);
+ else if (XPathResult.BOOLEAN_TYPE === type)
+ value = fn['boolean'](value);
+ else if (XPathResult.ANY_TYPE !== type &&
+ XPathResult.UNORDERED_NODE_ITERATOR_TYPE !== type &&
+ XPathResult.ORDERED_NODE_ITERATOR_TYPE !== type &&
+ XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE !== type &&
+ XPathResult.ORDERED_NODE_SNAPSHOT_TYPE !== type &&
+ XPathResult.ANY_UNORDERED_NODE_TYPE !== type &&
+ XPathResult.FIRST_ORDERED_NODE_TYPE !== type)
+ throw new core.DOMException(
+ core.DOMException.NOT_SUPPORTED_ERR,
+ 'You must provide an XPath result type (0=any).');
+ else if (XPathResult.ANY_TYPE !== type &&
+ 'object' !== typeof value)
+ throw new XPathException(
+ XPathException.TYPE_ERR,
+ 'Value should be a node-set: ' + value);
+ return new XPathResult(doc, value, type);
+ }
+ }
+
+ var XPathResult = xpath.XPathResult = function XPathResult(doc, value, resultType) {
+ this._value = value;
+ this._resultType = resultType;
+ this._i = 0;
+
+ // TODO: we removed mutation events but didn't take care of this. No tests fail, so that's nice, but eventually we
+ // should fix this, preferably by entirely replacing our XPath implementation.
+ // this._invalidated = false;
+ // if (this.resultType === XPathResult.UNORDERED_NODE_ITERATOR_TYPE ||
+ // this.resultType === XPathResult.ORDERED_NODE_ITERATOR_TYPE) {
+ // doc.addEventListener('DOMSubtreeModified', invalidate, true);
+ // var self = this;
+ // function invalidate() {
+ // self._invalidated = true;
+ // doc.removeEventListener('DOMSubtreeModified', invalidate, true);
+ // }
+ // }
+ }
+ XPathResult.ANY_TYPE = 0;
+ XPathResult.NUMBER_TYPE = 1;
+ XPathResult.STRING_TYPE = 2;
+ XPathResult.BOOLEAN_TYPE = 3;
+ XPathResult.UNORDERED_NODE_ITERATOR_TYPE = 4;
+ XPathResult.ORDERED_NODE_ITERATOR_TYPE = 5;
+ XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE = 6;
+ XPathResult.ORDERED_NODE_SNAPSHOT_TYPE = 7;
+ XPathResult.ANY_UNORDERED_NODE_TYPE = 8;
+ XPathResult.FIRST_ORDERED_NODE_TYPE = 9;
+ var proto = {
+ // XPathResultType
+ get resultType() {
+ if (this._resultType) return this._resultType;
+ switch (typeof this._value) {
+ case 'number': return XPathResult.NUMBER_TYPE;
+ case 'string': return XPathResult.STRING_TYPE;
+ case 'boolean': return XPathResult.BOOLEAN_TYPE;
+ default: return XPathResult.UNORDERED_NODE_ITERATOR_TYPE;
+ }
+ },
+ get numberValue() {
+ if (XPathResult.NUMBER_TYPE !== this.resultType)
+ throw new XPathException(XPathException.TYPE_ERR,
+ 'You should have asked for a NUMBER_TYPE.');
+ return this._value;
+ },
+ get stringValue() {
+ if (XPathResult.STRING_TYPE !== this.resultType)
+ throw new XPathException(XPathException.TYPE_ERR,
+ 'You should have asked for a STRING_TYPE.');
+ return this._value;
+ },
+ get booleanValue() {
+ if (XPathResult.BOOLEAN_TYPE !== this.resultType)
+ throw new XPathException(XPathException.TYPE_ERR,
+ 'You should have asked for a BOOLEAN_TYPE.');
+ return this._value;
+ },
+ get singleNodeValue() {
+ if (XPathResult.ANY_UNORDERED_NODE_TYPE !== this.resultType &&
+ XPathResult.FIRST_ORDERED_NODE_TYPE !== this.resultType)
+ throw new XPathException(
+ XPathException.TYPE_ERR,
+ 'You should have asked for a FIRST_ORDERED_NODE_TYPE.');
+ return this._value.nodes[0] || null;
+ },
+ get invalidIteratorState() {
+ if (XPathResult.UNORDERED_NODE_ITERATOR_TYPE !== this.resultType &&
+ XPathResult.ORDERED_NODE_ITERATOR_TYPE !== this.resultType)
+ return false;
+ return !!this._invalidated;
+ },
+ get snapshotLength() {
+ if (XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE !== this.resultType &&
+ XPathResult.ORDERED_NODE_SNAPSHOT_TYPE !== this.resultType)
+ throw new XPathException(
+ XPathException.TYPE_ERR,
+ 'You should have asked for a ORDERED_NODE_SNAPSHOT_TYPE.');
+ return this._value.nodes.length;
+ },
+ iterateNext: function iterateNext() {
+ if (XPathResult.UNORDERED_NODE_ITERATOR_TYPE !== this.resultType &&
+ XPathResult.ORDERED_NODE_ITERATOR_TYPE !== this.resultType)
+ throw new XPathException(
+ XPathException.TYPE_ERR,
+ 'You should have asked for a ORDERED_NODE_ITERATOR_TYPE.');
+ if (this.invalidIteratorState)
+ throw new core.DOMException(
+ core.DOMException.INVALID_STATE_ERR,
+ 'The document has been mutated since the result was returned');
+ return this._value.nodes[this._i++] || null;
+ },
+ snapshotItem: function snapshotItem(index) {
+ if (XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE !== this.resultType &&
+ XPathResult.ORDERED_NODE_SNAPSHOT_TYPE !== this.resultType)
+ throw new XPathException(
+ XPathException.TYPE_ERR,
+ 'You should have asked for a ORDERED_NODE_SNAPSHOT_TYPE.');
+ return this._value.nodes[index] || null;
+ }
+ };
+ // so you can access ANY_TYPE etc. from the instances:
+ XPathResult.prototype = Object.create(XPathResult,
+ Object.keys(proto).reduce(function (descriptors, name) {
+ descriptors[name] = Object.getOwnPropertyDescriptor(proto, name);
+ return descriptors;
+ }, {
+ constructor: {
+ value: XPathResult,
+ writable: true,
+ configurable: true
+ }
+ }));
+
+ core.XPathException = XPathException;
+ core.XPathExpression = XPathExpression;
+ core.XPathResult = XPathResult;
+ core.XPathEvaluator = XPathEvaluator;
+
+ core.Document.prototype.createExpression =
+ XPathEvaluator.prototype.createExpression;
+
+ core.Document.prototype.createNSResolver =
+ XPathEvaluator.prototype.createNSResolver;
+
+ core.Document.prototype.evaluate = XPathEvaluator.prototype.evaluate;
+
+ return xpath; // for tests
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/aborting/AbortController-impl.js b/node_modules/jsdom/lib/jsdom/living/aborting/AbortController-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..491f76f33ddd44dcc8161ec52252ea60a5d0819c
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/aborting/AbortController-impl.js
@@ -0,0 +1,17 @@
+"use strict";
+
+const AbortSignal = require("../generated/AbortSignal");
+
+class AbortControllerImpl {
+ constructor(globalObject) {
+ this.signal = AbortSignal.createImpl(globalObject, []);
+ }
+
+ abort(reason) {
+ this.signal._signalAbort(reason);
+ }
+}
+
+module.exports = {
+ implementation: AbortControllerImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js b/node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..9bc0aedf028f03078957f7a2efecf5997e5f064e
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js
@@ -0,0 +1,131 @@
+"use strict";
+
+const { setupForSimpleEventAccessors } = require("../helpers/create-event-accessor");
+const { fireAnEvent } = require("../helpers/events");
+const EventTargetImpl = require("../events/EventTarget-impl").implementation;
+const AbortSignal = require("../generated/AbortSignal");
+const DOMException = require("../generated/DOMException");
+
+class AbortSignalImpl extends EventTargetImpl {
+ constructor(globalObject, args, privateData) {
+ super(globalObject, args, privateData);
+
+ // make event firing possible
+ this._ownerDocument = globalObject.document;
+
+ this.reason = undefined;
+ this.abortAlgorithms = new Set();
+ this._dependent = false;
+ this._sourceSignals = new Set();
+ this._dependentSignals = new Set();
+ }
+
+ get aborted() {
+ return this.reason !== undefined;
+ }
+
+ throwIfAborted() {
+ if (this.aborted) {
+ throw this.reason;
+ }
+ }
+
+ static abort(globalObject, reason) {
+ const abortSignal = AbortSignal.createImpl(globalObject, []);
+ if (reason !== undefined) {
+ abortSignal.reason = reason;
+ } else {
+ abortSignal.reason = DOMException.create(globalObject, ["The operation was aborted.", "AbortError"]);
+ }
+ return abortSignal;
+ }
+
+ // https://dom.spec.whatwg.org/#abortsignal-dependent
+ static any(globalObject, signals) {
+ const resultSignal = AbortSignal.createImpl(globalObject, []);
+ for (const signal of signals) {
+ if (signal.aborted) {
+ resultSignal.reason = signal.reason;
+ return resultSignal;
+ }
+ }
+
+ resultSignal.dependent = true;
+ for (const signal of signals) {
+ if (!signal.dependent) {
+ resultSignal._sourceSignals.add(signal);
+ signal._dependentSignals.add(resultSignal);
+ } else {
+ for (const sourceSignal of signal._sourceSignals) {
+ if (!sourceSignal.aborted && !sourceSignal.dependent) {
+ resultSignal._sourceSignals.add(sourceSignal);
+ sourceSignal._dependentSignals.add(resultSignal);
+ }
+ }
+ }
+ }
+ return resultSignal;
+ }
+
+ static timeout(globalObject, milliseconds) {
+ const signal = AbortSignal.createImpl(globalObject, []);
+ globalObject.setTimeout(() => {
+ signal._signalAbort(DOMException.create(globalObject, ["The operation timed out.", "TimeoutError"]));
+ }, milliseconds);
+
+ return signal;
+ }
+
+ // https://dom.spec.whatwg.org/#abortsignal-signal-abort
+ _signalAbort(reason) {
+ if (this.aborted) {
+ return;
+ }
+
+ if (reason !== undefined) {
+ this.reason = reason;
+ } else {
+ this.reason = DOMException.create(this._globalObject, ["The operation was aborted.", "AbortError"]);
+ }
+
+ const dependentSignalsToAbort = [];
+ for (const dependentSignal of this._dependentSignals) {
+ if (!dependentSignal.aborted) {
+ dependentSignal.reason = this.reason;
+ dependentSignalsToAbort.push(dependentSignal);
+ }
+ }
+
+ this._runAbortStep();
+
+ for (const dependentSignal of dependentSignalsToAbort) {
+ dependentSignal._runAbortStep();
+ }
+ }
+
+ _runAbortStep() {
+ for (const algorithm of this.abortAlgorithms) {
+ algorithm();
+ }
+ this.abortAlgorithms.clear();
+
+ fireAnEvent("abort", this);
+ }
+
+ _addAlgorithm(algorithm) {
+ if (this.aborted) {
+ return;
+ }
+ this.abortAlgorithms.add(algorithm);
+ }
+
+ _removeAlgorithm(algorithm) {
+ this.abortAlgorithms.delete(algorithm);
+ }
+}
+
+setupForSimpleEventAccessors(AbortSignalImpl.prototype, ["abort"]);
+
+module.exports = {
+ implementation: AbortSignalImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/attributes.js b/node_modules/jsdom/lib/jsdom/living/attributes.js
new file mode 100644
index 0000000000000000000000000000000000000000..add4e7acbc33797547b1f72bbbc70aae09881380
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/attributes.js
@@ -0,0 +1,312 @@
+"use strict";
+const DOMException = require("./generated/DOMException");
+
+const { HTML_NS } = require("./helpers/namespaces");
+const { asciiLowercase } = require("./helpers/strings");
+const { queueAttributeMutationRecord } = require("./helpers/mutation-observers");
+const { enqueueCECallbackReaction } = require("./helpers/custom-elements");
+
+// The following three are for https://dom.spec.whatwg.org/#concept-element-attribute-has. We don't just have a
+// predicate tester since removing that kind of flexibility gives us the potential for better future optimizations.
+
+/* eslint-disable no-restricted-properties */
+
+exports.hasAttribute = function (element, A) {
+ return element._attributeList.includes(A);
+};
+
+exports.hasAttributeByName = function (element, name) {
+ return element._attributesByNameMap.has(name);
+};
+
+exports.hasAttributeByNameNS = function (element, namespace, localName) {
+ return element._attributeList.some(attribute => {
+ return attribute._localName === localName && attribute._namespace === namespace;
+ });
+};
+
+// https://dom.spec.whatwg.org/#concept-element-attributes-change
+exports.changeAttribute = (element, attribute, value) => {
+ const { _localName, _namespace, _value } = attribute;
+
+ queueAttributeMutationRecord(element, _localName, _namespace, _value);
+
+ if (element._ceState === "custom") {
+ enqueueCECallbackReaction(element, "attributeChangedCallback", [
+ _localName,
+ _value,
+ value,
+ _namespace
+ ]);
+ }
+
+ attribute._value = value;
+
+ // Run jsdom hooks; roughly correspond to spec's "An attribute is set and an attribute is changed."
+ element._attrModified(attribute._qualifiedName, value, _value);
+};
+
+// https://dom.spec.whatwg.org/#concept-element-attributes-append
+exports.appendAttribute = function (element, attribute) {
+ const { _localName, _namespace, _value } = attribute;
+ queueAttributeMutationRecord(element, _localName, _namespace, null);
+
+ if (element._ceState === "custom") {
+ enqueueCECallbackReaction(element, "attributeChangedCallback", [
+ _localName,
+ null,
+ _value,
+ _namespace
+ ]);
+ }
+
+ const attributeList = element._attributeList;
+
+ attributeList.push(attribute);
+ attribute._element = element;
+
+ // Sync name cache
+ const name = attribute._qualifiedName;
+ const cache = element._attributesByNameMap;
+ let entry = cache.get(name);
+ if (!entry) {
+ entry = [];
+ cache.set(name, entry);
+ }
+ entry.push(attribute);
+
+ // Run jsdom hooks; roughly correspond to spec's "An attribute is set and an attribute is added."
+ element._attrModified(name, _value, null);
+};
+
+exports.removeAttribute = function (element, attribute) {
+ // https://dom.spec.whatwg.org/#concept-element-attributes-remove
+
+ const { _localName, _namespace, _value } = attribute;
+
+ queueAttributeMutationRecord(element, _localName, _namespace, _value);
+
+ if (element._ceState === "custom") {
+ enqueueCECallbackReaction(element, "attributeChangedCallback", [
+ _localName,
+ _value,
+ null,
+ _namespace
+ ]);
+ }
+
+ const attributeList = element._attributeList;
+
+ for (let i = 0; i < attributeList.length; ++i) {
+ if (attributeList[i] === attribute) {
+ attributeList.splice(i, 1);
+ attribute._element = null;
+
+ // Sync name cache
+ const name = attribute._qualifiedName;
+ const cache = element._attributesByNameMap;
+ const entry = cache.get(name);
+ entry.splice(entry.indexOf(attribute), 1);
+ if (entry.length === 0) {
+ cache.delete(name);
+ }
+
+ // Run jsdom hooks; roughly correspond to spec's "An attribute is removed."
+ element._attrModified(name, null, attribute._value);
+
+ return;
+ }
+ }
+};
+
+exports.replaceAttribute = function (element, oldAttr, newAttr) {
+ // https://dom.spec.whatwg.org/#concept-element-attributes-replace
+
+ const { _localName, _namespace, _value } = oldAttr;
+
+ queueAttributeMutationRecord(element, _localName, _namespace, _value);
+
+ if (element._ceState === "custom") {
+ enqueueCECallbackReaction(element, "attributeChangedCallback", [
+ _localName,
+ _value,
+ newAttr._value,
+ _namespace
+ ]);
+ }
+
+ const attributeList = element._attributeList;
+
+ for (let i = 0; i < attributeList.length; ++i) {
+ if (attributeList[i] === oldAttr) {
+ attributeList.splice(i, 1, newAttr);
+ oldAttr._element = null;
+ newAttr._element = element;
+
+ // Sync name cache
+ const name = newAttr._qualifiedName;
+ const cache = element._attributesByNameMap;
+ let entry = cache.get(name);
+ if (!entry) {
+ entry = [];
+ cache.set(name, entry);
+ }
+ entry.splice(entry.indexOf(oldAttr), 1, newAttr);
+
+ // Run jsdom hooks; roughly correspond to spec's "An attribute is set and an attribute is changed."
+ element._attrModified(name, newAttr._value, oldAttr._value);
+
+ return;
+ }
+ }
+};
+
+exports.getAttributeByName = function (element, name) {
+ // https://dom.spec.whatwg.org/#concept-element-attributes-get-by-name
+
+ if (element._namespaceURI === HTML_NS &&
+ element._ownerDocument._parsingMode === "html") {
+ name = asciiLowercase(name);
+ }
+
+ const cache = element._attributesByNameMap;
+ const entry = cache.get(name);
+ if (!entry) {
+ return null;
+ }
+
+ return entry[0];
+};
+
+exports.getAttributeByNameNS = function (element, namespace, localName) {
+ // https://dom.spec.whatwg.org/#concept-element-attributes-get-by-namespace
+
+ if (namespace === "") {
+ namespace = null;
+ }
+
+ const attributeList = element._attributeList;
+ for (let i = 0; i < attributeList.length; ++i) {
+ const attr = attributeList[i];
+ if (attr._namespace === namespace && attr._localName === localName) {
+ return attr;
+ }
+ }
+
+ return null;
+};
+
+// Both of the following functions implement https://dom.spec.whatwg.org/#concept-element-attributes-get-value.
+// Separated them into two to keep symmetry with other functions.
+exports.getAttributeValue = function (element, localName) {
+ const attr = exports.getAttributeByNameNS(element, null, localName);
+
+ if (!attr) {
+ return "";
+ }
+
+ return attr._value;
+};
+
+exports.getAttributeValueNS = function (element, namespace, localName) {
+ const attr = exports.getAttributeByNameNS(element, namespace, localName);
+
+ if (!attr) {
+ return "";
+ }
+
+ return attr._value;
+};
+
+exports.setAttribute = function (element, attr) {
+ // https://dom.spec.whatwg.org/#concept-element-attributes-set
+
+ if (attr._element !== null && attr._element !== element) {
+ throw DOMException.create(element._globalObject, ["The attribute is in use.", "InUseAttributeError"]);
+ }
+
+ const oldAttr = exports.getAttributeByNameNS(element, attr._namespace, attr._localName);
+ if (oldAttr === attr) {
+ return attr;
+ }
+
+ if (oldAttr !== null) {
+ exports.replaceAttribute(element, oldAttr, attr);
+ } else {
+ exports.appendAttribute(element, attr);
+ }
+
+ return oldAttr;
+};
+
+exports.setAttributeValue = function (element, localName, value, prefix, namespace) {
+ // https://dom.spec.whatwg.org/#concept-element-attributes-set-value
+
+ if (prefix === undefined) {
+ prefix = null;
+ }
+ if (namespace === undefined) {
+ namespace = null;
+ }
+
+ const attribute = exports.getAttributeByNameNS(element, namespace, localName);
+ if (attribute === null) {
+ const newAttribute = element._ownerDocument._createAttribute({
+ namespace,
+ namespacePrefix: prefix,
+ localName,
+ value
+ });
+ exports.appendAttribute(element, newAttribute);
+
+ return;
+ }
+
+ exports.changeAttribute(element, attribute, value);
+};
+
+// https://dom.spec.whatwg.org/#set-an-existing-attribute-value
+exports.setAnExistingAttributeValue = (attribute, value) => {
+ const element = attribute._element;
+ if (element === null) {
+ attribute._value = value;
+ } else {
+ exports.changeAttribute(element, attribute, value);
+ }
+};
+
+exports.removeAttributeByName = function (element, name) {
+ // https://dom.spec.whatwg.org/#concept-element-attributes-remove-by-name
+
+ const attr = exports.getAttributeByName(element, name);
+
+ if (attr !== null) {
+ exports.removeAttribute(element, attr);
+ }
+
+ return attr;
+};
+
+exports.removeAttributeByNameNS = function (element, namespace, localName) {
+ // https://dom.spec.whatwg.org/#concept-element-attributes-remove-by-namespace
+
+ const attr = exports.getAttributeByNameNS(element, namespace, localName);
+
+ if (attr !== null) {
+ exports.removeAttribute(element, attr);
+ }
+
+ return attr;
+};
+
+exports.attributeNames = function (element) {
+ // Needed by https://dom.spec.whatwg.org/#dom-element-getattributenames
+
+ return element._attributeList.map(a => a._qualifiedName);
+};
+
+exports.hasAttributes = function (element) {
+ // Needed by https://dom.spec.whatwg.org/#dom-element-hasattributes
+
+ return element._attributeList.length > 0;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/attributes/Attr-impl.js b/node_modules/jsdom/lib/jsdom/living/attributes/Attr-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..e5d4daa20d5d7c65fb7d837d05d11fb2352feb0e
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/attributes/Attr-impl.js
@@ -0,0 +1,60 @@
+"use strict";
+
+const { setAnExistingAttributeValue } = require("../attributes.js");
+const NodeImpl = require("../nodes/Node-impl.js").implementation;
+const { ATTRIBUTE_NODE } = require("../node-type.js");
+
+exports.implementation = class AttrImpl extends NodeImpl {
+ constructor(globalObject, args, privateData) {
+ super(globalObject, args, privateData);
+
+ this._namespace = privateData.namespace !== undefined ? privateData.namespace : null;
+ this._namespacePrefix = privateData.namespacePrefix !== undefined ? privateData.namespacePrefix : null;
+ this._localName = privateData.localName;
+ this._value = privateData.value !== undefined ? privateData.value : "";
+ this._element = privateData.element !== undefined ? privateData.element : null;
+
+ this.nodeType = ATTRIBUTE_NODE;
+ this.specified = true;
+ }
+
+ get namespaceURI() {
+ return this._namespace;
+ }
+
+ get prefix() {
+ return this._namespacePrefix;
+ }
+
+ get localName() {
+ return this._localName;
+ }
+
+ get name() {
+ return this._qualifiedName;
+ }
+
+ get nodeName() {
+ return this._qualifiedName;
+ }
+
+ get value() {
+ return this._value;
+ }
+ set value(value) {
+ setAnExistingAttributeValue(this, value);
+ }
+
+ get ownerElement() {
+ return this._element;
+ }
+
+ get _qualifiedName() {
+ // https://dom.spec.whatwg.org/#concept-attribute-qualified-name
+ if (this._namespacePrefix === null) {
+ return this._localName;
+ }
+
+ return this._namespacePrefix + ":" + this._localName;
+ }
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/attributes/NamedNodeMap-impl.js b/node_modules/jsdom/lib/jsdom/living/attributes/NamedNodeMap-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..a06d5f101d56f3765008cf60aa544181e1bf6105
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/attributes/NamedNodeMap-impl.js
@@ -0,0 +1,78 @@
+"use strict";
+
+const DOMException = require("../generated/DOMException");
+const idlUtils = require("../generated/utils.js");
+const attributes = require("../attributes.js");
+const { HTML_NS } = require("../helpers/namespaces");
+
+exports.implementation = class NamedNodeMapImpl {
+ constructor(globalObject, args, privateData) {
+ this._element = privateData.element;
+
+ this._globalObject = globalObject;
+ }
+ get _attributeList() {
+ return this._element._attributeList;
+ }
+
+ get [idlUtils.supportedPropertyIndices]() {
+ return this._attributeList.keys();
+ }
+ get length() {
+ return this._attributeList.length;
+ }
+ item(index) {
+ if (index >= this._attributeList.length) {
+ return null;
+ }
+ return this._attributeList[index];
+ }
+
+ get [idlUtils.supportedPropertyNames]() {
+ const names = new Set(this._attributeList.map(a => a._qualifiedName));
+ const el = this._element;
+ if (el._namespaceURI === HTML_NS && el._ownerDocument._parsingMode === "html") {
+ for (const name of names) {
+ const lowercaseName = name.toLowerCase();
+ if (lowercaseName !== name) {
+ names.delete(name);
+ }
+ }
+ }
+ return names;
+ }
+ getNamedItem(qualifiedName) {
+ return attributes.getAttributeByName(this._element, qualifiedName);
+ }
+ getNamedItemNS(namespace, localName) {
+ return attributes.getAttributeByNameNS(this._element, namespace, localName);
+ }
+ setNamedItem(attr) {
+ // eslint-disable-next-line no-restricted-properties
+ return attributes.setAttribute(this._element, attr);
+ }
+ setNamedItemNS(attr) {
+ // eslint-disable-next-line no-restricted-properties
+ return attributes.setAttribute(this._element, attr);
+ }
+ removeNamedItem(qualifiedName) {
+ const attr = attributes.removeAttributeByName(this._element, qualifiedName);
+ if (attr === null) {
+ throw DOMException.create(this._globalObject, [
+ "Tried to remove an attribute that was not present",
+ "NotFoundError"
+ ]);
+ }
+ return attr;
+ }
+ removeNamedItemNS(namespace, localName) {
+ const attr = attributes.removeAttributeByNameNS(this._element, namespace, localName);
+ if (attr === null) {
+ throw DOMException.create(this._globalObject, [
+ "Tried to remove an attribute that was not present",
+ "NotFoundError"
+ ]);
+ }
+ return attr;
+ }
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/constraint-validation/DefaultConstraintValidation-impl.js b/node_modules/jsdom/lib/jsdom/living/constraint-validation/DefaultConstraintValidation-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..189533a70952dd4e7525b94257aad1ce360326b4
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/constraint-validation/DefaultConstraintValidation-impl.js
@@ -0,0 +1,75 @@
+"use strict";
+
+const ValidityState = require("../generated/ValidityState");
+const { isDisabled } = require("../helpers/form-controls");
+const { closest } = require("../helpers/traversal");
+const { fireAnEvent } = require("../helpers/events");
+
+exports.implementation = class DefaultConstraintValidationImpl {
+ // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-cva-willvalidate
+ get willValidate() {
+ return this._isCandidateForConstraintValidation();
+ }
+
+ get validity() {
+ if (!this._validity) {
+ this._validity = ValidityState.createImpl(this._globalObject, [], {
+ element: this
+ });
+ }
+ return this._validity;
+ }
+
+ // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-cva-checkvalidity
+ checkValidity() {
+ if (!this._isCandidateForConstraintValidation()) {
+ return true;
+ }
+ if (this._satisfiesConstraints()) {
+ return true;
+ }
+ fireAnEvent("invalid", this, undefined, { cancelable: true });
+ return false;
+ }
+
+ // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-cva-setcustomvalidity
+ setCustomValidity(message) {
+ this._customValidityErrorMessage = message;
+ }
+
+ // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-cva-reportvalidity
+ // Since jsdom has no user interaction, it's the same as #checkValidity
+ reportValidity() {
+ return this.checkValidity();
+ }
+
+ // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-cva-validationmessage
+ get validationMessage() {
+ const { validity } = this;
+ if (!this._isCandidateForConstraintValidation() || this._satisfiesConstraints()) {
+ return "";
+ }
+ const isSufferingFromCustomError = validity.customError;
+ if (isSufferingFromCustomError) {
+ return this._customValidityErrorMessage;
+ }
+ return "Constraints not satisfied";
+ }
+
+ _isCandidateForConstraintValidation() {
+ // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fe-disabled
+ return !isDisabled(this) &&
+ // If an element has a datalist element ancestor,
+ // it is barred from constraint validation.
+ closest(this, "datalist") === null &&
+ !this._barredFromConstraintValidationSpecialization();
+ }
+
+ _isBarredFromConstraintValidation() {
+ return !this._isCandidateForConstraintValidation();
+ }
+
+ _satisfiesConstraints() {
+ return this.validity.valid;
+ }
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/constraint-validation/ValidityState-impl.js b/node_modules/jsdom/lib/jsdom/living/constraint-validation/ValidityState-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..c5bd355cef2554a5898005d511536187a551b39e
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/constraint-validation/ValidityState-impl.js
@@ -0,0 +1,66 @@
+"use strict";
+
+exports.implementation = class ValidityStateImpl {
+ constructor(globalObject, args, privateData) {
+ const { element, state = {} } = privateData;
+
+ this._element = element;
+ this._state = state;
+ }
+
+ get badInput() {
+ return this._failsConstraint("badInput");
+ }
+
+ // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#suffering-from-a-custom-error
+ get customError() {
+ return this._element._customValidityErrorMessage !== "";
+ }
+
+ get patternMismatch() {
+ return this._failsConstraint("patternMismatch");
+ }
+
+ get rangeOverflow() {
+ return this._failsConstraint("rangeOverflow");
+ }
+
+ get rangeUnderflow() {
+ return this._failsConstraint("rangeUnderflow");
+ }
+
+ get stepMismatch() {
+ return this._failsConstraint("stepMismatch");
+ }
+
+ get tooLong() {
+ return this._failsConstraint("tooLong");
+ }
+
+ get tooShort() {
+ return this._failsConstraint("tooShort");
+ }
+
+ get typeMismatch() {
+ return this._failsConstraint("typeMismatch");
+ }
+
+ get valueMissing() {
+ return this._failsConstraint("valueMissing");
+ }
+
+ _failsConstraint(method) {
+ const validationMethod = this._state[method];
+ if (validationMethod) {
+ return validationMethod();
+ }
+
+ return false;
+ }
+
+ get valid() {
+ return !(this.badInput || this.valueMissing || this.customError ||
+ this.patternMismatch || this.rangeOverflow || this.rangeUnderflow ||
+ this.stepMismatch || this.tooLong || this.tooShort || this.typeMismatch);
+ }
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/crypto/Crypto-impl.js b/node_modules/jsdom/lib/jsdom/living/crypto/Crypto-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..611f9f6a26b098cedf4768702c6de6fda2167d41
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/crypto/Crypto-impl.js
@@ -0,0 +1,68 @@
+"use strict";
+
+const nodeCrypto = require("crypto");
+const DOMException = require("../generated/DOMException");
+
+// https://w3c.github.io/webcrypto/#crypto-interface
+class CryptoImpl {
+ constructor(globalObject) {
+ this._globalObject = globalObject;
+ }
+
+ // https://w3c.github.io/webcrypto/#Crypto-method-getRandomValues
+ getRandomValues(array) {
+ const typeName = getTypedArrayTypeName(array);
+ if (!(typeName === "Int8Array" ||
+ typeName === "Uint8Array" ||
+ typeName === "Uint8ClampedArray" ||
+ typeName === "Int16Array" ||
+ typeName === "Uint16Array" ||
+ typeName === "Int32Array" ||
+ typeName === "Uint32Array" ||
+ typeName === "BigInt64Array" ||
+ typeName === "BigUint64Array")) {
+ throw DOMException.create(this._globalObject, [
+ `getRandomValues() only accepts integer typed arrays`,
+ "TypeMismatchError"
+ ]);
+ }
+
+ if (array.byteLength > 65536) {
+ throw DOMException.create(this._globalObject, [
+ `getRandomValues() cannot generate more than 65536 bytes of random values; ` +
+ `${array.byteLength} bytes were requested`,
+ "QuotaExceededError"
+ ]);
+ }
+ nodeCrypto.randomFillSync(array);
+ return array;
+ }
+
+ // https://w3c.github.io/webcrypto/#Crypto-method-randomUUID
+ randomUUID() {
+ return nodeCrypto.randomUUID();
+ }
+}
+
+exports.implementation = CryptoImpl;
+
+// See #3395. Subclasses of TypedArrays should properly work, but we can't rely
+// on instanceof because Uint8Array may be different across different windows -
+// which can happen in JSDOM when running { runScripts: "dangerously" }. As a
+// solution, we imitate the behavior of instanceof by walking the proottype
+// chain.
+function getTypedArrayTypeName(array) {
+ const target = array.constructor;
+ const chain = [target.name];
+ let proto = Object.getPrototypeOf(target);
+ while (proto) {
+ chain.push(proto.name);
+ proto = Object.getPrototypeOf(proto);
+ }
+
+ while (chain.length > 0 && chain[chain.length - 1] !== "TypedArray") {
+ chain.pop();
+ }
+ chain.reverse();
+ return chain[1];
+}
diff --git a/node_modules/jsdom/lib/jsdom/living/cssom/StyleSheetList-impl.js b/node_modules/jsdom/lib/jsdom/living/cssom/StyleSheetList-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..c786c91ba61139095789b8639ffab69448a4106f
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/cssom/StyleSheetList-impl.js
@@ -0,0 +1,38 @@
+"use strict";
+
+const idlUtils = require("../generated/utils.js");
+
+exports.implementation = class StyleSheetList {
+ constructor() {
+ this._list = [];
+ }
+
+ get length() {
+ return this._list.length;
+ }
+
+ item(index) {
+ const result = this._list[index];
+ return result !== undefined ? result : null;
+ }
+
+ get [idlUtils.supportedPropertyIndices]() {
+ return this._list.keys();
+ }
+
+ _add(sheet) {
+ const { _list } = this;
+ if (!_list.includes(sheet)) {
+ _list.push(sheet);
+ }
+ }
+
+ _remove(sheet) {
+ const { _list } = this;
+
+ const index = _list.indexOf(sheet);
+ if (index >= 0) {
+ _list.splice(index, 1);
+ }
+ }
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/custom-elements/CustomElementRegistry-impl.js b/node_modules/jsdom/lib/jsdom/living/custom-elements/CustomElementRegistry-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..fe7555c523686b21936e35c6ae20447bd3aa2c3b
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/custom-elements/CustomElementRegistry-impl.js
@@ -0,0 +1,279 @@
+"use strict";
+
+const webIDLConversions = require("webidl-conversions");
+const DOMException = require("../generated/DOMException");
+
+const NODE_TYPE = require("../node-type");
+
+const { HTML_NS } = require("../helpers/namespaces");
+const { getHTMLElementInterface } = require("../helpers/create-element");
+const { shadowIncludingInclusiveDescendantsIterator } = require("../helpers/shadow-dom");
+const { isValidCustomElementName, tryUpgradeElement, enqueueCEUpgradeReaction } = require("../helpers/custom-elements");
+
+const idlUtils = require("../generated/utils");
+const IDLFunction = require("../generated/Function.js");
+const HTMLUnknownElement = require("../generated/HTMLUnknownElement");
+
+const LIFECYCLE_CALLBACKS = [
+ "connectedCallback",
+ "disconnectedCallback",
+ "adoptedCallback",
+ "attributeChangedCallback"
+];
+
+function convertToSequenceDOMString(obj) {
+ if (!obj || !obj[Symbol.iterator]) {
+ throw new TypeError("Invalid Sequence");
+ }
+
+ return Array.from(obj, webIDLConversions.DOMString);
+}
+
+// Returns true is the passed value is a valid constructor.
+// Borrowed from: https://stackoverflow.com/a/39336206/3832710
+function isConstructor(value) {
+ if (typeof value !== "function") {
+ return false;
+ }
+
+ try {
+ const P = new Proxy(value, {
+ construct() {
+ return {};
+ }
+ });
+
+ // eslint-disable-next-line no-new
+ new P();
+
+ return true;
+ } catch {
+ return false;
+ }
+}
+
+// https://html.spec.whatwg.org/#customelementregistry
+class CustomElementRegistryImpl {
+ constructor(globalObject) {
+ this._customElementDefinitions = [];
+ this._elementDefinitionIsRunning = false;
+ this._whenDefinedPromiseMap = Object.create(null);
+
+ this._globalObject = globalObject;
+ }
+
+ // https://html.spec.whatwg.org/#dom-customelementregistry-define
+ define(name, constructor, options) {
+ const { _globalObject } = this;
+ const ctor = constructor.objectReference;
+
+ if (!isConstructor(ctor)) {
+ throw new TypeError("Constructor argument is not a constructor.");
+ }
+
+ if (!isValidCustomElementName(name)) {
+ throw DOMException.create(_globalObject, ["Name argument is not a valid custom element name.", "SyntaxError"]);
+ }
+
+ const nameAlreadyRegistered = this._customElementDefinitions.some(entry => entry.name === name);
+ if (nameAlreadyRegistered) {
+ throw DOMException.create(_globalObject, [
+ "This name has already been registered in the registry.",
+ "NotSupportedError"
+ ]);
+ }
+
+ const ctorAlreadyRegistered = this._customElementDefinitions.some(entry => entry.objectReference === ctor);
+ if (ctorAlreadyRegistered) {
+ throw DOMException.create(_globalObject, [
+ "This constructor has already been registered in the registry.",
+ "NotSupportedError"
+ ]);
+ }
+
+ let localName = name;
+
+ let extendsOption = null;
+ if (options !== undefined && options.extends) {
+ extendsOption = options.extends;
+ }
+
+ if (extendsOption !== null) {
+ if (isValidCustomElementName(extendsOption)) {
+ throw DOMException.create(_globalObject, [
+ "Option extends value can't be a valid custom element name.",
+ "NotSupportedError"
+ ]);
+ }
+
+ const extendsInterface = getHTMLElementInterface(extendsOption);
+ if (extendsInterface === HTMLUnknownElement) {
+ throw DOMException.create(_globalObject, [
+ `${extendsOption} is an HTMLUnknownElement.`,
+ "NotSupportedError"
+ ]);
+ }
+
+ localName = extendsOption;
+ }
+
+ if (this._elementDefinitionIsRunning) {
+ throw DOMException.create(_globalObject, [
+ "Invalid nested custom element definition.",
+ "NotSupportedError"
+ ]);
+ }
+
+ this._elementDefinitionIsRunning = true;
+
+ let disableInternals = false;
+ let disableShadow = false;
+ let observedAttributes = [];
+ let formAssociated = false;
+ const lifecycleCallbacks = {
+ connectedCallback: null,
+ disconnectedCallback: null,
+ adoptedCallback: null,
+ attributeChangedCallback: null
+ };
+
+ let caughtError;
+ try {
+ const { prototype } = ctor;
+
+ if (typeof prototype !== "object") {
+ throw new TypeError("Invalid constructor prototype.");
+ }
+
+ for (const callbackName of LIFECYCLE_CALLBACKS) {
+ const callbackValue = prototype[callbackName];
+
+ if (callbackValue !== undefined) {
+ lifecycleCallbacks[callbackName] = IDLFunction.convert(_globalObject, callbackValue, {
+ context: `The lifecycle callback "${callbackName}"`
+ });
+ }
+ }
+
+ if (lifecycleCallbacks.attributeChangedCallback !== null) {
+ const observedAttributesIterable = ctor.observedAttributes;
+
+ if (observedAttributesIterable !== undefined) {
+ observedAttributes = convertToSequenceDOMString(observedAttributesIterable);
+ }
+ }
+
+ let disabledFeatures = [];
+ const disabledFeaturesIterable = ctor.disabledFeatures;
+ if (disabledFeaturesIterable) {
+ disabledFeatures = convertToSequenceDOMString(disabledFeaturesIterable);
+ }
+
+ const formAssociatedValue = ctor.formAssociated;
+
+ disableInternals = disabledFeatures.includes("internals");
+ disableShadow = disabledFeatures.includes("shadow");
+ formAssociated = webIDLConversions.boolean(formAssociatedValue);
+ } catch (err) {
+ caughtError = err;
+ } finally {
+ this._elementDefinitionIsRunning = false;
+ }
+
+ if (caughtError !== undefined) {
+ throw caughtError;
+ }
+
+ const definition = {
+ name,
+ localName,
+ constructor,
+ objectReference: ctor,
+ formAssociated,
+ observedAttributes,
+ lifecycleCallbacks,
+ disableShadow,
+ disableInternals,
+ constructionStack: []
+ };
+
+ this._customElementDefinitions.push(definition);
+
+ const document = idlUtils.implForWrapper(this._globalObject._document);
+
+ const upgradeCandidates = [];
+ for (const candidate of shadowIncludingInclusiveDescendantsIterator(document)) {
+ if (
+ (candidate._namespaceURI === HTML_NS && candidate._localName === localName) &&
+ (extendsOption === null || candidate._isValue === name)
+ ) {
+ upgradeCandidates.push(candidate);
+ }
+ }
+
+ for (const upgradeCandidate of upgradeCandidates) {
+ enqueueCEUpgradeReaction(upgradeCandidate, definition);
+ }
+
+ if (this._whenDefinedPromiseMap[name] !== undefined) {
+ this._whenDefinedPromiseMap[name].resolve(ctor);
+ delete this._whenDefinedPromiseMap[name];
+ }
+ }
+
+ // https://html.spec.whatwg.org/#dom-customelementregistry-get
+ get(name) {
+ const definition = this._customElementDefinitions.find(entry => entry.name === name);
+ return definition && definition.objectReference;
+ }
+
+ // https://html.spec.whatwg.org/#dom-customelementregistry-getname
+ getName(constructor) {
+ const found = this._customElementDefinitions.find(entry => entry.objectReference === constructor.objectReference);
+ return found ? found.name : null;
+ }
+
+ // https://html.spec.whatwg.org/#dom-customelementregistry-whendefined
+ whenDefined(name) {
+ if (!isValidCustomElementName(name)) {
+ return Promise.reject(DOMException.create(
+ this._globalObject,
+ ["Name argument is not a valid custom element name.", "SyntaxError"]
+ ));
+ }
+
+ const alreadyRegistered = this._customElementDefinitions.find(entry => entry.name === name);
+ if (alreadyRegistered) {
+ return Promise.resolve(alreadyRegistered.objectReference);
+ }
+
+ if (this._whenDefinedPromiseMap[name] === undefined) {
+ let resolve;
+ const promise = new Promise(r => {
+ resolve = r;
+ });
+
+ // Store the pending Promise along with the extracted resolve callback to actually resolve the returned Promise,
+ // once the custom element is registered.
+ this._whenDefinedPromiseMap[name] = {
+ promise,
+ resolve
+ };
+ }
+
+ return this._whenDefinedPromiseMap[name].promise;
+ }
+
+ // https://html.spec.whatwg.org/#dom-customelementregistry-upgrade
+ upgrade(root) {
+ for (const candidate of shadowIncludingInclusiveDescendantsIterator(root)) {
+ if (candidate.nodeType === NODE_TYPE.ELEMENT_NODE) {
+ tryUpgradeElement(candidate);
+ }
+ }
+ }
+}
+
+module.exports = {
+ implementation: CustomElementRegistryImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/custom-elements/ElementInternals-impl.js b/node_modules/jsdom/lib/jsdom/living/custom-elements/ElementInternals-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..fcc4292da47ed3fa69cb5da0fa4035e0d740250a
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/custom-elements/ElementInternals-impl.js
@@ -0,0 +1,56 @@
+"use strict";
+
+const DOMException = require("../generated/DOMException");
+const { getLabelsForLabelable } = require("../helpers/form-controls");
+
+class ElementInternalsImpl {
+ constructor(globalObject, args, { targetElement }) {
+ this._targetElement = targetElement;
+ }
+
+ get shadowRoot() {
+ const shadow = this._targetElement._shadowRoot;
+
+ if (!shadow || !shadow._availableToElementInternals) {
+ return null;
+ }
+
+ return shadow;
+ }
+
+ get labels() {
+ if (!this._targetElement._ceDefinition.formAssociated) {
+ throw DOMException.create(this._targetElement._globalObject, [
+ "Accesing an ElementInternal's labels property is only supported for form-associated custom elements",
+ "NotSupportedError"
+ ]);
+ }
+
+ return getLabelsForLabelable(this._targetElement);
+ }
+
+ // https://html.spec.whatwg.org/#reflecting-content-attributes-in-idl-attributes
+ _reflectGetTheElement() {
+ return this._targetElement;
+ }
+
+ _reflectGetTheContentAttribute(reflectedContentAttributeName) {
+ return this._targetElement._internalContentAttributeMap?.get(reflectedContentAttributeName) ?? null;
+ }
+
+ _reflectSetTheContentAttribute(reflectedContentAttributeName, value) {
+ if (!this._targetElement._internalContentAttributeMap) {
+ this._targetElement._internalContentAttributeMap = new Map();
+ }
+
+ this._targetElement._internalContentAttributeMap.set(reflectedContentAttributeName, value);
+ }
+
+ _reflectDeleteTheContentAttribute(reflectedContentAttributeName) {
+ this._targetElement._internalContentAttributeMap?.delete(reflectedContentAttributeName);
+ }
+}
+
+module.exports = {
+ implementation: ElementInternalsImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/deviceorientation/DeviceMotionEventAcceleration-impl.js b/node_modules/jsdom/lib/jsdom/living/deviceorientation/DeviceMotionEventAcceleration-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..045644abc0cf1106ac67a295a9e0824eee428b30
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/deviceorientation/DeviceMotionEventAcceleration-impl.js
@@ -0,0 +1,7 @@
+"use strict";
+
+class DeviceMotionEventAccelerationImpl {}
+
+module.exports = {
+ implementation: DeviceMotionEventAccelerationImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/deviceorientation/DeviceMotionEventRotationRate-impl.js b/node_modules/jsdom/lib/jsdom/living/deviceorientation/DeviceMotionEventRotationRate-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..1c2182288af9d125d4615ec7a03906b1662432d3
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/deviceorientation/DeviceMotionEventRotationRate-impl.js
@@ -0,0 +1,7 @@
+"use strict";
+
+class DeviceMotionEventRotationRateImpl {}
+
+module.exports = {
+ implementation: DeviceMotionEventRotationRateImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/documents.js b/node_modules/jsdom/lib/jsdom/living/documents.js
new file mode 100644
index 0000000000000000000000000000000000000000..a9ad0ce553190a681834ec8f655f17ca9ef9141d
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/documents.js
@@ -0,0 +1,15 @@
+"use strict";
+const XMLDocument = require("../living/generated/XMLDocument.js");
+const Document = require("../living/generated/Document.js");
+const { wrapperForImpl } = require("./generated/utils.js");
+
+exports.createImpl = (globalObject, options, { alwaysUseDocumentClass = false } = {}) => {
+ if (options.parsingMode === "xml" && !alwaysUseDocumentClass) {
+ return XMLDocument.createImpl(globalObject, [], { options });
+ }
+ return Document.createImpl(globalObject, [], { options });
+};
+
+exports.createWrapper = (...args) => {
+ return wrapperForImpl(exports.createImpl(...args));
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/domparsing/DOMParser-impl.js b/node_modules/jsdom/lib/jsdom/living/domparsing/DOMParser-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..5cacd40958e2f787245de4c02c2673ca8e495d4b
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/domparsing/DOMParser-impl.js
@@ -0,0 +1,59 @@
+"use strict";
+
+const { parseIntoDocument } = require("../../browser/parser");
+
+const idlUtils = require("../generated/utils");
+const Document = require("../generated/Document");
+
+exports.implementation = class DOMParserImpl {
+ constructor(globalObject) {
+ this._globalObject = globalObject;
+ }
+
+ parseFromString(string, contentType) {
+ switch (String(contentType)) {
+ case "text/html": {
+ return this.createScriptingDisabledDocument("html", contentType, string);
+ }
+
+ case "text/xml":
+ case "application/xml":
+ case "application/xhtml+xml":
+ case "image/svg+xml": {
+ try {
+ return this.createScriptingDisabledDocument("xml", contentType, string);
+ } catch (error) {
+ const document = this.createScriptingDisabledDocument("xml", contentType);
+ const element = document.createElementNS("http://www.mozilla.org/newlayout/xml/parsererror.xml", "parsererror");
+
+ element.textContent = error.message;
+
+ document.appendChild(element);
+ return document;
+ }
+ }
+
+ default:
+ throw new TypeError("Invalid contentType");
+ }
+ }
+
+ createScriptingDisabledDocument(parsingMode, contentType, string) {
+ const document = Document.createImpl(this._globalObject, [], {
+ options: {
+ parsingMode,
+ encoding: "UTF-8",
+ contentType,
+ readyState: "complete",
+ scriptingDisabled: true,
+ url: idlUtils.implForWrapper(this._globalObject._document).URL
+ }
+ });
+
+ if (string !== undefined) {
+ parseIntoDocument(string, document);
+ }
+
+ return document;
+ }
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/domparsing/InnerHTML-impl.js b/node_modules/jsdom/lib/jsdom/living/domparsing/InnerHTML-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..bdbd7b377befced2ddc57218f2c42f40ec46b4f1
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/domparsing/InnerHTML-impl.js
@@ -0,0 +1,30 @@
+"use strict";
+
+const { parseFragment } = require("../../browser/parser");
+const { HTML_NS } = require("../helpers/namespaces.js");
+const { isShadowRoot } = require("../helpers/shadow-dom.js");
+const NODE_TYPE = require("../node-type.js");
+const { fragmentSerialization } = require("./serialization.js");
+
+// https://w3c.github.io/DOM-Parsing/#the-innerhtml-mixin
+exports.implementation = class InnerHTMLImpl {
+ // https://w3c.github.io/DOM-Parsing/#dom-innerhtml-innerhtml
+ get innerHTML() {
+ return fragmentSerialization(this, {
+ outer: false,
+ requireWellFormed: true,
+ globalObject: this._globalObject
+ });
+ }
+ set innerHTML(markup) {
+ const contextElement = isShadowRoot(this) ? this.host : this;
+ const fragment = parseFragment(markup, contextElement);
+
+ let contextObject = this;
+ if (this.nodeType === NODE_TYPE.ELEMENT_NODE && this.localName === "template" && this.namespaceURI === HTML_NS) {
+ contextObject = this._templateContents;
+ }
+
+ contextObject._replaceAll(fragment);
+ }
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/domparsing/XMLSerializer-impl.js b/node_modules/jsdom/lib/jsdom/living/domparsing/XMLSerializer-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..5287fadbd75643b7a98ce1eba2c1a97a928ba898
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/domparsing/XMLSerializer-impl.js
@@ -0,0 +1,18 @@
+"use strict";
+const serialize = require("w3c-xmlserializer");
+const DOMException = require("../generated/DOMException");
+const utils = require("../generated/utils");
+
+exports.implementation = class XMLSerializerImpl {
+ constructor(globalObject) {
+ this._globalObject = globalObject;
+ }
+
+ serializeToString(root) {
+ try {
+ return serialize(utils.wrapperForImpl(root), { requireWellFormed: false });
+ } catch (e) {
+ throw DOMException.create(this._globalObject, [e.message, "InvalidStateError"]);
+ }
+ }
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/domparsing/parse5-adapter-serialization.js b/node_modules/jsdom/lib/jsdom/living/domparsing/parse5-adapter-serialization.js
new file mode 100644
index 0000000000000000000000000000000000000000..4d8eff08872f78b2fc668ec3c5e13a682afde3c4
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/domparsing/parse5-adapter-serialization.js
@@ -0,0 +1,63 @@
+"use strict";
+const nodeTypes = require("../node-type");
+const { domSymbolTree } = require("../helpers/internal-constants");
+// Serialization only requires a subset of the tree adapter interface.
+
+// Tree traversing
+exports.getFirstChild = node => node.firstChild;
+
+exports.getChildNodes = node => domSymbolTree.childrenToArray(node);
+
+exports.getParentNode = node => node.parentNode;
+
+exports.getAttrList = element => {
+ const attributeList = [...element._attributeList];
+
+ if (element._isValue && attributeList.every(attr => attr.name !== "is")) {
+ attributeList.unshift({
+ name: "is",
+ namespace: null,
+ prefix: null,
+ value: element._isValue
+ });
+ }
+
+ return attributeList;
+};
+
+// Node data
+exports.getTagName = element => element._qualifiedName; // https://github.com/inikulin/parse5/issues/231
+
+exports.getNamespaceURI = element => element.namespaceURI;
+
+exports.getTextNodeContent = exports.getCommentNodeContent = node => node.data;
+
+exports.getDocumentTypeNodeName = node => node.name;
+
+exports.getDocumentTypeNodePublicId = node => node.publicId;
+
+exports.getDocumentTypeNodeSystemId = node => node.systemId;
+
+exports.getTemplateContent = templateElement => templateElement._templateContents;
+
+exports.getDocumentMode = document => document._mode;
+
+// Node types
+exports.isTextNode = node => node.nodeType === nodeTypes.TEXT_NODE;
+
+exports.isCommentNode = node => node.nodeType === nodeTypes.COMMENT_NODE;
+
+exports.isDocumentTypeNode = node => node.nodeType === nodeTypes.DOCUMENT_TYPE_NODE;
+
+exports.isElementNode = node => node.nodeType === nodeTypes.ELEMENT_NODE;
+
+// Source code location
+exports.setNodeSourceCodeLocation = (node, location) => {
+ node.sourceCodeLocation = location;
+};
+
+exports.getNodeSourceCodeLocation = node => node.sourceCodeLocation;
+
+exports.updateNodeSourceCodeLocation = (node, endLocation) => {
+ Object.assign(node.sourceCodeLocation, endLocation);
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/domparsing/serialization.js b/node_modules/jsdom/lib/jsdom/living/domparsing/serialization.js
new file mode 100644
index 0000000000000000000000000000000000000000..45c1224bbb0d844e5bfaed7afddee946c9ffe440
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/domparsing/serialization.js
@@ -0,0 +1,36 @@
+"use strict";
+
+const produceXMLSerialization = require("w3c-xmlserializer");
+const parse5 = require("parse5");
+const DOMException = require("../generated/DOMException");
+const { domSymbolTree } = require("../helpers/internal-constants");
+const utils = require("../generated/utils");
+const treeAdapter = require("./parse5-adapter-serialization");
+const NODE_TYPE = require("../node-type");
+
+module.exports.fragmentSerialization = (node, { outer, requireWellFormed, globalObject }) => {
+ const contextDocument =
+ node.nodeType === NODE_TYPE.DOCUMENT_NODE ? node : node._ownerDocument;
+ if (contextDocument._parsingMode === "html") {
+ const config = {
+ ...contextDocument._parseOptions,
+ treeAdapter
+ };
+ return outer ? parse5.serializeOuter(node, config) : parse5.serialize(node, config);
+ }
+
+ const childNodes = outer ? [node] : domSymbolTree.childrenToArray(node);
+
+ try {
+ let serialized = "";
+ for (let i = 0; i < childNodes.length; ++i) {
+ serialized += produceXMLSerialization(
+ utils.wrapperForImpl(childNodes[i]),
+ { requireWellFormed }
+ );
+ }
+ return serialized;
+ } catch (e) {
+ throw DOMException.create(globalObject, [e.message, "InvalidStateError"]);
+ }
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/events/BeforeUnloadEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/BeforeUnloadEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..bca3ea8d69efffc1c2dce6cba288bf3efd894756
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/BeforeUnloadEvent-impl.js
@@ -0,0 +1,12 @@
+"use strict";
+
+const EventImpl = require("./Event-impl").implementation;
+
+const EventInit = require("../generated/EventInit");
+
+class BeforeUnloadEventImpl extends EventImpl {}
+BeforeUnloadEventImpl.defaultInit = EventInit.convert(undefined, undefined);
+
+module.exports = {
+ implementation: BeforeUnloadEventImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/events/BlobEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/BlobEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..ed91b491f478a46c50096e0cbad4f79de0a9fb3b
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/BlobEvent-impl.js
@@ -0,0 +1,14 @@
+"use strict";
+const EventImpl = require("./Event-impl").implementation;
+
+class BlobEventImpl extends EventImpl {}
+
+// Cannot use the usual pattern since `data` is required.
+BlobEventImpl.defaultInit = {
+ __proto__: null,
+ timecode: 0
+};
+
+module.exports = {
+ implementation: BlobEventImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/events/CloseEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/CloseEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..c52b009437a99e43517d717afec9b73e83c54409
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/CloseEvent-impl.js
@@ -0,0 +1,10 @@
+"use strict";
+
+const EventImpl = require("./Event-impl").implementation;
+
+const CloseEventInit = require("../generated/CloseEventInit");
+
+class CloseEventImpl extends EventImpl {}
+CloseEventImpl.defaultInit = CloseEventInit.convert(undefined, undefined);
+
+exports.implementation = CloseEventImpl;
diff --git a/node_modules/jsdom/lib/jsdom/living/events/CompositionEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/CompositionEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..b087e814973519470e06e526a810907a2ab4feb0
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/CompositionEvent-impl.js
@@ -0,0 +1,20 @@
+"use strict";
+
+const UIEventImpl = require("./UIEvent-impl").implementation;
+const CompositionEventInit = require("../generated/CompositionEventInit");
+
+class CompositionEventImpl extends UIEventImpl {
+ initCompositionEvent(type, bubbles, cancelable, view, data) {
+ if (this._dispatchFlag) {
+ return;
+ }
+
+ this.initUIEvent(type, bubbles, cancelable, view, 0);
+ this.data = data;
+ }
+}
+CompositionEventImpl.defaultInit = CompositionEventInit.convert(undefined, undefined);
+
+module.exports = {
+ implementation: CompositionEventImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/events/CustomEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/CustomEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..626b117a58135389ae1a42075b1e181d7dd5a560
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/CustomEvent-impl.js
@@ -0,0 +1,21 @@
+"use strict";
+
+const EventImpl = require("./Event-impl").implementation;
+
+const CustomEventInit = require("../generated/CustomEventInit");
+
+class CustomEventImpl extends EventImpl {
+ initCustomEvent(type, bubbles, cancelable, detail) {
+ if (this._dispatchFlag) {
+ return;
+ }
+
+ this.initEvent(type, bubbles, cancelable);
+ this.detail = detail;
+ }
+}
+CustomEventImpl.defaultInit = CustomEventInit.convert(undefined, undefined);
+
+module.exports = {
+ implementation: CustomEventImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/events/DeviceMotionEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/DeviceMotionEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..37ce211809b4225bc81a94666d3dc8d4e0adb540
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/DeviceMotionEvent-impl.js
@@ -0,0 +1,49 @@
+"use strict";
+
+const EventImpl = require("./Event-impl").implementation;
+const { implementation: DeviceMotionEventAccelerationImpl } =
+ require("../deviceorientation/DeviceMotionEventAcceleration-impl");
+const { implementation: DeviceMotionEventRotationRateImpl } =
+ require("../deviceorientation/DeviceMotionEventRotationRate-impl");
+
+class DeviceMotionEventImpl extends EventImpl {
+ constructor(globalObject, args, privateData) {
+ super(globalObject, args, privateData);
+
+ const eventInitDict = args[1];
+
+ this.acceleration = null;
+ if (eventInitDict?.acceleration) {
+ const accelImpl = new DeviceMotionEventAccelerationImpl(globalObject, [], {});
+ accelImpl.x = eventInitDict.acceleration.x;
+ accelImpl.y = eventInitDict.acceleration.y;
+ accelImpl.z = eventInitDict.acceleration.z;
+ this.acceleration = accelImpl;
+ }
+
+ this.accelerationIncludingGravity = null;
+ if (eventInitDict?.accelerationIncludingGravity) {
+ const accelGImpl = new DeviceMotionEventAccelerationImpl(globalObject, [], {});
+ accelGImpl.x = eventInitDict.accelerationIncludingGravity.x;
+ accelGImpl.y = eventInitDict.accelerationIncludingGravity.y;
+ accelGImpl.z = eventInitDict.accelerationIncludingGravity.z;
+ this.accelerationIncludingGravity = accelGImpl;
+ }
+
+ this.rotationRate = null;
+ if (eventInitDict?.rotationRate) {
+ const rotImpl = new DeviceMotionEventRotationRateImpl(globalObject, [], {});
+ rotImpl.alpha = eventInitDict.rotationRate.alpha;
+ rotImpl.beta = eventInitDict.rotationRate.beta;
+ rotImpl.gamma = eventInitDict.rotationRate.gamma;
+ this.rotationRate = rotImpl;
+ }
+
+ this.interval = eventInitDict?.interval ?? 0;
+ }
+}
+DeviceMotionEventImpl.defaultInit = Object.create(null);
+
+module.exports = {
+ implementation: DeviceMotionEventImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/events/DeviceOrientationEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/DeviceOrientationEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..6f0ba797e700b53b18b9f2662e259daa0aa8e42f
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/DeviceOrientationEvent-impl.js
@@ -0,0 +1,10 @@
+"use strict";
+const EventImpl = require("./Event-impl").implementation;
+const DeviceOrientationEventInit = require("../generated/DeviceOrientationEventInit");
+
+class DeviceOrientationEventImpl extends EventImpl {}
+DeviceOrientationEventImpl.defaultInit = DeviceOrientationEventInit.convert(undefined, undefined);
+
+module.exports = {
+ implementation: DeviceOrientationEventImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/events/ErrorEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/ErrorEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..5bd26561063241c528c2732329aff1ffd3bb2d50
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/ErrorEvent-impl.js
@@ -0,0 +1,14 @@
+"use strict";
+
+const EventImpl = require("./Event-impl").implementation;
+
+const ErrorEventInit = require("../generated/ErrorEventInit");
+
+class ErrorEventImpl extends EventImpl {
+
+}
+ErrorEventImpl.defaultInit = ErrorEventInit.convert(undefined, undefined);
+
+module.exports = {
+ implementation: ErrorEventImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/events/Event-impl.js b/node_modules/jsdom/lib/jsdom/living/events/Event-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..9840255ea88accae16cd1b82a1bb15139c79e324
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/Event-impl.js
@@ -0,0 +1,195 @@
+"use strict";
+
+const idlUtils = require("../generated/utils");
+const EventInit = require("../generated/EventInit");
+
+class EventImpl {
+ constructor(globalObject, args, privateData) {
+ const [type, eventInitDict = this.constructor.defaultInit] = args;
+
+ this.type = type;
+
+ this.bubbles = false;
+ this.cancelable = false;
+ for (const key in eventInitDict) {
+ this[key] = eventInitDict[key];
+ }
+ for (const key in this.constructor.defaultInit) {
+ if (!(key in eventInitDict)) {
+ this[key] = this.constructor.defaultInit[key];
+ }
+ }
+
+ this.target = null;
+ this.currentTarget = null;
+ this.eventPhase = 0;
+
+ this._globalObject = globalObject;
+ this._initializedFlag = true;
+ this._stopPropagationFlag = false;
+ this._stopImmediatePropagationFlag = false;
+ this._canceledFlag = false;
+ this._inPassiveListenerFlag = false;
+ this._dispatchFlag = false;
+ this._path = [];
+
+ this.isTrusted = privateData.isTrusted || false;
+ this.timeStamp = Date.now();
+ }
+
+ // https://dom.spec.whatwg.org/#set-the-canceled-flag
+ _setTheCanceledFlag() {
+ if (this.cancelable && !this._inPassiveListenerFlag) {
+ this._canceledFlag = true;
+ }
+ }
+
+ get srcElement() {
+ return this.target;
+ }
+
+ get returnValue() {
+ return !this._canceledFlag;
+ }
+
+ set returnValue(v) {
+ if (v === false) {
+ this._setTheCanceledFlag();
+ }
+ }
+
+ get defaultPrevented() {
+ return this._canceledFlag;
+ }
+
+ stopPropagation() {
+ this._stopPropagationFlag = true;
+ }
+
+ get cancelBubble() {
+ return this._stopPropagationFlag;
+ }
+
+ set cancelBubble(v) {
+ if (v) {
+ this._stopPropagationFlag = true;
+ }
+ }
+
+ stopImmediatePropagation() {
+ this._stopPropagationFlag = true;
+ this._stopImmediatePropagationFlag = true;
+ }
+
+ preventDefault() {
+ this._setTheCanceledFlag();
+ }
+
+ // https://dom.spec.whatwg.org/#dom-event-composedpath
+ // Current implementation is based of https://whatpr.org/dom/699.html#dom-event-composedpath
+ // due to a bug in composed path implementation https://github.com/whatwg/dom/issues/684
+ composedPath() {
+ const composedPath = [];
+
+ const { currentTarget, _path: path } = this;
+
+ if (path.length === 0) {
+ return composedPath;
+ }
+
+ composedPath.push(currentTarget);
+
+ let currentTargetIndex = 0;
+ let currentTargetHiddenSubtreeLevel = 0;
+
+ for (let index = path.length - 1; index >= 0; index--) {
+ const { item, rootOfClosedTree, slotInClosedTree } = path[index];
+
+ if (rootOfClosedTree) {
+ currentTargetHiddenSubtreeLevel++;
+ }
+
+ if (item === idlUtils.implForWrapper(currentTarget)) {
+ currentTargetIndex = index;
+ break;
+ }
+
+ if (slotInClosedTree) {
+ currentTargetHiddenSubtreeLevel--;
+ }
+ }
+
+ let currentHiddenLevel = currentTargetHiddenSubtreeLevel;
+ let maxHiddenLevel = currentTargetHiddenSubtreeLevel;
+
+ for (let i = currentTargetIndex - 1; i >= 0; i--) {
+ const { item, rootOfClosedTree, slotInClosedTree } = path[i];
+
+ if (rootOfClosedTree) {
+ currentHiddenLevel++;
+ }
+
+ if (currentHiddenLevel <= maxHiddenLevel) {
+ composedPath.unshift(idlUtils.wrapperForImpl(item));
+ }
+
+ if (slotInClosedTree) {
+ currentHiddenLevel--;
+ if (currentHiddenLevel < maxHiddenLevel) {
+ maxHiddenLevel = currentHiddenLevel;
+ }
+ }
+ }
+
+ currentHiddenLevel = currentTargetHiddenSubtreeLevel;
+ maxHiddenLevel = currentTargetHiddenSubtreeLevel;
+
+ for (let index = currentTargetIndex + 1; index < path.length; index++) {
+ const { item, rootOfClosedTree, slotInClosedTree } = path[index];
+
+ if (slotInClosedTree) {
+ currentHiddenLevel++;
+ }
+
+ if (currentHiddenLevel <= maxHiddenLevel) {
+ composedPath.push(idlUtils.wrapperForImpl(item));
+ }
+
+ if (rootOfClosedTree) {
+ currentHiddenLevel--;
+ if (currentHiddenLevel < maxHiddenLevel) {
+ maxHiddenLevel = currentHiddenLevel;
+ }
+ }
+ }
+
+ return composedPath;
+ }
+
+ _initialize(type, bubbles, cancelable) {
+ this.type = type;
+ this._initializedFlag = true;
+
+ this._stopPropagationFlag = false;
+ this._stopImmediatePropagationFlag = false;
+ this._canceledFlag = false;
+
+ this.isTrusted = false;
+ this.target = null;
+ this.bubbles = bubbles;
+ this.cancelable = cancelable;
+ }
+
+ initEvent(type, bubbles, cancelable) {
+ if (this._dispatchFlag) {
+ return;
+ }
+
+ this._initialize(type, bubbles, cancelable);
+ }
+}
+EventImpl.defaultInit = EventInit.convert(undefined, undefined);
+
+module.exports = {
+ implementation: EventImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/events/EventModifierMixin-impl.js b/node_modules/jsdom/lib/jsdom/living/events/EventModifierMixin-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..1af2bb20a4653da4130159e471ff7ae1678f7f4b
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/EventModifierMixin-impl.js
@@ -0,0 +1,24 @@
+"use strict";
+
+// This mixin doesn't have an IDL equivalent, but since MouseEvent and KeyboardEvent implement getModifierState() the
+// same way, its implementation is shared here.
+
+class EventModifierMixinImpl {
+ // Event's constructor assumes all options correspond to IDL attributes with the same names, and sets them on `this`.
+ // That is not the case for these modifier boolean options, but since the options are set on `this` anyway we'll
+ // access them that way. The spec doesn't say much about the case where keyArg is not one of the valid ones
+ // (https://w3c.github.io/uievents-key/#keys-modifier), but at least Chrome returns false for invalid modifiers. Since
+ // these invalid modifiers will be undefined on `this` (thus `false` after casting it to boolean), we don't need to do
+ // extra checking for validity.
+ getModifierState(keyArg) {
+ if (keyArg === "Control") {
+ return Boolean(this.ctrlKey);
+ }
+ if (["Alt", "Meta", "Shift"].includes(keyArg)) {
+ return Boolean(this[`${keyArg.toLowerCase()}Key`]);
+ }
+ return Boolean(this[`modifier${keyArg}`]);
+ }
+}
+
+exports.implementation = EventModifierMixinImpl;
diff --git a/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js b/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..9cac0ddadc099586fa3302d34958ed32f7aa6c55
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js
@@ -0,0 +1,438 @@
+"use strict";
+const DOMException = require("../generated/DOMException");
+
+const isWindow = require("../helpers/is-window");
+const reportException = require("../helpers/runtime-script-errors");
+const idlUtils = require("../generated/utils");
+const { nodeRoot } = require("../helpers/node");
+const {
+ isNode, isShadowRoot, isSlotable, getEventTargetParent,
+ isShadowInclusiveAncestor, retarget
+} = require("../helpers/shadow-dom");
+
+const MouseEvent = require("../generated/MouseEvent");
+
+const EVENT_PHASE = {
+ NONE: 0,
+ CAPTURING_PHASE: 1,
+ AT_TARGET: 2,
+ BUBBLING_PHASE: 3
+};
+
+class EventTargetImpl {
+ constructor(globalObject) {
+ this._globalObject = globalObject;
+ this._eventListeners = Object.create(null);
+ }
+
+ // Default argument is necessary because webidl2js cannot handle `= {}` with unions at the moment.
+ addEventListener(type, callback, options = { __proto__: null, capture: false, once: false }) {
+ let { capture, once, passive, signal } = flattenMoreEventListenerOptions(options);
+
+ if (signal !== null && signal.aborted) {
+ return;
+ }
+
+ if (callback === null) {
+ return;
+ }
+
+ if (passive === null) {
+ passive = defaultPassiveValue(type, this);
+ }
+
+ if (!this._eventListeners[type]) {
+ this._eventListeners[type] = [];
+ }
+
+ for (let i = 0; i < this._eventListeners[type].length; ++i) {
+ const listener = this._eventListeners[type][i];
+ if (
+ listener.callback.objectReference === callback.objectReference &&
+ listener.capture === capture
+ ) {
+ return;
+ }
+ }
+
+ this._eventListeners[type].push({
+ callback,
+ capture,
+ once,
+ passive,
+ signal
+ });
+
+ if (signal !== null) {
+ signal._addAlgorithm(() => {
+ this.removeEventListener(type, callback, options);
+ });
+ }
+ }
+
+ // Default argument is necessary because webidl2js cannot handle `= {}` with unions at the moment.
+ removeEventListener(type, callback, options = { __proto__: null, capture: false }) {
+ const capture = flattenEventListenerOptions(options);
+
+ if (callback === null) {
+ // Optimization, not in the spec.
+ return;
+ }
+
+ if (!this._eventListeners[type]) {
+ return;
+ }
+
+ for (let i = 0; i < this._eventListeners[type].length; ++i) {
+ const listener = this._eventListeners[type][i];
+ if (
+ listener.callback.objectReference === callback.objectReference &&
+ listener.capture === capture
+ ) {
+ this._eventListeners[type].splice(i, 1);
+ break;
+ }
+ }
+ }
+
+ dispatchEvent(eventImpl) {
+ if (eventImpl._dispatchFlag || !eventImpl._initializedFlag) {
+ throw DOMException.create(this._globalObject, [
+ "Tried to dispatch an uninitialized event",
+ "InvalidStateError"
+ ]);
+ }
+ if (eventImpl.eventPhase !== EVENT_PHASE.NONE) {
+ throw DOMException.create(this._globalObject, [
+ "Tried to dispatch a dispatching event",
+ "InvalidStateError"
+ ]);
+ }
+
+ eventImpl.isTrusted = false;
+
+ return this._dispatch(eventImpl);
+ }
+
+ // https://dom.spec.whatwg.org/#get-the-parent
+ _getTheParent() {
+ return null;
+ }
+
+ // https://dom.spec.whatwg.org/#concept-event-dispatch
+ // legacyOutputDidListenersThrowFlag optional parameter is not necessary here since it is only used by indexDB.
+ _dispatch(eventImpl, legacyTargetOverrideFlag /* , legacyOutputDidListenersThrowFlag */) {
+ let targetImpl = this;
+ let clearTargets = false;
+ let activationTarget = null;
+
+ eventImpl._dispatchFlag = true;
+
+ const targetOverride = legacyTargetOverrideFlag ?
+ idlUtils.implForWrapper(targetImpl._globalObject._document) :
+ targetImpl;
+ let relatedTarget = retarget(eventImpl.relatedTarget, targetImpl);
+
+ if (targetImpl !== relatedTarget || targetImpl === eventImpl.relatedTarget) {
+ const touchTargets = [];
+
+ appendToEventPath(eventImpl, targetImpl, targetOverride, relatedTarget, touchTargets, false);
+
+ const isActivationEvent = MouseEvent.isImpl(eventImpl) && eventImpl.type === "click";
+
+ if (isActivationEvent && targetImpl._hasActivationBehavior) {
+ activationTarget = targetImpl;
+ }
+
+ let slotInClosedTree = false;
+ let slotable = isSlotable(targetImpl) && targetImpl._assignedSlot ? targetImpl : null;
+ let parent = getEventTargetParent(targetImpl, eventImpl);
+
+ // Populate event path
+ // https://dom.spec.whatwg.org/#event-path
+ while (parent !== null) {
+ if (slotable !== null) {
+ if (parent.localName !== "slot") {
+ throw new Error(`JSDOM Internal Error: Expected parent to be a Slot`);
+ }
+
+ slotable = null;
+
+ const parentRoot = nodeRoot(parent);
+ if (isShadowRoot(parentRoot) && parentRoot.mode === "closed") {
+ slotInClosedTree = true;
+ }
+ }
+
+ if (isSlotable(parent) && parent._assignedSlot) {
+ slotable = parent;
+ }
+
+ relatedTarget = retarget(eventImpl.relatedTarget, parent);
+
+ if (
+ (isNode(parent) && isShadowInclusiveAncestor(nodeRoot(targetImpl), parent)) ||
+ idlUtils.wrapperForImpl(parent).constructor.name === "Window"
+ ) {
+ if (isActivationEvent && eventImpl.bubbles && activationTarget === null &&
+ parent._hasActivationBehavior) {
+ activationTarget = parent;
+ }
+
+ appendToEventPath(eventImpl, parent, null, relatedTarget, touchTargets, slotInClosedTree);
+ } else if (parent === relatedTarget) {
+ parent = null;
+ } else {
+ targetImpl = parent;
+
+ if (isActivationEvent && activationTarget === null && targetImpl._hasActivationBehavior) {
+ activationTarget = targetImpl;
+ }
+
+ appendToEventPath(eventImpl, parent, targetImpl, relatedTarget, touchTargets, slotInClosedTree);
+ }
+
+ if (parent !== null) {
+ parent = getEventTargetParent(parent, eventImpl);
+ }
+
+ slotInClosedTree = false;
+ }
+
+ let clearTargetsStructIndex = -1;
+ for (let i = eventImpl._path.length - 1; i >= 0 && clearTargetsStructIndex === -1; i--) {
+ if (eventImpl._path[i].target !== null) {
+ clearTargetsStructIndex = i;
+ }
+ }
+ const clearTargetsStruct = eventImpl._path[clearTargetsStructIndex];
+
+ clearTargets =
+ (isNode(clearTargetsStruct.target) && isShadowRoot(nodeRoot(clearTargetsStruct.target))) ||
+ (isNode(clearTargetsStruct.relatedTarget) && isShadowRoot(nodeRoot(clearTargetsStruct.relatedTarget)));
+
+ if (activationTarget !== null && activationTarget._legacyPreActivationBehavior) {
+ activationTarget._legacyPreActivationBehavior();
+ }
+
+ for (let i = eventImpl._path.length - 1; i >= 0; --i) {
+ const struct = eventImpl._path[i];
+
+ if (struct.target !== null) {
+ eventImpl.eventPhase = EVENT_PHASE.AT_TARGET;
+ } else {
+ eventImpl.eventPhase = EVENT_PHASE.CAPTURING_PHASE;
+ }
+
+ invokeEventListeners(struct, eventImpl, "capturing");
+ }
+
+ for (let i = 0; i < eventImpl._path.length; i++) {
+ const struct = eventImpl._path[i];
+
+ if (struct.target !== null) {
+ eventImpl.eventPhase = EVENT_PHASE.AT_TARGET;
+ } else {
+ if (!eventImpl.bubbles) {
+ continue;
+ }
+
+ eventImpl.eventPhase = EVENT_PHASE.BUBBLING_PHASE;
+ }
+
+ invokeEventListeners(struct, eventImpl, "bubbling");
+ }
+ }
+
+ eventImpl.eventPhase = EVENT_PHASE.NONE;
+
+ eventImpl.currentTarget = null;
+ eventImpl._path = [];
+ eventImpl._dispatchFlag = false;
+ eventImpl._stopPropagationFlag = false;
+ eventImpl._stopImmediatePropagationFlag = false;
+
+ if (clearTargets) {
+ eventImpl.target = null;
+ eventImpl.relatedTarget = null;
+ }
+
+ if (activationTarget !== null) {
+ if (!eventImpl._canceledFlag) {
+ activationTarget._activationBehavior(eventImpl);
+ } else if (activationTarget._legacyCanceledActivationBehavior) {
+ activationTarget._legacyCanceledActivationBehavior();
+ }
+ }
+
+ return !eventImpl._canceledFlag;
+ }
+}
+
+module.exports = {
+ implementation: EventTargetImpl
+};
+
+// https://dom.spec.whatwg.org/#concept-event-listener-invoke
+function invokeEventListeners(struct, eventImpl, phase) {
+ const structIndex = eventImpl._path.indexOf(struct);
+ for (let i = structIndex; i >= 0; i--) {
+ const t = eventImpl._path[i];
+ if (t.target) {
+ eventImpl.target = t.target;
+ break;
+ }
+ }
+
+ eventImpl.relatedTarget = idlUtils.wrapperForImpl(struct.relatedTarget);
+
+ if (eventImpl._stopPropagationFlag) {
+ return;
+ }
+
+ eventImpl.currentTarget = idlUtils.wrapperForImpl(struct.item);
+
+ const listeners = struct.item._eventListeners;
+ innerInvokeEventListeners(eventImpl, listeners, phase, struct.itemInShadowTree);
+}
+
+// https://dom.spec.whatwg.org/#concept-event-listener-inner-invoke
+function innerInvokeEventListeners(eventImpl, listeners, phase, itemInShadowTree) {
+ let found = false;
+
+ const { type, target } = eventImpl;
+ const wrapper = idlUtils.wrapperForImpl(target);
+
+ if (!listeners || !listeners[type]) {
+ return found;
+ }
+
+ // Copy event listeners before iterating since the list can be modified during the iteration.
+ const handlers = listeners[type].slice();
+
+ for (let i = 0; i < handlers.length; i++) {
+ const listener = handlers[i];
+ const { callback, capture, once, passive } = listener;
+
+ // Check if the event listener has been removed since the listeners has been cloned.
+ if (!listeners[type].includes(listener)) {
+ continue;
+ }
+
+ found = true;
+
+ if (
+ (phase === "capturing" && !capture) ||
+ (phase === "bubbling" && capture)
+ ) {
+ continue;
+ }
+
+ if (once) {
+ listeners[type].splice(listeners[type].indexOf(listener), 1);
+ }
+
+ let window = null;
+ if (wrapper && wrapper._document) {
+ // Triggered by Window
+ window = wrapper;
+ } else if (target._ownerDocument) {
+ // Triggered by most webidl2js'ed instances
+ window = target._ownerDocument._defaultView;
+ } else if (wrapper._ownerDocument) {
+ // Currently triggered by some non-webidl2js things
+ window = wrapper._ownerDocument._defaultView;
+ }
+
+ let currentEvent;
+ if (window) {
+ currentEvent = window._currentEvent;
+ if (!itemInShadowTree) {
+ window._currentEvent = eventImpl;
+ }
+ }
+
+ if (passive) {
+ eventImpl._inPassiveListenerFlag = true;
+ }
+
+ try {
+ callback.call(eventImpl.currentTarget, eventImpl);
+ } catch (e) {
+ if (window) {
+ reportException(window, e);
+ }
+ // Errors in window-less documents just get swallowed... can you think of anything better?
+ }
+
+ eventImpl._inPassiveListenerFlag = false;
+
+ if (window) {
+ window._currentEvent = currentEvent;
+ }
+
+ if (eventImpl._stopImmediatePropagationFlag) {
+ return found;
+ }
+ }
+
+ return found;
+}
+
+function flattenMoreEventListenerOptions(options) {
+ const dict = {
+ capture: flattenEventListenerOptions(options),
+ once: false,
+ passive: null,
+ signal: null
+ };
+
+ if (options !== null && typeof options === "object") {
+ dict.once = options.once;
+ if ("passive" in options) {
+ dict.passive = options.passive;
+ }
+ if ("signal" in options) {
+ dict.signal = options.signal;
+ }
+ }
+ return dict;
+}
+
+function flattenEventListenerOptions(options) {
+ if (typeof options === "boolean") {
+ return options;
+ }
+ return options.capture;
+}
+
+function defaultPassiveValue(type, eventTarget) {
+ switch (type) {
+ case "touchstart":
+ case "touchmove":
+ case "wheel":
+ case "mousewheel":
+ return isWindow(eventTarget) ||
+ eventTarget._ownerDocument === eventTarget ||
+ eventTarget._ownerDocument.documentElement === eventTarget ||
+ eventTarget._ownerDocument.body === eventTarget;
+ default:
+ return false;
+ }
+}
+
+// https://dom.spec.whatwg.org/#concept-event-path-append
+function appendToEventPath(eventImpl, target, targetOverride, relatedTarget, touchTargets, slotInClosedTree) {
+ const itemInShadowTree = isNode(target) && isShadowRoot(nodeRoot(target));
+ const rootOfClosedTree = isShadowRoot(target) && target.mode === "closed";
+
+ eventImpl._path.push({
+ item: target,
+ itemInShadowTree,
+ target: targetOverride,
+ relatedTarget,
+ touchTargets,
+ rootOfClosedTree,
+ slotInClosedTree
+ });
+}
diff --git a/node_modules/jsdom/lib/jsdom/living/events/FocusEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/FocusEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..561cbfc8590c70c2aefa3db12e9203916e9957ab
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/FocusEvent-impl.js
@@ -0,0 +1,9 @@
+"use strict";
+const UIEventImpl = require("./UIEvent-impl").implementation;
+
+const FocusEventInit = require("../generated/FocusEventInit");
+
+class FocusEventImpl extends UIEventImpl {}
+FocusEventImpl.defaultInit = FocusEventInit.convert(undefined, undefined);
+
+exports.implementation = FocusEventImpl;
diff --git a/node_modules/jsdom/lib/jsdom/living/events/HashChangeEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/HashChangeEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..8230e1d2cbd51edc1a63ed41dd136ff52869472a
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/HashChangeEvent-impl.js
@@ -0,0 +1,14 @@
+"use strict";
+
+const EventImpl = require("./Event-impl").implementation;
+
+const HashChangeEventInit = require("../generated/HashChangeEventInit");
+
+class HashChangeEventImpl extends EventImpl {
+
+}
+HashChangeEventImpl.defaultInit = HashChangeEventInit.convert(undefined, undefined);
+
+module.exports = {
+ implementation: HashChangeEventImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/events/InputEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/InputEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..d9df3cdd4b591d046b39f5f53b019b21dba01d26
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/InputEvent-impl.js
@@ -0,0 +1,11 @@
+"use strict";
+const UIEventImpl = require("./UIEvent-impl").implementation;
+const InputEventInit = require("../generated/InputEventInit");
+
+// https://w3c.github.io/uievents/#interface-inputevent
+class InputEventImpl extends UIEventImpl { }
+InputEventImpl.defaultInit = InputEventInit.convert(undefined, undefined);
+
+module.exports = {
+ implementation: InputEventImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/events/KeyboardEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/KeyboardEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..c540e1ed70da857b0f9d49600f09bff643d65b03
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/KeyboardEvent-impl.js
@@ -0,0 +1,29 @@
+"use strict";
+
+const { mixin } = require("../../utils");
+const EventModifierMixinImpl = require("./EventModifierMixin-impl").implementation;
+const UIEventImpl = require("./UIEvent-impl").implementation;
+
+const KeyboardEventInit = require("../generated/KeyboardEventInit");
+
+class KeyboardEventImpl extends UIEventImpl {
+ initKeyboardEvent(type, bubbles, cancelable, view, key, location, ctrlKey, altKey, shiftKey, metaKey) {
+ if (this._dispatchFlag) {
+ return;
+ }
+
+ this.initUIEvent(type, bubbles, cancelable, view, 0);
+ this.key = key;
+ this.location = location;
+ this.ctrlKey = ctrlKey;
+ this.altKey = altKey;
+ this.shiftKey = shiftKey;
+ this.metaKey = metaKey;
+ }
+}
+mixin(KeyboardEventImpl.prototype, EventModifierMixinImpl.prototype);
+KeyboardEventImpl.defaultInit = KeyboardEventInit.convert(undefined, undefined);
+
+module.exports = {
+ implementation: KeyboardEventImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/events/MessageEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/MessageEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..0290fd4e12a9eb03933034fe9739602e21484fc4
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/MessageEvent-impl.js
@@ -0,0 +1,25 @@
+"use strict";
+
+const EventImpl = require("./Event-impl").implementation;
+
+const MessageEventInit = require("../generated/MessageEventInit");
+
+class MessageEventImpl extends EventImpl {
+ initMessageEvent(type, bubbles, cancelable, data, origin, lastEventId, source, ports) {
+ if (this._dispatchFlag) {
+ return;
+ }
+
+ this.initEvent(type, bubbles, cancelable);
+ this.data = data;
+ this.origin = origin;
+ this.lastEventId = lastEventId;
+ this.source = source;
+ this.ports = ports;
+ }
+}
+MessageEventImpl.defaultInit = MessageEventInit.convert(undefined, undefined);
+
+module.exports = {
+ implementation: MessageEventImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/events/MouseEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/MouseEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..15b309e8ec941f550e4d96420e929e8a925c9163
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/MouseEvent-impl.js
@@ -0,0 +1,72 @@
+"use strict";
+
+const { mixin } = require("../../utils");
+const EventModifierMixinImpl = require("./EventModifierMixin-impl").implementation;
+const UIEventImpl = require("./UIEvent-impl").implementation;
+
+const MouseEventInit = require("../generated/MouseEventInit");
+
+class MouseEventImpl extends UIEventImpl {
+ get x() {
+ return this.clientX;
+ }
+ get y() {
+ return this.clientY;
+ }
+ get pageX() {
+ // TODO: consider dispatch flag and return page-relative event coordinate once layout is supported
+ return this.clientX; // TODO: add horizontal scroll offset once jsdom implements scrolling support
+ }
+ get pageY() {
+ // TODO: consider dispatch flag and return page-relative event coordinate once layout is supported
+ return this.clientY; // TODO: add vertical scroll offset once jsdom implements scrolling support
+ }
+ get offsetX() {
+ // TODO: consider dispatch flag and return target-relative event coordinate once layout is supported
+ return this.pageX;
+ }
+ get offsetY() {
+ // TODO: consider dispatch flag and return target-relative event coordinate once layout is supported
+ return this.pageY;
+ }
+
+ initMouseEvent(
+ type,
+ bubbles,
+ cancelable,
+ view,
+ detail,
+ screenX,
+ screenY,
+ clientX,
+ clientY,
+ ctrlKey,
+ altKey,
+ shiftKey,
+ metaKey,
+ button,
+ relatedTarget
+ ) {
+ if (this._dispatchFlag) {
+ return;
+ }
+
+ this.initUIEvent(type, bubbles, cancelable, view, detail);
+ this.screenX = screenX;
+ this.screenY = screenY;
+ this.clientX = clientX;
+ this.clientY = clientY;
+ this.ctrlKey = ctrlKey;
+ this.altKey = altKey;
+ this.shiftKey = shiftKey;
+ this.metaKey = metaKey;
+ this.button = button;
+ this.relatedTarget = relatedTarget;
+ }
+}
+mixin(MouseEventImpl.prototype, EventModifierMixinImpl.prototype);
+MouseEventImpl.defaultInit = MouseEventInit.convert(undefined, undefined);
+
+module.exports = {
+ implementation: MouseEventImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/events/PageTransitionEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/PageTransitionEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..565f2469dd613400c8f956140a64c552933caae9
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/PageTransitionEvent-impl.js
@@ -0,0 +1,20 @@
+"use strict";
+
+const EventImpl = require("./Event-impl").implementation;
+
+const PageTransitionEventInit = require("../generated/PageTransitionEventInit");
+
+// https://html.spec.whatwg.org/multipage/browsing-the-web.html#pagetransitionevent
+class PageTransitionEventImpl extends EventImpl {
+ initPageTransitionEvent(type, bubbles, cancelable, persisted) {
+ if (this._dispatchFlag) {
+ return;
+ }
+
+ this.initEvent(type, bubbles, cancelable);
+ this.persisted = persisted;
+ }
+}
+PageTransitionEventImpl.defaultInit = PageTransitionEventInit.convert(undefined, undefined);
+
+exports.implementation = PageTransitionEventImpl;
diff --git a/node_modules/jsdom/lib/jsdom/living/events/PointerEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/PointerEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..2ad77f298f1e5f7468f971e18c91a549919561dd
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/PointerEvent-impl.js
@@ -0,0 +1,21 @@
+"use strict";
+const MouseEventImpl = require("./MouseEvent-impl").implementation;
+const PointerEventInit = require("../generated/PointerEventInit");
+
+class PointerEventImpl extends MouseEventImpl {
+ getCoalescedEvents() {
+ // The EventImpl constructor initializes this.coalescedEvents from the init dictionary.
+ // Return a new array each time (webidl2js doesn't handle this for us.)
+ return [...this.coalescedEvents];
+ }
+
+ getPredictedEvents() {
+ // As above.
+ return [...this.predictedEvents];
+ }
+}
+PointerEventImpl.defaultInit = PointerEventInit.convert(undefined, undefined);
+
+module.exports = {
+ implementation: PointerEventImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/events/PopStateEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/PopStateEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..a500201c62c2da23fb3031841d3e02e5a7a99b8c
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/PopStateEvent-impl.js
@@ -0,0 +1,9 @@
+"use strict";
+const EventImpl = require("./Event-impl.js").implementation;
+
+const PopStateEventInit = require("../generated/PopStateEventInit");
+
+class PopStateEventImpl extends EventImpl {}
+PopStateEventImpl.defaultInit = PopStateEventInit.convert(undefined, undefined);
+
+exports.implementation = PopStateEventImpl;
diff --git a/node_modules/jsdom/lib/jsdom/living/events/ProgressEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/ProgressEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..59dcf033fb7997b9beed69b2188cd95b621fc11c
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/ProgressEvent-impl.js
@@ -0,0 +1,14 @@
+"use strict";
+
+const EventImpl = require("./Event-impl").implementation;
+
+const ProgressEventInit = require("../generated/ProgressEventInit");
+
+class ProgressEventImpl extends EventImpl {
+
+}
+ProgressEventImpl.defaultInit = ProgressEventInit.convert(undefined, undefined);
+
+module.exports = {
+ implementation: ProgressEventImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/events/PromiseRejectionEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/PromiseRejectionEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..601241cec3869b3f66d34c6e855a9349b6541aee
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/PromiseRejectionEvent-impl.js
@@ -0,0 +1,14 @@
+"use strict";
+const EventImpl = require("./Event-impl").implementation;
+
+class PromiseRejectionEventImpl extends EventImpl {}
+
+// Cannot use the usual pattern because `promise` is required.
+PromiseRejectionEventImpl.defaultInit = {
+ __proto__: null,
+ reason: undefined
+};
+
+module.exports = {
+ implementation: PromiseRejectionEventImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/events/StorageEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/StorageEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..9eb6c264b09c5c445ceebc97f69cf1a8658ebb4d
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/StorageEvent-impl.js
@@ -0,0 +1,26 @@
+"use strict";
+
+const EventImpl = require("./Event-impl").implementation;
+
+const StorageEventInit = require("../generated/StorageEventInit");
+
+// https://html.spec.whatwg.org/multipage/webstorage.html#the-storageevent-interface
+class StorageEventImpl extends EventImpl {
+ initStorageEvent(type, bubbles, cancelable, key, oldValue, newValue, url, storageArea) {
+ if (this._dispatchFlag) {
+ return;
+ }
+
+ this.initEvent(type, bubbles, cancelable);
+ this.key = key;
+ this.oldValue = oldValue;
+ this.newValue = newValue;
+ this.url = url;
+ this.storageArea = storageArea;
+ }
+}
+StorageEventImpl.defaultInit = StorageEventInit.convert(undefined, undefined);
+
+module.exports = {
+ implementation: StorageEventImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/events/SubmitEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/SubmitEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..2a9886e1369c7f6ee55abe697cb3b870034bee06
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/SubmitEvent-impl.js
@@ -0,0 +1,13 @@
+"use strict";
+
+const EventImpl = require("./Event-impl").implementation;
+
+const SubmitEventInit = require("../generated/SubmitEventInit");
+
+// https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#the-submitevent-interface
+class SubmitEventImpl extends EventImpl {}
+SubmitEventImpl.defaultInit = SubmitEventInit.convert(undefined, undefined);
+
+module.exports = {
+ implementation: SubmitEventImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/events/TouchEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/TouchEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..623d20caee2ff55b294d3382e4a14e867c15c714
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/TouchEvent-impl.js
@@ -0,0 +1,14 @@
+"use strict";
+
+const UIEventImpl = require("./UIEvent-impl").implementation;
+
+const TouchEventInit = require("../generated/TouchEventInit");
+
+class TouchEventImpl extends UIEventImpl {
+
+}
+TouchEventImpl.defaultInit = TouchEventInit.convert(undefined, undefined);
+
+module.exports = {
+ implementation: TouchEventImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/events/TransitionEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/TransitionEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..b66fa5458cbb87f58777395e237e56060c346fa6
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/TransitionEvent-impl.js
@@ -0,0 +1,10 @@
+"use strict";
+const EventImpl = require("./Event-impl").implementation;
+const TransitionEventInit = require("../generated/TransitionEventInit");
+
+class TransitionEventImpl extends EventImpl {}
+TransitionEventImpl.defaultInit = TransitionEventInit.convert(undefined, undefined);
+
+module.exports = {
+ implementation: TransitionEventImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/events/UIEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/UIEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..5f7465b265e8029cdb72fb680a680549f556c33e
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/UIEvent-impl.js
@@ -0,0 +1,43 @@
+"use strict";
+
+const isWindow = require("../helpers/is-window");
+const UIEventInit = require("../generated/UIEventInit");
+const EventImpl = require("./Event-impl").implementation;
+
+class UIEventImpl extends EventImpl {
+ constructor(globalObject, args, privateData) {
+ const eventInitDict = args[1];
+
+ // undefined check included so that we can omit the property in internal usage.
+ if (eventInitDict && eventInitDict.view !== null && eventInitDict.view !== undefined) {
+ if (!isWindow(eventInitDict.view)) {
+ throw new TypeError(`Failed to construct '${new.target.name.replace(/Impl$/, "")}': member view is not of ` +
+ "type Window.");
+ }
+ }
+
+ super(globalObject, args, privateData);
+ }
+
+ initUIEvent(type, bubbles, cancelable, view, detail) {
+ if (view !== null) {
+ if (!isWindow(view)) {
+ throw new TypeError(`Failed to execute 'initUIEvent' on '${this.constructor.name.replace(/Impl$/, "")}': ` +
+ "parameter 4 is not of type 'Window'.");
+ }
+ }
+
+ if (this._dispatchFlag) {
+ return;
+ }
+
+ this.initEvent(type, bubbles, cancelable);
+ this.view = view;
+ this.detail = detail;
+ }
+}
+UIEventImpl.defaultInit = UIEventInit.convert(undefined, undefined);
+
+module.exports = {
+ implementation: UIEventImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/events/WheelEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/WheelEvent-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..c8ba88242c9997e99714a7180d2d83d2c94e4fd3
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/events/WheelEvent-impl.js
@@ -0,0 +1,12 @@
+"use strict";
+
+const MouseEventImpl = require("./MouseEvent-impl").implementation;
+
+const WheelEventInit = require("../generated/WheelEventInit");
+
+class WheelEventImpl extends MouseEventImpl {}
+WheelEventImpl.defaultInit = WheelEventInit.convert(undefined, undefined);
+
+module.exports = {
+ implementation: WheelEventImpl
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/fetch/Headers-impl.js b/node_modules/jsdom/lib/jsdom/living/fetch/Headers-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..335d1f06bdd77a20a7870a82a9addfacfacd7339
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/fetch/Headers-impl.js
@@ -0,0 +1,172 @@
+"use strict";
+
+const {
+ isForbidden,
+ isForbiddenResponse,
+ isPrivilegedNoCORSRequest,
+ isNoCORSSafelistedRequest,
+ isCORSWhitelisted
+} = require("./header-types");
+const HeaderList = require("./header-list");
+
+function assertName(name) {
+ if (!name.match(/^[!#$%&'*+\-.^`|~\w]+$/)) {
+ throw new TypeError("name is invalid");
+ }
+}
+
+function assertValue(value) {
+ if (value.match(/[\0\r\n]/)) {
+ throw new TypeError("value is invalid");
+ }
+}
+
+// https://fetch.spec.whatwg.org/#concept-header-value-normalize
+function normalizeValue(potentialValue) {
+ return potentialValue.replace(/^[\n\r\t ]+|[\n\r\t ]+$/g, "");
+}
+
+class HeadersImpl {
+ constructor(globalObject, args) {
+ this.guard = "none";
+ this.headersList = new HeaderList();
+
+ if (args[0]) {
+ this._fill(args[0]);
+ }
+ }
+
+ _fill(init) {
+ if (Array.isArray(init)) {
+ for (const header of init) {
+ if (header.length !== 2) {
+ throw new TypeError("init is invalid");
+ }
+ this.append(header[0], header[1]);
+ }
+ } else {
+ for (const key of Object.keys(init)) {
+ this.append(key, init[key]);
+ }
+ }
+ }
+
+ has(name) {
+ assertName(name);
+ return this.headersList.contains(name);
+ }
+
+ getSetCookie() {
+ return this.headersList.get("Set-Cookie") || [];
+ }
+
+ get(name) {
+ assertName(name);
+ const r = this.headersList.get(name);
+ if (!r) {
+ return null;
+ }
+ return r.join(", ");
+ }
+
+ _removePrivilegedNoCORSHeaders() {
+ this.headersList.delete("range");
+ }
+
+ append(name, value) {
+ value = normalizeValue(value);
+ assertName(name);
+ assertValue(value);
+
+ switch (this.guard) {
+ case "immutable":
+ throw new TypeError("Headers is immutable");
+ case "request":
+ if (isForbidden(name)) {
+ return;
+ }
+ break;
+ case "request-no-cors": {
+ if (!isCORSWhitelisted(name, value)) {
+ return;
+ }
+ break;
+ }
+ case "response":
+ if (isForbiddenResponse(name)) {
+ return;
+ }
+ break;
+ }
+
+ this.headersList.append(name, value);
+ this._removePrivilegedNoCORSHeaders();
+ }
+
+ set(name, value) {
+ value = normalizeValue(value);
+ assertName(name);
+ assertValue(value);
+
+ switch (this.guard) {
+ case "immutable":
+ throw new TypeError("Headers is immutable");
+ case "request":
+ if (isForbidden(name)) {
+ return;
+ }
+ break;
+ case "request-no-cors": {
+ if (!isCORSWhitelisted(name, value)) {
+ return;
+ }
+ break;
+ }
+ case "response":
+ if (isForbiddenResponse(name)) {
+ return;
+ }
+ break;
+ }
+ this.headersList.set(name, value);
+ this._removePrivilegedNoCORSHeaders();
+ }
+
+ delete(name) {
+ assertName(name);
+
+ switch (this.guard) {
+ case "immutable":
+ throw new TypeError("Headers is immutable");
+ case "request":
+ if (isForbidden(name)) {
+ return;
+ }
+ break;
+ case "request-no-cors": {
+ if (
+ !isNoCORSSafelistedRequest(name) &&
+ !isPrivilegedNoCORSRequest(name)
+ ) {
+ return;
+ }
+ break;
+ }
+ case "response":
+ if (isForbiddenResponse(name)) {
+ return;
+ }
+ break;
+ }
+ this.headersList.delete(name);
+ this._removePrivilegedNoCORSHeaders();
+ }
+
+ * [Symbol.iterator]() {
+ for (const header of this.headersList.sortAndCombine()) {
+ yield header;
+ }
+ }
+}
+
+exports.implementation = HeadersImpl;
diff --git a/node_modules/jsdom/lib/jsdom/living/fetch/header-list.js b/node_modules/jsdom/lib/jsdom/living/fetch/header-list.js
new file mode 100644
index 0000000000000000000000000000000000000000..53b377e65240dbbec0ccce8e669675ee55ca3f31
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/fetch/header-list.js
@@ -0,0 +1,65 @@
+"use strict";
+
+/**
+ * Provides some utility functions for somewhat efficiently modifying a
+ * collection of headers.
+ *
+ * Note that this class only operates on ByteStrings (which is also why we use
+ * toLowerCase internally).
+ */
+class HeaderList {
+ constructor() {
+ this.headers = new Map();
+ }
+
+ append(name, value) {
+ const existing = this.headers.get(name.toLowerCase());
+ if (existing) {
+ existing.push(value);
+ } else {
+ this.headers.set(name.toLowerCase(), [value]);
+ }
+ }
+
+ contains(name) {
+ return this.headers.has(name.toLowerCase());
+ }
+
+ get(name) {
+ name = name.toLowerCase();
+ const values = this.headers.get(name);
+ if (!values) {
+ return null;
+ }
+ return values;
+ }
+
+ delete(name) {
+ this.headers.delete(name.toLowerCase());
+ }
+
+ set(name, value) {
+ const lowerName = name.toLowerCase();
+ this.headers.delete(lowerName);
+ this.headers.set(lowerName, [value]);
+ }
+
+ sortAndCombine() {
+ const names = [...this.headers.keys()].sort();
+
+ const headers = [];
+ for (const name of names) {
+ if (name === "set-cookie") {
+ for (const value of this.get(name)) {
+ headers.push([name, value]);
+ }
+ } else {
+ headers.push([name, this.get(name).join(", ")]);
+ }
+ }
+
+ return headers;
+ }
+}
+
+module.exports = HeaderList;
diff --git a/node_modules/jsdom/lib/jsdom/living/fetch/header-types.js b/node_modules/jsdom/lib/jsdom/living/fetch/header-types.js
new file mode 100644
index 0000000000000000000000000000000000000000..ac3637d2f25f3510d34dfb541d3bd0069604ff90
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/fetch/header-types.js
@@ -0,0 +1,103 @@
+"use strict";
+
+const MIMEType = require("whatwg-mimetype");
+
+const PRIVILEGED_NO_CORS_REQUEST = new Set(["range"]);
+function isPrivilegedNoCORSRequest(name) {
+ return PRIVILEGED_NO_CORS_REQUEST.has(name.toLowerCase());
+}
+
+const NO_CORS_SAFELISTED_REQUEST = new Set([
+ `accept`,
+ `accept-language`,
+ `content-language`,
+ `content-type`
+]);
+function isNoCORSSafelistedRequest(name) {
+ return NO_CORS_SAFELISTED_REQUEST.has(name.toLowerCase());
+}
+
+const FORBIDDEN = new Set([
+ `accept-charset`,
+ `accept-encoding`,
+ `access-control-request-headers`,
+ `access-control-request-method`,
+ `connection`,
+ `content-length`,
+ `cookie`,
+ `cookie2`,
+ `date`,
+ `dnt`,
+ `expect`,
+ `host`,
+ `keep-alive`,
+ `origin`,
+ `referer`,
+ `te`,
+ `trailer`,
+ `transfer-encoding`,
+ `upgrade`,
+ `via`
+]);
+function isForbidden(name) {
+ name = name.toLowerCase();
+ return (
+ FORBIDDEN.has(name) || name.startsWith("proxy-") || name.startsWith("sec-")
+ );
+}
+
+const FORBIDDEN_RESPONSE = new Set(["set-cookie", "set-cookie2"]);
+function isForbiddenResponse(name) {
+ return FORBIDDEN_RESPONSE.has(name.toLowerCase());
+}
+
+const CORS_UNSAFE_BYTE = /[\x00-\x08\x0A-\x1F"():<>?@[\\\]{}\x7F]/;
+function isCORSWhitelisted(name, value) {
+ name = name.toLowerCase();
+ switch (name) {
+ case "accept":
+ if (value.match(CORS_UNSAFE_BYTE)) {
+ return false;
+ }
+ break;
+ case "accept-language":
+ case "content-language":
+ if (value.match(/[^\x30-\x39\x41-\x5A\x61-\x7A *,\-.;=]/)) {
+ return false;
+ }
+ break;
+ case "content-type": {
+ if (value.match(CORS_UNSAFE_BYTE)) {
+ return false;
+ }
+ const mimeType = MIMEType.parse(value);
+ if (mimeType === null) {
+ return false;
+ }
+ if (
+ ![
+ "application/x-www-form-urlencoded",
+ "multipart/form-data",
+ "text/plain"
+ ].includes(mimeType.essence)
+ ) {
+ return false;
+ }
+ break;
+ }
+ default:
+ return false;
+ }
+ if (Buffer.from(value).length > 128) {
+ return false;
+ }
+ return true;
+}
+
+module.exports = {
+ isPrivilegedNoCORSRequest,
+ isNoCORSSafelistedRequest,
+ isForbidden,
+ isForbiddenResponse,
+ isCORSWhitelisted
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/file-api/Blob-impl.js b/node_modules/jsdom/lib/jsdom/living/file-api/Blob-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..02cc09f600d3674071b8bc1969aba75c241d5f0a
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/file-api/Blob-impl.js
@@ -0,0 +1,93 @@
+"use strict";
+const Blob = require("../generated/Blob");
+const { isArrayBuffer } = require("../generated/utils");
+
+function convertLineEndingsToNative(s) {
+ // jsdom always pretends to be *nix, for consistency.
+ // See also https://github.com/jsdom/jsdom/issues/2396.
+ return s.replace(/\r\n|\r|\n/g, "\n");
+}
+
+exports.implementation = class BlobImpl {
+ constructor(globalObject, args) {
+ const parts = args[0];
+ const properties = args[1];
+
+ const buffers = [];
+
+ if (parts !== undefined) {
+ for (const part of parts) {
+ let buffer;
+ if (isArrayBuffer(part)) {
+ buffer = Buffer.from(part);
+ } else if (ArrayBuffer.isView(part)) {
+ buffer = Buffer.from(part.buffer, part.byteOffset, part.byteLength);
+ } else if (Blob.isImpl(part)) {
+ buffer = part._buffer;
+ } else {
+ let s = part;
+ if (properties.endings === "native") {
+ s = convertLineEndingsToNative(part);
+ }
+ buffer = Buffer.from(s);
+ }
+ buffers.push(buffer);
+ }
+ }
+
+ this._buffer = Buffer.concat(buffers);
+ this._globalObject = globalObject;
+
+ this.type = properties.type;
+ if (/[^\u0020-\u007E]/.test(this.type)) {
+ this.type = "";
+ } else {
+ this.type = this.type.toLowerCase();
+ }
+ }
+
+ get size() {
+ return this._buffer.length;
+ }
+
+ slice(start, end, contentType) {
+ const { size } = this;
+
+ let relativeStart, relativeEnd, relativeContentType;
+
+ if (start === undefined) {
+ relativeStart = 0;
+ } else if (start < 0) {
+ relativeStart = Math.max(size + start, 0);
+ } else {
+ relativeStart = Math.min(start, size);
+ }
+ if (end === undefined) {
+ relativeEnd = size;
+ } else if (end < 0) {
+ relativeEnd = Math.max(size + end, 0);
+ } else {
+ relativeEnd = Math.min(end, size);
+ }
+
+ if (contentType === undefined) {
+ relativeContentType = "";
+ } else {
+ // sanitization (lower case and invalid char check) is done in the
+ // constructor
+ relativeContentType = contentType;
+ }
+
+ const span = Math.max(relativeEnd - relativeStart, 0);
+
+ const buffer = this._buffer;
+ const slicedBuffer = buffer.slice(
+ relativeStart,
+ relativeStart + span
+ );
+
+ const blob = Blob.createImpl(this._globalObject, [[], { type: relativeContentType }], {});
+ blob._buffer = slicedBuffer;
+ return blob;
+ }
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/file-api/File-impl.js b/node_modules/jsdom/lib/jsdom/living/file-api/File-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..911faaf1714b746999ab75b37cede9f74a4bceb3
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/file-api/File-impl.js
@@ -0,0 +1,12 @@
+"use strict";
+
+const BlobImpl = require("./Blob-impl").implementation;
+
+exports.implementation = class FileImpl extends BlobImpl {
+ constructor(globalObject, [fileBits, fileName, options], privateData) {
+ super(globalObject, [fileBits, options], privateData);
+
+ this.name = fileName;
+ this.lastModified = "lastModified" in options ? options.lastModified : Date.now();
+ }
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/file-api/FileList-impl.js b/node_modules/jsdom/lib/jsdom/living/file-api/FileList-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..04eedcbc9d87013728d1f0f412c1cae3528f603b
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/file-api/FileList-impl.js
@@ -0,0 +1,15 @@
+"use strict";
+
+const idlUtils = require("../generated/utils.js");
+
+exports.implementation = class FileListImpl extends Array {
+ constructor() {
+ super(0);
+ }
+ item(index) {
+ return this[index] || null;
+ }
+ get [idlUtils.supportedPropertyIndices]() {
+ return this.keys();
+ }
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/file-api/FileReader-impl.js b/node_modules/jsdom/lib/jsdom/living/file-api/FileReader-impl.js
new file mode 100644
index 0000000000000000000000000000000000000000..1cb677c14a1ae7364e15d52371890382d73c1815
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/file-api/FileReader-impl.js
@@ -0,0 +1,130 @@
+"use strict";
+
+const whatwgEncoding = require("whatwg-encoding");
+const MIMEType = require("whatwg-mimetype");
+const DOMException = require("../generated/DOMException");
+const EventTargetImpl = require("../events/EventTarget-impl").implementation;
+const ProgressEvent = require("../generated/ProgressEvent");
+const { setupForSimpleEventAccessors } = require("../helpers/create-event-accessor");
+const { fireAnEvent } = require("../helpers/events");
+const { copyToArrayBufferInNewRealm } = require("../helpers/binary-data");
+
+const READY_STATES = Object.freeze({
+ EMPTY: 0,
+ LOADING: 1,
+ DONE: 2
+});
+
+const events = ["loadstart", "progress", "load", "abort", "error", "loadend"];
+
+class FileReaderImpl extends EventTargetImpl {
+ constructor(globalObject, args, privateData) {
+ super(globalObject, args, privateData);
+
+ this.error = null;
+ this.readyState = READY_STATES.EMPTY;
+ this.result = null;
+
+ this._globalObject = globalObject;
+ this._ownerDocument = globalObject.document;
+ this._terminated = false;
+ }
+
+ readAsArrayBuffer(file) {
+ this._readFile(file, "buffer");
+ }
+ readAsBinaryString(file) {
+ this._readFile(file, "binaryString");
+ }
+ readAsDataURL(file) {
+ this._readFile(file, "dataURL");
+ }
+ readAsText(file, encoding) {
+ this._readFile(file, "text", whatwgEncoding.labelToName(encoding) || "UTF-8");
+ }
+
+ abort() {
+ if (this.readyState === READY_STATES.EMPTY || this.readyState === READY_STATES.DONE) {
+ this.result = null;
+ return;
+ }
+
+ if (this.readyState === READY_STATES.LOADING) {
+ this.readyState = READY_STATES.DONE;
+ this.result = null;
+ }
+
+ this._terminated = true;
+ this._fireProgressEvent("abort");
+ this._fireProgressEvent("loadend");
+ }
+
+ _fireProgressEvent(name, props) {
+ fireAnEvent(name, this, ProgressEvent, props);
+ }
+
+ _readFile(file, format, encoding) {
+ if (this.readyState === READY_STATES.LOADING) {
+ throw DOMException.create(this._globalObject, [
+ "The object is in an invalid state.",
+ "InvalidStateError"
+ ]);
+ }
+
+ this.readyState = READY_STATES.LOADING;
+
+ setImmediate(() => {
+ if (this._terminated) {
+ this._terminated = false;
+ return;
+ }
+
+ this._fireProgressEvent("loadstart");
+
+ let data = file._buffer;
+ if (!data) {
+ data = Buffer.alloc(0);
+ }
+ this._fireProgressEvent("progress", {
+ lengthComputable: !isNaN(file.size),
+ total: file.size,
+ loaded: data.length
+ });
+
+ setImmediate(() => {
+ if (this._terminated) {
+ this._terminated = false;
+ return;
+ }
+
+ switch (format) {
+ case "binaryString": {
+ this.result = data.toString("binary");
+ break;
+ }
+ case "dataURL": {
+ // Spec seems very unclear here; see https://github.com/w3c/FileAPI/issues/104.
+ const contentType = MIMEType.parse(file.type) || "application/octet-stream";
+ this.result = `data:${contentType};base64,${data.toString("base64")}`;
+ break;
+ }
+ case "text": {
+ this.result = whatwgEncoding.decode(data, encoding);
+ break;
+ }
+ case "buffer":
+ default: {
+ this.result = copyToArrayBufferInNewRealm(data, this._globalObject);
+ break;
+ }
+ }
+ this.readyState = READY_STATES.DONE;
+ this._fireProgressEvent("load");
+ this._fireProgressEvent("loadend");
+ });
+ });
+ }
+}
+setupForSimpleEventAccessors(FileReaderImpl.prototype, events);
+
+exports.implementation = FileReaderImpl;
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/AbortController.js b/node_modules/jsdom/lib/jsdom/living/generated/AbortController.js
new file mode 100644
index 0000000000000000000000000000000000000000..a08b424f58fe791b5232203af69d6f1de81b1eee
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/AbortController.js
@@ -0,0 +1,143 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "AbortController";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'AbortController'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["AbortController"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class AbortController {
+ constructor() {
+ return exports.setup(Object.create(new.target.prototype), globalObject, undefined);
+ }
+
+ abort() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'abort' called on an object that is not a valid instance of AbortController."
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg !== undefined) {
+ curArg = conversions["any"](curArg, {
+ context: "Failed to execute 'abort' on 'AbortController': parameter 1",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].abort(...args);
+ }
+
+ get signal() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get signal' called on an object that is not a valid instance of AbortController."
+ );
+ }
+
+ return utils.getSameObject(this, "signal", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["signal"]);
+ });
+ }
+ }
+ Object.defineProperties(AbortController.prototype, {
+ abort: { enumerable: true },
+ signal: { enumerable: true },
+ [Symbol.toStringTag]: { value: "AbortController", configurable: true }
+ });
+ ctorRegistry[interfaceName] = AbortController;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: AbortController
+ });
+};
+
+const Impl = require("../aborting/AbortController-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/AbortSignal.js b/node_modules/jsdom/lib/jsdom/living/generated/AbortSignal.js
new file mode 100644
index 0000000000000000000000000000000000000000..4b52812226fef582cad3aad92f906a10519c08a8
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/AbortSignal.js
@@ -0,0 +1,249 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const EventHandlerNonNull = require("./EventHandlerNonNull.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const EventTarget = require("./EventTarget.js");
+
+const interfaceName = "AbortSignal";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'AbortSignal'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["AbortSignal"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ EventTarget._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class AbortSignal extends globalObject.EventTarget {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ throwIfAborted() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'throwIfAborted' called on an object that is not a valid instance of AbortSignal."
+ );
+ }
+
+ return esValue[implSymbol].throwIfAborted();
+ }
+
+ get aborted() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get aborted' called on an object that is not a valid instance of AbortSignal."
+ );
+ }
+
+ return esValue[implSymbol]["aborted"];
+ }
+
+ get reason() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get reason' called on an object that is not a valid instance of AbortSignal."
+ );
+ }
+
+ return esValue[implSymbol]["reason"];
+ }
+
+ get onabort() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onabort' called on an object that is not a valid instance of AbortSignal."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onabort"]);
+ }
+
+ set onabort(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onabort' called on an object that is not a valid instance of AbortSignal."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onabort' property on 'AbortSignal': The provided value"
+ });
+ }
+ esValue[implSymbol]["onabort"] = V;
+ }
+
+ static abort() {
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg !== undefined) {
+ curArg = conversions["any"](curArg, {
+ context: "Failed to execute 'abort' on 'AbortSignal': parameter 1",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(Impl.implementation.abort(globalObject, ...args));
+ }
+
+ static timeout(milliseconds) {
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'timeout' on 'AbortSignal': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["unsigned long long"](curArg, {
+ context: "Failed to execute 'timeout' on 'AbortSignal': parameter 1",
+ globals: globalObject,
+ enforceRange: true
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(Impl.implementation.timeout(globalObject, ...args));
+ }
+
+ static any(signals) {
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'any' on 'AbortSignal': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (!utils.isObject(curArg)) {
+ throw new globalObject.TypeError(
+ "Failed to execute 'any' on 'AbortSignal': parameter 1" + " is not an iterable object."
+ );
+ } else {
+ const V = [];
+ const tmp = curArg;
+ for (let nextItem of tmp) {
+ nextItem = exports.convert(globalObject, nextItem, {
+ context: "Failed to execute 'any' on 'AbortSignal': parameter 1" + "'s element"
+ });
+
+ V.push(nextItem);
+ }
+ curArg = V;
+ }
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(Impl.implementation.any(globalObject, ...args));
+ }
+ }
+ Object.defineProperties(AbortSignal.prototype, {
+ throwIfAborted: { enumerable: true },
+ aborted: { enumerable: true },
+ reason: { enumerable: true },
+ onabort: { enumerable: true },
+ [Symbol.toStringTag]: { value: "AbortSignal", configurable: true }
+ });
+ Object.defineProperties(AbortSignal, {
+ abort: { enumerable: true },
+ timeout: { enumerable: true },
+ any: { enumerable: true }
+ });
+ ctorRegistry[interfaceName] = AbortSignal;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: AbortSignal
+ });
+};
+
+const Impl = require("../aborting/AbortSignal-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/AbstractRange.js b/node_modules/jsdom/lib/jsdom/living/generated/AbstractRange.js
new file mode 100644
index 0000000000000000000000000000000000000000..37af8d4125cda51eda567a7f4058f3f7746d74c0
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/AbstractRange.js
@@ -0,0 +1,171 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "AbstractRange";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'AbstractRange'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["AbstractRange"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class AbstractRange {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ get startContainer() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get startContainer' called on an object that is not a valid instance of AbstractRange."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["startContainer"]);
+ }
+
+ get startOffset() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get startOffset' called on an object that is not a valid instance of AbstractRange."
+ );
+ }
+
+ return esValue[implSymbol]["startOffset"];
+ }
+
+ get endContainer() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get endContainer' called on an object that is not a valid instance of AbstractRange."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["endContainer"]);
+ }
+
+ get endOffset() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get endOffset' called on an object that is not a valid instance of AbstractRange."
+ );
+ }
+
+ return esValue[implSymbol]["endOffset"];
+ }
+
+ get collapsed() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get collapsed' called on an object that is not a valid instance of AbstractRange."
+ );
+ }
+
+ return esValue[implSymbol]["collapsed"];
+ }
+ }
+ Object.defineProperties(AbstractRange.prototype, {
+ startContainer: { enumerable: true },
+ startOffset: { enumerable: true },
+ endContainer: { enumerable: true },
+ endOffset: { enumerable: true },
+ collapsed: { enumerable: true },
+ [Symbol.toStringTag]: { value: "AbstractRange", configurable: true }
+ });
+ ctorRegistry[interfaceName] = AbstractRange;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: AbstractRange
+ });
+};
+
+const Impl = require("../range/AbstractRange-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/AddEventListenerOptions.js b/node_modules/jsdom/lib/jsdom/living/generated/AddEventListenerOptions.js
new file mode 100644
index 0000000000000000000000000000000000000000..18a4a67bfd0a2196addbec7fc99754bef27d71ef
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/AddEventListenerOptions.js
@@ -0,0 +1,53 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const AbortSignal = require("./AbortSignal.js");
+const EventListenerOptions = require("./EventListenerOptions.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ EventListenerOptions._convertInherit(globalObject, obj, ret, { context });
+
+ {
+ const key = "once";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, { context: context + " has member 'once' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+
+ {
+ const key = "passive";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, { context: context + " has member 'passive' that", globals: globalObject });
+
+ ret[key] = value;
+ }
+ }
+
+ {
+ const key = "signal";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = AbortSignal.convert(globalObject, value, { context: context + " has member 'signal' that" });
+
+ ret[key] = value;
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/AssignedNodesOptions.js b/node_modules/jsdom/lib/jsdom/living/generated/AssignedNodesOptions.js
new file mode 100644
index 0000000000000000000000000000000000000000..6a68e093f23883998615fce08244545e07c917d0
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/AssignedNodesOptions.js
@@ -0,0 +1,28 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ {
+ const key = "flatten";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, { context: context + " has member 'flatten' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/Attr.js b/node_modules/jsdom/lib/jsdom/living/generated/Attr.js
new file mode 100644
index 0000000000000000000000000000000000000000..7ac8d1041b96e5d079db38209ceb1cebc412060c
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/Attr.js
@@ -0,0 +1,217 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const Node = require("./Node.js");
+
+const interfaceName = "Attr";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'Attr'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["Attr"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ Node._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class Attr extends globalObject.Node {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ get namespaceURI() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get namespaceURI' called on an object that is not a valid instance of Attr."
+ );
+ }
+
+ return esValue[implSymbol]["namespaceURI"];
+ }
+
+ get prefix() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get prefix' called on an object that is not a valid instance of Attr.");
+ }
+
+ return esValue[implSymbol]["prefix"];
+ }
+
+ get localName() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get localName' called on an object that is not a valid instance of Attr.");
+ }
+
+ return esValue[implSymbol]["localName"];
+ }
+
+ get name() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get name' called on an object that is not a valid instance of Attr.");
+ }
+
+ return esValue[implSymbol]["name"];
+ }
+
+ get value() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get value' called on an object that is not a valid instance of Attr.");
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["value"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set value(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set value' called on an object that is not a valid instance of Attr.");
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'value' property on 'Attr': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["value"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ownerElement() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ownerElement' called on an object that is not a valid instance of Attr."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ownerElement"]);
+ }
+
+ get specified() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get specified' called on an object that is not a valid instance of Attr.");
+ }
+
+ return esValue[implSymbol]["specified"];
+ }
+ }
+ Object.defineProperties(Attr.prototype, {
+ namespaceURI: { enumerable: true },
+ prefix: { enumerable: true },
+ localName: { enumerable: true },
+ name: { enumerable: true },
+ value: { enumerable: true },
+ ownerElement: { enumerable: true },
+ specified: { enumerable: true },
+ [Symbol.toStringTag]: { value: "Attr", configurable: true }
+ });
+ ctorRegistry[interfaceName] = Attr;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: Attr
+ });
+};
+
+const Impl = require("../attributes/Attr-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/BarProp.js b/node_modules/jsdom/lib/jsdom/living/generated/BarProp.js
new file mode 100644
index 0000000000000000000000000000000000000000..071dd5cb501f4c35bcfa88427732a4fd542619e4
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/BarProp.js
@@ -0,0 +1,117 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "BarProp";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'BarProp'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["BarProp"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class BarProp {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ get visible() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get visible' called on an object that is not a valid instance of BarProp.");
+ }
+
+ return esValue[implSymbol]["visible"];
+ }
+ }
+ Object.defineProperties(BarProp.prototype, {
+ visible: { enumerable: true },
+ [Symbol.toStringTag]: { value: "BarProp", configurable: true }
+ });
+ ctorRegistry[interfaceName] = BarProp;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: BarProp
+ });
+};
+
+const Impl = require("../window/BarProp-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/BeforeUnloadEvent.js b/node_modules/jsdom/lib/jsdom/living/generated/BeforeUnloadEvent.js
new file mode 100644
index 0000000000000000000000000000000000000000..ac3e74f40c26f19e0a9cb917b19fa8d376b13deb
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/BeforeUnloadEvent.js
@@ -0,0 +1,139 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const Event = require("./Event.js");
+
+const interfaceName = "BeforeUnloadEvent";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'BeforeUnloadEvent'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["BeforeUnloadEvent"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ Event._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class BeforeUnloadEvent extends globalObject.Event {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ get returnValue() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get returnValue' called on an object that is not a valid instance of BeforeUnloadEvent."
+ );
+ }
+
+ return esValue[implSymbol]["returnValue"];
+ }
+
+ set returnValue(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set returnValue' called on an object that is not a valid instance of BeforeUnloadEvent."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'returnValue' property on 'BeforeUnloadEvent': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["returnValue"] = V;
+ }
+ }
+ Object.defineProperties(BeforeUnloadEvent.prototype, {
+ returnValue: { enumerable: true },
+ [Symbol.toStringTag]: { value: "BeforeUnloadEvent", configurable: true }
+ });
+ ctorRegistry[interfaceName] = BeforeUnloadEvent;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: BeforeUnloadEvent
+ });
+};
+
+const Impl = require("../events/BeforeUnloadEvent-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/BinaryType.js b/node_modules/jsdom/lib/jsdom/living/generated/BinaryType.js
new file mode 100644
index 0000000000000000000000000000000000000000..72fb5740c0782f4d5f02e8f2a37cbfac61118cc0
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/BinaryType.js
@@ -0,0 +1,12 @@
+"use strict";
+
+const enumerationValues = new Set(["blob", "arraybuffer"]);
+exports.enumerationValues = enumerationValues;
+
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ const string = `${value}`;
+ if (!enumerationValues.has(string)) {
+ throw new globalObject.TypeError(`${context} '${string}' is not a valid enumeration value for BinaryType`);
+ }
+ return string;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/Blob.js b/node_modules/jsdom/lib/jsdom/living/generated/Blob.js
new file mode 100644
index 0000000000000000000000000000000000000000..3ff4872aec16b654848651b5e38b02d044d1486a
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/Blob.js
@@ -0,0 +1,211 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const BlobPropertyBag = require("./BlobPropertyBag.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "Blob";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'Blob'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["Blob"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class Blob {
+ constructor() {
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg !== undefined) {
+ if (!utils.isObject(curArg)) {
+ throw new globalObject.TypeError("Failed to construct 'Blob': parameter 1" + " is not an iterable object.");
+ } else {
+ const V = [];
+ const tmp = curArg;
+ for (let nextItem of tmp) {
+ if (exports.is(nextItem)) {
+ nextItem = utils.implForWrapper(nextItem);
+ } else if (utils.isArrayBuffer(nextItem)) {
+ nextItem = conversions["ArrayBuffer"](nextItem, {
+ context: "Failed to construct 'Blob': parameter 1" + "'s element",
+ globals: globalObject
+ });
+ } else if (ArrayBuffer.isView(nextItem)) {
+ nextItem = conversions["ArrayBufferView"](nextItem, {
+ context: "Failed to construct 'Blob': parameter 1" + "'s element",
+ globals: globalObject
+ });
+ } else {
+ nextItem = conversions["USVString"](nextItem, {
+ context: "Failed to construct 'Blob': parameter 1" + "'s element",
+ globals: globalObject
+ });
+ }
+ V.push(nextItem);
+ }
+ curArg = V;
+ }
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = BlobPropertyBag.convert(globalObject, curArg, { context: "Failed to construct 'Blob': parameter 2" });
+ args.push(curArg);
+ }
+ return exports.setup(Object.create(new.target.prototype), globalObject, args);
+ }
+
+ slice() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'slice' called on an object that is not a valid instance of Blob.");
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg !== undefined) {
+ curArg = conversions["long long"](curArg, {
+ context: "Failed to execute 'slice' on 'Blob': parameter 1",
+ globals: globalObject,
+ clamp: true
+ });
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg !== undefined) {
+ curArg = conversions["long long"](curArg, {
+ context: "Failed to execute 'slice' on 'Blob': parameter 2",
+ globals: globalObject,
+ clamp: true
+ });
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ if (curArg !== undefined) {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'slice' on 'Blob': parameter 3",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].slice(...args));
+ }
+
+ get size() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get size' called on an object that is not a valid instance of Blob.");
+ }
+
+ return esValue[implSymbol]["size"];
+ }
+
+ get type() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get type' called on an object that is not a valid instance of Blob.");
+ }
+
+ return esValue[implSymbol]["type"];
+ }
+ }
+ Object.defineProperties(Blob.prototype, {
+ slice: { enumerable: true },
+ size: { enumerable: true },
+ type: { enumerable: true },
+ [Symbol.toStringTag]: { value: "Blob", configurable: true }
+ });
+ ctorRegistry[interfaceName] = Blob;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: Blob
+ });
+};
+
+const Impl = require("../file-api/Blob-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/BlobCallback.js b/node_modules/jsdom/lib/jsdom/living/generated/BlobCallback.js
new file mode 100644
index 0000000000000000000000000000000000000000..a302a40ea524c46765ce414503f0f24c058aa9ec
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/BlobCallback.js
@@ -0,0 +1,30 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (typeof value !== "function") {
+ throw new globalObject.TypeError(context + " is not a function");
+ }
+
+ function invokeTheCallbackFunction(blob) {
+ const thisArg = utils.tryWrapperForImpl(this);
+ let callResult;
+
+ blob = utils.tryWrapperForImpl(blob);
+
+ callResult = Reflect.apply(value, thisArg, [blob]);
+ }
+
+ invokeTheCallbackFunction.construct = blob => {
+ blob = utils.tryWrapperForImpl(blob);
+
+ let callResult = Reflect.construct(value, [blob]);
+ };
+
+ invokeTheCallbackFunction[utils.wrapperSymbol] = value;
+ invokeTheCallbackFunction.objectReference = value;
+
+ return invokeTheCallbackFunction;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/BlobEvent.js b/node_modules/jsdom/lib/jsdom/living/generated/BlobEvent.js
new file mode 100644
index 0000000000000000000000000000000000000000..0902bcda0de5c6dc4e5fa67da8e6a55b1975659f
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/BlobEvent.js
@@ -0,0 +1,157 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const BlobEventInit = require("./BlobEventInit.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const Event = require("./Event.js");
+
+const interfaceName = "BlobEvent";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'BlobEvent'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["BlobEvent"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ Event._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class BlobEvent extends globalObject.Event {
+ constructor(type, eventInitDict) {
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to construct 'BlobEvent': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to construct 'BlobEvent': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = BlobEventInit.convert(globalObject, curArg, {
+ context: "Failed to construct 'BlobEvent': parameter 2"
+ });
+ args.push(curArg);
+ }
+ return exports.setup(Object.create(new.target.prototype), globalObject, args);
+ }
+
+ get data() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get data' called on an object that is not a valid instance of BlobEvent.");
+ }
+
+ return utils.getSameObject(this, "data", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["data"]);
+ });
+ }
+
+ get timecode() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get timecode' called on an object that is not a valid instance of BlobEvent."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["timecode"]);
+ }
+ }
+ Object.defineProperties(BlobEvent.prototype, {
+ data: { enumerable: true },
+ timecode: { enumerable: true },
+ [Symbol.toStringTag]: { value: "BlobEvent", configurable: true }
+ });
+ ctorRegistry[interfaceName] = BlobEvent;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: BlobEvent
+ });
+};
+
+const Impl = require("../events/BlobEvent-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/BlobEventInit.js b/node_modules/jsdom/lib/jsdom/living/generated/BlobEventInit.js
new file mode 100644
index 0000000000000000000000000000000000000000..a3598078dfebd2025e4eba03d974c1a10d3b935a
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/BlobEventInit.js
@@ -0,0 +1,43 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const Blob = require("./Blob.js");
+const EventInit = require("./EventInit.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ EventInit._convertInherit(globalObject, obj, ret, { context });
+
+ {
+ const key = "data";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = Blob.convert(globalObject, value, { context: context + " has member 'data' that" });
+
+ ret[key] = value;
+ } else {
+ throw new globalObject.TypeError("data is required in 'BlobEventInit'");
+ }
+ }
+
+ {
+ const key = "timecode";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["double"](value, { context: context + " has member 'timecode' that", globals: globalObject });
+
+ ret[key] = value;
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/BlobPropertyBag.js b/node_modules/jsdom/lib/jsdom/living/generated/BlobPropertyBag.js
new file mode 100644
index 0000000000000000000000000000000000000000..fc202113b34f9de5a9ea6652b68097bb5a500d07
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/BlobPropertyBag.js
@@ -0,0 +1,42 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const EndingType = require("./EndingType.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ {
+ const key = "endings";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = EndingType.convert(globalObject, value, { context: context + " has member 'endings' that" });
+
+ ret[key] = value;
+ } else {
+ ret[key] = "transparent";
+ }
+ }
+
+ {
+ const key = "type";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["DOMString"](value, { context: context + " has member 'type' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = "";
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/CDATASection.js b/node_modules/jsdom/lib/jsdom/living/generated/CDATASection.js
new file mode 100644
index 0000000000000000000000000000000000000000..1fa98addc9a814db1132fbf015bd3c3b3506131d
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/CDATASection.js
@@ -0,0 +1,109 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const Text = require("./Text.js");
+
+const interfaceName = "CDATASection";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'CDATASection'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["CDATASection"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ Text._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class CDATASection extends globalObject.Text {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+ }
+ Object.defineProperties(CDATASection.prototype, {
+ [Symbol.toStringTag]: { value: "CDATASection", configurable: true }
+ });
+ ctorRegistry[interfaceName] = CDATASection;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: CDATASection
+ });
+};
+
+const Impl = require("../nodes/CDATASection-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/CanPlayTypeResult.js b/node_modules/jsdom/lib/jsdom/living/generated/CanPlayTypeResult.js
new file mode 100644
index 0000000000000000000000000000000000000000..2ebe3834d3200edd96da07d476cd636289667780
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/CanPlayTypeResult.js
@@ -0,0 +1,12 @@
+"use strict";
+
+const enumerationValues = new Set(["", "maybe", "probably"]);
+exports.enumerationValues = enumerationValues;
+
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ const string = `${value}`;
+ if (!enumerationValues.has(string)) {
+ throw new globalObject.TypeError(`${context} '${string}' is not a valid enumeration value for CanPlayTypeResult`);
+ }
+ return string;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/CharacterData.js b/node_modules/jsdom/lib/jsdom/living/generated/CharacterData.js
new file mode 100644
index 0000000000000000000000000000000000000000..50eb6e0f341899b1187f72f0e487d6a3df89a4fa
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/CharacterData.js
@@ -0,0 +1,453 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const Node = require("./Node.js");
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "CharacterData";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'CharacterData'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["CharacterData"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ Node._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class CharacterData extends globalObject.Node {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ substringData(offset, count) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'substringData' called on an object that is not a valid instance of CharacterData."
+ );
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'substringData' on 'CharacterData': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'substringData' on 'CharacterData': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'substringData' on 'CharacterData': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].substringData(...args);
+ }
+
+ appendData(data) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'appendData' called on an object that is not a valid instance of CharacterData."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'appendData' on 'CharacterData': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'appendData' on 'CharacterData': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].appendData(...args);
+ }
+
+ insertData(offset, data) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'insertData' called on an object that is not a valid instance of CharacterData."
+ );
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'insertData' on 'CharacterData': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'insertData' on 'CharacterData': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'insertData' on 'CharacterData': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].insertData(...args);
+ }
+
+ deleteData(offset, count) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'deleteData' called on an object that is not a valid instance of CharacterData."
+ );
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'deleteData' on 'CharacterData': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'deleteData' on 'CharacterData': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'deleteData' on 'CharacterData': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].deleteData(...args);
+ }
+
+ replaceData(offset, count, data) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'replaceData' called on an object that is not a valid instance of CharacterData."
+ );
+ }
+
+ if (arguments.length < 3) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'replaceData' on 'CharacterData': 3 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'replaceData' on 'CharacterData': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'replaceData' on 'CharacterData': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'replaceData' on 'CharacterData': parameter 3",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].replaceData(...args);
+ }
+
+ before() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'before' called on an object that is not a valid instance of CharacterData.");
+ }
+ const args = [];
+ for (let i = 0; i < arguments.length; i++) {
+ let curArg = arguments[i];
+ if (Node.is(curArg)) {
+ curArg = utils.implForWrapper(curArg);
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'before' on 'CharacterData': parameter " + (i + 1),
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].before(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ after() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'after' called on an object that is not a valid instance of CharacterData.");
+ }
+ const args = [];
+ for (let i = 0; i < arguments.length; i++) {
+ let curArg = arguments[i];
+ if (Node.is(curArg)) {
+ curArg = utils.implForWrapper(curArg);
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'after' on 'CharacterData': parameter " + (i + 1),
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].after(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ replaceWith() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'replaceWith' called on an object that is not a valid instance of CharacterData."
+ );
+ }
+ const args = [];
+ for (let i = 0; i < arguments.length; i++) {
+ let curArg = arguments[i];
+ if (Node.is(curArg)) {
+ curArg = utils.implForWrapper(curArg);
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'replaceWith' on 'CharacterData': parameter " + (i + 1),
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].replaceWith(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ remove() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'remove' called on an object that is not a valid instance of CharacterData.");
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].remove();
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get data() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get data' called on an object that is not a valid instance of CharacterData."
+ );
+ }
+
+ return esValue[implSymbol]["data"];
+ }
+
+ set data(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set data' called on an object that is not a valid instance of CharacterData."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'data' property on 'CharacterData': The provided value",
+ globals: globalObject,
+ treatNullAsEmptyString: true
+ });
+
+ esValue[implSymbol]["data"] = V;
+ }
+
+ get length() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get length' called on an object that is not a valid instance of CharacterData."
+ );
+ }
+
+ return esValue[implSymbol]["length"];
+ }
+
+ get previousElementSibling() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get previousElementSibling' called on an object that is not a valid instance of CharacterData."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["previousElementSibling"]);
+ }
+
+ get nextElementSibling() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get nextElementSibling' called on an object that is not a valid instance of CharacterData."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["nextElementSibling"]);
+ }
+ }
+ Object.defineProperties(CharacterData.prototype, {
+ substringData: { enumerable: true },
+ appendData: { enumerable: true },
+ insertData: { enumerable: true },
+ deleteData: { enumerable: true },
+ replaceData: { enumerable: true },
+ before: { enumerable: true },
+ after: { enumerable: true },
+ replaceWith: { enumerable: true },
+ remove: { enumerable: true },
+ data: { enumerable: true },
+ length: { enumerable: true },
+ previousElementSibling: { enumerable: true },
+ nextElementSibling: { enumerable: true },
+ [Symbol.toStringTag]: { value: "CharacterData", configurable: true },
+ [Symbol.unscopables]: {
+ value: { before: true, after: true, replaceWith: true, remove: true, __proto__: null },
+ configurable: true
+ }
+ });
+ ctorRegistry[interfaceName] = CharacterData;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: CharacterData
+ });
+};
+
+const Impl = require("../nodes/CharacterData-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/CloseEvent.js b/node_modules/jsdom/lib/jsdom/living/generated/CloseEvent.js
new file mode 100644
index 0000000000000000000000000000000000000000..51dacc63f38a947a6b5e0f02769c398f62ee3e81
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/CloseEvent.js
@@ -0,0 +1,168 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const CloseEventInit = require("./CloseEventInit.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const Event = require("./Event.js");
+
+const interfaceName = "CloseEvent";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'CloseEvent'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["CloseEvent"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ Event._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class CloseEvent extends globalObject.Event {
+ constructor(type) {
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to construct 'CloseEvent': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to construct 'CloseEvent': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = CloseEventInit.convert(globalObject, curArg, {
+ context: "Failed to construct 'CloseEvent': parameter 2"
+ });
+ args.push(curArg);
+ }
+ return exports.setup(Object.create(new.target.prototype), globalObject, args);
+ }
+
+ get wasClean() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get wasClean' called on an object that is not a valid instance of CloseEvent."
+ );
+ }
+
+ return esValue[implSymbol]["wasClean"];
+ }
+
+ get code() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get code' called on an object that is not a valid instance of CloseEvent.");
+ }
+
+ return esValue[implSymbol]["code"];
+ }
+
+ get reason() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get reason' called on an object that is not a valid instance of CloseEvent."
+ );
+ }
+
+ return esValue[implSymbol]["reason"];
+ }
+ }
+ Object.defineProperties(CloseEvent.prototype, {
+ wasClean: { enumerable: true },
+ code: { enumerable: true },
+ reason: { enumerable: true },
+ [Symbol.toStringTag]: { value: "CloseEvent", configurable: true }
+ });
+ ctorRegistry[interfaceName] = CloseEvent;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: CloseEvent
+ });
+};
+
+const Impl = require("../events/CloseEvent-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/CloseEventInit.js b/node_modules/jsdom/lib/jsdom/living/generated/CloseEventInit.js
new file mode 100644
index 0000000000000000000000000000000000000000..afdb65b22cc03060bc8646b318276f04c6a09a29
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/CloseEventInit.js
@@ -0,0 +1,65 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const EventInit = require("./EventInit.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ EventInit._convertInherit(globalObject, obj, ret, { context });
+
+ {
+ const key = "code";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["unsigned short"](value, {
+ context: context + " has member 'code' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = 0;
+ }
+ }
+
+ {
+ const key = "reason";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["USVString"](value, {
+ context: context + " has member 'reason' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = "";
+ }
+ }
+
+ {
+ const key = "wasClean";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, {
+ context: context + " has member 'wasClean' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/Comment.js b/node_modules/jsdom/lib/jsdom/living/generated/Comment.js
new file mode 100644
index 0000000000000000000000000000000000000000..6c21cecc709a98b2ad11291221ef0fce3ecdcec4
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/Comment.js
@@ -0,0 +1,120 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const CharacterData = require("./CharacterData.js");
+
+const interfaceName = "Comment";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'Comment'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["Comment"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ CharacterData._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class Comment extends globalObject.CharacterData {
+ constructor() {
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg !== undefined) {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to construct 'Comment': parameter 1",
+ globals: globalObject
+ });
+ } else {
+ curArg = "";
+ }
+ args.push(curArg);
+ }
+ return exports.setup(Object.create(new.target.prototype), globalObject, args);
+ }
+ }
+ Object.defineProperties(Comment.prototype, { [Symbol.toStringTag]: { value: "Comment", configurable: true } });
+ ctorRegistry[interfaceName] = Comment;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: Comment
+ });
+};
+
+const Impl = require("../nodes/Comment-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/CompositionEvent.js b/node_modules/jsdom/lib/jsdom/living/generated/CompositionEvent.js
new file mode 100644
index 0000000000000000000000000000000000000000..d7c42ce5744c145bb8bb6aad26fec139d34ae0ee
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/CompositionEvent.js
@@ -0,0 +1,219 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const CompositionEventInit = require("./CompositionEventInit.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const UIEvent = require("./UIEvent.js");
+
+const interfaceName = "CompositionEvent";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'CompositionEvent'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["CompositionEvent"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ UIEvent._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class CompositionEvent extends globalObject.UIEvent {
+ constructor(type) {
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to construct 'CompositionEvent': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to construct 'CompositionEvent': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = CompositionEventInit.convert(globalObject, curArg, {
+ context: "Failed to construct 'CompositionEvent': parameter 2"
+ });
+ args.push(curArg);
+ }
+ return exports.setup(Object.create(new.target.prototype), globalObject, args);
+ }
+
+ initCompositionEvent(typeArg) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'initCompositionEvent' called on an object that is not a valid instance of CompositionEvent."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'initCompositionEvent' on 'CompositionEvent': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'initCompositionEvent' on 'CompositionEvent': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg !== undefined) {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'initCompositionEvent' on 'CompositionEvent': parameter 2",
+ globals: globalObject
+ });
+ } else {
+ curArg = false;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ if (curArg !== undefined) {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'initCompositionEvent' on 'CompositionEvent': parameter 3",
+ globals: globalObject
+ });
+ } else {
+ curArg = false;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[3];
+ if (curArg !== undefined) {
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = utils.tryImplForWrapper(curArg);
+ }
+ } else {
+ curArg = null;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[4];
+ if (curArg !== undefined) {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'initCompositionEvent' on 'CompositionEvent': parameter 5",
+ globals: globalObject
+ });
+ } else {
+ curArg = "";
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].initCompositionEvent(...args);
+ }
+
+ get data() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get data' called on an object that is not a valid instance of CompositionEvent."
+ );
+ }
+
+ return esValue[implSymbol]["data"];
+ }
+ }
+ Object.defineProperties(CompositionEvent.prototype, {
+ initCompositionEvent: { enumerable: true },
+ data: { enumerable: true },
+ [Symbol.toStringTag]: { value: "CompositionEvent", configurable: true }
+ });
+ ctorRegistry[interfaceName] = CompositionEvent;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: CompositionEvent
+ });
+};
+
+const Impl = require("../events/CompositionEvent-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/CompositionEventInit.js b/node_modules/jsdom/lib/jsdom/living/generated/CompositionEventInit.js
new file mode 100644
index 0000000000000000000000000000000000000000..e9d9c1d4bd28879094f6567f8740384a2530ab9e
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/CompositionEventInit.js
@@ -0,0 +1,32 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const UIEventInit = require("./UIEventInit.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ UIEventInit._convertInherit(globalObject, obj, ret, { context });
+
+ {
+ const key = "data";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["DOMString"](value, { context: context + " has member 'data' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = "";
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/Crypto.js b/node_modules/jsdom/lib/jsdom/living/generated/Crypto.js
new file mode 100644
index 0000000000000000000000000000000000000000..0c4c517952fa5b66f3dd293a7d3e4bc37b8a10dd
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/Crypto.js
@@ -0,0 +1,148 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "Crypto";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'Crypto'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["Crypto"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class Crypto {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ getRandomValues(array) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'getRandomValues' called on an object that is not a valid instance of Crypto."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'getRandomValues' on 'Crypto': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (ArrayBuffer.isView(curArg)) {
+ curArg = conversions["ArrayBufferView"](curArg, {
+ context: "Failed to execute 'getRandomValues' on 'Crypto': parameter 1",
+ globals: globalObject
+ });
+ } else {
+ throw new globalObject.TypeError(
+ "Failed to execute 'getRandomValues' on 'Crypto': parameter 1" + " is not of any supported type."
+ );
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].getRandomValues(...args);
+ }
+
+ randomUUID() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'randomUUID' called on an object that is not a valid instance of Crypto.");
+ }
+
+ return esValue[implSymbol].randomUUID();
+ }
+ }
+ Object.defineProperties(Crypto.prototype, {
+ getRandomValues: { enumerable: true },
+ randomUUID: { enumerable: true },
+ [Symbol.toStringTag]: { value: "Crypto", configurable: true }
+ });
+ ctorRegistry[interfaceName] = Crypto;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: Crypto
+ });
+};
+
+const Impl = require("../crypto/Crypto-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/CustomElementConstructor.js b/node_modules/jsdom/lib/jsdom/living/generated/CustomElementConstructor.js
new file mode 100644
index 0000000000000000000000000000000000000000..7fac7e0b860d7b81de559fd24d523e6ad8d62fad
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/CustomElementConstructor.js
@@ -0,0 +1,34 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (typeof value !== "function") {
+ throw new globalObject.TypeError(context + " is not a function");
+ }
+
+ function invokeTheCallbackFunction() {
+ const thisArg = utils.tryWrapperForImpl(this);
+ let callResult;
+
+ callResult = Reflect.apply(value, thisArg, []);
+
+ callResult = conversions["any"](callResult, { context: context, globals: globalObject });
+
+ return callResult;
+ }
+
+ invokeTheCallbackFunction.construct = () => {
+ let callResult = Reflect.construct(value, []);
+
+ callResult = conversions["any"](callResult, { context: context, globals: globalObject });
+
+ return callResult;
+ };
+
+ invokeTheCallbackFunction[utils.wrapperSymbol] = value;
+ invokeTheCallbackFunction.objectReference = value;
+
+ return invokeTheCallbackFunction;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/CustomElementRegistry.js b/node_modules/jsdom/lib/jsdom/living/generated/CustomElementRegistry.js
new file mode 100644
index 0000000000000000000000000000000000000000..627b7144d26299b0e6ceec2337d5f94dfea0385d
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/CustomElementRegistry.js
@@ -0,0 +1,267 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const CustomElementConstructor = require("./CustomElementConstructor.js");
+const ElementDefinitionOptions = require("./ElementDefinitionOptions.js");
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const Node = require("./Node.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "CustomElementRegistry";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'CustomElementRegistry'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["CustomElementRegistry"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class CustomElementRegistry {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ define(name, constructor) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'define' called on an object that is not a valid instance of CustomElementRegistry."
+ );
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'define' on 'CustomElementRegistry': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'define' on 'CustomElementRegistry': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = CustomElementConstructor.convert(globalObject, curArg, {
+ context: "Failed to execute 'define' on 'CustomElementRegistry': parameter 2"
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ curArg = ElementDefinitionOptions.convert(globalObject, curArg, {
+ context: "Failed to execute 'define' on 'CustomElementRegistry': parameter 3"
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].define(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get(name) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get' called on an object that is not a valid instance of CustomElementRegistry."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'get' on 'CustomElementRegistry': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'get' on 'CustomElementRegistry': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].get(...args);
+ }
+
+ getName(constructor) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'getName' called on an object that is not a valid instance of CustomElementRegistry."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'getName' on 'CustomElementRegistry': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = CustomElementConstructor.convert(globalObject, curArg, {
+ context: "Failed to execute 'getName' on 'CustomElementRegistry': parameter 1"
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].getName(...args);
+ }
+
+ whenDefined(name) {
+ try {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'whenDefined' called on an object that is not a valid instance of CustomElementRegistry."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'whenDefined' on 'CustomElementRegistry': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'whenDefined' on 'CustomElementRegistry': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].whenDefined(...args));
+ } catch (e) {
+ return globalObject.Promise.reject(e);
+ }
+ }
+
+ upgrade(root) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'upgrade' called on an object that is not a valid instance of CustomElementRegistry."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'upgrade' on 'CustomElementRegistry': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = Node.convert(globalObject, curArg, {
+ context: "Failed to execute 'upgrade' on 'CustomElementRegistry': parameter 1"
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].upgrade(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(CustomElementRegistry.prototype, {
+ define: { enumerable: true },
+ get: { enumerable: true },
+ getName: { enumerable: true },
+ whenDefined: { enumerable: true },
+ upgrade: { enumerable: true },
+ [Symbol.toStringTag]: { value: "CustomElementRegistry", configurable: true }
+ });
+ ctorRegistry[interfaceName] = CustomElementRegistry;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: CustomElementRegistry
+ });
+};
+
+const Impl = require("../custom-elements/CustomElementRegistry-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/CustomEvent.js b/node_modules/jsdom/lib/jsdom/living/generated/CustomEvent.js
new file mode 100644
index 0000000000000000000000000000000000000000..a264be126f7d47187aa057b9cbabbd879a5fbe56
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/CustomEvent.js
@@ -0,0 +1,206 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const CustomEventInit = require("./CustomEventInit.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const Event = require("./Event.js");
+
+const interfaceName = "CustomEvent";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'CustomEvent'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["CustomEvent"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ Event._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class CustomEvent extends globalObject.Event {
+ constructor(type) {
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to construct 'CustomEvent': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to construct 'CustomEvent': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = CustomEventInit.convert(globalObject, curArg, {
+ context: "Failed to construct 'CustomEvent': parameter 2"
+ });
+ args.push(curArg);
+ }
+ return exports.setup(Object.create(new.target.prototype), globalObject, args);
+ }
+
+ initCustomEvent(type) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'initCustomEvent' called on an object that is not a valid instance of CustomEvent."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'initCustomEvent' on 'CustomEvent': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'initCustomEvent' on 'CustomEvent': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg !== undefined) {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'initCustomEvent' on 'CustomEvent': parameter 2",
+ globals: globalObject
+ });
+ } else {
+ curArg = false;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ if (curArg !== undefined) {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'initCustomEvent' on 'CustomEvent': parameter 3",
+ globals: globalObject
+ });
+ } else {
+ curArg = false;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[3];
+ if (curArg !== undefined) {
+ curArg = conversions["any"](curArg, {
+ context: "Failed to execute 'initCustomEvent' on 'CustomEvent': parameter 4",
+ globals: globalObject
+ });
+ } else {
+ curArg = null;
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].initCustomEvent(...args);
+ }
+
+ get detail() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get detail' called on an object that is not a valid instance of CustomEvent."
+ );
+ }
+
+ return esValue[implSymbol]["detail"];
+ }
+ }
+ Object.defineProperties(CustomEvent.prototype, {
+ initCustomEvent: { enumerable: true },
+ detail: { enumerable: true },
+ [Symbol.toStringTag]: { value: "CustomEvent", configurable: true }
+ });
+ ctorRegistry[interfaceName] = CustomEvent;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: CustomEvent
+ });
+};
+
+const Impl = require("../events/CustomEvent-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/CustomEventInit.js b/node_modules/jsdom/lib/jsdom/living/generated/CustomEventInit.js
new file mode 100644
index 0000000000000000000000000000000000000000..faf921fe97a8e40b7a375c6e4dcdefd6d22f6999
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/CustomEventInit.js
@@ -0,0 +1,32 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const EventInit = require("./EventInit.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ EventInit._convertInherit(globalObject, obj, ret, { context });
+
+ {
+ const key = "detail";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["any"](value, { context: context + " has member 'detail' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = null;
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/DOMException.js b/node_modules/jsdom/lib/jsdom/living/generated/DOMException.js
new file mode 100644
index 0000000000000000000000000000000000000000..bcc5ff690afe24a1f8a5f79df6123c4fc7d8aeb8
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/DOMException.js
@@ -0,0 +1,222 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "DOMException";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'DOMException'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["DOMException"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class DOMException {
+ constructor() {
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg !== undefined) {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to construct 'DOMException': parameter 1",
+ globals: globalObject
+ });
+ } else {
+ curArg = "";
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg !== undefined) {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to construct 'DOMException': parameter 2",
+ globals: globalObject
+ });
+ } else {
+ curArg = "Error";
+ }
+ args.push(curArg);
+ }
+ return exports.setup(Object.create(new.target.prototype), globalObject, args);
+ }
+
+ get name() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get name' called on an object that is not a valid instance of DOMException."
+ );
+ }
+
+ return esValue[implSymbol]["name"];
+ }
+
+ get message() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get message' called on an object that is not a valid instance of DOMException."
+ );
+ }
+
+ return esValue[implSymbol]["message"];
+ }
+
+ get code() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get code' called on an object that is not a valid instance of DOMException."
+ );
+ }
+
+ return esValue[implSymbol]["code"];
+ }
+ }
+ Object.defineProperties(DOMException.prototype, {
+ name: { enumerable: true },
+ message: { enumerable: true },
+ code: { enumerable: true },
+ [Symbol.toStringTag]: { value: "DOMException", configurable: true },
+ INDEX_SIZE_ERR: { value: 1, enumerable: true },
+ DOMSTRING_SIZE_ERR: { value: 2, enumerable: true },
+ HIERARCHY_REQUEST_ERR: { value: 3, enumerable: true },
+ WRONG_DOCUMENT_ERR: { value: 4, enumerable: true },
+ INVALID_CHARACTER_ERR: { value: 5, enumerable: true },
+ NO_DATA_ALLOWED_ERR: { value: 6, enumerable: true },
+ NO_MODIFICATION_ALLOWED_ERR: { value: 7, enumerable: true },
+ NOT_FOUND_ERR: { value: 8, enumerable: true },
+ NOT_SUPPORTED_ERR: { value: 9, enumerable: true },
+ INUSE_ATTRIBUTE_ERR: { value: 10, enumerable: true },
+ INVALID_STATE_ERR: { value: 11, enumerable: true },
+ SYNTAX_ERR: { value: 12, enumerable: true },
+ INVALID_MODIFICATION_ERR: { value: 13, enumerable: true },
+ NAMESPACE_ERR: { value: 14, enumerable: true },
+ INVALID_ACCESS_ERR: { value: 15, enumerable: true },
+ VALIDATION_ERR: { value: 16, enumerable: true },
+ TYPE_MISMATCH_ERR: { value: 17, enumerable: true },
+ SECURITY_ERR: { value: 18, enumerable: true },
+ NETWORK_ERR: { value: 19, enumerable: true },
+ ABORT_ERR: { value: 20, enumerable: true },
+ URL_MISMATCH_ERR: { value: 21, enumerable: true },
+ QUOTA_EXCEEDED_ERR: { value: 22, enumerable: true },
+ TIMEOUT_ERR: { value: 23, enumerable: true },
+ INVALID_NODE_TYPE_ERR: { value: 24, enumerable: true },
+ DATA_CLONE_ERR: { value: 25, enumerable: true }
+ });
+ Object.defineProperties(DOMException, {
+ INDEX_SIZE_ERR: { value: 1, enumerable: true },
+ DOMSTRING_SIZE_ERR: { value: 2, enumerable: true },
+ HIERARCHY_REQUEST_ERR: { value: 3, enumerable: true },
+ WRONG_DOCUMENT_ERR: { value: 4, enumerable: true },
+ INVALID_CHARACTER_ERR: { value: 5, enumerable: true },
+ NO_DATA_ALLOWED_ERR: { value: 6, enumerable: true },
+ NO_MODIFICATION_ALLOWED_ERR: { value: 7, enumerable: true },
+ NOT_FOUND_ERR: { value: 8, enumerable: true },
+ NOT_SUPPORTED_ERR: { value: 9, enumerable: true },
+ INUSE_ATTRIBUTE_ERR: { value: 10, enumerable: true },
+ INVALID_STATE_ERR: { value: 11, enumerable: true },
+ SYNTAX_ERR: { value: 12, enumerable: true },
+ INVALID_MODIFICATION_ERR: { value: 13, enumerable: true },
+ NAMESPACE_ERR: { value: 14, enumerable: true },
+ INVALID_ACCESS_ERR: { value: 15, enumerable: true },
+ VALIDATION_ERR: { value: 16, enumerable: true },
+ TYPE_MISMATCH_ERR: { value: 17, enumerable: true },
+ SECURITY_ERR: { value: 18, enumerable: true },
+ NETWORK_ERR: { value: 19, enumerable: true },
+ ABORT_ERR: { value: 20, enumerable: true },
+ URL_MISMATCH_ERR: { value: 21, enumerable: true },
+ QUOTA_EXCEEDED_ERR: { value: 22, enumerable: true },
+ TIMEOUT_ERR: { value: 23, enumerable: true },
+ INVALID_NODE_TYPE_ERR: { value: 24, enumerable: true },
+ DATA_CLONE_ERR: { value: 25, enumerable: true }
+ });
+ ctorRegistry[interfaceName] = DOMException;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: DOMException
+ });
+};
+
+const Impl = require("../webidl/DOMException-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/DOMImplementation.js b/node_modules/jsdom/lib/jsdom/living/generated/DOMImplementation.js
new file mode 100644
index 0000000000000000000000000000000000000000..ee8ee5d50efd171191e11804c41c936b1dc48746
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/DOMImplementation.js
@@ -0,0 +1,237 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const DocumentType = require("./DocumentType.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "DOMImplementation";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'DOMImplementation'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["DOMImplementation"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class DOMImplementation {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ createDocumentType(qualifiedName, publicId, systemId) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'createDocumentType' called on an object that is not a valid instance of DOMImplementation."
+ );
+ }
+
+ if (arguments.length < 3) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'createDocumentType' on 'DOMImplementation': 3 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'createDocumentType' on 'DOMImplementation': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'createDocumentType' on 'DOMImplementation': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'createDocumentType' on 'DOMImplementation': parameter 3",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].createDocumentType(...args));
+ }
+
+ createDocument(namespace, qualifiedName) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'createDocument' called on an object that is not a valid instance of DOMImplementation."
+ );
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'createDocument' on 'DOMImplementation': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'createDocument' on 'DOMImplementation': parameter 1",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'createDocument' on 'DOMImplementation': parameter 2",
+ globals: globalObject,
+ treatNullAsEmptyString: true
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ if (curArg !== undefined) {
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = DocumentType.convert(globalObject, curArg, {
+ context: "Failed to execute 'createDocument' on 'DOMImplementation': parameter 3"
+ });
+ }
+ } else {
+ curArg = null;
+ }
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].createDocument(...args));
+ }
+
+ createHTMLDocument() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'createHTMLDocument' called on an object that is not a valid instance of DOMImplementation."
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg !== undefined) {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'createHTMLDocument' on 'DOMImplementation': parameter 1",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].createHTMLDocument(...args));
+ }
+
+ hasFeature() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'hasFeature' called on an object that is not a valid instance of DOMImplementation."
+ );
+ }
+
+ return esValue[implSymbol].hasFeature();
+ }
+ }
+ Object.defineProperties(DOMImplementation.prototype, {
+ createDocumentType: { enumerable: true },
+ createDocument: { enumerable: true },
+ createHTMLDocument: { enumerable: true },
+ hasFeature: { enumerable: true },
+ [Symbol.toStringTag]: { value: "DOMImplementation", configurable: true }
+ });
+ ctorRegistry[interfaceName] = DOMImplementation;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: DOMImplementation
+ });
+};
+
+const Impl = require("../nodes/DOMImplementation-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/DOMParser.js b/node_modules/jsdom/lib/jsdom/living/generated/DOMParser.js
new file mode 100644
index 0000000000000000000000000000000000000000..92eafdd942fe53e1affbcde2a0f6ae5475eda638
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/DOMParser.js
@@ -0,0 +1,140 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const SupportedType = require("./SupportedType.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "DOMParser";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'DOMParser'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["DOMParser"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class DOMParser {
+ constructor() {
+ return exports.setup(Object.create(new.target.prototype), globalObject, undefined);
+ }
+
+ parseFromString(str, type) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'parseFromString' called on an object that is not a valid instance of DOMParser."
+ );
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'parseFromString' on 'DOMParser': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'parseFromString' on 'DOMParser': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = SupportedType.convert(globalObject, curArg, {
+ context: "Failed to execute 'parseFromString' on 'DOMParser': parameter 2"
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].parseFromString(...args));
+ }
+ }
+ Object.defineProperties(DOMParser.prototype, {
+ parseFromString: { enumerable: true },
+ [Symbol.toStringTag]: { value: "DOMParser", configurable: true }
+ });
+ ctorRegistry[interfaceName] = DOMParser;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: DOMParser
+ });
+};
+
+const Impl = require("../domparsing/DOMParser-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/DOMRect.js b/node_modules/jsdom/lib/jsdom/living/generated/DOMRect.js
new file mode 100644
index 0000000000000000000000000000000000000000..869b26d8d1c386571d50a0f051693ea9c848fb4b
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/DOMRect.js
@@ -0,0 +1,276 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const DOMRectInit = require("./DOMRectInit.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const DOMRectReadOnly = require("./DOMRectReadOnly.js");
+
+const interfaceName = "DOMRect";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'DOMRect'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["DOMRect"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ DOMRectReadOnly._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class DOMRect extends globalObject.DOMRectReadOnly {
+ constructor() {
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg !== undefined) {
+ curArg = conversions["unrestricted double"](curArg, {
+ context: "Failed to construct 'DOMRect': parameter 1",
+ globals: globalObject
+ });
+ } else {
+ curArg = 0;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg !== undefined) {
+ curArg = conversions["unrestricted double"](curArg, {
+ context: "Failed to construct 'DOMRect': parameter 2",
+ globals: globalObject
+ });
+ } else {
+ curArg = 0;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ if (curArg !== undefined) {
+ curArg = conversions["unrestricted double"](curArg, {
+ context: "Failed to construct 'DOMRect': parameter 3",
+ globals: globalObject
+ });
+ } else {
+ curArg = 0;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[3];
+ if (curArg !== undefined) {
+ curArg = conversions["unrestricted double"](curArg, {
+ context: "Failed to construct 'DOMRect': parameter 4",
+ globals: globalObject
+ });
+ } else {
+ curArg = 0;
+ }
+ args.push(curArg);
+ }
+ return exports.setup(Object.create(new.target.prototype), globalObject, args);
+ }
+
+ get x() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get x' called on an object that is not a valid instance of DOMRect.");
+ }
+
+ return esValue[implSymbol]["x"];
+ }
+
+ set x(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set x' called on an object that is not a valid instance of DOMRect.");
+ }
+
+ V = conversions["unrestricted double"](V, {
+ context: "Failed to set the 'x' property on 'DOMRect': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["x"] = V;
+ }
+
+ get y() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get y' called on an object that is not a valid instance of DOMRect.");
+ }
+
+ return esValue[implSymbol]["y"];
+ }
+
+ set y(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set y' called on an object that is not a valid instance of DOMRect.");
+ }
+
+ V = conversions["unrestricted double"](V, {
+ context: "Failed to set the 'y' property on 'DOMRect': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["y"] = V;
+ }
+
+ get width() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get width' called on an object that is not a valid instance of DOMRect.");
+ }
+
+ return esValue[implSymbol]["width"];
+ }
+
+ set width(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set width' called on an object that is not a valid instance of DOMRect.");
+ }
+
+ V = conversions["unrestricted double"](V, {
+ context: "Failed to set the 'width' property on 'DOMRect': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["width"] = V;
+ }
+
+ get height() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get height' called on an object that is not a valid instance of DOMRect.");
+ }
+
+ return esValue[implSymbol]["height"];
+ }
+
+ set height(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set height' called on an object that is not a valid instance of DOMRect.");
+ }
+
+ V = conversions["unrestricted double"](V, {
+ context: "Failed to set the 'height' property on 'DOMRect': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["height"] = V;
+ }
+
+ static fromRect() {
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = DOMRectInit.convert(globalObject, curArg, {
+ context: "Failed to execute 'fromRect' on 'DOMRect': parameter 1"
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(Impl.implementation.fromRect(globalObject, ...args));
+ }
+ }
+ Object.defineProperties(DOMRect.prototype, {
+ x: { enumerable: true },
+ y: { enumerable: true },
+ width: { enumerable: true },
+ height: { enumerable: true },
+ [Symbol.toStringTag]: { value: "DOMRect", configurable: true }
+ });
+ Object.defineProperties(DOMRect, { fromRect: { enumerable: true } });
+ ctorRegistry[interfaceName] = DOMRect;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: DOMRect
+ });
+};
+
+const Impl = require("../geometry/DOMRect-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/DOMRectInit.js b/node_modules/jsdom/lib/jsdom/living/generated/DOMRectInit.js
new file mode 100644
index 0000000000000000000000000000000000000000..520aa969fc682462a2d2fba462c8c6551fa8acd4
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/DOMRectInit.js
@@ -0,0 +1,76 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ {
+ const key = "height";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["unrestricted double"](value, {
+ context: context + " has member 'height' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = 0;
+ }
+ }
+
+ {
+ const key = "width";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["unrestricted double"](value, {
+ context: context + " has member 'width' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = 0;
+ }
+ }
+
+ {
+ const key = "x";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["unrestricted double"](value, {
+ context: context + " has member 'x' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = 0;
+ }
+ }
+
+ {
+ const key = "y";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["unrestricted double"](value, {
+ context: context + " has member 'y' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = 0;
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/DOMRectReadOnly.js b/node_modules/jsdom/lib/jsdom/living/generated/DOMRectReadOnly.js
new file mode 100644
index 0000000000000000000000000000000000000000..79cdffe265e9e09ac430c32262d6dd0e0773cad5
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/DOMRectReadOnly.js
@@ -0,0 +1,285 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const DOMRectInit = require("./DOMRectInit.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "DOMRectReadOnly";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'DOMRectReadOnly'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["DOMRectReadOnly"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class DOMRectReadOnly {
+ constructor() {
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg !== undefined) {
+ curArg = conversions["unrestricted double"](curArg, {
+ context: "Failed to construct 'DOMRectReadOnly': parameter 1",
+ globals: globalObject
+ });
+ } else {
+ curArg = 0;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg !== undefined) {
+ curArg = conversions["unrestricted double"](curArg, {
+ context: "Failed to construct 'DOMRectReadOnly': parameter 2",
+ globals: globalObject
+ });
+ } else {
+ curArg = 0;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ if (curArg !== undefined) {
+ curArg = conversions["unrestricted double"](curArg, {
+ context: "Failed to construct 'DOMRectReadOnly': parameter 3",
+ globals: globalObject
+ });
+ } else {
+ curArg = 0;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[3];
+ if (curArg !== undefined) {
+ curArg = conversions["unrestricted double"](curArg, {
+ context: "Failed to construct 'DOMRectReadOnly': parameter 4",
+ globals: globalObject
+ });
+ } else {
+ curArg = 0;
+ }
+ args.push(curArg);
+ }
+ return exports.setup(Object.create(new.target.prototype), globalObject, args);
+ }
+
+ toJSON() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'toJSON' called on an object that is not a valid instance of DOMRectReadOnly."
+ );
+ }
+
+ return esValue[implSymbol].toJSON();
+ }
+
+ get x() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get x' called on an object that is not a valid instance of DOMRectReadOnly."
+ );
+ }
+
+ return esValue[implSymbol]["x"];
+ }
+
+ get y() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get y' called on an object that is not a valid instance of DOMRectReadOnly."
+ );
+ }
+
+ return esValue[implSymbol]["y"];
+ }
+
+ get width() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get width' called on an object that is not a valid instance of DOMRectReadOnly."
+ );
+ }
+
+ return esValue[implSymbol]["width"];
+ }
+
+ get height() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get height' called on an object that is not a valid instance of DOMRectReadOnly."
+ );
+ }
+
+ return esValue[implSymbol]["height"];
+ }
+
+ get top() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get top' called on an object that is not a valid instance of DOMRectReadOnly."
+ );
+ }
+
+ return esValue[implSymbol]["top"];
+ }
+
+ get right() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get right' called on an object that is not a valid instance of DOMRectReadOnly."
+ );
+ }
+
+ return esValue[implSymbol]["right"];
+ }
+
+ get bottom() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get bottom' called on an object that is not a valid instance of DOMRectReadOnly."
+ );
+ }
+
+ return esValue[implSymbol]["bottom"];
+ }
+
+ get left() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get left' called on an object that is not a valid instance of DOMRectReadOnly."
+ );
+ }
+
+ return esValue[implSymbol]["left"];
+ }
+
+ static fromRect() {
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = DOMRectInit.convert(globalObject, curArg, {
+ context: "Failed to execute 'fromRect' on 'DOMRectReadOnly': parameter 1"
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(Impl.implementation.fromRect(globalObject, ...args));
+ }
+ }
+ Object.defineProperties(DOMRectReadOnly.prototype, {
+ toJSON: { enumerable: true },
+ x: { enumerable: true },
+ y: { enumerable: true },
+ width: { enumerable: true },
+ height: { enumerable: true },
+ top: { enumerable: true },
+ right: { enumerable: true },
+ bottom: { enumerable: true },
+ left: { enumerable: true },
+ [Symbol.toStringTag]: { value: "DOMRectReadOnly", configurable: true }
+ });
+ Object.defineProperties(DOMRectReadOnly, { fromRect: { enumerable: true } });
+ ctorRegistry[interfaceName] = DOMRectReadOnly;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: DOMRectReadOnly
+ });
+};
+
+const Impl = require("../geometry/DOMRectReadOnly-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/DOMStringMap.js b/node_modules/jsdom/lib/jsdom/living/generated/DOMStringMap.js
new file mode 100644
index 0000000000000000000000000000000000000000..26a5fb6f3d4258050c0bd09cf19f85b319e23136
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/DOMStringMap.js
@@ -0,0 +1,297 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "DOMStringMap";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'DOMStringMap'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["DOMStringMap"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+function makeProxy(wrapper, globalObject) {
+ let proxyHandler = proxyHandlerCache.get(globalObject);
+ if (proxyHandler === undefined) {
+ proxyHandler = new ProxyHandler(globalObject);
+ proxyHandlerCache.set(globalObject, proxyHandler);
+ }
+ return new Proxy(wrapper, proxyHandler);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper = makeProxy(wrapper, globalObject);
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ let wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper = makeProxy(wrapper, globalObject);
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class DOMStringMap {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+ }
+ Object.defineProperties(DOMStringMap.prototype, {
+ [Symbol.toStringTag]: { value: "DOMStringMap", configurable: true }
+ });
+ ctorRegistry[interfaceName] = DOMStringMap;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: DOMStringMap
+ });
+};
+
+const proxyHandlerCache = new WeakMap();
+class ProxyHandler {
+ constructor(globalObject) {
+ this._globalObject = globalObject;
+ }
+
+ get(target, P, receiver) {
+ if (typeof P === "symbol") {
+ return Reflect.get(target, P, receiver);
+ }
+ const desc = this.getOwnPropertyDescriptor(target, P);
+ if (desc === undefined) {
+ const parent = Object.getPrototypeOf(target);
+ if (parent === null) {
+ return undefined;
+ }
+ return Reflect.get(target, P, receiver);
+ }
+ if (!desc.get && !desc.set) {
+ return desc.value;
+ }
+ const getter = desc.get;
+ if (getter === undefined) {
+ return undefined;
+ }
+ return Reflect.apply(getter, receiver, []);
+ }
+
+ has(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.has(target, P);
+ }
+ const desc = this.getOwnPropertyDescriptor(target, P);
+ if (desc !== undefined) {
+ return true;
+ }
+ const parent = Object.getPrototypeOf(target);
+ if (parent !== null) {
+ return Reflect.has(parent, P);
+ }
+ return false;
+ }
+
+ ownKeys(target) {
+ const keys = new Set();
+
+ for (const key of target[implSymbol][utils.supportedPropertyNames]) {
+ if (!Object.hasOwn(target, key)) {
+ keys.add(`${key}`);
+ }
+ }
+
+ for (const key of Reflect.ownKeys(target)) {
+ keys.add(key);
+ }
+ return [...keys];
+ }
+
+ getOwnPropertyDescriptor(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.getOwnPropertyDescriptor(target, P);
+ }
+ let ignoreNamedProps = false;
+
+ const namedValue = target[implSymbol][utils.namedGet](P);
+
+ if (namedValue !== undefined && !Object.hasOwn(target, P) && !ignoreNamedProps) {
+ return {
+ writable: true,
+ enumerable: true,
+ configurable: true,
+ value: utils.tryWrapperForImpl(namedValue)
+ };
+ }
+
+ return Reflect.getOwnPropertyDescriptor(target, P);
+ }
+
+ set(target, P, V, receiver) {
+ if (typeof P === "symbol") {
+ return Reflect.set(target, P, V, receiver);
+ }
+ // The `receiver` argument refers to the Proxy exotic object or an object
+ // that inherits from it, whereas `target` refers to the Proxy target:
+ if (target[implSymbol][utils.wrapperSymbol] === receiver) {
+ const globalObject = this._globalObject;
+
+ if (typeof P === "string") {
+ let namedValue = V;
+
+ namedValue = conversions["DOMString"](namedValue, {
+ context: "Failed to set the '" + P + "' property on 'DOMStringMap': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const creating = !(target[implSymbol][utils.namedGet](P) !== undefined);
+ if (creating) {
+ target[implSymbol][utils.namedSetNew](P, namedValue);
+ } else {
+ target[implSymbol][utils.namedSetExisting](P, namedValue);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+
+ return true;
+ }
+ }
+ let ownDesc;
+
+ if (ownDesc === undefined) {
+ ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
+ }
+ return utils.ordinarySetWithOwnDescriptor(target, P, V, receiver, ownDesc);
+ }
+
+ defineProperty(target, P, desc) {
+ if (typeof P === "symbol") {
+ return Reflect.defineProperty(target, P, desc);
+ }
+
+ const globalObject = this._globalObject;
+
+ if (desc.get || desc.set) {
+ return false;
+ }
+
+ let namedValue = desc.value;
+
+ namedValue = conversions["DOMString"](namedValue, {
+ context: "Failed to set the '" + P + "' property on 'DOMStringMap': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const creating = !(target[implSymbol][utils.namedGet](P) !== undefined);
+ if (creating) {
+ target[implSymbol][utils.namedSetNew](P, namedValue);
+ } else {
+ target[implSymbol][utils.namedSetExisting](P, namedValue);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+
+ return true;
+ }
+
+ deleteProperty(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.deleteProperty(target, P);
+ }
+
+ const globalObject = this._globalObject;
+
+ if (target[implSymbol][utils.namedGet](P) !== undefined && !Object.hasOwn(target, P)) {
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ target[implSymbol][utils.namedDelete](P);
+ return true;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ return Reflect.deleteProperty(target, P);
+ }
+
+ preventExtensions() {
+ return false;
+ }
+}
+
+const Impl = require("../nodes/DOMStringMap-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/DOMTokenList.js b/node_modules/jsdom/lib/jsdom/living/generated/DOMTokenList.js
new file mode 100644
index 0000000000000000000000000000000000000000..15e8ae4d1d475a1c04ae1c8c7a7ca719da3386b1
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/DOMTokenList.js
@@ -0,0 +1,537 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "DOMTokenList";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'DOMTokenList'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["DOMTokenList"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+function makeProxy(wrapper, globalObject) {
+ let proxyHandler = proxyHandlerCache.get(globalObject);
+ if (proxyHandler === undefined) {
+ proxyHandler = new ProxyHandler(globalObject);
+ proxyHandlerCache.set(globalObject, proxyHandler);
+ }
+ return new Proxy(wrapper, proxyHandler);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper = makeProxy(wrapper, globalObject);
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ let wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper = makeProxy(wrapper, globalObject);
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class DOMTokenList {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ item(index) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'item' called on an object that is not a valid instance of DOMTokenList.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'item' on 'DOMTokenList': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'item' on 'DOMTokenList': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].item(...args);
+ }
+
+ contains(token) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'contains' called on an object that is not a valid instance of DOMTokenList."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'contains' on 'DOMTokenList': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'contains' on 'DOMTokenList': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].contains(...args);
+ }
+
+ add() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'add' called on an object that is not a valid instance of DOMTokenList.");
+ }
+ const args = [];
+ for (let i = 0; i < arguments.length; i++) {
+ let curArg = arguments[i];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'add' on 'DOMTokenList': parameter " + (i + 1),
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].add(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ remove() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'remove' called on an object that is not a valid instance of DOMTokenList.");
+ }
+ const args = [];
+ for (let i = 0; i < arguments.length; i++) {
+ let curArg = arguments[i];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'remove' on 'DOMTokenList': parameter " + (i + 1),
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].remove(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ toggle(token) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'toggle' called on an object that is not a valid instance of DOMTokenList.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'toggle' on 'DOMTokenList': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'toggle' on 'DOMTokenList': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg !== undefined) {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'toggle' on 'DOMTokenList': parameter 2",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].toggle(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ replace(token, newToken) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'replace' called on an object that is not a valid instance of DOMTokenList.");
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'replace' on 'DOMTokenList': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'replace' on 'DOMTokenList': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'replace' on 'DOMTokenList': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].replace(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ supports(token) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'supports' called on an object that is not a valid instance of DOMTokenList."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'supports' on 'DOMTokenList': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'supports' on 'DOMTokenList': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].supports(...args);
+ }
+
+ get length() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get length' called on an object that is not a valid instance of DOMTokenList."
+ );
+ }
+
+ return esValue[implSymbol]["length"];
+ }
+
+ get value() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get value' called on an object that is not a valid instance of DOMTokenList."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["value"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set value(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set value' called on an object that is not a valid instance of DOMTokenList."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'value' property on 'DOMTokenList': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["value"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ toString() {
+ const esValue = this;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'toString' called on an object that is not a valid instance of DOMTokenList."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["value"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(DOMTokenList.prototype, {
+ item: { enumerable: true },
+ contains: { enumerable: true },
+ add: { enumerable: true },
+ remove: { enumerable: true },
+ toggle: { enumerable: true },
+ replace: { enumerable: true },
+ supports: { enumerable: true },
+ length: { enumerable: true },
+ value: { enumerable: true },
+ toString: { enumerable: true },
+ [Symbol.toStringTag]: { value: "DOMTokenList", configurable: true },
+ [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true },
+ keys: { value: globalObject.Array.prototype.keys, configurable: true, enumerable: true, writable: true },
+ values: { value: globalObject.Array.prototype.values, configurable: true, enumerable: true, writable: true },
+ entries: { value: globalObject.Array.prototype.entries, configurable: true, enumerable: true, writable: true },
+ forEach: { value: globalObject.Array.prototype.forEach, configurable: true, enumerable: true, writable: true }
+ });
+ ctorRegistry[interfaceName] = DOMTokenList;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: DOMTokenList
+ });
+};
+
+const proxyHandlerCache = new WeakMap();
+class ProxyHandler {
+ constructor(globalObject) {
+ this._globalObject = globalObject;
+ }
+
+ get(target, P, receiver) {
+ if (typeof P === "symbol") {
+ return Reflect.get(target, P, receiver);
+ }
+ const desc = this.getOwnPropertyDescriptor(target, P);
+ if (desc === undefined) {
+ const parent = Object.getPrototypeOf(target);
+ if (parent === null) {
+ return undefined;
+ }
+ return Reflect.get(target, P, receiver);
+ }
+ if (!desc.get && !desc.set) {
+ return desc.value;
+ }
+ const getter = desc.get;
+ if (getter === undefined) {
+ return undefined;
+ }
+ return Reflect.apply(getter, receiver, []);
+ }
+
+ has(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.has(target, P);
+ }
+ const desc = this.getOwnPropertyDescriptor(target, P);
+ if (desc !== undefined) {
+ return true;
+ }
+ const parent = Object.getPrototypeOf(target);
+ if (parent !== null) {
+ return Reflect.has(parent, P);
+ }
+ return false;
+ }
+
+ ownKeys(target) {
+ const keys = new Set();
+
+ for (const key of target[implSymbol][utils.supportedPropertyIndices]) {
+ keys.add(`${key}`);
+ }
+
+ for (const key of Reflect.ownKeys(target)) {
+ keys.add(key);
+ }
+ return [...keys];
+ }
+
+ getOwnPropertyDescriptor(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.getOwnPropertyDescriptor(target, P);
+ }
+ let ignoreNamedProps = false;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ const indexedValue = target[implSymbol].item(index);
+ if (indexedValue !== null) {
+ return {
+ writable: false,
+ enumerable: true,
+ configurable: true,
+ value: utils.tryWrapperForImpl(indexedValue)
+ };
+ }
+ ignoreNamedProps = true;
+ }
+
+ return Reflect.getOwnPropertyDescriptor(target, P);
+ }
+
+ set(target, P, V, receiver) {
+ if (typeof P === "symbol") {
+ return Reflect.set(target, P, V, receiver);
+ }
+ // The `receiver` argument refers to the Proxy exotic object or an object
+ // that inherits from it, whereas `target` refers to the Proxy target:
+ if (target[implSymbol][utils.wrapperSymbol] === receiver) {
+ const globalObject = this._globalObject;
+ }
+ let ownDesc;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ const indexedValue = target[implSymbol].item(index);
+ if (indexedValue !== null) {
+ ownDesc = {
+ writable: false,
+ enumerable: true,
+ configurable: true,
+ value: utils.tryWrapperForImpl(indexedValue)
+ };
+ }
+ }
+
+ if (ownDesc === undefined) {
+ ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
+ }
+ return utils.ordinarySetWithOwnDescriptor(target, P, V, receiver, ownDesc);
+ }
+
+ defineProperty(target, P, desc) {
+ if (typeof P === "symbol") {
+ return Reflect.defineProperty(target, P, desc);
+ }
+
+ const globalObject = this._globalObject;
+
+ if (utils.isArrayIndexPropName(P)) {
+ return false;
+ }
+
+ return Reflect.defineProperty(target, P, desc);
+ }
+
+ deleteProperty(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.deleteProperty(target, P);
+ }
+
+ const globalObject = this._globalObject;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ return !(target[implSymbol].item(index) !== null);
+ }
+
+ return Reflect.deleteProperty(target, P);
+ }
+
+ preventExtensions() {
+ return false;
+ }
+}
+
+const Impl = require("../nodes/DOMTokenList-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/DeviceMotionEvent.js b/node_modules/jsdom/lib/jsdom/living/generated/DeviceMotionEvent.js
new file mode 100644
index 0000000000000000000000000000000000000000..b743c4cfe6db79bb618c2485a133f9d0decc40fa
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/DeviceMotionEvent.js
@@ -0,0 +1,183 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const DeviceMotionEventInit = require("./DeviceMotionEventInit.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const Event = require("./Event.js");
+
+const interfaceName = "DeviceMotionEvent";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'DeviceMotionEvent'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["DeviceMotionEvent"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ Event._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class DeviceMotionEvent extends globalObject.Event {
+ constructor(type) {
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to construct 'DeviceMotionEvent': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to construct 'DeviceMotionEvent': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = DeviceMotionEventInit.convert(globalObject, curArg, {
+ context: "Failed to construct 'DeviceMotionEvent': parameter 2"
+ });
+ args.push(curArg);
+ }
+ return exports.setup(Object.create(new.target.prototype), globalObject, args);
+ }
+
+ get acceleration() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get acceleration' called on an object that is not a valid instance of DeviceMotionEvent."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["acceleration"]);
+ }
+
+ get accelerationIncludingGravity() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get accelerationIncludingGravity' called on an object that is not a valid instance of DeviceMotionEvent."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["accelerationIncludingGravity"]);
+ }
+
+ get rotationRate() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get rotationRate' called on an object that is not a valid instance of DeviceMotionEvent."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["rotationRate"]);
+ }
+
+ get interval() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get interval' called on an object that is not a valid instance of DeviceMotionEvent."
+ );
+ }
+
+ return esValue[implSymbol]["interval"];
+ }
+ }
+ Object.defineProperties(DeviceMotionEvent.prototype, {
+ acceleration: { enumerable: true },
+ accelerationIncludingGravity: { enumerable: true },
+ rotationRate: { enumerable: true },
+ interval: { enumerable: true },
+ [Symbol.toStringTag]: { value: "DeviceMotionEvent", configurable: true }
+ });
+ ctorRegistry[interfaceName] = DeviceMotionEvent;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: DeviceMotionEvent
+ });
+};
+
+const Impl = require("../events/DeviceMotionEvent-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/DeviceMotionEventAcceleration.js b/node_modules/jsdom/lib/jsdom/living/generated/DeviceMotionEventAcceleration.js
new file mode 100644
index 0000000000000000000000000000000000000000..f5ed43c5e872cdbf981b5dc108552ff1ec89c428
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/DeviceMotionEventAcceleration.js
@@ -0,0 +1,145 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "DeviceMotionEventAcceleration";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'DeviceMotionEventAcceleration'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["DeviceMotionEventAcceleration"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class DeviceMotionEventAcceleration {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ get x() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get x' called on an object that is not a valid instance of DeviceMotionEventAcceleration."
+ );
+ }
+
+ return esValue[implSymbol]["x"];
+ }
+
+ get y() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get y' called on an object that is not a valid instance of DeviceMotionEventAcceleration."
+ );
+ }
+
+ return esValue[implSymbol]["y"];
+ }
+
+ get z() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get z' called on an object that is not a valid instance of DeviceMotionEventAcceleration."
+ );
+ }
+
+ return esValue[implSymbol]["z"];
+ }
+ }
+ Object.defineProperties(DeviceMotionEventAcceleration.prototype, {
+ x: { enumerable: true },
+ y: { enumerable: true },
+ z: { enumerable: true },
+ [Symbol.toStringTag]: { value: "DeviceMotionEventAcceleration", configurable: true }
+ });
+ ctorRegistry[interfaceName] = DeviceMotionEventAcceleration;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: DeviceMotionEventAcceleration
+ });
+};
+
+const Impl = require("../deviceorientation/DeviceMotionEventAcceleration-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/DeviceMotionEventAccelerationInit.js b/node_modules/jsdom/lib/jsdom/living/generated/DeviceMotionEventAccelerationInit.js
new file mode 100644
index 0000000000000000000000000000000000000000..de24a13cf3de6d65765ee83dbad06849e1abbed6
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/DeviceMotionEventAccelerationInit.js
@@ -0,0 +1,61 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ {
+ const key = "x";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ if (value === null || value === undefined) {
+ value = null;
+ } else {
+ value = conversions["double"](value, { context: context + " has member 'x' that", globals: globalObject });
+ }
+ ret[key] = value;
+ } else {
+ ret[key] = null;
+ }
+ }
+
+ {
+ const key = "y";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ if (value === null || value === undefined) {
+ value = null;
+ } else {
+ value = conversions["double"](value, { context: context + " has member 'y' that", globals: globalObject });
+ }
+ ret[key] = value;
+ } else {
+ ret[key] = null;
+ }
+ }
+
+ {
+ const key = "z";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ if (value === null || value === undefined) {
+ value = null;
+ } else {
+ value = conversions["double"](value, { context: context + " has member 'z' that", globals: globalObject });
+ }
+ ret[key] = value;
+ } else {
+ ret[key] = null;
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/DeviceMotionEventInit.js b/node_modules/jsdom/lib/jsdom/living/generated/DeviceMotionEventInit.js
new file mode 100644
index 0000000000000000000000000000000000000000..9cb215e35bd055a722c4b20ba76ecd4ad2601bd0
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/DeviceMotionEventInit.js
@@ -0,0 +1,70 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const DeviceMotionEventAccelerationInit = require("./DeviceMotionEventAccelerationInit.js");
+const DeviceMotionEventRotationRateInit = require("./DeviceMotionEventRotationRateInit.js");
+const EventInit = require("./EventInit.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ EventInit._convertInherit(globalObject, obj, ret, { context });
+
+ {
+ const key = "acceleration";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = DeviceMotionEventAccelerationInit.convert(globalObject, value, {
+ context: context + " has member 'acceleration' that"
+ });
+
+ ret[key] = value;
+ }
+ }
+
+ {
+ const key = "accelerationIncludingGravity";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = DeviceMotionEventAccelerationInit.convert(globalObject, value, {
+ context: context + " has member 'accelerationIncludingGravity' that"
+ });
+
+ ret[key] = value;
+ }
+ }
+
+ {
+ const key = "interval";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["double"](value, { context: context + " has member 'interval' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = 0;
+ }
+ }
+
+ {
+ const key = "rotationRate";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = DeviceMotionEventRotationRateInit.convert(globalObject, value, {
+ context: context + " has member 'rotationRate' that"
+ });
+
+ ret[key] = value;
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/DeviceMotionEventRotationRate.js b/node_modules/jsdom/lib/jsdom/living/generated/DeviceMotionEventRotationRate.js
new file mode 100644
index 0000000000000000000000000000000000000000..7413f08aa7446cc4838e44b66cd491590683b279
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/DeviceMotionEventRotationRate.js
@@ -0,0 +1,145 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "DeviceMotionEventRotationRate";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'DeviceMotionEventRotationRate'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["DeviceMotionEventRotationRate"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class DeviceMotionEventRotationRate {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ get alpha() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get alpha' called on an object that is not a valid instance of DeviceMotionEventRotationRate."
+ );
+ }
+
+ return esValue[implSymbol]["alpha"];
+ }
+
+ get beta() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get beta' called on an object that is not a valid instance of DeviceMotionEventRotationRate."
+ );
+ }
+
+ return esValue[implSymbol]["beta"];
+ }
+
+ get gamma() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get gamma' called on an object that is not a valid instance of DeviceMotionEventRotationRate."
+ );
+ }
+
+ return esValue[implSymbol]["gamma"];
+ }
+ }
+ Object.defineProperties(DeviceMotionEventRotationRate.prototype, {
+ alpha: { enumerable: true },
+ beta: { enumerable: true },
+ gamma: { enumerable: true },
+ [Symbol.toStringTag]: { value: "DeviceMotionEventRotationRate", configurable: true }
+ });
+ ctorRegistry[interfaceName] = DeviceMotionEventRotationRate;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: DeviceMotionEventRotationRate
+ });
+};
+
+const Impl = require("../deviceorientation/DeviceMotionEventRotationRate-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/DeviceMotionEventRotationRateInit.js b/node_modules/jsdom/lib/jsdom/living/generated/DeviceMotionEventRotationRateInit.js
new file mode 100644
index 0000000000000000000000000000000000000000..355bcfb5ec221855bb2d627de94a2825401141ea
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/DeviceMotionEventRotationRateInit.js
@@ -0,0 +1,61 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ {
+ const key = "alpha";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ if (value === null || value === undefined) {
+ value = null;
+ } else {
+ value = conversions["double"](value, { context: context + " has member 'alpha' that", globals: globalObject });
+ }
+ ret[key] = value;
+ } else {
+ ret[key] = null;
+ }
+ }
+
+ {
+ const key = "beta";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ if (value === null || value === undefined) {
+ value = null;
+ } else {
+ value = conversions["double"](value, { context: context + " has member 'beta' that", globals: globalObject });
+ }
+ ret[key] = value;
+ } else {
+ ret[key] = null;
+ }
+ }
+
+ {
+ const key = "gamma";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ if (value === null || value === undefined) {
+ value = null;
+ } else {
+ value = conversions["double"](value, { context: context + " has member 'gamma' that", globals: globalObject });
+ }
+ ret[key] = value;
+ } else {
+ ret[key] = null;
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/DeviceOrientationEvent.js b/node_modules/jsdom/lib/jsdom/living/generated/DeviceOrientationEvent.js
new file mode 100644
index 0000000000000000000000000000000000000000..87f3158331fef484c66e9dc1f94ec4f5be3d032d
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/DeviceOrientationEvent.js
@@ -0,0 +1,183 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const DeviceOrientationEventInit = require("./DeviceOrientationEventInit.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const Event = require("./Event.js");
+
+const interfaceName = "DeviceOrientationEvent";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'DeviceOrientationEvent'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["DeviceOrientationEvent"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ Event._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class DeviceOrientationEvent extends globalObject.Event {
+ constructor(type) {
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to construct 'DeviceOrientationEvent': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to construct 'DeviceOrientationEvent': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = DeviceOrientationEventInit.convert(globalObject, curArg, {
+ context: "Failed to construct 'DeviceOrientationEvent': parameter 2"
+ });
+ args.push(curArg);
+ }
+ return exports.setup(Object.create(new.target.prototype), globalObject, args);
+ }
+
+ get alpha() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get alpha' called on an object that is not a valid instance of DeviceOrientationEvent."
+ );
+ }
+
+ return esValue[implSymbol]["alpha"];
+ }
+
+ get beta() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get beta' called on an object that is not a valid instance of DeviceOrientationEvent."
+ );
+ }
+
+ return esValue[implSymbol]["beta"];
+ }
+
+ get gamma() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get gamma' called on an object that is not a valid instance of DeviceOrientationEvent."
+ );
+ }
+
+ return esValue[implSymbol]["gamma"];
+ }
+
+ get absolute() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get absolute' called on an object that is not a valid instance of DeviceOrientationEvent."
+ );
+ }
+
+ return esValue[implSymbol]["absolute"];
+ }
+ }
+ Object.defineProperties(DeviceOrientationEvent.prototype, {
+ alpha: { enumerable: true },
+ beta: { enumerable: true },
+ gamma: { enumerable: true },
+ absolute: { enumerable: true },
+ [Symbol.toStringTag]: { value: "DeviceOrientationEvent", configurable: true }
+ });
+ ctorRegistry[interfaceName] = DeviceOrientationEvent;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: DeviceOrientationEvent
+ });
+};
+
+const Impl = require("../events/DeviceOrientationEvent-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/DeviceOrientationEventInit.js b/node_modules/jsdom/lib/jsdom/living/generated/DeviceOrientationEventInit.js
new file mode 100644
index 0000000000000000000000000000000000000000..ce676cab5b93eaa2cf63106406814930a1ef697f
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/DeviceOrientationEventInit.js
@@ -0,0 +1,80 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const EventInit = require("./EventInit.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ EventInit._convertInherit(globalObject, obj, ret, { context });
+
+ {
+ const key = "absolute";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, {
+ context: context + " has member 'absolute' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+
+ {
+ const key = "alpha";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ if (value === null || value === undefined) {
+ value = null;
+ } else {
+ value = conversions["double"](value, { context: context + " has member 'alpha' that", globals: globalObject });
+ }
+ ret[key] = value;
+ } else {
+ ret[key] = null;
+ }
+ }
+
+ {
+ const key = "beta";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ if (value === null || value === undefined) {
+ value = null;
+ } else {
+ value = conversions["double"](value, { context: context + " has member 'beta' that", globals: globalObject });
+ }
+ ret[key] = value;
+ } else {
+ ret[key] = null;
+ }
+ }
+
+ {
+ const key = "gamma";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ if (value === null || value === undefined) {
+ value = null;
+ } else {
+ value = conversions["double"](value, { context: context + " has member 'gamma' that", globals: globalObject });
+ }
+ ret[key] = value;
+ } else {
+ ret[key] = null;
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/Document.js b/node_modules/jsdom/lib/jsdom/living/generated/Document.js
new file mode 100644
index 0000000000000000000000000000000000000000..2d6acd4f2dad1fdc3e9c68ce76d20f1fbe8f1894
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/Document.js
@@ -0,0 +1,4509 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const ElementCreationOptions = require("./ElementCreationOptions.js");
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const Node = require("./Node.js");
+const NodeFilter = require("./NodeFilter.js");
+const HTMLElement = require("./HTMLElement.js");
+const EventHandlerNonNull = require("./EventHandlerNonNull.js");
+const OnErrorEventHandlerNonNull = require("./OnErrorEventHandlerNonNull.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "Document";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'Document'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["Document"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+function getUnforgeables(globalObject) {
+ let unforgeables = unforgeablesMap.get(globalObject);
+ if (unforgeables === undefined) {
+ unforgeables = Object.create(null);
+ utils.define(unforgeables, {
+ get location() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get location' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["location"]);
+ },
+ set location(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set location' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ const Q = esValue["location"];
+ if (!utils.isObject(Q)) {
+ throw new globalObject.TypeError("Property 'location' is not an object");
+ }
+ Reflect.set(Q, "href", V);
+ }
+ });
+ Object.defineProperties(unforgeables, {
+ location: { configurable: false }
+ });
+ unforgeablesMap.set(globalObject, unforgeables);
+ }
+ return unforgeables;
+}
+
+exports._internalSetup = (wrapper, globalObject) => {
+ Node._internalSetup(wrapper, globalObject);
+
+ utils.define(wrapper, getUnforgeables(globalObject));
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const unforgeablesMap = new WeakMap();
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class Document extends globalObject.Node {
+ constructor() {
+ return exports.setup(Object.create(new.target.prototype), globalObject, undefined);
+ }
+
+ getElementsByTagName(qualifiedName) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'getElementsByTagName' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'getElementsByTagName' on 'Document': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'getElementsByTagName' on 'Document': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].getElementsByTagName(...args));
+ }
+
+ getElementsByTagNameNS(namespace, localName) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'getElementsByTagNameNS' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'getElementsByTagNameNS' on 'Document': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'getElementsByTagNameNS' on 'Document': parameter 1",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'getElementsByTagNameNS' on 'Document': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].getElementsByTagNameNS(...args));
+ }
+
+ getElementsByClassName(classNames) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'getElementsByClassName' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'getElementsByClassName' on 'Document': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'getElementsByClassName' on 'Document': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].getElementsByClassName(...args));
+ }
+
+ createElement(localName) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'createElement' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'createElement' on 'Document': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'createElement' on 'Document': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg !== undefined) {
+ if (curArg === null || curArg === undefined) {
+ curArg = ElementCreationOptions.convert(globalObject, curArg, {
+ context: "Failed to execute 'createElement' on 'Document': parameter 2"
+ });
+ } else if (utils.isObject(curArg)) {
+ curArg = ElementCreationOptions.convert(globalObject, curArg, {
+ context: "Failed to execute 'createElement' on 'Document': parameter 2" + " dictionary"
+ });
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'createElement' on 'Document': parameter 2",
+ globals: globalObject
+ });
+ }
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return utils.tryWrapperForImpl(esValue[implSymbol].createElement(...args));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ createElementNS(namespace, qualifiedName) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'createElementNS' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'createElementNS' on 'Document': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'createElementNS' on 'Document': parameter 1",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'createElementNS' on 'Document': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ if (curArg !== undefined) {
+ if (curArg === null || curArg === undefined) {
+ curArg = ElementCreationOptions.convert(globalObject, curArg, {
+ context: "Failed to execute 'createElementNS' on 'Document': parameter 3"
+ });
+ } else if (utils.isObject(curArg)) {
+ curArg = ElementCreationOptions.convert(globalObject, curArg, {
+ context: "Failed to execute 'createElementNS' on 'Document': parameter 3" + " dictionary"
+ });
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'createElementNS' on 'Document': parameter 3",
+ globals: globalObject
+ });
+ }
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return utils.tryWrapperForImpl(esValue[implSymbol].createElementNS(...args));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ createDocumentFragment() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'createDocumentFragment' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol].createDocumentFragment());
+ }
+
+ createTextNode(data) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'createTextNode' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'createTextNode' on 'Document': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'createTextNode' on 'Document': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].createTextNode(...args));
+ }
+
+ createCDATASection(data) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'createCDATASection' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'createCDATASection' on 'Document': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'createCDATASection' on 'Document': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].createCDATASection(...args));
+ }
+
+ createComment(data) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'createComment' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'createComment' on 'Document': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'createComment' on 'Document': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].createComment(...args));
+ }
+
+ createProcessingInstruction(target, data) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'createProcessingInstruction' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'createProcessingInstruction' on 'Document': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'createProcessingInstruction' on 'Document': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'createProcessingInstruction' on 'Document': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].createProcessingInstruction(...args));
+ }
+
+ importNode(node) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'importNode' called on an object that is not a valid instance of Document.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'importNode' on 'Document': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = Node.convert(globalObject, curArg, {
+ context: "Failed to execute 'importNode' on 'Document': parameter 1"
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg !== undefined) {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'importNode' on 'Document': parameter 2",
+ globals: globalObject
+ });
+ } else {
+ curArg = false;
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return utils.tryWrapperForImpl(esValue[implSymbol].importNode(...args));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ adoptNode(node) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'adoptNode' called on an object that is not a valid instance of Document.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'adoptNode' on 'Document': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = Node.convert(globalObject, curArg, {
+ context: "Failed to execute 'adoptNode' on 'Document': parameter 1"
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return utils.tryWrapperForImpl(esValue[implSymbol].adoptNode(...args));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ createAttribute(localName) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'createAttribute' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'createAttribute' on 'Document': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'createAttribute' on 'Document': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].createAttribute(...args));
+ }
+
+ createAttributeNS(namespace, qualifiedName) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'createAttributeNS' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'createAttributeNS' on 'Document': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'createAttributeNS' on 'Document': parameter 1",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'createAttributeNS' on 'Document': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].createAttributeNS(...args));
+ }
+
+ createEvent(interface_) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'createEvent' called on an object that is not a valid instance of Document.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'createEvent' on 'Document': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'createEvent' on 'Document': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].createEvent(...args));
+ }
+
+ createRange() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'createRange' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol].createRange());
+ }
+
+ createNodeIterator(root) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'createNodeIterator' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'createNodeIterator' on 'Document': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = Node.convert(globalObject, curArg, {
+ context: "Failed to execute 'createNodeIterator' on 'Document': parameter 1"
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg !== undefined) {
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'createNodeIterator' on 'Document': parameter 2",
+ globals: globalObject
+ });
+ } else {
+ curArg = 0xffffffff;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ if (curArg !== undefined) {
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = NodeFilter.convert(globalObject, curArg, {
+ context: "Failed to execute 'createNodeIterator' on 'Document': parameter 3"
+ });
+ }
+ } else {
+ curArg = null;
+ }
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].createNodeIterator(...args));
+ }
+
+ createTreeWalker(root) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'createTreeWalker' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'createTreeWalker' on 'Document': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = Node.convert(globalObject, curArg, {
+ context: "Failed to execute 'createTreeWalker' on 'Document': parameter 1"
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg !== undefined) {
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'createTreeWalker' on 'Document': parameter 2",
+ globals: globalObject
+ });
+ } else {
+ curArg = 0xffffffff;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ if (curArg !== undefined) {
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = NodeFilter.convert(globalObject, curArg, {
+ context: "Failed to execute 'createTreeWalker' on 'Document': parameter 3"
+ });
+ }
+ } else {
+ curArg = null;
+ }
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].createTreeWalker(...args));
+ }
+
+ getElementsByName(elementName) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'getElementsByName' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'getElementsByName' on 'Document': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'getElementsByName' on 'Document': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].getElementsByName(...args));
+ }
+
+ open() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'open' called on an object that is not a valid instance of Document.");
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg !== undefined) {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'open' on 'Document': parameter 1",
+ globals: globalObject
+ });
+ } else {
+ curArg = "text/html";
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg !== undefined) {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'open' on 'Document': parameter 2",
+ globals: globalObject
+ });
+ } else {
+ curArg = "";
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return utils.tryWrapperForImpl(esValue[implSymbol].open(...args));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ close() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'close' called on an object that is not a valid instance of Document.");
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].close();
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ write() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'write' called on an object that is not a valid instance of Document.");
+ }
+ const args = [];
+ for (let i = 0; i < arguments.length; i++) {
+ let curArg = arguments[i];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'write' on 'Document': parameter " + (i + 1),
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].write(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ writeln() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'writeln' called on an object that is not a valid instance of Document.");
+ }
+ const args = [];
+ for (let i = 0; i < arguments.length; i++) {
+ let curArg = arguments[i];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'writeln' on 'Document': parameter " + (i + 1),
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].writeln(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ hasFocus() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'hasFocus' called on an object that is not a valid instance of Document.");
+ }
+
+ return esValue[implSymbol].hasFocus();
+ }
+
+ clear() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'clear' called on an object that is not a valid instance of Document.");
+ }
+
+ return esValue[implSymbol].clear();
+ }
+
+ captureEvents() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'captureEvents' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return esValue[implSymbol].captureEvents();
+ }
+
+ releaseEvents() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'releaseEvents' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return esValue[implSymbol].releaseEvents();
+ }
+
+ getSelection() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'getSelection' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol].getSelection());
+ }
+
+ getElementById(elementId) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'getElementById' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'getElementById' on 'Document': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'getElementById' on 'Document': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].getElementById(...args));
+ }
+
+ prepend() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'prepend' called on an object that is not a valid instance of Document.");
+ }
+ const args = [];
+ for (let i = 0; i < arguments.length; i++) {
+ let curArg = arguments[i];
+ if (Node.is(curArg)) {
+ curArg = utils.implForWrapper(curArg);
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'prepend' on 'Document': parameter " + (i + 1),
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].prepend(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ append() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'append' called on an object that is not a valid instance of Document.");
+ }
+ const args = [];
+ for (let i = 0; i < arguments.length; i++) {
+ let curArg = arguments[i];
+ if (Node.is(curArg)) {
+ curArg = utils.implForWrapper(curArg);
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'append' on 'Document': parameter " + (i + 1),
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].append(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ replaceChildren() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'replaceChildren' called on an object that is not a valid instance of Document."
+ );
+ }
+ const args = [];
+ for (let i = 0; i < arguments.length; i++) {
+ let curArg = arguments[i];
+ if (Node.is(curArg)) {
+ curArg = utils.implForWrapper(curArg);
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'replaceChildren' on 'Document': parameter " + (i + 1),
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].replaceChildren(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ querySelector(selectors) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'querySelector' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'querySelector' on 'Document': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'querySelector' on 'Document': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].querySelector(...args));
+ }
+
+ querySelectorAll(selectors) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'querySelectorAll' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'querySelectorAll' on 'Document': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'querySelectorAll' on 'Document': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].querySelectorAll(...args));
+ }
+
+ get implementation() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get implementation' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.getSameObject(this, "implementation", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["implementation"]);
+ });
+ }
+
+ get URL() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get URL' called on an object that is not a valid instance of Document.");
+ }
+
+ return esValue[implSymbol]["URL"];
+ }
+
+ get documentURI() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get documentURI' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return esValue[implSymbol]["documentURI"];
+ }
+
+ get compatMode() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get compatMode' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return esValue[implSymbol]["compatMode"];
+ }
+
+ get characterSet() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get characterSet' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return esValue[implSymbol]["characterSet"];
+ }
+
+ get charset() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get charset' called on an object that is not a valid instance of Document.");
+ }
+
+ return esValue[implSymbol]["charset"];
+ }
+
+ get inputEncoding() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get inputEncoding' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return esValue[implSymbol]["inputEncoding"];
+ }
+
+ get contentType() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get contentType' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return esValue[implSymbol]["contentType"];
+ }
+
+ get doctype() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get doctype' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["doctype"]);
+ }
+
+ get documentElement() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get documentElement' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["documentElement"]);
+ }
+
+ get referrer() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get referrer' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return esValue[implSymbol]["referrer"];
+ }
+
+ get cookie() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get cookie' called on an object that is not a valid instance of Document.");
+ }
+
+ return esValue[implSymbol]["cookie"];
+ }
+
+ set cookie(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set cookie' called on an object that is not a valid instance of Document.");
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'cookie' property on 'Document': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["cookie"] = V;
+ }
+
+ get lastModified() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get lastModified' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return esValue[implSymbol]["lastModified"];
+ }
+
+ get readyState() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get readyState' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["readyState"]);
+ }
+
+ get title() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get title' called on an object that is not a valid instance of Document.");
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["title"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set title(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set title' called on an object that is not a valid instance of Document.");
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'title' property on 'Document': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["title"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get dir() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get dir' called on an object that is not a valid instance of Document.");
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["dir"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set dir(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set dir' called on an object that is not a valid instance of Document.");
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'dir' property on 'Document': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["dir"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get body() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get body' called on an object that is not a valid instance of Document.");
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["body"]);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set body(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set body' called on an object that is not a valid instance of Document.");
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = HTMLElement.convert(globalObject, V, {
+ context: "Failed to set the 'body' property on 'Document': The provided value"
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["body"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get head() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get head' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["head"]);
+ }
+
+ get images() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get images' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.getSameObject(this, "images", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["images"]);
+ });
+ }
+
+ get embeds() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get embeds' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.getSameObject(this, "embeds", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["embeds"]);
+ });
+ }
+
+ get plugins() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get plugins' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.getSameObject(this, "plugins", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["plugins"]);
+ });
+ }
+
+ get links() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get links' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.getSameObject(this, "links", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["links"]);
+ });
+ }
+
+ get forms() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get forms' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.getSameObject(this, "forms", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["forms"]);
+ });
+ }
+
+ get scripts() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get scripts' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.getSameObject(this, "scripts", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["scripts"]);
+ });
+ }
+
+ get currentScript() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get currentScript' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["currentScript"]);
+ }
+
+ get defaultView() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get defaultView' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["defaultView"]);
+ }
+
+ get onreadystatechange() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ return;
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onreadystatechange"]);
+ }
+
+ set onreadystatechange(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ return;
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onreadystatechange' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onreadystatechange"] = V;
+ }
+
+ get anchors() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get anchors' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.getSameObject(this, "anchors", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["anchors"]);
+ });
+ }
+
+ get applets() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get applets' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.getSameObject(this, "applets", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["applets"]);
+ });
+ }
+
+ get styleSheets() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get styleSheets' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.getSameObject(this, "styleSheets", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["styleSheets"]);
+ });
+ }
+
+ get hidden() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get hidden' called on an object that is not a valid instance of Document.");
+ }
+
+ return esValue[implSymbol]["hidden"];
+ }
+
+ get visibilityState() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get visibilityState' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["visibilityState"]);
+ }
+
+ get onvisibilitychange() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onvisibilitychange' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onvisibilitychange"]);
+ }
+
+ set onvisibilitychange(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onvisibilitychange' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onvisibilitychange' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onvisibilitychange"] = V;
+ }
+
+ get onabort() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get onabort' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onabort"]);
+ }
+
+ set onabort(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set onabort' called on an object that is not a valid instance of Document.");
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onabort' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onabort"] = V;
+ }
+
+ get onauxclick() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onauxclick' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onauxclick"]);
+ }
+
+ set onauxclick(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onauxclick' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onauxclick' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onauxclick"] = V;
+ }
+
+ get onbeforeinput() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onbeforeinput' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onbeforeinput"]);
+ }
+
+ set onbeforeinput(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onbeforeinput' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onbeforeinput' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onbeforeinput"] = V;
+ }
+
+ get onbeforematch() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onbeforematch' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onbeforematch"]);
+ }
+
+ set onbeforematch(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onbeforematch' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onbeforematch' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onbeforematch"] = V;
+ }
+
+ get onbeforetoggle() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onbeforetoggle' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onbeforetoggle"]);
+ }
+
+ set onbeforetoggle(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onbeforetoggle' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onbeforetoggle' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onbeforetoggle"] = V;
+ }
+
+ get onblur() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get onblur' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onblur"]);
+ }
+
+ set onblur(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set onblur' called on an object that is not a valid instance of Document.");
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onblur' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onblur"] = V;
+ }
+
+ get oncancel() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get oncancel' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["oncancel"]);
+ }
+
+ set oncancel(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set oncancel' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'oncancel' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["oncancel"] = V;
+ }
+
+ get oncanplay() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get oncanplay' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["oncanplay"]);
+ }
+
+ set oncanplay(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set oncanplay' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'oncanplay' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["oncanplay"] = V;
+ }
+
+ get oncanplaythrough() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get oncanplaythrough' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["oncanplaythrough"]);
+ }
+
+ set oncanplaythrough(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set oncanplaythrough' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'oncanplaythrough' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["oncanplaythrough"] = V;
+ }
+
+ get onchange() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onchange' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onchange"]);
+ }
+
+ set onchange(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onchange' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onchange' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onchange"] = V;
+ }
+
+ get onclick() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get onclick' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onclick"]);
+ }
+
+ set onclick(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set onclick' called on an object that is not a valid instance of Document.");
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onclick' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onclick"] = V;
+ }
+
+ get onclose() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get onclose' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onclose"]);
+ }
+
+ set onclose(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set onclose' called on an object that is not a valid instance of Document.");
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onclose' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onclose"] = V;
+ }
+
+ get oncontextlost() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get oncontextlost' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["oncontextlost"]);
+ }
+
+ set oncontextlost(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set oncontextlost' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'oncontextlost' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["oncontextlost"] = V;
+ }
+
+ get oncontextmenu() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get oncontextmenu' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["oncontextmenu"]);
+ }
+
+ set oncontextmenu(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set oncontextmenu' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'oncontextmenu' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["oncontextmenu"] = V;
+ }
+
+ get oncontextrestored() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get oncontextrestored' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["oncontextrestored"]);
+ }
+
+ set oncontextrestored(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set oncontextrestored' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'oncontextrestored' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["oncontextrestored"] = V;
+ }
+
+ get oncopy() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get oncopy' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["oncopy"]);
+ }
+
+ set oncopy(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set oncopy' called on an object that is not a valid instance of Document.");
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'oncopy' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["oncopy"] = V;
+ }
+
+ get oncuechange() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get oncuechange' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["oncuechange"]);
+ }
+
+ set oncuechange(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set oncuechange' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'oncuechange' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["oncuechange"] = V;
+ }
+
+ get oncut() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get oncut' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["oncut"]);
+ }
+
+ set oncut(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set oncut' called on an object that is not a valid instance of Document.");
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'oncut' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["oncut"] = V;
+ }
+
+ get ondblclick() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ondblclick' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ondblclick"]);
+ }
+
+ set ondblclick(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ondblclick' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ondblclick' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["ondblclick"] = V;
+ }
+
+ get ondrag() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get ondrag' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ondrag"]);
+ }
+
+ set ondrag(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set ondrag' called on an object that is not a valid instance of Document.");
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ondrag' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["ondrag"] = V;
+ }
+
+ get ondragend() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ondragend' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ondragend"]);
+ }
+
+ set ondragend(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ondragend' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ondragend' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["ondragend"] = V;
+ }
+
+ get ondragenter() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ondragenter' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ondragenter"]);
+ }
+
+ set ondragenter(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ondragenter' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ondragenter' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["ondragenter"] = V;
+ }
+
+ get ondragleave() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ondragleave' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ondragleave"]);
+ }
+
+ set ondragleave(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ondragleave' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ondragleave' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["ondragleave"] = V;
+ }
+
+ get ondragover() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ondragover' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ondragover"]);
+ }
+
+ set ondragover(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ondragover' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ondragover' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["ondragover"] = V;
+ }
+
+ get ondragstart() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ondragstart' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ondragstart"]);
+ }
+
+ set ondragstart(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ondragstart' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ondragstart' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["ondragstart"] = V;
+ }
+
+ get ondrop() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get ondrop' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ondrop"]);
+ }
+
+ set ondrop(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set ondrop' called on an object that is not a valid instance of Document.");
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ondrop' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["ondrop"] = V;
+ }
+
+ get ondurationchange() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ondurationchange' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ondurationchange"]);
+ }
+
+ set ondurationchange(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ondurationchange' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ondurationchange' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["ondurationchange"] = V;
+ }
+
+ get onemptied() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onemptied' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onemptied"]);
+ }
+
+ set onemptied(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onemptied' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onemptied' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onemptied"] = V;
+ }
+
+ get onended() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get onended' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onended"]);
+ }
+
+ set onended(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set onended' called on an object that is not a valid instance of Document.");
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onended' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onended"] = V;
+ }
+
+ get onerror() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get onerror' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onerror"]);
+ }
+
+ set onerror(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set onerror' called on an object that is not a valid instance of Document.");
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = OnErrorEventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onerror' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onerror"] = V;
+ }
+
+ get onfocus() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get onfocus' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onfocus"]);
+ }
+
+ set onfocus(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set onfocus' called on an object that is not a valid instance of Document.");
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onfocus' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onfocus"] = V;
+ }
+
+ get onformdata() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onformdata' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onformdata"]);
+ }
+
+ set onformdata(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onformdata' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onformdata' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onformdata"] = V;
+ }
+
+ get oninput() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get oninput' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["oninput"]);
+ }
+
+ set oninput(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set oninput' called on an object that is not a valid instance of Document.");
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'oninput' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["oninput"] = V;
+ }
+
+ get oninvalid() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get oninvalid' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["oninvalid"]);
+ }
+
+ set oninvalid(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set oninvalid' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'oninvalid' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["oninvalid"] = V;
+ }
+
+ get onkeydown() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onkeydown' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onkeydown"]);
+ }
+
+ set onkeydown(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onkeydown' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onkeydown' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onkeydown"] = V;
+ }
+
+ get onkeypress() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onkeypress' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onkeypress"]);
+ }
+
+ set onkeypress(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onkeypress' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onkeypress' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onkeypress"] = V;
+ }
+
+ get onkeyup() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get onkeyup' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onkeyup"]);
+ }
+
+ set onkeyup(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set onkeyup' called on an object that is not a valid instance of Document.");
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onkeyup' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onkeyup"] = V;
+ }
+
+ get onload() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get onload' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onload"]);
+ }
+
+ set onload(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set onload' called on an object that is not a valid instance of Document.");
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onload' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onload"] = V;
+ }
+
+ get onloadeddata() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onloadeddata' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onloadeddata"]);
+ }
+
+ set onloadeddata(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onloadeddata' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onloadeddata' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onloadeddata"] = V;
+ }
+
+ get onloadedmetadata() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onloadedmetadata' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onloadedmetadata"]);
+ }
+
+ set onloadedmetadata(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onloadedmetadata' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onloadedmetadata' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onloadedmetadata"] = V;
+ }
+
+ get onloadstart() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onloadstart' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onloadstart"]);
+ }
+
+ set onloadstart(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onloadstart' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onloadstart' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onloadstart"] = V;
+ }
+
+ get onmousedown() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onmousedown' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onmousedown"]);
+ }
+
+ set onmousedown(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onmousedown' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onmousedown' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onmousedown"] = V;
+ }
+
+ get onmouseenter() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ return;
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onmouseenter"]);
+ }
+
+ set onmouseenter(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ return;
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onmouseenter' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onmouseenter"] = V;
+ }
+
+ get onmouseleave() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ return;
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onmouseleave"]);
+ }
+
+ set onmouseleave(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ return;
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onmouseleave' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onmouseleave"] = V;
+ }
+
+ get onmousemove() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onmousemove' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onmousemove"]);
+ }
+
+ set onmousemove(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onmousemove' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onmousemove' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onmousemove"] = V;
+ }
+
+ get onmouseout() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onmouseout' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onmouseout"]);
+ }
+
+ set onmouseout(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onmouseout' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onmouseout' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onmouseout"] = V;
+ }
+
+ get onmouseover() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onmouseover' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onmouseover"]);
+ }
+
+ set onmouseover(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onmouseover' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onmouseover' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onmouseover"] = V;
+ }
+
+ get onmouseup() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onmouseup' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onmouseup"]);
+ }
+
+ set onmouseup(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onmouseup' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onmouseup' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onmouseup"] = V;
+ }
+
+ get onpaste() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get onpaste' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpaste"]);
+ }
+
+ set onpaste(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set onpaste' called on an object that is not a valid instance of Document.");
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpaste' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpaste"] = V;
+ }
+
+ get onpause() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get onpause' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpause"]);
+ }
+
+ set onpause(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set onpause' called on an object that is not a valid instance of Document.");
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpause' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpause"] = V;
+ }
+
+ get onplay() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get onplay' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onplay"]);
+ }
+
+ set onplay(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set onplay' called on an object that is not a valid instance of Document.");
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onplay' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onplay"] = V;
+ }
+
+ get onplaying() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onplaying' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onplaying"]);
+ }
+
+ set onplaying(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onplaying' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onplaying' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onplaying"] = V;
+ }
+
+ get onprogress() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onprogress' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onprogress"]);
+ }
+
+ set onprogress(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onprogress' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onprogress' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onprogress"] = V;
+ }
+
+ get onratechange() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onratechange' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onratechange"]);
+ }
+
+ set onratechange(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onratechange' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onratechange' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onratechange"] = V;
+ }
+
+ get onreset() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get onreset' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onreset"]);
+ }
+
+ set onreset(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set onreset' called on an object that is not a valid instance of Document.");
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onreset' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onreset"] = V;
+ }
+
+ get onresize() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onresize' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onresize"]);
+ }
+
+ set onresize(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onresize' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onresize' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onresize"] = V;
+ }
+
+ get onscroll() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onscroll' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onscroll"]);
+ }
+
+ set onscroll(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onscroll' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onscroll' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onscroll"] = V;
+ }
+
+ get onscrollend() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onscrollend' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onscrollend"]);
+ }
+
+ set onscrollend(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onscrollend' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onscrollend' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onscrollend"] = V;
+ }
+
+ get onsecuritypolicyviolation() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onsecuritypolicyviolation' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onsecuritypolicyviolation"]);
+ }
+
+ set onsecuritypolicyviolation(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onsecuritypolicyviolation' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onsecuritypolicyviolation' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onsecuritypolicyviolation"] = V;
+ }
+
+ get onseeked() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onseeked' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onseeked"]);
+ }
+
+ set onseeked(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onseeked' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onseeked' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onseeked"] = V;
+ }
+
+ get onseeking() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onseeking' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onseeking"]);
+ }
+
+ set onseeking(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onseeking' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onseeking' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onseeking"] = V;
+ }
+
+ get onselect() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onselect' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onselect"]);
+ }
+
+ set onselect(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onselect' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onselect' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onselect"] = V;
+ }
+
+ get onslotchange() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onslotchange' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onslotchange"]);
+ }
+
+ set onslotchange(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onslotchange' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onslotchange' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onslotchange"] = V;
+ }
+
+ get onstalled() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onstalled' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onstalled"]);
+ }
+
+ set onstalled(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onstalled' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onstalled' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onstalled"] = V;
+ }
+
+ get onsubmit() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onsubmit' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onsubmit"]);
+ }
+
+ set onsubmit(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onsubmit' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onsubmit' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onsubmit"] = V;
+ }
+
+ get onsuspend() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onsuspend' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onsuspend"]);
+ }
+
+ set onsuspend(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onsuspend' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onsuspend' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onsuspend"] = V;
+ }
+
+ get ontimeupdate() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ontimeupdate' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ontimeupdate"]);
+ }
+
+ set ontimeupdate(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ontimeupdate' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ontimeupdate' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["ontimeupdate"] = V;
+ }
+
+ get ontoggle() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ontoggle' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ontoggle"]);
+ }
+
+ set ontoggle(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ontoggle' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ontoggle' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["ontoggle"] = V;
+ }
+
+ get onvolumechange() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onvolumechange' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onvolumechange"]);
+ }
+
+ set onvolumechange(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onvolumechange' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onvolumechange' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onvolumechange"] = V;
+ }
+
+ get onwaiting() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onwaiting' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onwaiting"]);
+ }
+
+ set onwaiting(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onwaiting' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onwaiting' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onwaiting"] = V;
+ }
+
+ get onwebkitanimationend() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onwebkitanimationend' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onwebkitanimationend"]);
+ }
+
+ set onwebkitanimationend(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onwebkitanimationend' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onwebkitanimationend' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onwebkitanimationend"] = V;
+ }
+
+ get onwebkitanimationiteration() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onwebkitanimationiteration' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onwebkitanimationiteration"]);
+ }
+
+ set onwebkitanimationiteration(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onwebkitanimationiteration' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onwebkitanimationiteration' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onwebkitanimationiteration"] = V;
+ }
+
+ get onwebkitanimationstart() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onwebkitanimationstart' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onwebkitanimationstart"]);
+ }
+
+ set onwebkitanimationstart(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onwebkitanimationstart' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onwebkitanimationstart' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onwebkitanimationstart"] = V;
+ }
+
+ get onwebkittransitionend() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onwebkittransitionend' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onwebkittransitionend"]);
+ }
+
+ set onwebkittransitionend(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onwebkittransitionend' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onwebkittransitionend' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onwebkittransitionend"] = V;
+ }
+
+ get onwheel() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get onwheel' called on an object that is not a valid instance of Document.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onwheel"]);
+ }
+
+ set onwheel(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set onwheel' called on an object that is not a valid instance of Document.");
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onwheel' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onwheel"] = V;
+ }
+
+ get ontouchstart() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ontouchstart' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ontouchstart"]);
+ }
+
+ set ontouchstart(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ontouchstart' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ontouchstart' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["ontouchstart"] = V;
+ }
+
+ get ontouchend() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ontouchend' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ontouchend"]);
+ }
+
+ set ontouchend(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ontouchend' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ontouchend' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["ontouchend"] = V;
+ }
+
+ get ontouchmove() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ontouchmove' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ontouchmove"]);
+ }
+
+ set ontouchmove(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ontouchmove' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ontouchmove' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["ontouchmove"] = V;
+ }
+
+ get ontouchcancel() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ontouchcancel' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ontouchcancel"]);
+ }
+
+ set ontouchcancel(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ontouchcancel' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ontouchcancel' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["ontouchcancel"] = V;
+ }
+
+ get onpointerover() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpointerover' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpointerover"]);
+ }
+
+ set onpointerover(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpointerover' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpointerover' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpointerover"] = V;
+ }
+
+ get onpointerenter() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpointerenter' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpointerenter"]);
+ }
+
+ set onpointerenter(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpointerenter' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpointerenter' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpointerenter"] = V;
+ }
+
+ get onpointerdown() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpointerdown' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpointerdown"]);
+ }
+
+ set onpointerdown(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpointerdown' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpointerdown' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpointerdown"] = V;
+ }
+
+ get onpointermove() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpointermove' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpointermove"]);
+ }
+
+ set onpointermove(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpointermove' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpointermove' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpointermove"] = V;
+ }
+
+ get onpointerrawupdate() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpointerrawupdate' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpointerrawupdate"]);
+ }
+
+ set onpointerrawupdate(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpointerrawupdate' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpointerrawupdate' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpointerrawupdate"] = V;
+ }
+
+ get onpointerup() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpointerup' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpointerup"]);
+ }
+
+ set onpointerup(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpointerup' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpointerup' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpointerup"] = V;
+ }
+
+ get onpointercancel() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpointercancel' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpointercancel"]);
+ }
+
+ set onpointercancel(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpointercancel' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpointercancel' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpointercancel"] = V;
+ }
+
+ get onpointerout() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpointerout' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpointerout"]);
+ }
+
+ set onpointerout(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpointerout' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpointerout' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpointerout"] = V;
+ }
+
+ get onpointerleave() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpointerleave' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpointerleave"]);
+ }
+
+ set onpointerleave(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpointerleave' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpointerleave' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpointerleave"] = V;
+ }
+
+ get ongotpointercapture() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ongotpointercapture' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ongotpointercapture"]);
+ }
+
+ set ongotpointercapture(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ongotpointercapture' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ongotpointercapture' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["ongotpointercapture"] = V;
+ }
+
+ get onlostpointercapture() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onlostpointercapture' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onlostpointercapture"]);
+ }
+
+ set onlostpointercapture(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onlostpointercapture' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onlostpointercapture' property on 'Document': The provided value"
+ });
+ }
+ esValue[implSymbol]["onlostpointercapture"] = V;
+ }
+
+ get activeElement() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get activeElement' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["activeElement"]);
+ }
+
+ get children() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get children' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.getSameObject(this, "children", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["children"]);
+ });
+ }
+
+ get firstElementChild() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get firstElementChild' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["firstElementChild"]);
+ }
+
+ get lastElementChild() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get lastElementChild' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["lastElementChild"]);
+ }
+
+ get childElementCount() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get childElementCount' called on an object that is not a valid instance of Document."
+ );
+ }
+
+ return esValue[implSymbol]["childElementCount"];
+ }
+ }
+ Object.defineProperties(Document.prototype, {
+ getElementsByTagName: { enumerable: true },
+ getElementsByTagNameNS: { enumerable: true },
+ getElementsByClassName: { enumerable: true },
+ createElement: { enumerable: true },
+ createElementNS: { enumerable: true },
+ createDocumentFragment: { enumerable: true },
+ createTextNode: { enumerable: true },
+ createCDATASection: { enumerable: true },
+ createComment: { enumerable: true },
+ createProcessingInstruction: { enumerable: true },
+ importNode: { enumerable: true },
+ adoptNode: { enumerable: true },
+ createAttribute: { enumerable: true },
+ createAttributeNS: { enumerable: true },
+ createEvent: { enumerable: true },
+ createRange: { enumerable: true },
+ createNodeIterator: { enumerable: true },
+ createTreeWalker: { enumerable: true },
+ getElementsByName: { enumerable: true },
+ open: { enumerable: true },
+ close: { enumerable: true },
+ write: { enumerable: true },
+ writeln: { enumerable: true },
+ hasFocus: { enumerable: true },
+ clear: { enumerable: true },
+ captureEvents: { enumerable: true },
+ releaseEvents: { enumerable: true },
+ getSelection: { enumerable: true },
+ getElementById: { enumerable: true },
+ prepend: { enumerable: true },
+ append: { enumerable: true },
+ replaceChildren: { enumerable: true },
+ querySelector: { enumerable: true },
+ querySelectorAll: { enumerable: true },
+ implementation: { enumerable: true },
+ URL: { enumerable: true },
+ documentURI: { enumerable: true },
+ compatMode: { enumerable: true },
+ characterSet: { enumerable: true },
+ charset: { enumerable: true },
+ inputEncoding: { enumerable: true },
+ contentType: { enumerable: true },
+ doctype: { enumerable: true },
+ documentElement: { enumerable: true },
+ referrer: { enumerable: true },
+ cookie: { enumerable: true },
+ lastModified: { enumerable: true },
+ readyState: { enumerable: true },
+ title: { enumerable: true },
+ dir: { enumerable: true },
+ body: { enumerable: true },
+ head: { enumerable: true },
+ images: { enumerable: true },
+ embeds: { enumerable: true },
+ plugins: { enumerable: true },
+ links: { enumerable: true },
+ forms: { enumerable: true },
+ scripts: { enumerable: true },
+ currentScript: { enumerable: true },
+ defaultView: { enumerable: true },
+ onreadystatechange: { enumerable: true },
+ anchors: { enumerable: true },
+ applets: { enumerable: true },
+ styleSheets: { enumerable: true },
+ hidden: { enumerable: true },
+ visibilityState: { enumerable: true },
+ onvisibilitychange: { enumerable: true },
+ onabort: { enumerable: true },
+ onauxclick: { enumerable: true },
+ onbeforeinput: { enumerable: true },
+ onbeforematch: { enumerable: true },
+ onbeforetoggle: { enumerable: true },
+ onblur: { enumerable: true },
+ oncancel: { enumerable: true },
+ oncanplay: { enumerable: true },
+ oncanplaythrough: { enumerable: true },
+ onchange: { enumerable: true },
+ onclick: { enumerable: true },
+ onclose: { enumerable: true },
+ oncontextlost: { enumerable: true },
+ oncontextmenu: { enumerable: true },
+ oncontextrestored: { enumerable: true },
+ oncopy: { enumerable: true },
+ oncuechange: { enumerable: true },
+ oncut: { enumerable: true },
+ ondblclick: { enumerable: true },
+ ondrag: { enumerable: true },
+ ondragend: { enumerable: true },
+ ondragenter: { enumerable: true },
+ ondragleave: { enumerable: true },
+ ondragover: { enumerable: true },
+ ondragstart: { enumerable: true },
+ ondrop: { enumerable: true },
+ ondurationchange: { enumerable: true },
+ onemptied: { enumerable: true },
+ onended: { enumerable: true },
+ onerror: { enumerable: true },
+ onfocus: { enumerable: true },
+ onformdata: { enumerable: true },
+ oninput: { enumerable: true },
+ oninvalid: { enumerable: true },
+ onkeydown: { enumerable: true },
+ onkeypress: { enumerable: true },
+ onkeyup: { enumerable: true },
+ onload: { enumerable: true },
+ onloadeddata: { enumerable: true },
+ onloadedmetadata: { enumerable: true },
+ onloadstart: { enumerable: true },
+ onmousedown: { enumerable: true },
+ onmouseenter: { enumerable: true },
+ onmouseleave: { enumerable: true },
+ onmousemove: { enumerable: true },
+ onmouseout: { enumerable: true },
+ onmouseover: { enumerable: true },
+ onmouseup: { enumerable: true },
+ onpaste: { enumerable: true },
+ onpause: { enumerable: true },
+ onplay: { enumerable: true },
+ onplaying: { enumerable: true },
+ onprogress: { enumerable: true },
+ onratechange: { enumerable: true },
+ onreset: { enumerable: true },
+ onresize: { enumerable: true },
+ onscroll: { enumerable: true },
+ onscrollend: { enumerable: true },
+ onsecuritypolicyviolation: { enumerable: true },
+ onseeked: { enumerable: true },
+ onseeking: { enumerable: true },
+ onselect: { enumerable: true },
+ onslotchange: { enumerable: true },
+ onstalled: { enumerable: true },
+ onsubmit: { enumerable: true },
+ onsuspend: { enumerable: true },
+ ontimeupdate: { enumerable: true },
+ ontoggle: { enumerable: true },
+ onvolumechange: { enumerable: true },
+ onwaiting: { enumerable: true },
+ onwebkitanimationend: { enumerable: true },
+ onwebkitanimationiteration: { enumerable: true },
+ onwebkitanimationstart: { enumerable: true },
+ onwebkittransitionend: { enumerable: true },
+ onwheel: { enumerable: true },
+ ontouchstart: { enumerable: true },
+ ontouchend: { enumerable: true },
+ ontouchmove: { enumerable: true },
+ ontouchcancel: { enumerable: true },
+ onpointerover: { enumerable: true },
+ onpointerenter: { enumerable: true },
+ onpointerdown: { enumerable: true },
+ onpointermove: { enumerable: true },
+ onpointerrawupdate: { enumerable: true },
+ onpointerup: { enumerable: true },
+ onpointercancel: { enumerable: true },
+ onpointerout: { enumerable: true },
+ onpointerleave: { enumerable: true },
+ ongotpointercapture: { enumerable: true },
+ onlostpointercapture: { enumerable: true },
+ activeElement: { enumerable: true },
+ children: { enumerable: true },
+ firstElementChild: { enumerable: true },
+ lastElementChild: { enumerable: true },
+ childElementCount: { enumerable: true },
+ [Symbol.toStringTag]: { value: "Document", configurable: true },
+ [Symbol.unscopables]: {
+ value: { prepend: true, append: true, replaceChildren: true, __proto__: null },
+ configurable: true
+ }
+ });
+ ctorRegistry[interfaceName] = Document;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: Document
+ });
+};
+
+const Impl = require("../nodes/Document-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/DocumentFragment.js b/node_modules/jsdom/lib/jsdom/living/generated/DocumentFragment.js
new file mode 100644
index 0000000000000000000000000000000000000000..25991ff62968496e46467360aa6250f6b9a23cfe
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/DocumentFragment.js
@@ -0,0 +1,334 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const Node = require("./Node.js");
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "DocumentFragment";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'DocumentFragment'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["DocumentFragment"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ Node._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class DocumentFragment extends globalObject.Node {
+ constructor() {
+ return exports.setup(Object.create(new.target.prototype), globalObject, undefined);
+ }
+
+ getElementById(elementId) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'getElementById' called on an object that is not a valid instance of DocumentFragment."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'getElementById' on 'DocumentFragment': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'getElementById' on 'DocumentFragment': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].getElementById(...args));
+ }
+
+ prepend() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'prepend' called on an object that is not a valid instance of DocumentFragment."
+ );
+ }
+ const args = [];
+ for (let i = 0; i < arguments.length; i++) {
+ let curArg = arguments[i];
+ if (Node.is(curArg)) {
+ curArg = utils.implForWrapper(curArg);
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'prepend' on 'DocumentFragment': parameter " + (i + 1),
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].prepend(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ append() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'append' called on an object that is not a valid instance of DocumentFragment."
+ );
+ }
+ const args = [];
+ for (let i = 0; i < arguments.length; i++) {
+ let curArg = arguments[i];
+ if (Node.is(curArg)) {
+ curArg = utils.implForWrapper(curArg);
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'append' on 'DocumentFragment': parameter " + (i + 1),
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].append(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ replaceChildren() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'replaceChildren' called on an object that is not a valid instance of DocumentFragment."
+ );
+ }
+ const args = [];
+ for (let i = 0; i < arguments.length; i++) {
+ let curArg = arguments[i];
+ if (Node.is(curArg)) {
+ curArg = utils.implForWrapper(curArg);
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'replaceChildren' on 'DocumentFragment': parameter " + (i + 1),
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].replaceChildren(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ querySelector(selectors) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'querySelector' called on an object that is not a valid instance of DocumentFragment."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'querySelector' on 'DocumentFragment': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'querySelector' on 'DocumentFragment': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].querySelector(...args));
+ }
+
+ querySelectorAll(selectors) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'querySelectorAll' called on an object that is not a valid instance of DocumentFragment."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'querySelectorAll' on 'DocumentFragment': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'querySelectorAll' on 'DocumentFragment': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].querySelectorAll(...args));
+ }
+
+ get children() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get children' called on an object that is not a valid instance of DocumentFragment."
+ );
+ }
+
+ return utils.getSameObject(this, "children", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["children"]);
+ });
+ }
+
+ get firstElementChild() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get firstElementChild' called on an object that is not a valid instance of DocumentFragment."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["firstElementChild"]);
+ }
+
+ get lastElementChild() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get lastElementChild' called on an object that is not a valid instance of DocumentFragment."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["lastElementChild"]);
+ }
+
+ get childElementCount() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get childElementCount' called on an object that is not a valid instance of DocumentFragment."
+ );
+ }
+
+ return esValue[implSymbol]["childElementCount"];
+ }
+ }
+ Object.defineProperties(DocumentFragment.prototype, {
+ getElementById: { enumerable: true },
+ prepend: { enumerable: true },
+ append: { enumerable: true },
+ replaceChildren: { enumerable: true },
+ querySelector: { enumerable: true },
+ querySelectorAll: { enumerable: true },
+ children: { enumerable: true },
+ firstElementChild: { enumerable: true },
+ lastElementChild: { enumerable: true },
+ childElementCount: { enumerable: true },
+ [Symbol.toStringTag]: { value: "DocumentFragment", configurable: true },
+ [Symbol.unscopables]: {
+ value: { prepend: true, append: true, replaceChildren: true, __proto__: null },
+ configurable: true
+ }
+ });
+ ctorRegistry[interfaceName] = DocumentFragment;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: DocumentFragment
+ });
+};
+
+const Impl = require("../nodes/DocumentFragment-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/DocumentReadyState.js b/node_modules/jsdom/lib/jsdom/living/generated/DocumentReadyState.js
new file mode 100644
index 0000000000000000000000000000000000000000..5b7e85d2c967128dcbe98abf49c4620560f9dc6b
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/DocumentReadyState.js
@@ -0,0 +1,12 @@
+"use strict";
+
+const enumerationValues = new Set(["loading", "interactive", "complete"]);
+exports.enumerationValues = enumerationValues;
+
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ const string = `${value}`;
+ if (!enumerationValues.has(string)) {
+ throw new globalObject.TypeError(`${context} '${string}' is not a valid enumeration value for DocumentReadyState`);
+ }
+ return string;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/DocumentType.js b/node_modules/jsdom/lib/jsdom/living/generated/DocumentType.js
new file mode 100644
index 0000000000000000000000000000000000000000..2ffb894a242ce3033d9a9d7abc325f13ec931dd0
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/DocumentType.js
@@ -0,0 +1,252 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const Node = require("./Node.js");
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "DocumentType";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'DocumentType'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["DocumentType"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ Node._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class DocumentType extends globalObject.Node {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ before() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'before' called on an object that is not a valid instance of DocumentType.");
+ }
+ const args = [];
+ for (let i = 0; i < arguments.length; i++) {
+ let curArg = arguments[i];
+ if (Node.is(curArg)) {
+ curArg = utils.implForWrapper(curArg);
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'before' on 'DocumentType': parameter " + (i + 1),
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].before(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ after() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'after' called on an object that is not a valid instance of DocumentType.");
+ }
+ const args = [];
+ for (let i = 0; i < arguments.length; i++) {
+ let curArg = arguments[i];
+ if (Node.is(curArg)) {
+ curArg = utils.implForWrapper(curArg);
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'after' on 'DocumentType': parameter " + (i + 1),
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].after(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ replaceWith() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'replaceWith' called on an object that is not a valid instance of DocumentType."
+ );
+ }
+ const args = [];
+ for (let i = 0; i < arguments.length; i++) {
+ let curArg = arguments[i];
+ if (Node.is(curArg)) {
+ curArg = utils.implForWrapper(curArg);
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'replaceWith' on 'DocumentType': parameter " + (i + 1),
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].replaceWith(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ remove() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'remove' called on an object that is not a valid instance of DocumentType.");
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].remove();
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get name() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get name' called on an object that is not a valid instance of DocumentType."
+ );
+ }
+
+ return esValue[implSymbol]["name"];
+ }
+
+ get publicId() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get publicId' called on an object that is not a valid instance of DocumentType."
+ );
+ }
+
+ return esValue[implSymbol]["publicId"];
+ }
+
+ get systemId() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get systemId' called on an object that is not a valid instance of DocumentType."
+ );
+ }
+
+ return esValue[implSymbol]["systemId"];
+ }
+ }
+ Object.defineProperties(DocumentType.prototype, {
+ before: { enumerable: true },
+ after: { enumerable: true },
+ replaceWith: { enumerable: true },
+ remove: { enumerable: true },
+ name: { enumerable: true },
+ publicId: { enumerable: true },
+ systemId: { enumerable: true },
+ [Symbol.toStringTag]: { value: "DocumentType", configurable: true },
+ [Symbol.unscopables]: {
+ value: { before: true, after: true, replaceWith: true, remove: true, __proto__: null },
+ configurable: true
+ }
+ });
+ ctorRegistry[interfaceName] = DocumentType;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: DocumentType
+ });
+};
+
+const Impl = require("../nodes/DocumentType-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/Element.js b/node_modules/jsdom/lib/jsdom/living/generated/Element.js
new file mode 100644
index 0000000000000000000000000000000000000000..713b7c1f125de2104e9a191a49d9dda247a16a58
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/Element.js
@@ -0,0 +1,3718 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const Attr = require("./Attr.js");
+const ShadowRootInit = require("./ShadowRootInit.js");
+const Node = require("./Node.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "Element";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'Element'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["Element"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ Node._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class Element extends globalObject.Node {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ hasAttributes() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'hasAttributes' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ return esValue[implSymbol].hasAttributes();
+ }
+
+ getAttributeNames() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'getAttributeNames' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol].getAttributeNames());
+ }
+
+ getAttribute(qualifiedName) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'getAttribute' called on an object that is not a valid instance of Element.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'getAttribute' on 'Element': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'getAttribute' on 'Element': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].getAttribute(...args);
+ }
+
+ getAttributeNS(namespace, localName) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'getAttributeNS' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'getAttributeNS' on 'Element': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'getAttributeNS' on 'Element': parameter 1",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'getAttributeNS' on 'Element': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].getAttributeNS(...args);
+ }
+
+ setAttribute(qualifiedName, value) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'setAttribute' called on an object that is not a valid instance of Element.");
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'setAttribute' on 'Element': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'setAttribute' on 'Element': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'setAttribute' on 'Element': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].setAttribute(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ setAttributeNS(namespace, qualifiedName, value) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'setAttributeNS' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (arguments.length < 3) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'setAttributeNS' on 'Element': 3 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'setAttributeNS' on 'Element': parameter 1",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'setAttributeNS' on 'Element': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'setAttributeNS' on 'Element': parameter 3",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].setAttributeNS(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ removeAttribute(qualifiedName) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'removeAttribute' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'removeAttribute' on 'Element': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'removeAttribute' on 'Element': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].removeAttribute(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ removeAttributeNS(namespace, localName) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'removeAttributeNS' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'removeAttributeNS' on 'Element': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'removeAttributeNS' on 'Element': parameter 1",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'removeAttributeNS' on 'Element': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].removeAttributeNS(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ toggleAttribute(qualifiedName) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'toggleAttribute' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'toggleAttribute' on 'Element': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'toggleAttribute' on 'Element': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg !== undefined) {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'toggleAttribute' on 'Element': parameter 2",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].toggleAttribute(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ hasAttribute(qualifiedName) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'hasAttribute' called on an object that is not a valid instance of Element.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'hasAttribute' on 'Element': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'hasAttribute' on 'Element': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].hasAttribute(...args);
+ }
+
+ hasAttributeNS(namespace, localName) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'hasAttributeNS' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'hasAttributeNS' on 'Element': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'hasAttributeNS' on 'Element': parameter 1",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'hasAttributeNS' on 'Element': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].hasAttributeNS(...args);
+ }
+
+ getAttributeNode(qualifiedName) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'getAttributeNode' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'getAttributeNode' on 'Element': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'getAttributeNode' on 'Element': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].getAttributeNode(...args));
+ }
+
+ getAttributeNodeNS(namespace, localName) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'getAttributeNodeNS' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'getAttributeNodeNS' on 'Element': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'getAttributeNodeNS' on 'Element': parameter 1",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'getAttributeNodeNS' on 'Element': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].getAttributeNodeNS(...args));
+ }
+
+ setAttributeNode(attr) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'setAttributeNode' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'setAttributeNode' on 'Element': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = Attr.convert(globalObject, curArg, {
+ context: "Failed to execute 'setAttributeNode' on 'Element': parameter 1"
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return utils.tryWrapperForImpl(esValue[implSymbol].setAttributeNode(...args));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ setAttributeNodeNS(attr) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'setAttributeNodeNS' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'setAttributeNodeNS' on 'Element': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = Attr.convert(globalObject, curArg, {
+ context: "Failed to execute 'setAttributeNodeNS' on 'Element': parameter 1"
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return utils.tryWrapperForImpl(esValue[implSymbol].setAttributeNodeNS(...args));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ removeAttributeNode(attr) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'removeAttributeNode' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'removeAttributeNode' on 'Element': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = Attr.convert(globalObject, curArg, {
+ context: "Failed to execute 'removeAttributeNode' on 'Element': parameter 1"
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return utils.tryWrapperForImpl(esValue[implSymbol].removeAttributeNode(...args));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ attachShadow(init) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'attachShadow' called on an object that is not a valid instance of Element.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'attachShadow' on 'Element': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = ShadowRootInit.convert(globalObject, curArg, {
+ context: "Failed to execute 'attachShadow' on 'Element': parameter 1"
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].attachShadow(...args));
+ }
+
+ closest(selectors) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'closest' called on an object that is not a valid instance of Element.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'closest' on 'Element': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'closest' on 'Element': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].closest(...args));
+ }
+
+ matches(selectors) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'matches' called on an object that is not a valid instance of Element.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'matches' on 'Element': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'matches' on 'Element': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].matches(...args);
+ }
+
+ webkitMatchesSelector(selectors) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'webkitMatchesSelector' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'webkitMatchesSelector' on 'Element': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'webkitMatchesSelector' on 'Element': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].webkitMatchesSelector(...args);
+ }
+
+ getElementsByTagName(qualifiedName) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'getElementsByTagName' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'getElementsByTagName' on 'Element': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'getElementsByTagName' on 'Element': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].getElementsByTagName(...args));
+ }
+
+ getElementsByTagNameNS(namespace, localName) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'getElementsByTagNameNS' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'getElementsByTagNameNS' on 'Element': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'getElementsByTagNameNS' on 'Element': parameter 1",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'getElementsByTagNameNS' on 'Element': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].getElementsByTagNameNS(...args));
+ }
+
+ getElementsByClassName(classNames) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'getElementsByClassName' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'getElementsByClassName' on 'Element': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'getElementsByClassName' on 'Element': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].getElementsByClassName(...args));
+ }
+
+ insertAdjacentElement(where, element) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'insertAdjacentElement' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'insertAdjacentElement' on 'Element': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'insertAdjacentElement' on 'Element': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = exports.convert(globalObject, curArg, {
+ context: "Failed to execute 'insertAdjacentElement' on 'Element': parameter 2"
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return utils.tryWrapperForImpl(esValue[implSymbol].insertAdjacentElement(...args));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ insertAdjacentText(where, data) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'insertAdjacentText' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'insertAdjacentText' on 'Element': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'insertAdjacentText' on 'Element': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'insertAdjacentText' on 'Element': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].insertAdjacentText(...args);
+ }
+
+ insertAdjacentHTML(position, text) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'insertAdjacentHTML' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'insertAdjacentHTML' on 'Element': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'insertAdjacentHTML' on 'Element': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'insertAdjacentHTML' on 'Element': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].insertAdjacentHTML(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ getClientRects() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'getClientRects' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol].getClientRects());
+ }
+
+ getBoundingClientRect() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'getBoundingClientRect' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol].getBoundingClientRect());
+ }
+
+ before() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'before' called on an object that is not a valid instance of Element.");
+ }
+ const args = [];
+ for (let i = 0; i < arguments.length; i++) {
+ let curArg = arguments[i];
+ if (Node.is(curArg)) {
+ curArg = utils.implForWrapper(curArg);
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'before' on 'Element': parameter " + (i + 1),
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].before(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ after() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'after' called on an object that is not a valid instance of Element.");
+ }
+ const args = [];
+ for (let i = 0; i < arguments.length; i++) {
+ let curArg = arguments[i];
+ if (Node.is(curArg)) {
+ curArg = utils.implForWrapper(curArg);
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'after' on 'Element': parameter " + (i + 1),
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].after(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ replaceWith() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'replaceWith' called on an object that is not a valid instance of Element.");
+ }
+ const args = [];
+ for (let i = 0; i < arguments.length; i++) {
+ let curArg = arguments[i];
+ if (Node.is(curArg)) {
+ curArg = utils.implForWrapper(curArg);
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'replaceWith' on 'Element': parameter " + (i + 1),
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].replaceWith(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ remove() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'remove' called on an object that is not a valid instance of Element.");
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].remove();
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ prepend() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'prepend' called on an object that is not a valid instance of Element.");
+ }
+ const args = [];
+ for (let i = 0; i < arguments.length; i++) {
+ let curArg = arguments[i];
+ if (Node.is(curArg)) {
+ curArg = utils.implForWrapper(curArg);
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'prepend' on 'Element': parameter " + (i + 1),
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].prepend(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ append() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'append' called on an object that is not a valid instance of Element.");
+ }
+ const args = [];
+ for (let i = 0; i < arguments.length; i++) {
+ let curArg = arguments[i];
+ if (Node.is(curArg)) {
+ curArg = utils.implForWrapper(curArg);
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'append' on 'Element': parameter " + (i + 1),
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].append(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ replaceChildren() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'replaceChildren' called on an object that is not a valid instance of Element."
+ );
+ }
+ const args = [];
+ for (let i = 0; i < arguments.length; i++) {
+ let curArg = arguments[i];
+ if (Node.is(curArg)) {
+ curArg = utils.implForWrapper(curArg);
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'replaceChildren' on 'Element': parameter " + (i + 1),
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].replaceChildren(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ querySelector(selectors) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'querySelector' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'querySelector' on 'Element': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'querySelector' on 'Element': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].querySelector(...args));
+ }
+
+ querySelectorAll(selectors) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'querySelectorAll' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'querySelectorAll' on 'Element': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'querySelectorAll' on 'Element': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].querySelectorAll(...args));
+ }
+
+ get namespaceURI() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get namespaceURI' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ return esValue[implSymbol]["namespaceURI"];
+ }
+
+ get prefix() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get prefix' called on an object that is not a valid instance of Element.");
+ }
+
+ return esValue[implSymbol]["prefix"];
+ }
+
+ get localName() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get localName' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ return esValue[implSymbol]["localName"];
+ }
+
+ get tagName() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get tagName' called on an object that is not a valid instance of Element.");
+ }
+
+ return esValue[implSymbol]["tagName"];
+ }
+
+ get id() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get id' called on an object that is not a valid instance of Element.");
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("id");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set id(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set id' called on an object that is not a valid instance of Element.");
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'id' property on 'Element': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("id", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get className() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get className' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("class");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set className(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set className' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'className' property on 'Element': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("class", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get classList() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get classList' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ return utils.getSameObject(this, "classList", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["classList"]);
+ });
+ }
+
+ set classList(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set classList' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ const Q = esValue["classList"];
+ if (!utils.isObject(Q)) {
+ throw new globalObject.TypeError("Property 'classList' is not an object");
+ }
+ Reflect.set(Q, "value", V);
+ }
+
+ get slot() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get slot' called on an object that is not a valid instance of Element.");
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("slot");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set slot(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set slot' called on an object that is not a valid instance of Element.");
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'slot' property on 'Element': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("slot", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get attributes() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get attributes' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ return utils.getSameObject(this, "attributes", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["attributes"]);
+ });
+ }
+
+ get shadowRoot() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get shadowRoot' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["shadowRoot"]);
+ }
+
+ get outerHTML() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get outerHTML' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["outerHTML"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set outerHTML(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set outerHTML' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'outerHTML' property on 'Element': The provided value",
+ globals: globalObject,
+ treatNullAsEmptyString: true
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["outerHTML"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get scrollTop() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get scrollTop' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ return esValue[implSymbol]["scrollTop"];
+ }
+
+ set scrollTop(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set scrollTop' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ V = conversions["unrestricted double"](V, {
+ context: "Failed to set the 'scrollTop' property on 'Element': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["scrollTop"] = V;
+ }
+
+ get scrollLeft() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get scrollLeft' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ return esValue[implSymbol]["scrollLeft"];
+ }
+
+ set scrollLeft(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set scrollLeft' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ V = conversions["unrestricted double"](V, {
+ context: "Failed to set the 'scrollLeft' property on 'Element': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["scrollLeft"] = V;
+ }
+
+ get scrollWidth() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get scrollWidth' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ return esValue[implSymbol]["scrollWidth"];
+ }
+
+ get scrollHeight() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get scrollHeight' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ return esValue[implSymbol]["scrollHeight"];
+ }
+
+ get clientTop() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get clientTop' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ return esValue[implSymbol]["clientTop"];
+ }
+
+ get clientLeft() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get clientLeft' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ return esValue[implSymbol]["clientLeft"];
+ }
+
+ get clientWidth() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get clientWidth' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ return esValue[implSymbol]["clientWidth"];
+ }
+
+ get clientHeight() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get clientHeight' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ return esValue[implSymbol]["clientHeight"];
+ }
+
+ get innerHTML() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get innerHTML' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["innerHTML"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set innerHTML(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set innerHTML' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'innerHTML' property on 'Element': The provided value",
+ globals: globalObject,
+ treatNullAsEmptyString: true
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["innerHTML"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get role() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get role' called on an object that is not a valid instance of Element.");
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("role");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set role(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set role' called on an object that is not a valid instance of Element.");
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'role' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("role");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("role", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaAtomic() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaAtomic' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-atomic");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaAtomic(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaAtomic' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaAtomic' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-atomic");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-atomic", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaAutoComplete() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaAutoComplete' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-autocomplete");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaAutoComplete(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaAutoComplete' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaAutoComplete' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-autocomplete");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-autocomplete", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaBusy() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get ariaBusy' called on an object that is not a valid instance of Element.");
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-busy");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaBusy(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set ariaBusy' called on an object that is not a valid instance of Element.");
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaBusy' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-busy");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-busy", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaChecked() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaChecked' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-checked");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaChecked(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaChecked' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaChecked' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-checked");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-checked", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaColCount() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaColCount' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-colcount");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaColCount(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaColCount' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaColCount' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-colcount");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-colcount", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaColIndex() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaColIndex' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-colindex");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaColIndex(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaColIndex' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaColIndex' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-colindex");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-colindex", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaColIndexText() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaColIndexText' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-colindextext");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaColIndexText(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaColIndexText' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaColIndexText' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-colindextext");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-colindextext", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaColSpan() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaColSpan' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-colspan");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaColSpan(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaColSpan' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaColSpan' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-colspan");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-colspan", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaCurrent() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaCurrent' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-current");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaCurrent(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaCurrent' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaCurrent' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-current");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-current", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaDescription() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaDescription' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-description");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaDescription(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaDescription' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaDescription' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-description");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-description", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaDisabled() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaDisabled' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-disabled");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaDisabled(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaDisabled' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaDisabled' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-disabled");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-disabled", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaExpanded() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaExpanded' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-expanded");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaExpanded(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaExpanded' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaExpanded' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-expanded");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-expanded", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaHasPopup() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaHasPopup' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-haspopup");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaHasPopup(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaHasPopup' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaHasPopup' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-haspopup");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-haspopup", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaHidden() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaHidden' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-hidden");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaHidden(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaHidden' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaHidden' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-hidden");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-hidden", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaInvalid() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaInvalid' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-invalid");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaInvalid(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaInvalid' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaInvalid' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-invalid");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-invalid", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaKeyShortcuts() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaKeyShortcuts' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-keyshortcuts");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaKeyShortcuts(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaKeyShortcuts' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaKeyShortcuts' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-keyshortcuts");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-keyshortcuts", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaLabel() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaLabel' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-label");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaLabel(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaLabel' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaLabel' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-label");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-label", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaLevel() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaLevel' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-level");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaLevel(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaLevel' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaLevel' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-level");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-level", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaLive() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get ariaLive' called on an object that is not a valid instance of Element.");
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-live");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaLive(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set ariaLive' called on an object that is not a valid instance of Element.");
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaLive' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-live");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-live", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaModal() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaModal' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-modal");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaModal(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaModal' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaModal' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-modal");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-modal", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaMultiLine() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaMultiLine' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-multiline");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaMultiLine(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaMultiLine' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaMultiLine' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-multiline");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-multiline", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaMultiSelectable() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaMultiSelectable' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-multiselectable");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaMultiSelectable(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaMultiSelectable' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaMultiSelectable' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-multiselectable");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-multiselectable", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaOrientation() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaOrientation' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-orientation");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaOrientation(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaOrientation' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaOrientation' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-orientation");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-orientation", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaPlaceholder() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaPlaceholder' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-placeholder");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaPlaceholder(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaPlaceholder' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaPlaceholder' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-placeholder");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-placeholder", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaPosInSet() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaPosInSet' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-posinset");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaPosInSet(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaPosInSet' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaPosInSet' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-posinset");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-posinset", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaPressed() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaPressed' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-pressed");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaPressed(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaPressed' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaPressed' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-pressed");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-pressed", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaReadOnly() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaReadOnly' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-readonly");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaReadOnly(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaReadOnly' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaReadOnly' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-readonly");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-readonly", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaRequired() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaRequired' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-required");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaRequired(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaRequired' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaRequired' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-required");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-required", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaRoleDescription() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaRoleDescription' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-roledescription");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaRoleDescription(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaRoleDescription' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaRoleDescription' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-roledescription");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-roledescription", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaRowCount() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaRowCount' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-rowcount");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaRowCount(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaRowCount' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaRowCount' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-rowcount");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-rowcount", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaRowIndex() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaRowIndex' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-rowindex");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaRowIndex(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaRowIndex' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaRowIndex' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-rowindex");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-rowindex", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaRowIndexText() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaRowIndexText' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-rowindextext");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaRowIndexText(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaRowIndexText' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaRowIndexText' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-rowindextext");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-rowindextext", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaRowSpan() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaRowSpan' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-rowspan");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaRowSpan(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaRowSpan' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaRowSpan' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-rowspan");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-rowspan", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaSelected() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaSelected' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-selected");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaSelected(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaSelected' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaSelected' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-selected");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-selected", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaSetSize() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaSetSize' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-setsize");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaSetSize(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaSetSize' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaSetSize' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-setsize");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-setsize", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaSort() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get ariaSort' called on an object that is not a valid instance of Element.");
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-sort");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaSort(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set ariaSort' called on an object that is not a valid instance of Element.");
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaSort' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-sort");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-sort", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaValueMax() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaValueMax' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-valuemax");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaValueMax(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaValueMax' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaValueMax' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-valuemax");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-valuemax", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaValueMin() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaValueMin' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-valuemin");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaValueMin(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaValueMin' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaValueMin' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-valuemin");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-valuemin", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaValueNow() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaValueNow' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-valuenow");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaValueNow(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaValueNow' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaValueNow' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-valuenow");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-valuenow", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaValueText() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaValueText' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-valuetext");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaValueText(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaValueText' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaValueText' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-valuetext");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-valuetext", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaRelevant() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaRelevant' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-relevant");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaRelevant(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaRelevant' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaRelevant' property on 'Element': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-relevant");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-relevant", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get previousElementSibling() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get previousElementSibling' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["previousElementSibling"]);
+ }
+
+ get nextElementSibling() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get nextElementSibling' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["nextElementSibling"]);
+ }
+
+ get children() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get children' called on an object that is not a valid instance of Element.");
+ }
+
+ return utils.getSameObject(this, "children", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["children"]);
+ });
+ }
+
+ get firstElementChild() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get firstElementChild' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["firstElementChild"]);
+ }
+
+ get lastElementChild() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get lastElementChild' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["lastElementChild"]);
+ }
+
+ get childElementCount() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get childElementCount' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ return esValue[implSymbol]["childElementCount"];
+ }
+
+ get assignedSlot() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get assignedSlot' called on an object that is not a valid instance of Element."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["assignedSlot"]);
+ }
+ }
+ Object.defineProperties(Element.prototype, {
+ hasAttributes: { enumerable: true },
+ getAttributeNames: { enumerable: true },
+ getAttribute: { enumerable: true },
+ getAttributeNS: { enumerable: true },
+ setAttribute: { enumerable: true },
+ setAttributeNS: { enumerable: true },
+ removeAttribute: { enumerable: true },
+ removeAttributeNS: { enumerable: true },
+ toggleAttribute: { enumerable: true },
+ hasAttribute: { enumerable: true },
+ hasAttributeNS: { enumerable: true },
+ getAttributeNode: { enumerable: true },
+ getAttributeNodeNS: { enumerable: true },
+ setAttributeNode: { enumerable: true },
+ setAttributeNodeNS: { enumerable: true },
+ removeAttributeNode: { enumerable: true },
+ attachShadow: { enumerable: true },
+ closest: { enumerable: true },
+ matches: { enumerable: true },
+ webkitMatchesSelector: { enumerable: true },
+ getElementsByTagName: { enumerable: true },
+ getElementsByTagNameNS: { enumerable: true },
+ getElementsByClassName: { enumerable: true },
+ insertAdjacentElement: { enumerable: true },
+ insertAdjacentText: { enumerable: true },
+ insertAdjacentHTML: { enumerable: true },
+ getClientRects: { enumerable: true },
+ getBoundingClientRect: { enumerable: true },
+ before: { enumerable: true },
+ after: { enumerable: true },
+ replaceWith: { enumerable: true },
+ remove: { enumerable: true },
+ prepend: { enumerable: true },
+ append: { enumerable: true },
+ replaceChildren: { enumerable: true },
+ querySelector: { enumerable: true },
+ querySelectorAll: { enumerable: true },
+ namespaceURI: { enumerable: true },
+ prefix: { enumerable: true },
+ localName: { enumerable: true },
+ tagName: { enumerable: true },
+ id: { enumerable: true },
+ className: { enumerable: true },
+ classList: { enumerable: true },
+ slot: { enumerable: true },
+ attributes: { enumerable: true },
+ shadowRoot: { enumerable: true },
+ outerHTML: { enumerable: true },
+ scrollTop: { enumerable: true },
+ scrollLeft: { enumerable: true },
+ scrollWidth: { enumerable: true },
+ scrollHeight: { enumerable: true },
+ clientTop: { enumerable: true },
+ clientLeft: { enumerable: true },
+ clientWidth: { enumerable: true },
+ clientHeight: { enumerable: true },
+ innerHTML: { enumerable: true },
+ role: { enumerable: true },
+ ariaAtomic: { enumerable: true },
+ ariaAutoComplete: { enumerable: true },
+ ariaBusy: { enumerable: true },
+ ariaChecked: { enumerable: true },
+ ariaColCount: { enumerable: true },
+ ariaColIndex: { enumerable: true },
+ ariaColIndexText: { enumerable: true },
+ ariaColSpan: { enumerable: true },
+ ariaCurrent: { enumerable: true },
+ ariaDescription: { enumerable: true },
+ ariaDisabled: { enumerable: true },
+ ariaExpanded: { enumerable: true },
+ ariaHasPopup: { enumerable: true },
+ ariaHidden: { enumerable: true },
+ ariaInvalid: { enumerable: true },
+ ariaKeyShortcuts: { enumerable: true },
+ ariaLabel: { enumerable: true },
+ ariaLevel: { enumerable: true },
+ ariaLive: { enumerable: true },
+ ariaModal: { enumerable: true },
+ ariaMultiLine: { enumerable: true },
+ ariaMultiSelectable: { enumerable: true },
+ ariaOrientation: { enumerable: true },
+ ariaPlaceholder: { enumerable: true },
+ ariaPosInSet: { enumerable: true },
+ ariaPressed: { enumerable: true },
+ ariaReadOnly: { enumerable: true },
+ ariaRequired: { enumerable: true },
+ ariaRoleDescription: { enumerable: true },
+ ariaRowCount: { enumerable: true },
+ ariaRowIndex: { enumerable: true },
+ ariaRowIndexText: { enumerable: true },
+ ariaRowSpan: { enumerable: true },
+ ariaSelected: { enumerable: true },
+ ariaSetSize: { enumerable: true },
+ ariaSort: { enumerable: true },
+ ariaValueMax: { enumerable: true },
+ ariaValueMin: { enumerable: true },
+ ariaValueNow: { enumerable: true },
+ ariaValueText: { enumerable: true },
+ ariaRelevant: { enumerable: true },
+ previousElementSibling: { enumerable: true },
+ nextElementSibling: { enumerable: true },
+ children: { enumerable: true },
+ firstElementChild: { enumerable: true },
+ lastElementChild: { enumerable: true },
+ childElementCount: { enumerable: true },
+ assignedSlot: { enumerable: true },
+ [Symbol.toStringTag]: { value: "Element", configurable: true },
+ [Symbol.unscopables]: {
+ value: {
+ slot: true,
+ before: true,
+ after: true,
+ replaceWith: true,
+ remove: true,
+ prepend: true,
+ append: true,
+ replaceChildren: true,
+ __proto__: null
+ },
+ configurable: true
+ }
+ });
+ ctorRegistry[interfaceName] = Element;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: Element
+ });
+};
+
+const Impl = require("../nodes/Element-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/ElementCreationOptions.js b/node_modules/jsdom/lib/jsdom/living/generated/ElementCreationOptions.js
new file mode 100644
index 0000000000000000000000000000000000000000..873b2a79d1715d22d997a5de0aafd9c9935a7d73
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/ElementCreationOptions.js
@@ -0,0 +1,26 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ {
+ const key = "is";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["DOMString"](value, { context: context + " has member 'is' that", globals: globalObject });
+
+ ret[key] = value;
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/ElementDefinitionOptions.js b/node_modules/jsdom/lib/jsdom/living/generated/ElementDefinitionOptions.js
new file mode 100644
index 0000000000000000000000000000000000000000..e32d1e82d04e837de37e7f93e674167a4adc7d97
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/ElementDefinitionOptions.js
@@ -0,0 +1,29 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ {
+ const key = "extends";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["DOMString"](value, {
+ context: context + " has member 'extends' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/ElementInternals.js b/node_modules/jsdom/lib/jsdom/living/generated/ElementInternals.js
new file mode 100644
index 0000000000000000000000000000000000000000..7b463930ca2f106747da95bd88e4fa469888c930
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/ElementInternals.js
@@ -0,0 +1,2150 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "ElementInternals";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'ElementInternals'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["ElementInternals"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class ElementInternals {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ get shadowRoot() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get shadowRoot' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["shadowRoot"]);
+ }
+
+ get labels() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get labels' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["labels"]);
+ }
+
+ get role() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get role' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("role");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set role(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set role' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'role' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("role");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("role", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaAtomic() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaAtomic' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-atomic");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaAtomic(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaAtomic' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaAtomic' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-atomic");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-atomic", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaAutoComplete() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaAutoComplete' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-autocomplete");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaAutoComplete(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaAutoComplete' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaAutoComplete' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-autocomplete");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-autocomplete", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaBusy() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaBusy' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-busy");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaBusy(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaBusy' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaBusy' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-busy");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-busy", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaChecked() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaChecked' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-checked");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaChecked(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaChecked' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaChecked' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-checked");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-checked", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaColCount() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaColCount' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-colcount");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaColCount(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaColCount' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaColCount' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-colcount");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-colcount", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaColIndex() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaColIndex' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-colindex");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaColIndex(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaColIndex' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaColIndex' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-colindex");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-colindex", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaColIndexText() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaColIndexText' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-colindextext");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaColIndexText(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaColIndexText' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaColIndexText' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-colindextext");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-colindextext", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaColSpan() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaColSpan' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-colspan");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaColSpan(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaColSpan' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaColSpan' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-colspan");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-colspan", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaCurrent() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaCurrent' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-current");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaCurrent(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaCurrent' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaCurrent' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-current");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-current", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaDescription() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaDescription' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-description");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaDescription(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaDescription' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaDescription' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-description");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-description", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaDisabled() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaDisabled' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-disabled");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaDisabled(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaDisabled' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaDisabled' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-disabled");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-disabled", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaExpanded() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaExpanded' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-expanded");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaExpanded(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaExpanded' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaExpanded' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-expanded");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-expanded", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaHasPopup() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaHasPopup' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-haspopup");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaHasPopup(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaHasPopup' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaHasPopup' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-haspopup");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-haspopup", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaHidden() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaHidden' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-hidden");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaHidden(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaHidden' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaHidden' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-hidden");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-hidden", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaInvalid() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaInvalid' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-invalid");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaInvalid(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaInvalid' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaInvalid' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-invalid");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-invalid", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaKeyShortcuts() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaKeyShortcuts' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-keyshortcuts");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaKeyShortcuts(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaKeyShortcuts' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaKeyShortcuts' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-keyshortcuts");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-keyshortcuts", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaLabel() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaLabel' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-label");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaLabel(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaLabel' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaLabel' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-label");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-label", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaLevel() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaLevel' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-level");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaLevel(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaLevel' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaLevel' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-level");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-level", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaLive() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaLive' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-live");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaLive(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaLive' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaLive' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-live");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-live", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaModal() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaModal' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-modal");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaModal(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaModal' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaModal' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-modal");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-modal", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaMultiLine() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaMultiLine' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-multiline");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaMultiLine(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaMultiLine' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaMultiLine' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-multiline");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-multiline", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaMultiSelectable() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaMultiSelectable' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-multiselectable");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaMultiSelectable(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaMultiSelectable' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaMultiSelectable' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-multiselectable");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-multiselectable", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaOrientation() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaOrientation' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-orientation");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaOrientation(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaOrientation' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaOrientation' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-orientation");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-orientation", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaPlaceholder() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaPlaceholder' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-placeholder");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaPlaceholder(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaPlaceholder' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaPlaceholder' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-placeholder");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-placeholder", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaPosInSet() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaPosInSet' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-posinset");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaPosInSet(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaPosInSet' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaPosInSet' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-posinset");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-posinset", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaPressed() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaPressed' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-pressed");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaPressed(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaPressed' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaPressed' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-pressed");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-pressed", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaReadOnly() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaReadOnly' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-readonly");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaReadOnly(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaReadOnly' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaReadOnly' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-readonly");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-readonly", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaRequired() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaRequired' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-required");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaRequired(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaRequired' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaRequired' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-required");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-required", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaRoleDescription() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaRoleDescription' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-roledescription");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaRoleDescription(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaRoleDescription' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaRoleDescription' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-roledescription");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-roledescription", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaRowCount() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaRowCount' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-rowcount");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaRowCount(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaRowCount' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaRowCount' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-rowcount");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-rowcount", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaRowIndex() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaRowIndex' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-rowindex");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaRowIndex(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaRowIndex' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaRowIndex' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-rowindex");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-rowindex", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaRowIndexText() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaRowIndexText' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-rowindextext");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaRowIndexText(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaRowIndexText' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaRowIndexText' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-rowindextext");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-rowindextext", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaRowSpan() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaRowSpan' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-rowspan");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaRowSpan(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaRowSpan' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaRowSpan' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-rowspan");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-rowspan", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaSelected() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaSelected' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-selected");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaSelected(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaSelected' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaSelected' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-selected");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-selected", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaSetSize() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaSetSize' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-setsize");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaSetSize(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaSetSize' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaSetSize' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-setsize");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-setsize", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaSort() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaSort' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-sort");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaSort(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaSort' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaSort' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-sort");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-sort", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaValueMax() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaValueMax' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-valuemax");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaValueMax(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaValueMax' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaValueMax' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-valuemax");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-valuemax", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaValueMin() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaValueMin' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-valuemin");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaValueMin(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaValueMin' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaValueMin' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-valuemin");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-valuemin", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaValueNow() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaValueNow' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-valuenow");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaValueNow(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaValueNow' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaValueNow' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-valuenow");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-valuenow", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaValueText() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaValueText' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-valuetext");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaValueText(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaValueText' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaValueText' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-valuetext");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-valuetext", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ariaRelevant() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ariaRelevant' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("aria-relevant");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ariaRelevant(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ariaRelevant' called on an object that is not a valid instance of ElementInternals."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ariaRelevant' property on 'ElementInternals': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-relevant");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("aria-relevant", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(ElementInternals.prototype, {
+ shadowRoot: { enumerable: true },
+ labels: { enumerable: true },
+ role: { enumerable: true },
+ ariaAtomic: { enumerable: true },
+ ariaAutoComplete: { enumerable: true },
+ ariaBusy: { enumerable: true },
+ ariaChecked: { enumerable: true },
+ ariaColCount: { enumerable: true },
+ ariaColIndex: { enumerable: true },
+ ariaColIndexText: { enumerable: true },
+ ariaColSpan: { enumerable: true },
+ ariaCurrent: { enumerable: true },
+ ariaDescription: { enumerable: true },
+ ariaDisabled: { enumerable: true },
+ ariaExpanded: { enumerable: true },
+ ariaHasPopup: { enumerable: true },
+ ariaHidden: { enumerable: true },
+ ariaInvalid: { enumerable: true },
+ ariaKeyShortcuts: { enumerable: true },
+ ariaLabel: { enumerable: true },
+ ariaLevel: { enumerable: true },
+ ariaLive: { enumerable: true },
+ ariaModal: { enumerable: true },
+ ariaMultiLine: { enumerable: true },
+ ariaMultiSelectable: { enumerable: true },
+ ariaOrientation: { enumerable: true },
+ ariaPlaceholder: { enumerable: true },
+ ariaPosInSet: { enumerable: true },
+ ariaPressed: { enumerable: true },
+ ariaReadOnly: { enumerable: true },
+ ariaRequired: { enumerable: true },
+ ariaRoleDescription: { enumerable: true },
+ ariaRowCount: { enumerable: true },
+ ariaRowIndex: { enumerable: true },
+ ariaRowIndexText: { enumerable: true },
+ ariaRowSpan: { enumerable: true },
+ ariaSelected: { enumerable: true },
+ ariaSetSize: { enumerable: true },
+ ariaSort: { enumerable: true },
+ ariaValueMax: { enumerable: true },
+ ariaValueMin: { enumerable: true },
+ ariaValueNow: { enumerable: true },
+ ariaValueText: { enumerable: true },
+ ariaRelevant: { enumerable: true },
+ [Symbol.toStringTag]: { value: "ElementInternals", configurable: true }
+ });
+ ctorRegistry[interfaceName] = ElementInternals;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: ElementInternals
+ });
+};
+
+const Impl = require("../custom-elements/ElementInternals-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/EndingType.js b/node_modules/jsdom/lib/jsdom/living/generated/EndingType.js
new file mode 100644
index 0000000000000000000000000000000000000000..05128c22e5e5312038ad78ce9c8916b0719b45ed
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/EndingType.js
@@ -0,0 +1,12 @@
+"use strict";
+
+const enumerationValues = new Set(["transparent", "native"]);
+exports.enumerationValues = enumerationValues;
+
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ const string = `${value}`;
+ if (!enumerationValues.has(string)) {
+ throw new globalObject.TypeError(`${context} '${string}' is not a valid enumeration value for EndingType`);
+ }
+ return string;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/ErrorEvent.js b/node_modules/jsdom/lib/jsdom/living/generated/ErrorEvent.js
new file mode 100644
index 0000000000000000000000000000000000000000..a264b3c4483cab938dd928fdc686075d2f8b706f
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/ErrorEvent.js
@@ -0,0 +1,192 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const ErrorEventInit = require("./ErrorEventInit.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const Event = require("./Event.js");
+
+const interfaceName = "ErrorEvent";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'ErrorEvent'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["ErrorEvent"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ Event._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class ErrorEvent extends globalObject.Event {
+ constructor(type) {
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to construct 'ErrorEvent': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to construct 'ErrorEvent': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = ErrorEventInit.convert(globalObject, curArg, {
+ context: "Failed to construct 'ErrorEvent': parameter 2"
+ });
+ args.push(curArg);
+ }
+ return exports.setup(Object.create(new.target.prototype), globalObject, args);
+ }
+
+ get message() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get message' called on an object that is not a valid instance of ErrorEvent."
+ );
+ }
+
+ return esValue[implSymbol]["message"];
+ }
+
+ get filename() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get filename' called on an object that is not a valid instance of ErrorEvent."
+ );
+ }
+
+ return esValue[implSymbol]["filename"];
+ }
+
+ get lineno() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get lineno' called on an object that is not a valid instance of ErrorEvent."
+ );
+ }
+
+ return esValue[implSymbol]["lineno"];
+ }
+
+ get colno() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get colno' called on an object that is not a valid instance of ErrorEvent.");
+ }
+
+ return esValue[implSymbol]["colno"];
+ }
+
+ get error() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get error' called on an object that is not a valid instance of ErrorEvent.");
+ }
+
+ return esValue[implSymbol]["error"];
+ }
+ }
+ Object.defineProperties(ErrorEvent.prototype, {
+ message: { enumerable: true },
+ filename: { enumerable: true },
+ lineno: { enumerable: true },
+ colno: { enumerable: true },
+ error: { enumerable: true },
+ [Symbol.toStringTag]: { value: "ErrorEvent", configurable: true }
+ });
+ ctorRegistry[interfaceName] = ErrorEvent;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: ErrorEvent
+ });
+};
+
+const Impl = require("../events/ErrorEvent-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/ErrorEventInit.js b/node_modules/jsdom/lib/jsdom/living/generated/ErrorEventInit.js
new file mode 100644
index 0000000000000000000000000000000000000000..e615f5a46f43b58578243357e3f4a86231233301
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/ErrorEventInit.js
@@ -0,0 +1,92 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const EventInit = require("./EventInit.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ EventInit._convertInherit(globalObject, obj, ret, { context });
+
+ {
+ const key = "colno";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["unsigned long"](value, {
+ context: context + " has member 'colno' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = 0;
+ }
+ }
+
+ {
+ const key = "error";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["any"](value, { context: context + " has member 'error' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = null;
+ }
+ }
+
+ {
+ const key = "filename";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["USVString"](value, {
+ context: context + " has member 'filename' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = "";
+ }
+ }
+
+ {
+ const key = "lineno";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["unsigned long"](value, {
+ context: context + " has member 'lineno' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = 0;
+ }
+ }
+
+ {
+ const key = "message";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["DOMString"](value, {
+ context: context + " has member 'message' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = "";
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/Event.js b/node_modules/jsdom/lib/jsdom/living/generated/Event.js
new file mode 100644
index 0000000000000000000000000000000000000000..c8239c32b338d5e47c72855b502ea36be36af24a
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/Event.js
@@ -0,0 +1,430 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const EventInit = require("./EventInit.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "Event";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'Event'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["Event"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+function getUnforgeables(globalObject) {
+ let unforgeables = unforgeablesMap.get(globalObject);
+ if (unforgeables === undefined) {
+ unforgeables = Object.create(null);
+ utils.define(unforgeables, {
+ get isTrusted() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get isTrusted' called on an object that is not a valid instance of Event."
+ );
+ }
+
+ return esValue[implSymbol]["isTrusted"];
+ }
+ });
+ Object.defineProperties(unforgeables, {
+ isTrusted: { configurable: false }
+ });
+ unforgeablesMap.set(globalObject, unforgeables);
+ }
+ return unforgeables;
+}
+
+exports._internalSetup = (wrapper, globalObject) => {
+ utils.define(wrapper, getUnforgeables(globalObject));
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const unforgeablesMap = new WeakMap();
+const exposed = new Set(["Window", "Worker", "AudioWorklet"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class Event {
+ constructor(type) {
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to construct 'Event': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to construct 'Event': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = EventInit.convert(globalObject, curArg, { context: "Failed to construct 'Event': parameter 2" });
+ args.push(curArg);
+ }
+ return exports.setup(Object.create(new.target.prototype), globalObject, args);
+ }
+
+ composedPath() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'composedPath' called on an object that is not a valid instance of Event.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol].composedPath());
+ }
+
+ stopPropagation() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'stopPropagation' called on an object that is not a valid instance of Event."
+ );
+ }
+
+ return esValue[implSymbol].stopPropagation();
+ }
+
+ stopImmediatePropagation() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'stopImmediatePropagation' called on an object that is not a valid instance of Event."
+ );
+ }
+
+ return esValue[implSymbol].stopImmediatePropagation();
+ }
+
+ preventDefault() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'preventDefault' called on an object that is not a valid instance of Event.");
+ }
+
+ return esValue[implSymbol].preventDefault();
+ }
+
+ initEvent(type) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'initEvent' called on an object that is not a valid instance of Event.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'initEvent' on 'Event': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'initEvent' on 'Event': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg !== undefined) {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'initEvent' on 'Event': parameter 2",
+ globals: globalObject
+ });
+ } else {
+ curArg = false;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ if (curArg !== undefined) {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'initEvent' on 'Event': parameter 3",
+ globals: globalObject
+ });
+ } else {
+ curArg = false;
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].initEvent(...args);
+ }
+
+ get type() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get type' called on an object that is not a valid instance of Event.");
+ }
+
+ return esValue[implSymbol]["type"];
+ }
+
+ get target() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get target' called on an object that is not a valid instance of Event.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["target"]);
+ }
+
+ get srcElement() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get srcElement' called on an object that is not a valid instance of Event.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["srcElement"]);
+ }
+
+ get currentTarget() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get currentTarget' called on an object that is not a valid instance of Event."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["currentTarget"]);
+ }
+
+ get eventPhase() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get eventPhase' called on an object that is not a valid instance of Event.");
+ }
+
+ return esValue[implSymbol]["eventPhase"];
+ }
+
+ get cancelBubble() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get cancelBubble' called on an object that is not a valid instance of Event."
+ );
+ }
+
+ return esValue[implSymbol]["cancelBubble"];
+ }
+
+ set cancelBubble(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set cancelBubble' called on an object that is not a valid instance of Event."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'cancelBubble' property on 'Event': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["cancelBubble"] = V;
+ }
+
+ get bubbles() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get bubbles' called on an object that is not a valid instance of Event.");
+ }
+
+ return esValue[implSymbol]["bubbles"];
+ }
+
+ get cancelable() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get cancelable' called on an object that is not a valid instance of Event.");
+ }
+
+ return esValue[implSymbol]["cancelable"];
+ }
+
+ get returnValue() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get returnValue' called on an object that is not a valid instance of Event."
+ );
+ }
+
+ return esValue[implSymbol]["returnValue"];
+ }
+
+ set returnValue(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set returnValue' called on an object that is not a valid instance of Event."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'returnValue' property on 'Event': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["returnValue"] = V;
+ }
+
+ get defaultPrevented() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get defaultPrevented' called on an object that is not a valid instance of Event."
+ );
+ }
+
+ return esValue[implSymbol]["defaultPrevented"];
+ }
+
+ get composed() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get composed' called on an object that is not a valid instance of Event.");
+ }
+
+ return esValue[implSymbol]["composed"];
+ }
+
+ get timeStamp() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get timeStamp' called on an object that is not a valid instance of Event.");
+ }
+
+ return esValue[implSymbol]["timeStamp"];
+ }
+ }
+ Object.defineProperties(Event.prototype, {
+ composedPath: { enumerable: true },
+ stopPropagation: { enumerable: true },
+ stopImmediatePropagation: { enumerable: true },
+ preventDefault: { enumerable: true },
+ initEvent: { enumerable: true },
+ type: { enumerable: true },
+ target: { enumerable: true },
+ srcElement: { enumerable: true },
+ currentTarget: { enumerable: true },
+ eventPhase: { enumerable: true },
+ cancelBubble: { enumerable: true },
+ bubbles: { enumerable: true },
+ cancelable: { enumerable: true },
+ returnValue: { enumerable: true },
+ defaultPrevented: { enumerable: true },
+ composed: { enumerable: true },
+ timeStamp: { enumerable: true },
+ [Symbol.toStringTag]: { value: "Event", configurable: true },
+ NONE: { value: 0, enumerable: true },
+ CAPTURING_PHASE: { value: 1, enumerable: true },
+ AT_TARGET: { value: 2, enumerable: true },
+ BUBBLING_PHASE: { value: 3, enumerable: true }
+ });
+ Object.defineProperties(Event, {
+ NONE: { value: 0, enumerable: true },
+ CAPTURING_PHASE: { value: 1, enumerable: true },
+ AT_TARGET: { value: 2, enumerable: true },
+ BUBBLING_PHASE: { value: 3, enumerable: true }
+ });
+ ctorRegistry[interfaceName] = Event;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: Event
+ });
+};
+
+const Impl = require("../events/Event-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/EventHandlerNonNull.js b/node_modules/jsdom/lib/jsdom/living/generated/EventHandlerNonNull.js
new file mode 100644
index 0000000000000000000000000000000000000000..a8fc6665f64968b424595c331d68a41c823ac52d
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/EventHandlerNonNull.js
@@ -0,0 +1,36 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ function invokeTheCallbackFunction(event) {
+ const thisArg = utils.tryWrapperForImpl(this);
+ let callResult;
+
+ if (typeof value === "function") {
+ event = utils.tryWrapperForImpl(event);
+
+ callResult = Reflect.apply(value, thisArg, [event]);
+ }
+
+ callResult = conversions["any"](callResult, { context: context, globals: globalObject });
+
+ return callResult;
+ }
+
+ invokeTheCallbackFunction.construct = event => {
+ event = utils.tryWrapperForImpl(event);
+
+ let callResult = Reflect.construct(value, [event]);
+
+ callResult = conversions["any"](callResult, { context: context, globals: globalObject });
+
+ return callResult;
+ };
+
+ invokeTheCallbackFunction[utils.wrapperSymbol] = value;
+ invokeTheCallbackFunction.objectReference = value;
+
+ return invokeTheCallbackFunction;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/EventInit.js b/node_modules/jsdom/lib/jsdom/living/generated/EventInit.js
new file mode 100644
index 0000000000000000000000000000000000000000..b0bdcbcfe43b6feea998bbfb1da5c4f5127ad9c1
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/EventInit.js
@@ -0,0 +1,58 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ {
+ const key = "bubbles";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, { context: context + " has member 'bubbles' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+
+ {
+ const key = "cancelable";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, {
+ context: context + " has member 'cancelable' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+
+ {
+ const key = "composed";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, {
+ context: context + " has member 'composed' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/EventListener.js b/node_modules/jsdom/lib/jsdom/living/generated/EventListener.js
new file mode 100644
index 0000000000000000000000000000000000000000..d7477366f5edeb42f239fbdd4367ae7be0315416
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/EventListener.js
@@ -0,0 +1,35 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (!utils.isObject(value)) {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ function callTheUserObjectsOperation(event) {
+ let thisArg = utils.tryWrapperForImpl(this);
+ let O = value;
+ let X = O;
+
+ if (typeof O !== "function") {
+ X = O["handleEvent"];
+ if (typeof X !== "function") {
+ throw new globalObject.TypeError(`${context} does not correctly implement EventListener.`);
+ }
+ thisArg = O;
+ }
+
+ event = utils.tryWrapperForImpl(event);
+
+ let callResult = Reflect.apply(X, thisArg, [event]);
+ }
+
+ callTheUserObjectsOperation[utils.wrapperSymbol] = value;
+ callTheUserObjectsOperation.objectReference = value;
+
+ return callTheUserObjectsOperation;
+};
+
+exports.install = (globalObject, globalNames) => {};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/EventListenerOptions.js b/node_modules/jsdom/lib/jsdom/living/generated/EventListenerOptions.js
new file mode 100644
index 0000000000000000000000000000000000000000..49e468608eba03df2fcc6a1208aab826904a6a18
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/EventListenerOptions.js
@@ -0,0 +1,28 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ {
+ const key = "capture";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, { context: context + " has member 'capture' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/EventModifierInit.js b/node_modules/jsdom/lib/jsdom/living/generated/EventModifierInit.js
new file mode 100644
index 0000000000000000000000000000000000000000..227250bf60e11a7746325c86e4add3623306e1c8
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/EventModifierInit.js
@@ -0,0 +1,221 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const UIEventInit = require("./UIEventInit.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ UIEventInit._convertInherit(globalObject, obj, ret, { context });
+
+ {
+ const key = "altKey";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, { context: context + " has member 'altKey' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+
+ {
+ const key = "ctrlKey";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, { context: context + " has member 'ctrlKey' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+
+ {
+ const key = "metaKey";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, { context: context + " has member 'metaKey' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+
+ {
+ const key = "modifierAltGraph";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, {
+ context: context + " has member 'modifierAltGraph' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+
+ {
+ const key = "modifierCapsLock";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, {
+ context: context + " has member 'modifierCapsLock' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+
+ {
+ const key = "modifierFn";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, {
+ context: context + " has member 'modifierFn' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+
+ {
+ const key = "modifierFnLock";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, {
+ context: context + " has member 'modifierFnLock' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+
+ {
+ const key = "modifierHyper";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, {
+ context: context + " has member 'modifierHyper' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+
+ {
+ const key = "modifierNumLock";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, {
+ context: context + " has member 'modifierNumLock' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+
+ {
+ const key = "modifierScrollLock";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, {
+ context: context + " has member 'modifierScrollLock' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+
+ {
+ const key = "modifierSuper";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, {
+ context: context + " has member 'modifierSuper' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+
+ {
+ const key = "modifierSymbol";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, {
+ context: context + " has member 'modifierSymbol' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+
+ {
+ const key = "modifierSymbolLock";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, {
+ context: context + " has member 'modifierSymbolLock' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+
+ {
+ const key = "shiftKey";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, {
+ context: context + " has member 'shiftKey' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js b/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js
new file mode 100644
index 0000000000000000000000000000000000000000..d9eca4dd9687c601718115803565a4a49ec21486
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js
@@ -0,0 +1,259 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const EventListener = require("./EventListener.js");
+const AddEventListenerOptions = require("./AddEventListenerOptions.js");
+const EventListenerOptions = require("./EventListenerOptions.js");
+const Event = require("./Event.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "EventTarget";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'EventTarget'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["EventTarget"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker", "AudioWorklet"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class EventTarget {
+ constructor() {
+ return exports.setup(Object.create(new.target.prototype), globalObject, undefined);
+ }
+
+ addEventListener(type, callback) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'addEventListener' called on an object that is not a valid instance of EventTarget."
+ );
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'addEventListener' on 'EventTarget': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'addEventListener' on 'EventTarget': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = EventListener.convert(globalObject, curArg, {
+ context: "Failed to execute 'addEventListener' on 'EventTarget': parameter 2"
+ });
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ if (curArg !== undefined) {
+ if (curArg === null || curArg === undefined) {
+ curArg = AddEventListenerOptions.convert(globalObject, curArg, {
+ context: "Failed to execute 'addEventListener' on 'EventTarget': parameter 3"
+ });
+ } else if (utils.isObject(curArg)) {
+ curArg = AddEventListenerOptions.convert(globalObject, curArg, {
+ context: "Failed to execute 'addEventListener' on 'EventTarget': parameter 3" + " dictionary"
+ });
+ } else if (typeof curArg === "boolean") {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'addEventListener' on 'EventTarget': parameter 3",
+ globals: globalObject
+ });
+ } else {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'addEventListener' on 'EventTarget': parameter 3",
+ globals: globalObject
+ });
+ }
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].addEventListener(...args);
+ }
+
+ removeEventListener(type, callback) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'removeEventListener' called on an object that is not a valid instance of EventTarget."
+ );
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'removeEventListener' on 'EventTarget': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'removeEventListener' on 'EventTarget': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = EventListener.convert(globalObject, curArg, {
+ context: "Failed to execute 'removeEventListener' on 'EventTarget': parameter 2"
+ });
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ if (curArg !== undefined) {
+ if (curArg === null || curArg === undefined) {
+ curArg = EventListenerOptions.convert(globalObject, curArg, {
+ context: "Failed to execute 'removeEventListener' on 'EventTarget': parameter 3"
+ });
+ } else if (utils.isObject(curArg)) {
+ curArg = EventListenerOptions.convert(globalObject, curArg, {
+ context: "Failed to execute 'removeEventListener' on 'EventTarget': parameter 3" + " dictionary"
+ });
+ } else if (typeof curArg === "boolean") {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'removeEventListener' on 'EventTarget': parameter 3",
+ globals: globalObject
+ });
+ } else {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'removeEventListener' on 'EventTarget': parameter 3",
+ globals: globalObject
+ });
+ }
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].removeEventListener(...args);
+ }
+
+ dispatchEvent(event) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'dispatchEvent' called on an object that is not a valid instance of EventTarget."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'dispatchEvent' on 'EventTarget': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = Event.convert(globalObject, curArg, {
+ context: "Failed to execute 'dispatchEvent' on 'EventTarget': parameter 1"
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].dispatchEvent(...args);
+ }
+ }
+ Object.defineProperties(EventTarget.prototype, {
+ addEventListener: { enumerable: true },
+ removeEventListener: { enumerable: true },
+ dispatchEvent: { enumerable: true },
+ [Symbol.toStringTag]: { value: "EventTarget", configurable: true }
+ });
+ ctorRegistry[interfaceName] = EventTarget;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: EventTarget
+ });
+};
+
+const Impl = require("../events/EventTarget-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/External.js b/node_modules/jsdom/lib/jsdom/living/generated/External.js
new file mode 100644
index 0000000000000000000000000000000000000000..37d450b2666230e1a41060c1a2ee6e449c7e8794
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/External.js
@@ -0,0 +1,130 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "External";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'External'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["External"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class External {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ AddSearchProvider() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'AddSearchProvider' called on an object that is not a valid instance of External."
+ );
+ }
+
+ return esValue[implSymbol].AddSearchProvider();
+ }
+
+ IsSearchProviderInstalled() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'IsSearchProviderInstalled' called on an object that is not a valid instance of External."
+ );
+ }
+
+ return esValue[implSymbol].IsSearchProviderInstalled();
+ }
+ }
+ Object.defineProperties(External.prototype, {
+ AddSearchProvider: { enumerable: true },
+ IsSearchProviderInstalled: { enumerable: true },
+ [Symbol.toStringTag]: { value: "External", configurable: true }
+ });
+ ctorRegistry[interfaceName] = External;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: External
+ });
+};
+
+const Impl = require("../window/External-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/File.js b/node_modules/jsdom/lib/jsdom/living/generated/File.js
new file mode 100644
index 0000000000000000000000000000000000000000..734c25a694f1ad9f18020f39258fd7b067bd2b00
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/File.js
@@ -0,0 +1,185 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const Blob = require("./Blob.js");
+const FilePropertyBag = require("./FilePropertyBag.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "File";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'File'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["File"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ Blob._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class File extends globalObject.Blob {
+ constructor(fileBits, fileName) {
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to construct 'File': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (!utils.isObject(curArg)) {
+ throw new globalObject.TypeError("Failed to construct 'File': parameter 1" + " is not an iterable object.");
+ } else {
+ const V = [];
+ const tmp = curArg;
+ for (let nextItem of tmp) {
+ if (Blob.is(nextItem)) {
+ nextItem = utils.implForWrapper(nextItem);
+ } else if (utils.isArrayBuffer(nextItem)) {
+ nextItem = conversions["ArrayBuffer"](nextItem, {
+ context: "Failed to construct 'File': parameter 1" + "'s element",
+ globals: globalObject
+ });
+ } else if (ArrayBuffer.isView(nextItem)) {
+ nextItem = conversions["ArrayBufferView"](nextItem, {
+ context: "Failed to construct 'File': parameter 1" + "'s element",
+ globals: globalObject
+ });
+ } else {
+ nextItem = conversions["USVString"](nextItem, {
+ context: "Failed to construct 'File': parameter 1" + "'s element",
+ globals: globalObject
+ });
+ }
+ V.push(nextItem);
+ }
+ curArg = V;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["USVString"](curArg, {
+ context: "Failed to construct 'File': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ curArg = FilePropertyBag.convert(globalObject, curArg, { context: "Failed to construct 'File': parameter 3" });
+ args.push(curArg);
+ }
+ return exports.setup(Object.create(new.target.prototype), globalObject, args);
+ }
+
+ get name() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get name' called on an object that is not a valid instance of File.");
+ }
+
+ return esValue[implSymbol]["name"];
+ }
+
+ get lastModified() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get lastModified' called on an object that is not a valid instance of File."
+ );
+ }
+
+ return esValue[implSymbol]["lastModified"];
+ }
+ }
+ Object.defineProperties(File.prototype, {
+ name: { enumerable: true },
+ lastModified: { enumerable: true },
+ [Symbol.toStringTag]: { value: "File", configurable: true }
+ });
+ ctorRegistry[interfaceName] = File;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: File
+ });
+};
+
+const Impl = require("../file-api/File-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/FileList.js b/node_modules/jsdom/lib/jsdom/living/generated/FileList.js
new file mode 100644
index 0000000000000000000000000000000000000000..d79702b8367ddd1b9489c85f50cb2737d099f6bf
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/FileList.js
@@ -0,0 +1,298 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "FileList";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'FileList'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["FileList"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+function makeProxy(wrapper, globalObject) {
+ let proxyHandler = proxyHandlerCache.get(globalObject);
+ if (proxyHandler === undefined) {
+ proxyHandler = new ProxyHandler(globalObject);
+ proxyHandlerCache.set(globalObject, proxyHandler);
+ }
+ return new Proxy(wrapper, proxyHandler);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper = makeProxy(wrapper, globalObject);
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ let wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper = makeProxy(wrapper, globalObject);
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class FileList {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ item(index) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'item' called on an object that is not a valid instance of FileList.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'item' on 'FileList': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'item' on 'FileList': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].item(...args));
+ }
+
+ get length() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get length' called on an object that is not a valid instance of FileList.");
+ }
+
+ return esValue[implSymbol]["length"];
+ }
+ }
+ Object.defineProperties(FileList.prototype, {
+ item: { enumerable: true },
+ length: { enumerable: true },
+ [Symbol.toStringTag]: { value: "FileList", configurable: true },
+ [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true }
+ });
+ ctorRegistry[interfaceName] = FileList;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: FileList
+ });
+};
+
+const proxyHandlerCache = new WeakMap();
+class ProxyHandler {
+ constructor(globalObject) {
+ this._globalObject = globalObject;
+ }
+
+ get(target, P, receiver) {
+ if (typeof P === "symbol") {
+ return Reflect.get(target, P, receiver);
+ }
+ const desc = this.getOwnPropertyDescriptor(target, P);
+ if (desc === undefined) {
+ const parent = Object.getPrototypeOf(target);
+ if (parent === null) {
+ return undefined;
+ }
+ return Reflect.get(target, P, receiver);
+ }
+ if (!desc.get && !desc.set) {
+ return desc.value;
+ }
+ const getter = desc.get;
+ if (getter === undefined) {
+ return undefined;
+ }
+ return Reflect.apply(getter, receiver, []);
+ }
+
+ has(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.has(target, P);
+ }
+ const desc = this.getOwnPropertyDescriptor(target, P);
+ if (desc !== undefined) {
+ return true;
+ }
+ const parent = Object.getPrototypeOf(target);
+ if (parent !== null) {
+ return Reflect.has(parent, P);
+ }
+ return false;
+ }
+
+ ownKeys(target) {
+ const keys = new Set();
+
+ for (const key of target[implSymbol][utils.supportedPropertyIndices]) {
+ keys.add(`${key}`);
+ }
+
+ for (const key of Reflect.ownKeys(target)) {
+ keys.add(key);
+ }
+ return [...keys];
+ }
+
+ getOwnPropertyDescriptor(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.getOwnPropertyDescriptor(target, P);
+ }
+ let ignoreNamedProps = false;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ const indexedValue = target[implSymbol].item(index);
+ if (indexedValue !== null) {
+ return {
+ writable: false,
+ enumerable: true,
+ configurable: true,
+ value: utils.tryWrapperForImpl(indexedValue)
+ };
+ }
+ ignoreNamedProps = true;
+ }
+
+ return Reflect.getOwnPropertyDescriptor(target, P);
+ }
+
+ set(target, P, V, receiver) {
+ if (typeof P === "symbol") {
+ return Reflect.set(target, P, V, receiver);
+ }
+ // The `receiver` argument refers to the Proxy exotic object or an object
+ // that inherits from it, whereas `target` refers to the Proxy target:
+ if (target[implSymbol][utils.wrapperSymbol] === receiver) {
+ const globalObject = this._globalObject;
+ }
+ let ownDesc;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ const indexedValue = target[implSymbol].item(index);
+ if (indexedValue !== null) {
+ ownDesc = {
+ writable: false,
+ enumerable: true,
+ configurable: true,
+ value: utils.tryWrapperForImpl(indexedValue)
+ };
+ }
+ }
+
+ if (ownDesc === undefined) {
+ ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
+ }
+ return utils.ordinarySetWithOwnDescriptor(target, P, V, receiver, ownDesc);
+ }
+
+ defineProperty(target, P, desc) {
+ if (typeof P === "symbol") {
+ return Reflect.defineProperty(target, P, desc);
+ }
+
+ const globalObject = this._globalObject;
+
+ if (utils.isArrayIndexPropName(P)) {
+ return false;
+ }
+
+ return Reflect.defineProperty(target, P, desc);
+ }
+
+ deleteProperty(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.deleteProperty(target, P);
+ }
+
+ const globalObject = this._globalObject;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ return !(target[implSymbol].item(index) !== null);
+ }
+
+ return Reflect.deleteProperty(target, P);
+ }
+
+ preventExtensions() {
+ return false;
+ }
+}
+
+const Impl = require("../file-api/FileList-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/FilePropertyBag.js b/node_modules/jsdom/lib/jsdom/living/generated/FilePropertyBag.js
new file mode 100644
index 0000000000000000000000000000000000000000..42e0cc6c45ae1e5a49febf9b53738bedf38885f0
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/FilePropertyBag.js
@@ -0,0 +1,33 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const BlobPropertyBag = require("./BlobPropertyBag.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ BlobPropertyBag._convertInherit(globalObject, obj, ret, { context });
+
+ {
+ const key = "lastModified";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["long long"](value, {
+ context: context + " has member 'lastModified' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/FileReader.js b/node_modules/jsdom/lib/jsdom/living/generated/FileReader.js
new file mode 100644
index 0000000000000000000000000000000000000000..b8986be46b3489a4ba9f7ee9eea7454f2c6b49a7
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/FileReader.js
@@ -0,0 +1,468 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const Blob = require("./Blob.js");
+const EventHandlerNonNull = require("./EventHandlerNonNull.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const EventTarget = require("./EventTarget.js");
+
+const interfaceName = "FileReader";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'FileReader'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["FileReader"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ EventTarget._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class FileReader extends globalObject.EventTarget {
+ constructor() {
+ return exports.setup(Object.create(new.target.prototype), globalObject, undefined);
+ }
+
+ readAsArrayBuffer(blob) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'readAsArrayBuffer' called on an object that is not a valid instance of FileReader."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'readAsArrayBuffer' on 'FileReader': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = Blob.convert(globalObject, curArg, {
+ context: "Failed to execute 'readAsArrayBuffer' on 'FileReader': parameter 1"
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].readAsArrayBuffer(...args);
+ }
+
+ readAsBinaryString(blob) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'readAsBinaryString' called on an object that is not a valid instance of FileReader."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'readAsBinaryString' on 'FileReader': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = Blob.convert(globalObject, curArg, {
+ context: "Failed to execute 'readAsBinaryString' on 'FileReader': parameter 1"
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].readAsBinaryString(...args);
+ }
+
+ readAsText(blob) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'readAsText' called on an object that is not a valid instance of FileReader."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'readAsText' on 'FileReader': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = Blob.convert(globalObject, curArg, {
+ context: "Failed to execute 'readAsText' on 'FileReader': parameter 1"
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg !== undefined) {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'readAsText' on 'FileReader': parameter 2",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].readAsText(...args);
+ }
+
+ readAsDataURL(blob) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'readAsDataURL' called on an object that is not a valid instance of FileReader."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'readAsDataURL' on 'FileReader': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = Blob.convert(globalObject, curArg, {
+ context: "Failed to execute 'readAsDataURL' on 'FileReader': parameter 1"
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].readAsDataURL(...args);
+ }
+
+ abort() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'abort' called on an object that is not a valid instance of FileReader.");
+ }
+
+ return esValue[implSymbol].abort();
+ }
+
+ get readyState() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get readyState' called on an object that is not a valid instance of FileReader."
+ );
+ }
+
+ return esValue[implSymbol]["readyState"];
+ }
+
+ get result() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get result' called on an object that is not a valid instance of FileReader."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["result"]);
+ }
+
+ get error() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get error' called on an object that is not a valid instance of FileReader.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["error"]);
+ }
+
+ get onloadstart() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onloadstart' called on an object that is not a valid instance of FileReader."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onloadstart"]);
+ }
+
+ set onloadstart(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onloadstart' called on an object that is not a valid instance of FileReader."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onloadstart' property on 'FileReader': The provided value"
+ });
+ }
+ esValue[implSymbol]["onloadstart"] = V;
+ }
+
+ get onprogress() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onprogress' called on an object that is not a valid instance of FileReader."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onprogress"]);
+ }
+
+ set onprogress(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onprogress' called on an object that is not a valid instance of FileReader."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onprogress' property on 'FileReader': The provided value"
+ });
+ }
+ esValue[implSymbol]["onprogress"] = V;
+ }
+
+ get onload() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onload' called on an object that is not a valid instance of FileReader."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onload"]);
+ }
+
+ set onload(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onload' called on an object that is not a valid instance of FileReader."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onload' property on 'FileReader': The provided value"
+ });
+ }
+ esValue[implSymbol]["onload"] = V;
+ }
+
+ get onabort() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onabort' called on an object that is not a valid instance of FileReader."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onabort"]);
+ }
+
+ set onabort(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onabort' called on an object that is not a valid instance of FileReader."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onabort' property on 'FileReader': The provided value"
+ });
+ }
+ esValue[implSymbol]["onabort"] = V;
+ }
+
+ get onerror() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onerror' called on an object that is not a valid instance of FileReader."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onerror"]);
+ }
+
+ set onerror(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onerror' called on an object that is not a valid instance of FileReader."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onerror' property on 'FileReader': The provided value"
+ });
+ }
+ esValue[implSymbol]["onerror"] = V;
+ }
+
+ get onloadend() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onloadend' called on an object that is not a valid instance of FileReader."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onloadend"]);
+ }
+
+ set onloadend(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onloadend' called on an object that is not a valid instance of FileReader."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onloadend' property on 'FileReader': The provided value"
+ });
+ }
+ esValue[implSymbol]["onloadend"] = V;
+ }
+ }
+ Object.defineProperties(FileReader.prototype, {
+ readAsArrayBuffer: { enumerable: true },
+ readAsBinaryString: { enumerable: true },
+ readAsText: { enumerable: true },
+ readAsDataURL: { enumerable: true },
+ abort: { enumerable: true },
+ readyState: { enumerable: true },
+ result: { enumerable: true },
+ error: { enumerable: true },
+ onloadstart: { enumerable: true },
+ onprogress: { enumerable: true },
+ onload: { enumerable: true },
+ onabort: { enumerable: true },
+ onerror: { enumerable: true },
+ onloadend: { enumerable: true },
+ [Symbol.toStringTag]: { value: "FileReader", configurable: true },
+ EMPTY: { value: 0, enumerable: true },
+ LOADING: { value: 1, enumerable: true },
+ DONE: { value: 2, enumerable: true }
+ });
+ Object.defineProperties(FileReader, {
+ EMPTY: { value: 0, enumerable: true },
+ LOADING: { value: 1, enumerable: true },
+ DONE: { value: 2, enumerable: true }
+ });
+ ctorRegistry[interfaceName] = FileReader;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: FileReader
+ });
+};
+
+const Impl = require("../file-api/FileReader-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/FocusEvent.js b/node_modules/jsdom/lib/jsdom/living/generated/FocusEvent.js
new file mode 100644
index 0000000000000000000000000000000000000000..7f2efa2d24ccc2179e65c62e6951bf5fdf4cbd3c
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/FocusEvent.js
@@ -0,0 +1,144 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const FocusEventInit = require("./FocusEventInit.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const UIEvent = require("./UIEvent.js");
+
+const interfaceName = "FocusEvent";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'FocusEvent'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["FocusEvent"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ UIEvent._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class FocusEvent extends globalObject.UIEvent {
+ constructor(type) {
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to construct 'FocusEvent': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to construct 'FocusEvent': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = FocusEventInit.convert(globalObject, curArg, {
+ context: "Failed to construct 'FocusEvent': parameter 2"
+ });
+ args.push(curArg);
+ }
+ return exports.setup(Object.create(new.target.prototype), globalObject, args);
+ }
+
+ get relatedTarget() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get relatedTarget' called on an object that is not a valid instance of FocusEvent."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["relatedTarget"]);
+ }
+ }
+ Object.defineProperties(FocusEvent.prototype, {
+ relatedTarget: { enumerable: true },
+ [Symbol.toStringTag]: { value: "FocusEvent", configurable: true }
+ });
+ ctorRegistry[interfaceName] = FocusEvent;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: FocusEvent
+ });
+};
+
+const Impl = require("../events/FocusEvent-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/FocusEventInit.js b/node_modules/jsdom/lib/jsdom/living/generated/FocusEventInit.js
new file mode 100644
index 0000000000000000000000000000000000000000..9fcc3d4dc097f9c34d2ce13942313667abc672df
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/FocusEventInit.js
@@ -0,0 +1,36 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const EventTarget = require("./EventTarget.js");
+const UIEventInit = require("./UIEventInit.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ UIEventInit._convertInherit(globalObject, obj, ret, { context });
+
+ {
+ const key = "relatedTarget";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ if (value === null || value === undefined) {
+ value = null;
+ } else {
+ value = EventTarget.convert(globalObject, value, { context: context + " has member 'relatedTarget' that" });
+ }
+ ret[key] = value;
+ } else {
+ ret[key] = null;
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/FormData.js b/node_modules/jsdom/lib/jsdom/living/generated/FormData.js
new file mode 100644
index 0000000000000000000000000000000000000000..97524f50ab48f32c15d09e06b919f9905fc29d93
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/FormData.js
@@ -0,0 +1,468 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLFormElement = require("./HTMLFormElement.js");
+const HTMLElement = require("./HTMLElement.js");
+const Blob = require("./Blob.js");
+const Function = require("./Function.js");
+const newObjectInRealm = utils.newObjectInRealm;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "FormData";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'FormData'.`);
+};
+
+exports.createDefaultIterator = (globalObject, target, kind) => {
+ const ctorRegistry = globalObject[ctorRegistrySymbol];
+ const iteratorPrototype = ctorRegistry["FormData Iterator"];
+ const iterator = Object.create(iteratorPrototype);
+ Object.defineProperty(iterator, utils.iterInternalSymbol, {
+ value: { target, kind, index: 0 },
+ configurable: true
+ });
+ return iterator;
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["FormData"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class FormData {
+ constructor() {
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg !== undefined) {
+ curArg = HTMLFormElement.convert(globalObject, curArg, {
+ context: "Failed to construct 'FormData': parameter 1"
+ });
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg !== undefined) {
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = HTMLElement.convert(globalObject, curArg, {
+ context: "Failed to construct 'FormData': parameter 2"
+ });
+ }
+ } else {
+ curArg = null;
+ }
+ args.push(curArg);
+ }
+ return exports.setup(Object.create(new.target.prototype), globalObject, args);
+ }
+
+ append(name, value) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'append' called on an object that is not a valid instance of FormData.");
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'append' on 'FormData': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ switch (arguments.length) {
+ case 2:
+ {
+ let curArg = arguments[0];
+ curArg = conversions["USVString"](curArg, {
+ context: "Failed to execute 'append' on 'FormData': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (Blob.is(curArg)) {
+ {
+ let curArg = arguments[1];
+ curArg = Blob.convert(globalObject, curArg, {
+ context: "Failed to execute 'append' on 'FormData': parameter 2"
+ });
+ args.push(curArg);
+ }
+ } else {
+ {
+ let curArg = arguments[1];
+ curArg = conversions["USVString"](curArg, {
+ context: "Failed to execute 'append' on 'FormData': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ }
+ }
+ break;
+ default:
+ {
+ let curArg = arguments[0];
+ curArg = conversions["USVString"](curArg, {
+ context: "Failed to execute 'append' on 'FormData': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = Blob.convert(globalObject, curArg, {
+ context: "Failed to execute 'append' on 'FormData': parameter 2"
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ if (curArg !== undefined) {
+ curArg = conversions["USVString"](curArg, {
+ context: "Failed to execute 'append' on 'FormData': parameter 3",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ }
+ return esValue[implSymbol].append(...args);
+ }
+
+ delete(name) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'delete' called on an object that is not a valid instance of FormData.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'delete' on 'FormData': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["USVString"](curArg, {
+ context: "Failed to execute 'delete' on 'FormData': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].delete(...args);
+ }
+
+ get(name) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get' called on an object that is not a valid instance of FormData.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'get' on 'FormData': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["USVString"](curArg, {
+ context: "Failed to execute 'get' on 'FormData': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].get(...args));
+ }
+
+ getAll(name) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'getAll' called on an object that is not a valid instance of FormData.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'getAll' on 'FormData': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["USVString"](curArg, {
+ context: "Failed to execute 'getAll' on 'FormData': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].getAll(...args));
+ }
+
+ has(name) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'has' called on an object that is not a valid instance of FormData.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'has' on 'FormData': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["USVString"](curArg, {
+ context: "Failed to execute 'has' on 'FormData': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].has(...args);
+ }
+
+ set(name, value) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set' called on an object that is not a valid instance of FormData.");
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'set' on 'FormData': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ switch (arguments.length) {
+ case 2:
+ {
+ let curArg = arguments[0];
+ curArg = conversions["USVString"](curArg, {
+ context: "Failed to execute 'set' on 'FormData': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (Blob.is(curArg)) {
+ {
+ let curArg = arguments[1];
+ curArg = Blob.convert(globalObject, curArg, {
+ context: "Failed to execute 'set' on 'FormData': parameter 2"
+ });
+ args.push(curArg);
+ }
+ } else {
+ {
+ let curArg = arguments[1];
+ curArg = conversions["USVString"](curArg, {
+ context: "Failed to execute 'set' on 'FormData': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ }
+ }
+ break;
+ default:
+ {
+ let curArg = arguments[0];
+ curArg = conversions["USVString"](curArg, {
+ context: "Failed to execute 'set' on 'FormData': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = Blob.convert(globalObject, curArg, {
+ context: "Failed to execute 'set' on 'FormData': parameter 2"
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ if (curArg !== undefined) {
+ curArg = conversions["USVString"](curArg, {
+ context: "Failed to execute 'set' on 'FormData': parameter 3",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ }
+ return esValue[implSymbol].set(...args);
+ }
+
+ keys() {
+ if (!exports.is(this)) {
+ throw new globalObject.TypeError("'keys' called on an object that is not a valid instance of FormData.");
+ }
+ return exports.createDefaultIterator(globalObject, this, "key");
+ }
+
+ values() {
+ if (!exports.is(this)) {
+ throw new globalObject.TypeError("'values' called on an object that is not a valid instance of FormData.");
+ }
+ return exports.createDefaultIterator(globalObject, this, "value");
+ }
+
+ entries() {
+ if (!exports.is(this)) {
+ throw new globalObject.TypeError("'entries' called on an object that is not a valid instance of FormData.");
+ }
+ return exports.createDefaultIterator(globalObject, this, "key+value");
+ }
+
+ forEach(callback) {
+ if (!exports.is(this)) {
+ throw new globalObject.TypeError("'forEach' called on an object that is not a valid instance of FormData.");
+ }
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ "Failed to execute 'forEach' on 'iterable': 1 argument required, but only 0 present."
+ );
+ }
+ callback = Function.convert(globalObject, callback, {
+ context: "Failed to execute 'forEach' on 'iterable': The callback provided as parameter 1"
+ });
+ const thisArg = arguments[1];
+ let pairs = Array.from(this[implSymbol]);
+ let i = 0;
+ while (i < pairs.length) {
+ const [key, value] = pairs[i].map(utils.tryWrapperForImpl);
+ callback.call(thisArg, value, key, this);
+ pairs = Array.from(this[implSymbol]);
+ i++;
+ }
+ }
+ }
+ Object.defineProperties(FormData.prototype, {
+ append: { enumerable: true },
+ delete: { enumerable: true },
+ get: { enumerable: true },
+ getAll: { enumerable: true },
+ has: { enumerable: true },
+ set: { enumerable: true },
+ keys: { enumerable: true },
+ values: { enumerable: true },
+ entries: { enumerable: true },
+ forEach: { enumerable: true },
+ [Symbol.toStringTag]: { value: "FormData", configurable: true },
+ [Symbol.iterator]: { value: FormData.prototype.entries, configurable: true, writable: true }
+ });
+ ctorRegistry[interfaceName] = FormData;
+
+ ctorRegistry["FormData Iterator"] = Object.create(ctorRegistry["%IteratorPrototype%"], {
+ [Symbol.toStringTag]: {
+ configurable: true,
+ value: "FormData Iterator"
+ }
+ });
+ utils.define(ctorRegistry["FormData Iterator"], {
+ next() {
+ const internal = this && this[utils.iterInternalSymbol];
+ if (!internal) {
+ throw new globalObject.TypeError("next() called on a value that is not a FormData iterator object");
+ }
+
+ const { target, kind, index } = internal;
+ const values = Array.from(target[implSymbol]);
+ const len = values.length;
+ if (index >= len) {
+ return newObjectInRealm(globalObject, { value: undefined, done: true });
+ }
+
+ const pair = values[index];
+ internal.index = index + 1;
+ return newObjectInRealm(globalObject, utils.iteratorResult(pair.map(utils.tryWrapperForImpl), kind));
+ }
+ });
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: FormData
+ });
+};
+
+const Impl = require("../xhr/FormData-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/Function.js b/node_modules/jsdom/lib/jsdom/living/generated/Function.js
new file mode 100644
index 0000000000000000000000000000000000000000..ea8712fd709baa510d595bd6d8b2f61d90bfd49f
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/Function.js
@@ -0,0 +1,42 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (typeof value !== "function") {
+ throw new globalObject.TypeError(context + " is not a function");
+ }
+
+ function invokeTheCallbackFunction(...args) {
+ const thisArg = utils.tryWrapperForImpl(this);
+ let callResult;
+
+ for (let i = 0; i < args.length; i++) {
+ args[i] = utils.tryWrapperForImpl(args[i]);
+ }
+
+ callResult = Reflect.apply(value, thisArg, args);
+
+ callResult = conversions["any"](callResult, { context: context, globals: globalObject });
+
+ return callResult;
+ }
+
+ invokeTheCallbackFunction.construct = (...args) => {
+ for (let i = 0; i < args.length; i++) {
+ args[i] = utils.tryWrapperForImpl(args[i]);
+ }
+
+ let callResult = Reflect.construct(value, args);
+
+ callResult = conversions["any"](callResult, { context: context, globals: globalObject });
+
+ return callResult;
+ };
+
+ invokeTheCallbackFunction[utils.wrapperSymbol] = value;
+ invokeTheCallbackFunction.objectReference = value;
+
+ return invokeTheCallbackFunction;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/GetRootNodeOptions.js b/node_modules/jsdom/lib/jsdom/living/generated/GetRootNodeOptions.js
new file mode 100644
index 0000000000000000000000000000000000000000..524a5227a4f6b35beaa8f1e29781b6a1303e7234
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/GetRootNodeOptions.js
@@ -0,0 +1,31 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ {
+ const key = "composed";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, {
+ context: context + " has member 'composed' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLAnchorElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLAnchorElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..fc72b9eadcdd94fed87aefe263d789bdda99351b
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLAnchorElement.js
@@ -0,0 +1,1023 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLAnchorElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLAnchorElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLAnchorElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLAnchorElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get target() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get target' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("target");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set target(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set target' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'target' property on 'HTMLAnchorElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("target", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get download() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get download' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("download");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set download(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set download' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'download' property on 'HTMLAnchorElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("download", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get rel() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get rel' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("rel");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set rel(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set rel' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'rel' property on 'HTMLAnchorElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("rel", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get relList() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get relList' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ return utils.getSameObject(this, "relList", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["relList"]);
+ });
+ }
+
+ set relList(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set relList' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ const Q = esValue["relList"];
+ if (!utils.isObject(Q)) {
+ throw new globalObject.TypeError("Property 'relList' is not an object");
+ }
+ Reflect.set(Q, "value", V);
+ }
+
+ get hreflang() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get hreflang' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("hreflang");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set hreflang(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set hreflang' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'hreflang' property on 'HTMLAnchorElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("hreflang", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get type() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get type' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("type");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set type(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set type' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'type' property on 'HTMLAnchorElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("type", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get text() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get text' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["text"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set text(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set text' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'text' property on 'HTMLAnchorElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["text"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get coords() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get coords' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("coords");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set coords(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set coords' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'coords' property on 'HTMLAnchorElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("coords", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get charset() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get charset' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("charset");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set charset(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set charset' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'charset' property on 'HTMLAnchorElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("charset", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get name() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get name' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("name");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set name(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set name' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'name' property on 'HTMLAnchorElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get rev() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get rev' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("rev");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set rev(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set rev' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'rev' property on 'HTMLAnchorElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("rev", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get shape() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get shape' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("shape");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set shape(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set shape' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'shape' property on 'HTMLAnchorElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("shape", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get href() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get href' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["href"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set href(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set href' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'href' property on 'HTMLAnchorElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["href"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ toString() {
+ const esValue = this;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'toString' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["href"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get origin() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get origin' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ return esValue[implSymbol]["origin"];
+ }
+
+ get protocol() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get protocol' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["protocol"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set protocol(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set protocol' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'protocol' property on 'HTMLAnchorElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["protocol"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get username() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get username' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["username"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set username(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set username' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'username' property on 'HTMLAnchorElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["username"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get password() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get password' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["password"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set password(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set password' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'password' property on 'HTMLAnchorElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["password"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get host() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get host' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["host"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set host(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set host' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'host' property on 'HTMLAnchorElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["host"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get hostname() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get hostname' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["hostname"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set hostname(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set hostname' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'hostname' property on 'HTMLAnchorElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["hostname"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get port() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get port' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["port"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set port(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set port' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'port' property on 'HTMLAnchorElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["port"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get pathname() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get pathname' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["pathname"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set pathname(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set pathname' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'pathname' property on 'HTMLAnchorElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["pathname"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get search() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get search' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["search"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set search(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set search' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'search' property on 'HTMLAnchorElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["search"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get hash() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get hash' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["hash"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set hash(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set hash' called on an object that is not a valid instance of HTMLAnchorElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'hash' property on 'HTMLAnchorElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["hash"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLAnchorElement.prototype, {
+ target: { enumerable: true },
+ download: { enumerable: true },
+ rel: { enumerable: true },
+ relList: { enumerable: true },
+ hreflang: { enumerable: true },
+ type: { enumerable: true },
+ text: { enumerable: true },
+ coords: { enumerable: true },
+ charset: { enumerable: true },
+ name: { enumerable: true },
+ rev: { enumerable: true },
+ shape: { enumerable: true },
+ href: { enumerable: true },
+ toString: { enumerable: true },
+ origin: { enumerable: true },
+ protocol: { enumerable: true },
+ username: { enumerable: true },
+ password: { enumerable: true },
+ host: { enumerable: true },
+ hostname: { enumerable: true },
+ port: { enumerable: true },
+ pathname: { enumerable: true },
+ search: { enumerable: true },
+ hash: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLAnchorElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLAnchorElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLAnchorElement
+ });
+};
+
+const Impl = require("../nodes/HTMLAnchorElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLAreaElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLAreaElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..8168ba99885e7e0a733b738211b8987d4894cdc1
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLAreaElement.js
@@ -0,0 +1,822 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLAreaElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLAreaElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLAreaElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLAreaElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get alt() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get alt' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("alt");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set alt(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set alt' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'alt' property on 'HTMLAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("alt", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get coords() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get coords' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("coords");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set coords(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set coords' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'coords' property on 'HTMLAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("coords", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get shape() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get shape' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("shape");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set shape(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set shape' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'shape' property on 'HTMLAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("shape", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get target() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get target' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("target");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set target(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set target' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'target' property on 'HTMLAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("target", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get rel() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get rel' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("rel");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set rel(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set rel' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'rel' property on 'HTMLAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("rel", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get relList() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get relList' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ return utils.getSameObject(this, "relList", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["relList"]);
+ });
+ }
+
+ set relList(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set relList' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ const Q = esValue["relList"];
+ if (!utils.isObject(Q)) {
+ throw new globalObject.TypeError("Property 'relList' is not an object");
+ }
+ Reflect.set(Q, "value", V);
+ }
+
+ get noHref() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get noHref' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("nohref") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set noHref(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set noHref' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'noHref' property on 'HTMLAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("nohref", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("nohref");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get href() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get href' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["href"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set href(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set href' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'href' property on 'HTMLAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["href"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ toString() {
+ const esValue = this;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'toString' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["href"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get origin() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get origin' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ return esValue[implSymbol]["origin"];
+ }
+
+ get protocol() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get protocol' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["protocol"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set protocol(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set protocol' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'protocol' property on 'HTMLAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["protocol"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get username() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get username' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["username"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set username(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set username' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'username' property on 'HTMLAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["username"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get password() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get password' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["password"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set password(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set password' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'password' property on 'HTMLAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["password"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get host() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get host' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["host"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set host(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set host' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'host' property on 'HTMLAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["host"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get hostname() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get hostname' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["hostname"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set hostname(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set hostname' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'hostname' property on 'HTMLAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["hostname"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get port() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get port' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["port"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set port(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set port' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'port' property on 'HTMLAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["port"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get pathname() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get pathname' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["pathname"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set pathname(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set pathname' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'pathname' property on 'HTMLAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["pathname"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get search() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get search' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["search"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set search(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set search' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'search' property on 'HTMLAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["search"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get hash() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get hash' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["hash"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set hash(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set hash' called on an object that is not a valid instance of HTMLAreaElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'hash' property on 'HTMLAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["hash"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLAreaElement.prototype, {
+ alt: { enumerable: true },
+ coords: { enumerable: true },
+ shape: { enumerable: true },
+ target: { enumerable: true },
+ rel: { enumerable: true },
+ relList: { enumerable: true },
+ noHref: { enumerable: true },
+ href: { enumerable: true },
+ toString: { enumerable: true },
+ origin: { enumerable: true },
+ protocol: { enumerable: true },
+ username: { enumerable: true },
+ password: { enumerable: true },
+ host: { enumerable: true },
+ hostname: { enumerable: true },
+ port: { enumerable: true },
+ pathname: { enumerable: true },
+ search: { enumerable: true },
+ hash: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLAreaElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLAreaElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLAreaElement
+ });
+};
+
+const Impl = require("../nodes/HTMLAreaElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLAudioElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLAudioElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..501242cdf1936ea0dc9bb95bb45eaeb88d617fb5
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLAudioElement.js
@@ -0,0 +1,110 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLMediaElement = require("./HTMLMediaElement.js");
+
+const interfaceName = "HTMLAudioElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLAudioElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLAudioElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLMediaElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLAudioElement extends globalObject.HTMLMediaElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+ }
+ Object.defineProperties(HTMLAudioElement.prototype, {
+ [Symbol.toStringTag]: { value: "HTMLAudioElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLAudioElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLAudioElement
+ });
+};
+
+const Impl = require("../nodes/HTMLAudioElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLBRElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLBRElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..a1675caa66290a39bbd5d14f15119a991e8e172a
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLBRElement.js
@@ -0,0 +1,153 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLBRElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLBRElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLBRElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLBRElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get clear() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get clear' called on an object that is not a valid instance of HTMLBRElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("clear");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set clear(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set clear' called on an object that is not a valid instance of HTMLBRElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'clear' property on 'HTMLBRElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("clear", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLBRElement.prototype, {
+ clear: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLBRElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLBRElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLBRElement
+ });
+};
+
+const Impl = require("../nodes/HTMLBRElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLBaseElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLBaseElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..2cdb490c4bc9928ab5ad5761e12620e66d537860
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLBaseElement.js
@@ -0,0 +1,193 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLBaseElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLBaseElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLBaseElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLBaseElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get href() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get href' called on an object that is not a valid instance of HTMLBaseElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["href"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set href(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set href' called on an object that is not a valid instance of HTMLBaseElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'href' property on 'HTMLBaseElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["href"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get target() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get target' called on an object that is not a valid instance of HTMLBaseElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("target");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set target(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set target' called on an object that is not a valid instance of HTMLBaseElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'target' property on 'HTMLBaseElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("target", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLBaseElement.prototype, {
+ href: { enumerable: true },
+ target: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLBaseElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLBaseElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLBaseElement
+ });
+};
+
+const Impl = require("../nodes/HTMLBaseElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLBodyElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLBodyElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..ebb0958a91706532be12e6202f1e42fc208237a3
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLBodyElement.js
@@ -0,0 +1,877 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const EventHandlerNonNull = require("./EventHandlerNonNull.js");
+const OnBeforeUnloadEventHandlerNonNull = require("./OnBeforeUnloadEventHandlerNonNull.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLBodyElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLBodyElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLBodyElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLBodyElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get text() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get text' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("text");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set text(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set text' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'text' property on 'HTMLBodyElement': The provided value",
+ globals: globalObject,
+ treatNullAsEmptyString: true
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("text", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get link() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get link' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("link");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set link(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set link' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'link' property on 'HTMLBodyElement': The provided value",
+ globals: globalObject,
+ treatNullAsEmptyString: true
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("link", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get vLink() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get vLink' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("vlink");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set vLink(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set vLink' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'vLink' property on 'HTMLBodyElement': The provided value",
+ globals: globalObject,
+ treatNullAsEmptyString: true
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("vlink", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get aLink() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get aLink' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("alink");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set aLink(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set aLink' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'aLink' property on 'HTMLBodyElement': The provided value",
+ globals: globalObject,
+ treatNullAsEmptyString: true
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("alink", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get bgColor() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get bgColor' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("bgcolor");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set bgColor(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set bgColor' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'bgColor' property on 'HTMLBodyElement': The provided value",
+ globals: globalObject,
+ treatNullAsEmptyString: true
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("bgcolor", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get background() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get background' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("background");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set background(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set background' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'background' property on 'HTMLBodyElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("background", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get onafterprint() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onafterprint' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onafterprint"]);
+ }
+
+ set onafterprint(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onafterprint' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onafterprint' property on 'HTMLBodyElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onafterprint"] = V;
+ }
+
+ get onbeforeprint() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onbeforeprint' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onbeforeprint"]);
+ }
+
+ set onbeforeprint(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onbeforeprint' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onbeforeprint' property on 'HTMLBodyElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onbeforeprint"] = V;
+ }
+
+ get onbeforeunload() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onbeforeunload' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onbeforeunload"]);
+ }
+
+ set onbeforeunload(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onbeforeunload' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = OnBeforeUnloadEventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onbeforeunload' property on 'HTMLBodyElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onbeforeunload"] = V;
+ }
+
+ get onhashchange() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onhashchange' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onhashchange"]);
+ }
+
+ set onhashchange(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onhashchange' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onhashchange' property on 'HTMLBodyElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onhashchange"] = V;
+ }
+
+ get onlanguagechange() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onlanguagechange' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onlanguagechange"]);
+ }
+
+ set onlanguagechange(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onlanguagechange' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onlanguagechange' property on 'HTMLBodyElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onlanguagechange"] = V;
+ }
+
+ get onmessage() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onmessage' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onmessage"]);
+ }
+
+ set onmessage(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onmessage' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onmessage' property on 'HTMLBodyElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onmessage"] = V;
+ }
+
+ get onmessageerror() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onmessageerror' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onmessageerror"]);
+ }
+
+ set onmessageerror(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onmessageerror' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onmessageerror' property on 'HTMLBodyElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onmessageerror"] = V;
+ }
+
+ get onoffline() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onoffline' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onoffline"]);
+ }
+
+ set onoffline(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onoffline' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onoffline' property on 'HTMLBodyElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onoffline"] = V;
+ }
+
+ get ononline() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ononline' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ononline"]);
+ }
+
+ set ononline(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ononline' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ononline' property on 'HTMLBodyElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["ononline"] = V;
+ }
+
+ get onpagehide() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpagehide' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpagehide"]);
+ }
+
+ set onpagehide(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpagehide' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpagehide' property on 'HTMLBodyElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpagehide"] = V;
+ }
+
+ get onpageshow() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpageshow' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpageshow"]);
+ }
+
+ set onpageshow(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpageshow' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpageshow' property on 'HTMLBodyElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpageshow"] = V;
+ }
+
+ get onpopstate() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpopstate' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpopstate"]);
+ }
+
+ set onpopstate(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpopstate' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpopstate' property on 'HTMLBodyElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpopstate"] = V;
+ }
+
+ get onrejectionhandled() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onrejectionhandled' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onrejectionhandled"]);
+ }
+
+ set onrejectionhandled(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onrejectionhandled' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onrejectionhandled' property on 'HTMLBodyElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onrejectionhandled"] = V;
+ }
+
+ get onstorage() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onstorage' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onstorage"]);
+ }
+
+ set onstorage(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onstorage' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onstorage' property on 'HTMLBodyElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onstorage"] = V;
+ }
+
+ get onunhandledrejection() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onunhandledrejection' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onunhandledrejection"]);
+ }
+
+ set onunhandledrejection(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onunhandledrejection' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onunhandledrejection' property on 'HTMLBodyElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onunhandledrejection"] = V;
+ }
+
+ get onunload() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onunload' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onunload"]);
+ }
+
+ set onunload(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onunload' called on an object that is not a valid instance of HTMLBodyElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onunload' property on 'HTMLBodyElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onunload"] = V;
+ }
+ }
+ Object.defineProperties(HTMLBodyElement.prototype, {
+ text: { enumerable: true },
+ link: { enumerable: true },
+ vLink: { enumerable: true },
+ aLink: { enumerable: true },
+ bgColor: { enumerable: true },
+ background: { enumerable: true },
+ onafterprint: { enumerable: true },
+ onbeforeprint: { enumerable: true },
+ onbeforeunload: { enumerable: true },
+ onhashchange: { enumerable: true },
+ onlanguagechange: { enumerable: true },
+ onmessage: { enumerable: true },
+ onmessageerror: { enumerable: true },
+ onoffline: { enumerable: true },
+ ononline: { enumerable: true },
+ onpagehide: { enumerable: true },
+ onpageshow: { enumerable: true },
+ onpopstate: { enumerable: true },
+ onrejectionhandled: { enumerable: true },
+ onstorage: { enumerable: true },
+ onunhandledrejection: { enumerable: true },
+ onunload: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLBodyElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLBodyElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLBodyElement
+ });
+};
+
+const Impl = require("../nodes/HTMLBodyElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLButtonElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLButtonElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..5cbb7eea4f6b029bc4f9627e1279490ce771218f
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLButtonElement.js
@@ -0,0 +1,522 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLButtonElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLButtonElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLButtonElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLButtonElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ checkValidity() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'checkValidity' called on an object that is not a valid instance of HTMLButtonElement."
+ );
+ }
+
+ return esValue[implSymbol].checkValidity();
+ }
+
+ reportValidity() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'reportValidity' called on an object that is not a valid instance of HTMLButtonElement."
+ );
+ }
+
+ return esValue[implSymbol].reportValidity();
+ }
+
+ setCustomValidity(error) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'setCustomValidity' called on an object that is not a valid instance of HTMLButtonElement."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'setCustomValidity' on 'HTMLButtonElement': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'setCustomValidity' on 'HTMLButtonElement': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].setCustomValidity(...args);
+ }
+
+ get autofocus() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get autofocus' called on an object that is not a valid instance of HTMLButtonElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("autofocus") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set autofocus(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set autofocus' called on an object that is not a valid instance of HTMLButtonElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'autofocus' property on 'HTMLButtonElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("autofocus", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("autofocus");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get disabled() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get disabled' called on an object that is not a valid instance of HTMLButtonElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("disabled") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set disabled(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set disabled' called on an object that is not a valid instance of HTMLButtonElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'disabled' property on 'HTMLButtonElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("disabled", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("disabled");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get form() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get form' called on an object that is not a valid instance of HTMLButtonElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["form"]);
+ }
+
+ get formNoValidate() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get formNoValidate' called on an object that is not a valid instance of HTMLButtonElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("formnovalidate") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set formNoValidate(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set formNoValidate' called on an object that is not a valid instance of HTMLButtonElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'formNoValidate' property on 'HTMLButtonElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("formnovalidate", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("formnovalidate");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get formTarget() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get formTarget' called on an object that is not a valid instance of HTMLButtonElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("formtarget");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set formTarget(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set formTarget' called on an object that is not a valid instance of HTMLButtonElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'formTarget' property on 'HTMLButtonElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("formtarget", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get name() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get name' called on an object that is not a valid instance of HTMLButtonElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("name");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set name(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set name' called on an object that is not a valid instance of HTMLButtonElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'name' property on 'HTMLButtonElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get type() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get type' called on an object that is not a valid instance of HTMLButtonElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["type"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set type(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set type' called on an object that is not a valid instance of HTMLButtonElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'type' property on 'HTMLButtonElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["type"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get value() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get value' called on an object that is not a valid instance of HTMLButtonElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("value");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set value(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set value' called on an object that is not a valid instance of HTMLButtonElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'value' property on 'HTMLButtonElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("value", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get willValidate() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get willValidate' called on an object that is not a valid instance of HTMLButtonElement."
+ );
+ }
+
+ return esValue[implSymbol]["willValidate"];
+ }
+
+ get validity() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get validity' called on an object that is not a valid instance of HTMLButtonElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["validity"]);
+ }
+
+ get validationMessage() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get validationMessage' called on an object that is not a valid instance of HTMLButtonElement."
+ );
+ }
+
+ return esValue[implSymbol]["validationMessage"];
+ }
+
+ get labels() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get labels' called on an object that is not a valid instance of HTMLButtonElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["labels"]);
+ }
+ }
+ Object.defineProperties(HTMLButtonElement.prototype, {
+ checkValidity: { enumerable: true },
+ reportValidity: { enumerable: true },
+ setCustomValidity: { enumerable: true },
+ autofocus: { enumerable: true },
+ disabled: { enumerable: true },
+ form: { enumerable: true },
+ formNoValidate: { enumerable: true },
+ formTarget: { enumerable: true },
+ name: { enumerable: true },
+ type: { enumerable: true },
+ value: { enumerable: true },
+ willValidate: { enumerable: true },
+ validity: { enumerable: true },
+ validationMessage: { enumerable: true },
+ labels: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLButtonElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLButtonElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLButtonElement
+ });
+};
+
+const Impl = require("../nodes/HTMLButtonElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLCanvasElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLCanvasElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..59ed75e0438cab0db159bf19ae8149c3fdbcdd7d
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLCanvasElement.js
@@ -0,0 +1,304 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const BlobCallback = require("./BlobCallback.js");
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLCanvasElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLCanvasElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLCanvasElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLCanvasElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ getContext(contextId) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'getContext' called on an object that is not a valid instance of HTMLCanvasElement."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'getContext' on 'HTMLCanvasElement': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'getContext' on 'HTMLCanvasElement': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ for (let i = 1; i < arguments.length; i++) {
+ let curArg = arguments[i];
+ curArg = conversions["any"](curArg, {
+ context: "Failed to execute 'getContext' on 'HTMLCanvasElement': parameter " + (i + 1),
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].getContext(...args));
+ }
+
+ toDataURL() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'toDataURL' called on an object that is not a valid instance of HTMLCanvasElement."
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg !== undefined) {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'toDataURL' on 'HTMLCanvasElement': parameter 1",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg !== undefined) {
+ curArg = conversions["any"](curArg, {
+ context: "Failed to execute 'toDataURL' on 'HTMLCanvasElement': parameter 2",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].toDataURL(...args);
+ }
+
+ toBlob(callback) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'toBlob' called on an object that is not a valid instance of HTMLCanvasElement."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'toBlob' on 'HTMLCanvasElement': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = BlobCallback.convert(globalObject, curArg, {
+ context: "Failed to execute 'toBlob' on 'HTMLCanvasElement': parameter 1"
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg !== undefined) {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'toBlob' on 'HTMLCanvasElement': parameter 2",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ if (curArg !== undefined) {
+ curArg = conversions["any"](curArg, {
+ context: "Failed to execute 'toBlob' on 'HTMLCanvasElement': parameter 3",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].toBlob(...args);
+ }
+
+ get width() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get width' called on an object that is not a valid instance of HTMLCanvasElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["width"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set width(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set width' called on an object that is not a valid instance of HTMLCanvasElement."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'width' property on 'HTMLCanvasElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["width"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get height() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get height' called on an object that is not a valid instance of HTMLCanvasElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["height"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set height(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set height' called on an object that is not a valid instance of HTMLCanvasElement."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'height' property on 'HTMLCanvasElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["height"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLCanvasElement.prototype, {
+ getContext: { enumerable: true },
+ toDataURL: { enumerable: true },
+ toBlob: { enumerable: true },
+ width: { enumerable: true },
+ height: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLCanvasElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLCanvasElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLCanvasElement
+ });
+};
+
+const Impl = require("../nodes/HTMLCanvasElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLCollection.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLCollection.js
new file mode 100644
index 0000000000000000000000000000000000000000..724fe7b3d95b3f7b8ef6704b585ea24ce8d8c2d7
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLCollection.js
@@ -0,0 +1,352 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "HTMLCollection";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLCollection'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLCollection"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+function makeProxy(wrapper, globalObject) {
+ let proxyHandler = proxyHandlerCache.get(globalObject);
+ if (proxyHandler === undefined) {
+ proxyHandler = new ProxyHandler(globalObject);
+ proxyHandlerCache.set(globalObject, proxyHandler);
+ }
+ return new Proxy(wrapper, proxyHandler);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper = makeProxy(wrapper, globalObject);
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ let wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper = makeProxy(wrapper, globalObject);
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLCollection {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ item(index) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'item' called on an object that is not a valid instance of HTMLCollection.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'item' on 'HTMLCollection': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'item' on 'HTMLCollection': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].item(...args));
+ }
+
+ namedItem(name) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'namedItem' called on an object that is not a valid instance of HTMLCollection."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'namedItem' on 'HTMLCollection': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'namedItem' on 'HTMLCollection': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].namedItem(...args));
+ }
+
+ get length() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get length' called on an object that is not a valid instance of HTMLCollection."
+ );
+ }
+
+ return esValue[implSymbol]["length"];
+ }
+ }
+ Object.defineProperties(HTMLCollection.prototype, {
+ item: { enumerable: true },
+ namedItem: { enumerable: true },
+ length: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLCollection", configurable: true },
+ [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLCollection;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLCollection
+ });
+};
+
+const proxyHandlerCache = new WeakMap();
+class ProxyHandler {
+ constructor(globalObject) {
+ this._globalObject = globalObject;
+ }
+
+ get(target, P, receiver) {
+ if (typeof P === "symbol") {
+ return Reflect.get(target, P, receiver);
+ }
+ const desc = this.getOwnPropertyDescriptor(target, P);
+ if (desc === undefined) {
+ const parent = Object.getPrototypeOf(target);
+ if (parent === null) {
+ return undefined;
+ }
+ return Reflect.get(target, P, receiver);
+ }
+ if (!desc.get && !desc.set) {
+ return desc.value;
+ }
+ const getter = desc.get;
+ if (getter === undefined) {
+ return undefined;
+ }
+ return Reflect.apply(getter, receiver, []);
+ }
+
+ has(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.has(target, P);
+ }
+ const desc = this.getOwnPropertyDescriptor(target, P);
+ if (desc !== undefined) {
+ return true;
+ }
+ const parent = Object.getPrototypeOf(target);
+ if (parent !== null) {
+ return Reflect.has(parent, P);
+ }
+ return false;
+ }
+
+ ownKeys(target) {
+ const keys = new Set();
+
+ for (const key of target[implSymbol][utils.supportedPropertyIndices]) {
+ keys.add(`${key}`);
+ }
+
+ for (const key of target[implSymbol][utils.supportedPropertyNames]) {
+ if (!(key in target)) {
+ keys.add(`${key}`);
+ }
+ }
+
+ for (const key of Reflect.ownKeys(target)) {
+ keys.add(key);
+ }
+ return [...keys];
+ }
+
+ getOwnPropertyDescriptor(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.getOwnPropertyDescriptor(target, P);
+ }
+ let ignoreNamedProps = false;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ const indexedValue = target[implSymbol].item(index);
+ if (indexedValue !== null) {
+ return {
+ writable: false,
+ enumerable: true,
+ configurable: true,
+ value: utils.tryWrapperForImpl(indexedValue)
+ };
+ }
+ ignoreNamedProps = true;
+ }
+
+ const namedValue = target[implSymbol].namedItem(P);
+
+ if (namedValue !== null && !(P in target) && !ignoreNamedProps) {
+ return {
+ writable: false,
+ enumerable: false,
+ configurable: true,
+ value: utils.tryWrapperForImpl(namedValue)
+ };
+ }
+
+ return Reflect.getOwnPropertyDescriptor(target, P);
+ }
+
+ set(target, P, V, receiver) {
+ if (typeof P === "symbol") {
+ return Reflect.set(target, P, V, receiver);
+ }
+ // The `receiver` argument refers to the Proxy exotic object or an object
+ // that inherits from it, whereas `target` refers to the Proxy target:
+ if (target[implSymbol][utils.wrapperSymbol] === receiver) {
+ const globalObject = this._globalObject;
+ }
+ let ownDesc;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ const indexedValue = target[implSymbol].item(index);
+ if (indexedValue !== null) {
+ ownDesc = {
+ writable: false,
+ enumerable: true,
+ configurable: true,
+ value: utils.tryWrapperForImpl(indexedValue)
+ };
+ }
+ }
+
+ if (ownDesc === undefined) {
+ ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
+ }
+ return utils.ordinarySetWithOwnDescriptor(target, P, V, receiver, ownDesc);
+ }
+
+ defineProperty(target, P, desc) {
+ if (typeof P === "symbol") {
+ return Reflect.defineProperty(target, P, desc);
+ }
+
+ const globalObject = this._globalObject;
+
+ if (utils.isArrayIndexPropName(P)) {
+ return false;
+ }
+ if (!Object.hasOwn(target, P)) {
+ const creating = !(target[implSymbol].namedItem(P) !== null);
+ if (!creating) {
+ return false;
+ }
+ }
+ return Reflect.defineProperty(target, P, desc);
+ }
+
+ deleteProperty(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.deleteProperty(target, P);
+ }
+
+ const globalObject = this._globalObject;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ return !(target[implSymbol].item(index) !== null);
+ }
+
+ if (target[implSymbol].namedItem(P) !== null && !(P in target)) {
+ return false;
+ }
+
+ return Reflect.deleteProperty(target, P);
+ }
+
+ preventExtensions() {
+ return false;
+ }
+}
+
+const Impl = require("../nodes/HTMLCollection-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLDListElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLDListElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..ac38c043ac38071852a42f940a47ffd6f583d513
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLDListElement.js
@@ -0,0 +1,156 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLDListElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLDListElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLDListElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLDListElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get compact() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get compact' called on an object that is not a valid instance of HTMLDListElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("compact") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set compact(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set compact' called on an object that is not a valid instance of HTMLDListElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'compact' property on 'HTMLDListElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("compact", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("compact");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLDListElement.prototype, {
+ compact: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLDListElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLDListElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLDListElement
+ });
+};
+
+const Impl = require("../nodes/HTMLDListElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..9efe5b70dfc7de38333693c414131579c234670a
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataElement.js
@@ -0,0 +1,153 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLDataElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLDataElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLDataElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLDataElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get value() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get value' called on an object that is not a valid instance of HTMLDataElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("value");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set value(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set value' called on an object that is not a valid instance of HTMLDataElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'value' property on 'HTMLDataElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("value", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLDataElement.prototype, {
+ value: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLDataElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLDataElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLDataElement
+ });
+};
+
+const Impl = require("../nodes/HTMLDataElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataListElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataListElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..d65156f8853f809d28fd357309eac2bab923e65c
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataListElement.js
@@ -0,0 +1,125 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLDataListElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLDataListElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLDataListElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLDataListElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get options() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get options' called on an object that is not a valid instance of HTMLDataListElement."
+ );
+ }
+
+ return utils.getSameObject(this, "options", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["options"]);
+ });
+ }
+ }
+ Object.defineProperties(HTMLDataListElement.prototype, {
+ options: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLDataListElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLDataListElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLDataListElement
+ });
+};
+
+const Impl = require("../nodes/HTMLDataListElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLDetailsElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLDetailsElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..d15510b846b0eeb19f0e4898cae4b376f22aa944
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLDetailsElement.js
@@ -0,0 +1,156 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLDetailsElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLDetailsElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLDetailsElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLDetailsElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get open() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get open' called on an object that is not a valid instance of HTMLDetailsElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("open") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set open(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set open' called on an object that is not a valid instance of HTMLDetailsElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'open' property on 'HTMLDetailsElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("open", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("open");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLDetailsElement.prototype, {
+ open: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLDetailsElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLDetailsElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLDetailsElement
+ });
+};
+
+const Impl = require("../nodes/HTMLDetailsElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLDialogElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLDialogElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..564a6700e3f3e33fa30e351f5dc1b6c04fb2ba5c
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLDialogElement.js
@@ -0,0 +1,156 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLDialogElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLDialogElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLDialogElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLDialogElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get open() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get open' called on an object that is not a valid instance of HTMLDialogElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("open") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set open(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set open' called on an object that is not a valid instance of HTMLDialogElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'open' property on 'HTMLDialogElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("open", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("open");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLDialogElement.prototype, {
+ open: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLDialogElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLDialogElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLDialogElement
+ });
+};
+
+const Impl = require("../nodes/HTMLDialogElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLDirectoryElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLDirectoryElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..ffaa2d82288ecc04828a92abf2a829e25aba89dd
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLDirectoryElement.js
@@ -0,0 +1,156 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLDirectoryElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLDirectoryElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLDirectoryElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLDirectoryElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get compact() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get compact' called on an object that is not a valid instance of HTMLDirectoryElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("compact") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set compact(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set compact' called on an object that is not a valid instance of HTMLDirectoryElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'compact' property on 'HTMLDirectoryElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("compact", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("compact");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLDirectoryElement.prototype, {
+ compact: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLDirectoryElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLDirectoryElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLDirectoryElement
+ });
+};
+
+const Impl = require("../nodes/HTMLDirectoryElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLDivElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLDivElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..ae60542adea6f6944a4cb3c2e88a018e753da86f
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLDivElement.js
@@ -0,0 +1,153 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLDivElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLDivElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLDivElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLDivElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get align() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get align' called on an object that is not a valid instance of HTMLDivElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("align");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set align(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set align' called on an object that is not a valid instance of HTMLDivElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'align' property on 'HTMLDivElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLDivElement.prototype, {
+ align: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLDivElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLDivElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLDivElement
+ });
+};
+
+const Impl = require("../nodes/HTMLDivElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..2d221cf2a0db9a73194d10a965e1853b1a9707d1
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLElement.js
@@ -0,0 +1,3489 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const EventHandlerNonNull = require("./EventHandlerNonNull.js");
+const OnErrorEventHandlerNonNull = require("./OnErrorEventHandlerNonNull.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const Element = require("./Element.js");
+
+const interfaceName = "HTMLElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ Element._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLElement extends globalObject.Element {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ click() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'click' called on an object that is not a valid instance of HTMLElement.");
+ }
+
+ return esValue[implSymbol].click();
+ }
+
+ attachInternals() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'attachInternals' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol].attachInternals());
+ }
+
+ focus() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'focus' called on an object that is not a valid instance of HTMLElement.");
+ }
+
+ return esValue[implSymbol].focus();
+ }
+
+ blur() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'blur' called on an object that is not a valid instance of HTMLElement.");
+ }
+
+ return esValue[implSymbol].blur();
+ }
+
+ get title() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get title' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("title");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set title(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set title' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'title' property on 'HTMLElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("title", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get lang() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get lang' called on an object that is not a valid instance of HTMLElement.");
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("lang");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set lang(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set lang' called on an object that is not a valid instance of HTMLElement.");
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'lang' property on 'HTMLElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("lang", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get translate() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get translate' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["translate"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set translate(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set translate' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'translate' property on 'HTMLElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["translate"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get dir() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get dir' called on an object that is not a valid instance of HTMLElement.");
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["dir"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set dir(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set dir' called on an object that is not a valid instance of HTMLElement.");
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'dir' property on 'HTMLElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["dir"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get hidden() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get hidden' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("hidden") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set hidden(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set hidden' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'hidden' property on 'HTMLElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("hidden", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("hidden");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get accessKey() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get accessKey' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("accesskey");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set accessKey(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set accessKey' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'accessKey' property on 'HTMLElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("accesskey", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get draggable() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get draggable' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["draggable"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set draggable(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set draggable' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'draggable' property on 'HTMLElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["draggable"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get offsetParent() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get offsetParent' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["offsetParent"]);
+ }
+
+ get offsetTop() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get offsetTop' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return esValue[implSymbol]["offsetTop"];
+ }
+
+ get offsetLeft() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get offsetLeft' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return esValue[implSymbol]["offsetLeft"];
+ }
+
+ get offsetWidth() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get offsetWidth' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return esValue[implSymbol]["offsetWidth"];
+ }
+
+ get offsetHeight() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get offsetHeight' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return esValue[implSymbol]["offsetHeight"];
+ }
+
+ get style() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get style' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.getSameObject(this, "style", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["style"]);
+ });
+ }
+
+ set style(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set style' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ const Q = esValue["style"];
+ if (!utils.isObject(Q)) {
+ throw new globalObject.TypeError("Property 'style' is not an object");
+ }
+ Reflect.set(Q, "cssText", V);
+ }
+
+ get onabort() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onabort' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onabort"]);
+ }
+
+ set onabort(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onabort' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onabort' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onabort"] = V;
+ }
+
+ get onauxclick() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onauxclick' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onauxclick"]);
+ }
+
+ set onauxclick(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onauxclick' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onauxclick' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onauxclick"] = V;
+ }
+
+ get onbeforeinput() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onbeforeinput' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onbeforeinput"]);
+ }
+
+ set onbeforeinput(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onbeforeinput' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onbeforeinput' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onbeforeinput"] = V;
+ }
+
+ get onbeforematch() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onbeforematch' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onbeforematch"]);
+ }
+
+ set onbeforematch(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onbeforematch' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onbeforematch' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onbeforematch"] = V;
+ }
+
+ get onbeforetoggle() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onbeforetoggle' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onbeforetoggle"]);
+ }
+
+ set onbeforetoggle(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onbeforetoggle' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onbeforetoggle' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onbeforetoggle"] = V;
+ }
+
+ get onblur() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onblur' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onblur"]);
+ }
+
+ set onblur(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onblur' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onblur' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onblur"] = V;
+ }
+
+ get oncancel() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get oncancel' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["oncancel"]);
+ }
+
+ set oncancel(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set oncancel' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'oncancel' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["oncancel"] = V;
+ }
+
+ get oncanplay() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get oncanplay' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["oncanplay"]);
+ }
+
+ set oncanplay(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set oncanplay' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'oncanplay' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["oncanplay"] = V;
+ }
+
+ get oncanplaythrough() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get oncanplaythrough' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["oncanplaythrough"]);
+ }
+
+ set oncanplaythrough(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set oncanplaythrough' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'oncanplaythrough' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["oncanplaythrough"] = V;
+ }
+
+ get onchange() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onchange' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onchange"]);
+ }
+
+ set onchange(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onchange' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onchange' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onchange"] = V;
+ }
+
+ get onclick() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onclick' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onclick"]);
+ }
+
+ set onclick(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onclick' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onclick' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onclick"] = V;
+ }
+
+ get onclose() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onclose' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onclose"]);
+ }
+
+ set onclose(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onclose' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onclose' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onclose"] = V;
+ }
+
+ get oncontextlost() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get oncontextlost' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["oncontextlost"]);
+ }
+
+ set oncontextlost(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set oncontextlost' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'oncontextlost' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["oncontextlost"] = V;
+ }
+
+ get oncontextmenu() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get oncontextmenu' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["oncontextmenu"]);
+ }
+
+ set oncontextmenu(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set oncontextmenu' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'oncontextmenu' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["oncontextmenu"] = V;
+ }
+
+ get oncontextrestored() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get oncontextrestored' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["oncontextrestored"]);
+ }
+
+ set oncontextrestored(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set oncontextrestored' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'oncontextrestored' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["oncontextrestored"] = V;
+ }
+
+ get oncopy() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get oncopy' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["oncopy"]);
+ }
+
+ set oncopy(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set oncopy' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'oncopy' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["oncopy"] = V;
+ }
+
+ get oncuechange() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get oncuechange' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["oncuechange"]);
+ }
+
+ set oncuechange(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set oncuechange' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'oncuechange' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["oncuechange"] = V;
+ }
+
+ get oncut() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get oncut' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["oncut"]);
+ }
+
+ set oncut(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set oncut' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'oncut' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["oncut"] = V;
+ }
+
+ get ondblclick() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ondblclick' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ondblclick"]);
+ }
+
+ set ondblclick(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ondblclick' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ondblclick' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["ondblclick"] = V;
+ }
+
+ get ondrag() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ondrag' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ondrag"]);
+ }
+
+ set ondrag(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ondrag' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ondrag' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["ondrag"] = V;
+ }
+
+ get ondragend() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ondragend' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ondragend"]);
+ }
+
+ set ondragend(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ondragend' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ondragend' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["ondragend"] = V;
+ }
+
+ get ondragenter() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ondragenter' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ondragenter"]);
+ }
+
+ set ondragenter(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ondragenter' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ondragenter' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["ondragenter"] = V;
+ }
+
+ get ondragleave() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ondragleave' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ondragleave"]);
+ }
+
+ set ondragleave(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ondragleave' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ondragleave' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["ondragleave"] = V;
+ }
+
+ get ondragover() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ondragover' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ondragover"]);
+ }
+
+ set ondragover(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ondragover' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ondragover' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["ondragover"] = V;
+ }
+
+ get ondragstart() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ondragstart' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ondragstart"]);
+ }
+
+ set ondragstart(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ondragstart' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ondragstart' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["ondragstart"] = V;
+ }
+
+ get ondrop() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ondrop' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ondrop"]);
+ }
+
+ set ondrop(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ondrop' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ondrop' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["ondrop"] = V;
+ }
+
+ get ondurationchange() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ondurationchange' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ondurationchange"]);
+ }
+
+ set ondurationchange(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ondurationchange' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ondurationchange' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["ondurationchange"] = V;
+ }
+
+ get onemptied() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onemptied' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onemptied"]);
+ }
+
+ set onemptied(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onemptied' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onemptied' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onemptied"] = V;
+ }
+
+ get onended() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onended' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onended"]);
+ }
+
+ set onended(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onended' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onended' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onended"] = V;
+ }
+
+ get onerror() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onerror' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onerror"]);
+ }
+
+ set onerror(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onerror' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = OnErrorEventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onerror' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onerror"] = V;
+ }
+
+ get onfocus() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onfocus' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onfocus"]);
+ }
+
+ set onfocus(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onfocus' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onfocus' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onfocus"] = V;
+ }
+
+ get onformdata() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onformdata' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onformdata"]);
+ }
+
+ set onformdata(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onformdata' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onformdata' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onformdata"] = V;
+ }
+
+ get oninput() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get oninput' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["oninput"]);
+ }
+
+ set oninput(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set oninput' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'oninput' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["oninput"] = V;
+ }
+
+ get oninvalid() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get oninvalid' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["oninvalid"]);
+ }
+
+ set oninvalid(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set oninvalid' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'oninvalid' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["oninvalid"] = V;
+ }
+
+ get onkeydown() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onkeydown' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onkeydown"]);
+ }
+
+ set onkeydown(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onkeydown' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onkeydown' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onkeydown"] = V;
+ }
+
+ get onkeypress() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onkeypress' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onkeypress"]);
+ }
+
+ set onkeypress(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onkeypress' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onkeypress' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onkeypress"] = V;
+ }
+
+ get onkeyup() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onkeyup' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onkeyup"]);
+ }
+
+ set onkeyup(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onkeyup' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onkeyup' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onkeyup"] = V;
+ }
+
+ get onload() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onload' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onload"]);
+ }
+
+ set onload(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onload' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onload' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onload"] = V;
+ }
+
+ get onloadeddata() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onloadeddata' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onloadeddata"]);
+ }
+
+ set onloadeddata(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onloadeddata' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onloadeddata' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onloadeddata"] = V;
+ }
+
+ get onloadedmetadata() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onloadedmetadata' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onloadedmetadata"]);
+ }
+
+ set onloadedmetadata(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onloadedmetadata' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onloadedmetadata' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onloadedmetadata"] = V;
+ }
+
+ get onloadstart() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onloadstart' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onloadstart"]);
+ }
+
+ set onloadstart(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onloadstart' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onloadstart' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onloadstart"] = V;
+ }
+
+ get onmousedown() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onmousedown' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onmousedown"]);
+ }
+
+ set onmousedown(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onmousedown' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onmousedown' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onmousedown"] = V;
+ }
+
+ get onmouseenter() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ return;
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onmouseenter"]);
+ }
+
+ set onmouseenter(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ return;
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onmouseenter' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onmouseenter"] = V;
+ }
+
+ get onmouseleave() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ return;
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onmouseleave"]);
+ }
+
+ set onmouseleave(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ return;
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onmouseleave' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onmouseleave"] = V;
+ }
+
+ get onmousemove() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onmousemove' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onmousemove"]);
+ }
+
+ set onmousemove(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onmousemove' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onmousemove' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onmousemove"] = V;
+ }
+
+ get onmouseout() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onmouseout' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onmouseout"]);
+ }
+
+ set onmouseout(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onmouseout' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onmouseout' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onmouseout"] = V;
+ }
+
+ get onmouseover() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onmouseover' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onmouseover"]);
+ }
+
+ set onmouseover(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onmouseover' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onmouseover' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onmouseover"] = V;
+ }
+
+ get onmouseup() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onmouseup' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onmouseup"]);
+ }
+
+ set onmouseup(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onmouseup' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onmouseup' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onmouseup"] = V;
+ }
+
+ get onpaste() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpaste' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpaste"]);
+ }
+
+ set onpaste(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpaste' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpaste' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpaste"] = V;
+ }
+
+ get onpause() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpause' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpause"]);
+ }
+
+ set onpause(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpause' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpause' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpause"] = V;
+ }
+
+ get onplay() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onplay' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onplay"]);
+ }
+
+ set onplay(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onplay' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onplay' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onplay"] = V;
+ }
+
+ get onplaying() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onplaying' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onplaying"]);
+ }
+
+ set onplaying(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onplaying' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onplaying' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onplaying"] = V;
+ }
+
+ get onprogress() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onprogress' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onprogress"]);
+ }
+
+ set onprogress(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onprogress' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onprogress' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onprogress"] = V;
+ }
+
+ get onratechange() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onratechange' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onratechange"]);
+ }
+
+ set onratechange(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onratechange' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onratechange' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onratechange"] = V;
+ }
+
+ get onreset() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onreset' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onreset"]);
+ }
+
+ set onreset(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onreset' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onreset' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onreset"] = V;
+ }
+
+ get onresize() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onresize' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onresize"]);
+ }
+
+ set onresize(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onresize' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onresize' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onresize"] = V;
+ }
+
+ get onscroll() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onscroll' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onscroll"]);
+ }
+
+ set onscroll(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onscroll' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onscroll' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onscroll"] = V;
+ }
+
+ get onscrollend() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onscrollend' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onscrollend"]);
+ }
+
+ set onscrollend(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onscrollend' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onscrollend' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onscrollend"] = V;
+ }
+
+ get onsecuritypolicyviolation() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onsecuritypolicyviolation' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onsecuritypolicyviolation"]);
+ }
+
+ set onsecuritypolicyviolation(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onsecuritypolicyviolation' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onsecuritypolicyviolation' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onsecuritypolicyviolation"] = V;
+ }
+
+ get onseeked() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onseeked' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onseeked"]);
+ }
+
+ set onseeked(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onseeked' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onseeked' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onseeked"] = V;
+ }
+
+ get onseeking() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onseeking' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onseeking"]);
+ }
+
+ set onseeking(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onseeking' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onseeking' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onseeking"] = V;
+ }
+
+ get onselect() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onselect' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onselect"]);
+ }
+
+ set onselect(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onselect' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onselect' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onselect"] = V;
+ }
+
+ get onslotchange() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onslotchange' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onslotchange"]);
+ }
+
+ set onslotchange(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onslotchange' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onslotchange' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onslotchange"] = V;
+ }
+
+ get onstalled() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onstalled' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onstalled"]);
+ }
+
+ set onstalled(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onstalled' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onstalled' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onstalled"] = V;
+ }
+
+ get onsubmit() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onsubmit' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onsubmit"]);
+ }
+
+ set onsubmit(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onsubmit' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onsubmit' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onsubmit"] = V;
+ }
+
+ get onsuspend() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onsuspend' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onsuspend"]);
+ }
+
+ set onsuspend(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onsuspend' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onsuspend' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onsuspend"] = V;
+ }
+
+ get ontimeupdate() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ontimeupdate' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ontimeupdate"]);
+ }
+
+ set ontimeupdate(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ontimeupdate' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ontimeupdate' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["ontimeupdate"] = V;
+ }
+
+ get ontoggle() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ontoggle' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ontoggle"]);
+ }
+
+ set ontoggle(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ontoggle' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ontoggle' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["ontoggle"] = V;
+ }
+
+ get onvolumechange() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onvolumechange' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onvolumechange"]);
+ }
+
+ set onvolumechange(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onvolumechange' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onvolumechange' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onvolumechange"] = V;
+ }
+
+ get onwaiting() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onwaiting' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onwaiting"]);
+ }
+
+ set onwaiting(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onwaiting' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onwaiting' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onwaiting"] = V;
+ }
+
+ get onwebkitanimationend() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onwebkitanimationend' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onwebkitanimationend"]);
+ }
+
+ set onwebkitanimationend(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onwebkitanimationend' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onwebkitanimationend' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onwebkitanimationend"] = V;
+ }
+
+ get onwebkitanimationiteration() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onwebkitanimationiteration' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onwebkitanimationiteration"]);
+ }
+
+ set onwebkitanimationiteration(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onwebkitanimationiteration' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onwebkitanimationiteration' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onwebkitanimationiteration"] = V;
+ }
+
+ get onwebkitanimationstart() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onwebkitanimationstart' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onwebkitanimationstart"]);
+ }
+
+ set onwebkitanimationstart(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onwebkitanimationstart' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onwebkitanimationstart' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onwebkitanimationstart"] = V;
+ }
+
+ get onwebkittransitionend() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onwebkittransitionend' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onwebkittransitionend"]);
+ }
+
+ set onwebkittransitionend(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onwebkittransitionend' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onwebkittransitionend' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onwebkittransitionend"] = V;
+ }
+
+ get onwheel() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onwheel' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onwheel"]);
+ }
+
+ set onwheel(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onwheel' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onwheel' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onwheel"] = V;
+ }
+
+ get ontouchstart() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ontouchstart' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ontouchstart"]);
+ }
+
+ set ontouchstart(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ontouchstart' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ontouchstart' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["ontouchstart"] = V;
+ }
+
+ get ontouchend() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ontouchend' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ontouchend"]);
+ }
+
+ set ontouchend(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ontouchend' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ontouchend' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["ontouchend"] = V;
+ }
+
+ get ontouchmove() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ontouchmove' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ontouchmove"]);
+ }
+
+ set ontouchmove(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ontouchmove' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ontouchmove' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["ontouchmove"] = V;
+ }
+
+ get ontouchcancel() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ontouchcancel' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ontouchcancel"]);
+ }
+
+ set ontouchcancel(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ontouchcancel' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ontouchcancel' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["ontouchcancel"] = V;
+ }
+
+ get onpointerover() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpointerover' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpointerover"]);
+ }
+
+ set onpointerover(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpointerover' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpointerover' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpointerover"] = V;
+ }
+
+ get onpointerenter() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpointerenter' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpointerenter"]);
+ }
+
+ set onpointerenter(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpointerenter' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpointerenter' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpointerenter"] = V;
+ }
+
+ get onpointerdown() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpointerdown' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpointerdown"]);
+ }
+
+ set onpointerdown(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpointerdown' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpointerdown' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpointerdown"] = V;
+ }
+
+ get onpointermove() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpointermove' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpointermove"]);
+ }
+
+ set onpointermove(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpointermove' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpointermove' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpointermove"] = V;
+ }
+
+ get onpointerrawupdate() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpointerrawupdate' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpointerrawupdate"]);
+ }
+
+ set onpointerrawupdate(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpointerrawupdate' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpointerrawupdate' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpointerrawupdate"] = V;
+ }
+
+ get onpointerup() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpointerup' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpointerup"]);
+ }
+
+ set onpointerup(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpointerup' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpointerup' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpointerup"] = V;
+ }
+
+ get onpointercancel() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpointercancel' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpointercancel"]);
+ }
+
+ set onpointercancel(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpointercancel' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpointercancel' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpointercancel"] = V;
+ }
+
+ get onpointerout() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpointerout' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpointerout"]);
+ }
+
+ set onpointerout(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpointerout' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpointerout' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpointerout"] = V;
+ }
+
+ get onpointerleave() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpointerleave' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpointerleave"]);
+ }
+
+ set onpointerleave(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpointerleave' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpointerleave' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpointerleave"] = V;
+ }
+
+ get ongotpointercapture() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ongotpointercapture' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ongotpointercapture"]);
+ }
+
+ set ongotpointercapture(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ongotpointercapture' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ongotpointercapture' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["ongotpointercapture"] = V;
+ }
+
+ get onlostpointercapture() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onlostpointercapture' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onlostpointercapture"]);
+ }
+
+ set onlostpointercapture(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onlostpointercapture' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onlostpointercapture' property on 'HTMLElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onlostpointercapture"] = V;
+ }
+
+ get dataset() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get dataset' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ return utils.getSameObject(this, "dataset", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["dataset"]);
+ });
+ }
+
+ get nonce() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get nonce' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("nonce");
+ return value === null ? "" : value;
+ }
+
+ set nonce(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set nonce' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'nonce' property on 'HTMLElement': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]._reflectSetTheContentAttribute("nonce", V);
+ }
+
+ get tabIndex() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get tabIndex' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["tabIndex"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set tabIndex(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set tabIndex' called on an object that is not a valid instance of HTMLElement."
+ );
+ }
+
+ V = conversions["long"](V, {
+ context: "Failed to set the 'tabIndex' property on 'HTMLElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["tabIndex"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLElement.prototype, {
+ click: { enumerable: true },
+ attachInternals: { enumerable: true },
+ focus: { enumerable: true },
+ blur: { enumerable: true },
+ title: { enumerable: true },
+ lang: { enumerable: true },
+ translate: { enumerable: true },
+ dir: { enumerable: true },
+ hidden: { enumerable: true },
+ accessKey: { enumerable: true },
+ draggable: { enumerable: true },
+ offsetParent: { enumerable: true },
+ offsetTop: { enumerable: true },
+ offsetLeft: { enumerable: true },
+ offsetWidth: { enumerable: true },
+ offsetHeight: { enumerable: true },
+ style: { enumerable: true },
+ onabort: { enumerable: true },
+ onauxclick: { enumerable: true },
+ onbeforeinput: { enumerable: true },
+ onbeforematch: { enumerable: true },
+ onbeforetoggle: { enumerable: true },
+ onblur: { enumerable: true },
+ oncancel: { enumerable: true },
+ oncanplay: { enumerable: true },
+ oncanplaythrough: { enumerable: true },
+ onchange: { enumerable: true },
+ onclick: { enumerable: true },
+ onclose: { enumerable: true },
+ oncontextlost: { enumerable: true },
+ oncontextmenu: { enumerable: true },
+ oncontextrestored: { enumerable: true },
+ oncopy: { enumerable: true },
+ oncuechange: { enumerable: true },
+ oncut: { enumerable: true },
+ ondblclick: { enumerable: true },
+ ondrag: { enumerable: true },
+ ondragend: { enumerable: true },
+ ondragenter: { enumerable: true },
+ ondragleave: { enumerable: true },
+ ondragover: { enumerable: true },
+ ondragstart: { enumerable: true },
+ ondrop: { enumerable: true },
+ ondurationchange: { enumerable: true },
+ onemptied: { enumerable: true },
+ onended: { enumerable: true },
+ onerror: { enumerable: true },
+ onfocus: { enumerable: true },
+ onformdata: { enumerable: true },
+ oninput: { enumerable: true },
+ oninvalid: { enumerable: true },
+ onkeydown: { enumerable: true },
+ onkeypress: { enumerable: true },
+ onkeyup: { enumerable: true },
+ onload: { enumerable: true },
+ onloadeddata: { enumerable: true },
+ onloadedmetadata: { enumerable: true },
+ onloadstart: { enumerable: true },
+ onmousedown: { enumerable: true },
+ onmouseenter: { enumerable: true },
+ onmouseleave: { enumerable: true },
+ onmousemove: { enumerable: true },
+ onmouseout: { enumerable: true },
+ onmouseover: { enumerable: true },
+ onmouseup: { enumerable: true },
+ onpaste: { enumerable: true },
+ onpause: { enumerable: true },
+ onplay: { enumerable: true },
+ onplaying: { enumerable: true },
+ onprogress: { enumerable: true },
+ onratechange: { enumerable: true },
+ onreset: { enumerable: true },
+ onresize: { enumerable: true },
+ onscroll: { enumerable: true },
+ onscrollend: { enumerable: true },
+ onsecuritypolicyviolation: { enumerable: true },
+ onseeked: { enumerable: true },
+ onseeking: { enumerable: true },
+ onselect: { enumerable: true },
+ onslotchange: { enumerable: true },
+ onstalled: { enumerable: true },
+ onsubmit: { enumerable: true },
+ onsuspend: { enumerable: true },
+ ontimeupdate: { enumerable: true },
+ ontoggle: { enumerable: true },
+ onvolumechange: { enumerable: true },
+ onwaiting: { enumerable: true },
+ onwebkitanimationend: { enumerable: true },
+ onwebkitanimationiteration: { enumerable: true },
+ onwebkitanimationstart: { enumerable: true },
+ onwebkittransitionend: { enumerable: true },
+ onwheel: { enumerable: true },
+ ontouchstart: { enumerable: true },
+ ontouchend: { enumerable: true },
+ ontouchmove: { enumerable: true },
+ ontouchcancel: { enumerable: true },
+ onpointerover: { enumerable: true },
+ onpointerenter: { enumerable: true },
+ onpointerdown: { enumerable: true },
+ onpointermove: { enumerable: true },
+ onpointerrawupdate: { enumerable: true },
+ onpointerup: { enumerable: true },
+ onpointercancel: { enumerable: true },
+ onpointerout: { enumerable: true },
+ onpointerleave: { enumerable: true },
+ ongotpointercapture: { enumerable: true },
+ onlostpointercapture: { enumerable: true },
+ dataset: { enumerable: true },
+ nonce: { enumerable: true },
+ tabIndex: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLElement
+ });
+};
+
+const Impl = require("../nodes/HTMLElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLEmbedElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLEmbedElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..e6782ed8755dd8e2e64cbec0dc98fd443959569c
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLEmbedElement.js
@@ -0,0 +1,378 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const serializeURLwhatwg_url = require("whatwg-url").serializeURL;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLEmbedElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLEmbedElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLEmbedElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLEmbedElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get src() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get src' called on an object that is not a valid instance of HTMLEmbedElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const impl = esValue[implSymbol];
+ const value = impl._reflectGetTheContentAttribute("src");
+ if (value === null) {
+ return "";
+ }
+
+ const document = impl._ownerDocument;
+ if (this._srcURLCacheKey === value && this._baseURLCache === document._baseURLCache) {
+ return this._srcURLCache;
+ }
+
+ this._srcURLCacheKey = value;
+ this._baseURLCache = document._baseURLCache;
+
+ const urlRecord = document.encodingParseAURL(value);
+ if (urlRecord !== null) {
+ this._srcURLCache = serializeURLwhatwg_url(urlRecord);
+ return this._srcURLCache;
+ }
+ this._srcURLCache = conversions.USVString(value);
+ return this._srcURLCache;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set src(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set src' called on an object that is not a valid instance of HTMLEmbedElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'src' property on 'HTMLEmbedElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("src", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get type() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get type' called on an object that is not a valid instance of HTMLEmbedElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("type");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set type(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set type' called on an object that is not a valid instance of HTMLEmbedElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'type' property on 'HTMLEmbedElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("type", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get width() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get width' called on an object that is not a valid instance of HTMLEmbedElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("width");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set width(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set width' called on an object that is not a valid instance of HTMLEmbedElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'width' property on 'HTMLEmbedElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("width", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get height() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get height' called on an object that is not a valid instance of HTMLEmbedElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("height");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set height(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set height' called on an object that is not a valid instance of HTMLEmbedElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'height' property on 'HTMLEmbedElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("height", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get align() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get align' called on an object that is not a valid instance of HTMLEmbedElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("align");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set align(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set align' called on an object that is not a valid instance of HTMLEmbedElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'align' property on 'HTMLEmbedElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get name() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get name' called on an object that is not a valid instance of HTMLEmbedElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("name");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set name(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set name' called on an object that is not a valid instance of HTMLEmbedElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'name' property on 'HTMLEmbedElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLEmbedElement.prototype, {
+ src: { enumerable: true },
+ type: { enumerable: true },
+ width: { enumerable: true },
+ height: { enumerable: true },
+ align: { enumerable: true },
+ name: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLEmbedElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLEmbedElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLEmbedElement
+ });
+};
+
+const Impl = require("../nodes/HTMLEmbedElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLFieldSetElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLFieldSetElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..03deb52020e4b4120d93194f33bebacd91d4225d
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLFieldSetElement.js
@@ -0,0 +1,329 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLFieldSetElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLFieldSetElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLFieldSetElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLFieldSetElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ checkValidity() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'checkValidity' called on an object that is not a valid instance of HTMLFieldSetElement."
+ );
+ }
+
+ return esValue[implSymbol].checkValidity();
+ }
+
+ reportValidity() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'reportValidity' called on an object that is not a valid instance of HTMLFieldSetElement."
+ );
+ }
+
+ return esValue[implSymbol].reportValidity();
+ }
+
+ setCustomValidity(error) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'setCustomValidity' called on an object that is not a valid instance of HTMLFieldSetElement."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'setCustomValidity' on 'HTMLFieldSetElement': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'setCustomValidity' on 'HTMLFieldSetElement': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].setCustomValidity(...args);
+ }
+
+ get disabled() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get disabled' called on an object that is not a valid instance of HTMLFieldSetElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("disabled") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set disabled(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set disabled' called on an object that is not a valid instance of HTMLFieldSetElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'disabled' property on 'HTMLFieldSetElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("disabled", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("disabled");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get form() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get form' called on an object that is not a valid instance of HTMLFieldSetElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["form"]);
+ }
+
+ get name() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get name' called on an object that is not a valid instance of HTMLFieldSetElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("name");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set name(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set name' called on an object that is not a valid instance of HTMLFieldSetElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'name' property on 'HTMLFieldSetElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get type() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get type' called on an object that is not a valid instance of HTMLFieldSetElement."
+ );
+ }
+
+ return esValue[implSymbol]["type"];
+ }
+
+ get elements() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get elements' called on an object that is not a valid instance of HTMLFieldSetElement."
+ );
+ }
+
+ return utils.getSameObject(this, "elements", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["elements"]);
+ });
+ }
+
+ get willValidate() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get willValidate' called on an object that is not a valid instance of HTMLFieldSetElement."
+ );
+ }
+
+ return esValue[implSymbol]["willValidate"];
+ }
+
+ get validity() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get validity' called on an object that is not a valid instance of HTMLFieldSetElement."
+ );
+ }
+
+ return utils.getSameObject(this, "validity", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["validity"]);
+ });
+ }
+
+ get validationMessage() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get validationMessage' called on an object that is not a valid instance of HTMLFieldSetElement."
+ );
+ }
+
+ return esValue[implSymbol]["validationMessage"];
+ }
+ }
+ Object.defineProperties(HTMLFieldSetElement.prototype, {
+ checkValidity: { enumerable: true },
+ reportValidity: { enumerable: true },
+ setCustomValidity: { enumerable: true },
+ disabled: { enumerable: true },
+ form: { enumerable: true },
+ name: { enumerable: true },
+ type: { enumerable: true },
+ elements: { enumerable: true },
+ willValidate: { enumerable: true },
+ validity: { enumerable: true },
+ validationMessage: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLFieldSetElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLFieldSetElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLFieldSetElement
+ });
+};
+
+const Impl = require("../nodes/HTMLFieldSetElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLFontElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLFontElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..0adb6204782c3af7701e8761993bcb9368399ce3
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLFontElement.js
@@ -0,0 +1,236 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLFontElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLFontElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLFontElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLFontElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get color() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get color' called on an object that is not a valid instance of HTMLFontElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("color");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set color(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set color' called on an object that is not a valid instance of HTMLFontElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'color' property on 'HTMLFontElement': The provided value",
+ globals: globalObject,
+ treatNullAsEmptyString: true
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("color", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get face() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get face' called on an object that is not a valid instance of HTMLFontElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("face");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set face(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set face' called on an object that is not a valid instance of HTMLFontElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'face' property on 'HTMLFontElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("face", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get size() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get size' called on an object that is not a valid instance of HTMLFontElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("size");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set size(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set size' called on an object that is not a valid instance of HTMLFontElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'size' property on 'HTMLFontElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("size", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLFontElement.prototype, {
+ color: { enumerable: true },
+ face: { enumerable: true },
+ size: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLFontElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLFontElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLFontElement
+ });
+};
+
+const Impl = require("../nodes/HTMLFontElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLFormControlsCollection.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLFormControlsCollection.js
new file mode 100644
index 0000000000000000000000000000000000000000..bd832426edf60259e06095455ccee776b53abe52
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLFormControlsCollection.js
@@ -0,0 +1,318 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLCollection = require("./HTMLCollection.js");
+
+const interfaceName = "HTMLFormControlsCollection";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLFormControlsCollection'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLFormControlsCollection"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+function makeProxy(wrapper, globalObject) {
+ let proxyHandler = proxyHandlerCache.get(globalObject);
+ if (proxyHandler === undefined) {
+ proxyHandler = new ProxyHandler(globalObject);
+ proxyHandlerCache.set(globalObject, proxyHandler);
+ }
+ return new Proxy(wrapper, proxyHandler);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLCollection._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper = makeProxy(wrapper, globalObject);
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ let wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper = makeProxy(wrapper, globalObject);
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLFormControlsCollection extends globalObject.HTMLCollection {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ namedItem(name) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'namedItem' called on an object that is not a valid instance of HTMLFormControlsCollection."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'namedItem' on 'HTMLFormControlsCollection': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'namedItem' on 'HTMLFormControlsCollection': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].namedItem(...args));
+ }
+ }
+ Object.defineProperties(HTMLFormControlsCollection.prototype, {
+ namedItem: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLFormControlsCollection", configurable: true },
+ [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLFormControlsCollection;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLFormControlsCollection
+ });
+};
+
+const proxyHandlerCache = new WeakMap();
+class ProxyHandler {
+ constructor(globalObject) {
+ this._globalObject = globalObject;
+ }
+
+ get(target, P, receiver) {
+ if (typeof P === "symbol") {
+ return Reflect.get(target, P, receiver);
+ }
+ const desc = this.getOwnPropertyDescriptor(target, P);
+ if (desc === undefined) {
+ const parent = Object.getPrototypeOf(target);
+ if (parent === null) {
+ return undefined;
+ }
+ return Reflect.get(target, P, receiver);
+ }
+ if (!desc.get && !desc.set) {
+ return desc.value;
+ }
+ const getter = desc.get;
+ if (getter === undefined) {
+ return undefined;
+ }
+ return Reflect.apply(getter, receiver, []);
+ }
+
+ has(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.has(target, P);
+ }
+ const desc = this.getOwnPropertyDescriptor(target, P);
+ if (desc !== undefined) {
+ return true;
+ }
+ const parent = Object.getPrototypeOf(target);
+ if (parent !== null) {
+ return Reflect.has(parent, P);
+ }
+ return false;
+ }
+
+ ownKeys(target) {
+ const keys = new Set();
+
+ for (const key of target[implSymbol][utils.supportedPropertyIndices]) {
+ keys.add(`${key}`);
+ }
+
+ for (const key of target[implSymbol][utils.supportedPropertyNames]) {
+ if (!(key in target)) {
+ keys.add(`${key}`);
+ }
+ }
+
+ for (const key of Reflect.ownKeys(target)) {
+ keys.add(key);
+ }
+ return [...keys];
+ }
+
+ getOwnPropertyDescriptor(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.getOwnPropertyDescriptor(target, P);
+ }
+ let ignoreNamedProps = false;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ const indexedValue = target[implSymbol].item(index);
+ if (indexedValue !== null) {
+ return {
+ writable: false,
+ enumerable: true,
+ configurable: true,
+ value: utils.tryWrapperForImpl(indexedValue)
+ };
+ }
+ ignoreNamedProps = true;
+ }
+
+ const namedValue = target[implSymbol].namedItem(P);
+
+ if (namedValue !== null && !(P in target) && !ignoreNamedProps) {
+ return {
+ writable: false,
+ enumerable: true,
+ configurable: true,
+ value: utils.tryWrapperForImpl(namedValue)
+ };
+ }
+
+ return Reflect.getOwnPropertyDescriptor(target, P);
+ }
+
+ set(target, P, V, receiver) {
+ if (typeof P === "symbol") {
+ return Reflect.set(target, P, V, receiver);
+ }
+ // The `receiver` argument refers to the Proxy exotic object or an object
+ // that inherits from it, whereas `target` refers to the Proxy target:
+ if (target[implSymbol][utils.wrapperSymbol] === receiver) {
+ const globalObject = this._globalObject;
+ }
+ let ownDesc;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ const indexedValue = target[implSymbol].item(index);
+ if (indexedValue !== null) {
+ ownDesc = {
+ writable: false,
+ enumerable: true,
+ configurable: true,
+ value: utils.tryWrapperForImpl(indexedValue)
+ };
+ }
+ }
+
+ if (ownDesc === undefined) {
+ ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
+ }
+ return utils.ordinarySetWithOwnDescriptor(target, P, V, receiver, ownDesc);
+ }
+
+ defineProperty(target, P, desc) {
+ if (typeof P === "symbol") {
+ return Reflect.defineProperty(target, P, desc);
+ }
+
+ const globalObject = this._globalObject;
+
+ if (utils.isArrayIndexPropName(P)) {
+ return false;
+ }
+ if (!Object.hasOwn(target, P)) {
+ const creating = !(target[implSymbol].namedItem(P) !== null);
+ if (!creating) {
+ return false;
+ }
+ }
+ return Reflect.defineProperty(target, P, desc);
+ }
+
+ deleteProperty(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.deleteProperty(target, P);
+ }
+
+ const globalObject = this._globalObject;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ return !(target[implSymbol].item(index) !== null);
+ }
+
+ if (target[implSymbol].namedItem(P) !== null && !(P in target)) {
+ return false;
+ }
+
+ return Reflect.deleteProperty(target, P);
+ }
+
+ preventExtensions() {
+ return false;
+ }
+}
+
+const Impl = require("../nodes/HTMLFormControlsCollection-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLFormElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLFormElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..845c9f2f993ae86a421596dc42ed6212a04965bb
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLFormElement.js
@@ -0,0 +1,658 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const HTMLElement = require("./HTMLElement.js");
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "HTMLFormElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLFormElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLFormElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+function makeProxy(wrapper, globalObject) {
+ let proxyHandler = proxyHandlerCache.get(globalObject);
+ if (proxyHandler === undefined) {
+ proxyHandler = new ProxyHandler(globalObject);
+ proxyHandlerCache.set(globalObject, proxyHandler);
+ }
+ return new Proxy(wrapper, proxyHandler);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper = makeProxy(wrapper, globalObject);
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ let wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper = makeProxy(wrapper, globalObject);
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLFormElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ submit() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'submit' called on an object that is not a valid instance of HTMLFormElement."
+ );
+ }
+
+ return esValue[implSymbol].submit();
+ }
+
+ requestSubmit() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'requestSubmit' called on an object that is not a valid instance of HTMLFormElement."
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg !== undefined) {
+ curArg = HTMLElement.convert(globalObject, curArg, {
+ context: "Failed to execute 'requestSubmit' on 'HTMLFormElement': parameter 1"
+ });
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].requestSubmit(...args);
+ }
+
+ reset() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'reset' called on an object that is not a valid instance of HTMLFormElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].reset();
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ checkValidity() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'checkValidity' called on an object that is not a valid instance of HTMLFormElement."
+ );
+ }
+
+ return esValue[implSymbol].checkValidity();
+ }
+
+ reportValidity() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'reportValidity' called on an object that is not a valid instance of HTMLFormElement."
+ );
+ }
+
+ return esValue[implSymbol].reportValidity();
+ }
+
+ get acceptCharset() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get acceptCharset' called on an object that is not a valid instance of HTMLFormElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("accept-charset");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set acceptCharset(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set acceptCharset' called on an object that is not a valid instance of HTMLFormElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'acceptCharset' property on 'HTMLFormElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("accept-charset", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get action() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get action' called on an object that is not a valid instance of HTMLFormElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["action"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set action(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set action' called on an object that is not a valid instance of HTMLFormElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'action' property on 'HTMLFormElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["action"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get enctype() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get enctype' called on an object that is not a valid instance of HTMLFormElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["enctype"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set enctype(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set enctype' called on an object that is not a valid instance of HTMLFormElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'enctype' property on 'HTMLFormElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["enctype"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get method() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get method' called on an object that is not a valid instance of HTMLFormElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["method"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set method(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set method' called on an object that is not a valid instance of HTMLFormElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'method' property on 'HTMLFormElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["method"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get name() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get name' called on an object that is not a valid instance of HTMLFormElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("name");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set name(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set name' called on an object that is not a valid instance of HTMLFormElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'name' property on 'HTMLFormElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get noValidate() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get noValidate' called on an object that is not a valid instance of HTMLFormElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("novalidate") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set noValidate(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set noValidate' called on an object that is not a valid instance of HTMLFormElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'noValidate' property on 'HTMLFormElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("novalidate", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("novalidate");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get target() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get target' called on an object that is not a valid instance of HTMLFormElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("target");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set target(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set target' called on an object that is not a valid instance of HTMLFormElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'target' property on 'HTMLFormElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("target", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get elements() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get elements' called on an object that is not a valid instance of HTMLFormElement."
+ );
+ }
+
+ return utils.getSameObject(this, "elements", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["elements"]);
+ });
+ }
+
+ get length() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get length' called on an object that is not a valid instance of HTMLFormElement."
+ );
+ }
+
+ return esValue[implSymbol]["length"];
+ }
+ }
+ Object.defineProperties(HTMLFormElement.prototype, {
+ submit: { enumerable: true },
+ requestSubmit: { enumerable: true },
+ reset: { enumerable: true },
+ checkValidity: { enumerable: true },
+ reportValidity: { enumerable: true },
+ acceptCharset: { enumerable: true },
+ action: { enumerable: true },
+ enctype: { enumerable: true },
+ method: { enumerable: true },
+ name: { enumerable: true },
+ noValidate: { enumerable: true },
+ target: { enumerable: true },
+ elements: { enumerable: true },
+ length: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLFormElement", configurable: true },
+ [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLFormElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLFormElement
+ });
+};
+
+const proxyHandlerCache = new WeakMap();
+class ProxyHandler {
+ constructor(globalObject) {
+ this._globalObject = globalObject;
+ }
+
+ get(target, P, receiver) {
+ if (typeof P === "symbol") {
+ return Reflect.get(target, P, receiver);
+ }
+ const desc = this.getOwnPropertyDescriptor(target, P);
+ if (desc === undefined) {
+ const parent = Object.getPrototypeOf(target);
+ if (parent === null) {
+ return undefined;
+ }
+ return Reflect.get(target, P, receiver);
+ }
+ if (!desc.get && !desc.set) {
+ return desc.value;
+ }
+ const getter = desc.get;
+ if (getter === undefined) {
+ return undefined;
+ }
+ return Reflect.apply(getter, receiver, []);
+ }
+
+ has(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.has(target, P);
+ }
+ const desc = this.getOwnPropertyDescriptor(target, P);
+ if (desc !== undefined) {
+ return true;
+ }
+ const parent = Object.getPrototypeOf(target);
+ if (parent !== null) {
+ return Reflect.has(parent, P);
+ }
+ return false;
+ }
+
+ ownKeys(target) {
+ const keys = new Set();
+
+ for (const key of target[implSymbol][utils.supportedPropertyIndices]) {
+ keys.add(`${key}`);
+ }
+
+ for (const key of Reflect.ownKeys(target)) {
+ keys.add(key);
+ }
+ return [...keys];
+ }
+
+ getOwnPropertyDescriptor(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.getOwnPropertyDescriptor(target, P);
+ }
+ let ignoreNamedProps = false;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ const indexedValue = target[implSymbol][utils.indexedGet](index);
+ if (indexedValue !== null) {
+ return {
+ writable: false,
+ enumerable: true,
+ configurable: true,
+ value: utils.tryWrapperForImpl(indexedValue)
+ };
+ }
+ ignoreNamedProps = true;
+ }
+
+ return Reflect.getOwnPropertyDescriptor(target, P);
+ }
+
+ set(target, P, V, receiver) {
+ if (typeof P === "symbol") {
+ return Reflect.set(target, P, V, receiver);
+ }
+ // The `receiver` argument refers to the Proxy exotic object or an object
+ // that inherits from it, whereas `target` refers to the Proxy target:
+ if (target[implSymbol][utils.wrapperSymbol] === receiver) {
+ const globalObject = this._globalObject;
+ }
+ let ownDesc;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ const indexedValue = target[implSymbol][utils.indexedGet](index);
+ if (indexedValue !== null) {
+ ownDesc = {
+ writable: false,
+ enumerable: true,
+ configurable: true,
+ value: utils.tryWrapperForImpl(indexedValue)
+ };
+ }
+ }
+
+ if (ownDesc === undefined) {
+ ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
+ }
+ return utils.ordinarySetWithOwnDescriptor(target, P, V, receiver, ownDesc);
+ }
+
+ defineProperty(target, P, desc) {
+ if (typeof P === "symbol") {
+ return Reflect.defineProperty(target, P, desc);
+ }
+
+ const globalObject = this._globalObject;
+
+ if (utils.isArrayIndexPropName(P)) {
+ return false;
+ }
+
+ return Reflect.defineProperty(target, P, desc);
+ }
+
+ deleteProperty(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.deleteProperty(target, P);
+ }
+
+ const globalObject = this._globalObject;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ return !(target[implSymbol][utils.indexedGet](index) !== null);
+ }
+
+ return Reflect.deleteProperty(target, P);
+ }
+
+ preventExtensions() {
+ return false;
+ }
+}
+
+const Impl = require("../nodes/HTMLFormElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cfcc7b83a4bd1d25d55c6b327019227ed19c337
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameElement.js
@@ -0,0 +1,510 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const serializeURLwhatwg_url = require("whatwg-url").serializeURL;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLFrameElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLFrameElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLFrameElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLFrameElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get name() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get name' called on an object that is not a valid instance of HTMLFrameElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("name");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set name(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set name' called on an object that is not a valid instance of HTMLFrameElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'name' property on 'HTMLFrameElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get scrolling() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get scrolling' called on an object that is not a valid instance of HTMLFrameElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("scrolling");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set scrolling(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set scrolling' called on an object that is not a valid instance of HTMLFrameElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'scrolling' property on 'HTMLFrameElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("scrolling", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get src() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get src' called on an object that is not a valid instance of HTMLFrameElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const impl = esValue[implSymbol];
+ const value = impl._reflectGetTheContentAttribute("src");
+ if (value === null) {
+ return "";
+ }
+
+ const document = impl._ownerDocument;
+ if (this._srcURLCacheKey === value && this._baseURLCache === document._baseURLCache) {
+ return this._srcURLCache;
+ }
+
+ this._srcURLCacheKey = value;
+ this._baseURLCache = document._baseURLCache;
+
+ const urlRecord = document.encodingParseAURL(value);
+ if (urlRecord !== null) {
+ this._srcURLCache = serializeURLwhatwg_url(urlRecord);
+ return this._srcURLCache;
+ }
+ this._srcURLCache = conversions.USVString(value);
+ return this._srcURLCache;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set src(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set src' called on an object that is not a valid instance of HTMLFrameElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'src' property on 'HTMLFrameElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("src", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get frameBorder() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get frameBorder' called on an object that is not a valid instance of HTMLFrameElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("frameborder");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set frameBorder(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set frameBorder' called on an object that is not a valid instance of HTMLFrameElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'frameBorder' property on 'HTMLFrameElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("frameborder", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get longDesc() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get longDesc' called on an object that is not a valid instance of HTMLFrameElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const impl = esValue[implSymbol];
+ const value = impl._reflectGetTheContentAttribute("longdesc");
+ if (value === null) {
+ return "";
+ }
+
+ const document = impl._ownerDocument;
+ if (this._longdescURLCacheKey === value && this._baseURLCache === document._baseURLCache) {
+ return this._longdescURLCache;
+ }
+
+ this._longdescURLCacheKey = value;
+ this._baseURLCache = document._baseURLCache;
+
+ const urlRecord = document.encodingParseAURL(value);
+ if (urlRecord !== null) {
+ this._longdescURLCache = serializeURLwhatwg_url(urlRecord);
+ return this._longdescURLCache;
+ }
+ this._longdescURLCache = conversions.USVString(value);
+ return this._longdescURLCache;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set longDesc(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set longDesc' called on an object that is not a valid instance of HTMLFrameElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'longDesc' property on 'HTMLFrameElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("longdesc", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get noResize() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get noResize' called on an object that is not a valid instance of HTMLFrameElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("noresize") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set noResize(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set noResize' called on an object that is not a valid instance of HTMLFrameElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'noResize' property on 'HTMLFrameElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("noresize", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("noresize");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get contentDocument() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get contentDocument' called on an object that is not a valid instance of HTMLFrameElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["contentDocument"]);
+ }
+
+ get contentWindow() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get contentWindow' called on an object that is not a valid instance of HTMLFrameElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["contentWindow"]);
+ }
+
+ get marginHeight() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get marginHeight' called on an object that is not a valid instance of HTMLFrameElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("marginheight");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set marginHeight(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set marginHeight' called on an object that is not a valid instance of HTMLFrameElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'marginHeight' property on 'HTMLFrameElement': The provided value",
+ globals: globalObject,
+ treatNullAsEmptyString: true
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("marginheight", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get marginWidth() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get marginWidth' called on an object that is not a valid instance of HTMLFrameElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("marginwidth");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set marginWidth(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set marginWidth' called on an object that is not a valid instance of HTMLFrameElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'marginWidth' property on 'HTMLFrameElement': The provided value",
+ globals: globalObject,
+ treatNullAsEmptyString: true
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("marginwidth", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLFrameElement.prototype, {
+ name: { enumerable: true },
+ scrolling: { enumerable: true },
+ src: { enumerable: true },
+ frameBorder: { enumerable: true },
+ longDesc: { enumerable: true },
+ noResize: { enumerable: true },
+ contentDocument: { enumerable: true },
+ contentWindow: { enumerable: true },
+ marginHeight: { enumerable: true },
+ marginWidth: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLFrameElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLFrameElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLFrameElement
+ });
+};
+
+const Impl = require("../nodes/HTMLFrameElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameSetElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameSetElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..e93a3e390510f9d6e1cf8edb7704e8541c162cf7
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameSetElement.js
@@ -0,0 +1,708 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const EventHandlerNonNull = require("./EventHandlerNonNull.js");
+const OnBeforeUnloadEventHandlerNonNull = require("./OnBeforeUnloadEventHandlerNonNull.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLFrameSetElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLFrameSetElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLFrameSetElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLFrameSetElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get cols() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get cols' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("cols");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set cols(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set cols' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'cols' property on 'HTMLFrameSetElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("cols", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get rows() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get rows' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("rows");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set rows(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set rows' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'rows' property on 'HTMLFrameSetElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("rows", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get onafterprint() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onafterprint' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onafterprint"]);
+ }
+
+ set onafterprint(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onafterprint' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onafterprint' property on 'HTMLFrameSetElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onafterprint"] = V;
+ }
+
+ get onbeforeprint() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onbeforeprint' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onbeforeprint"]);
+ }
+
+ set onbeforeprint(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onbeforeprint' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onbeforeprint' property on 'HTMLFrameSetElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onbeforeprint"] = V;
+ }
+
+ get onbeforeunload() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onbeforeunload' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onbeforeunload"]);
+ }
+
+ set onbeforeunload(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onbeforeunload' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = OnBeforeUnloadEventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onbeforeunload' property on 'HTMLFrameSetElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onbeforeunload"] = V;
+ }
+
+ get onhashchange() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onhashchange' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onhashchange"]);
+ }
+
+ set onhashchange(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onhashchange' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onhashchange' property on 'HTMLFrameSetElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onhashchange"] = V;
+ }
+
+ get onlanguagechange() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onlanguagechange' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onlanguagechange"]);
+ }
+
+ set onlanguagechange(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onlanguagechange' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onlanguagechange' property on 'HTMLFrameSetElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onlanguagechange"] = V;
+ }
+
+ get onmessage() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onmessage' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onmessage"]);
+ }
+
+ set onmessage(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onmessage' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onmessage' property on 'HTMLFrameSetElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onmessage"] = V;
+ }
+
+ get onmessageerror() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onmessageerror' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onmessageerror"]);
+ }
+
+ set onmessageerror(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onmessageerror' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onmessageerror' property on 'HTMLFrameSetElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onmessageerror"] = V;
+ }
+
+ get onoffline() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onoffline' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onoffline"]);
+ }
+
+ set onoffline(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onoffline' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onoffline' property on 'HTMLFrameSetElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onoffline"] = V;
+ }
+
+ get ononline() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ononline' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ononline"]);
+ }
+
+ set ononline(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ononline' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'ononline' property on 'HTMLFrameSetElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["ononline"] = V;
+ }
+
+ get onpagehide() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpagehide' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpagehide"]);
+ }
+
+ set onpagehide(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpagehide' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpagehide' property on 'HTMLFrameSetElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpagehide"] = V;
+ }
+
+ get onpageshow() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpageshow' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpageshow"]);
+ }
+
+ set onpageshow(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpageshow' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpageshow' property on 'HTMLFrameSetElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpageshow"] = V;
+ }
+
+ get onpopstate() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onpopstate' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onpopstate"]);
+ }
+
+ set onpopstate(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onpopstate' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onpopstate' property on 'HTMLFrameSetElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onpopstate"] = V;
+ }
+
+ get onrejectionhandled() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onrejectionhandled' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onrejectionhandled"]);
+ }
+
+ set onrejectionhandled(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onrejectionhandled' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onrejectionhandled' property on 'HTMLFrameSetElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onrejectionhandled"] = V;
+ }
+
+ get onstorage() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onstorage' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onstorage"]);
+ }
+
+ set onstorage(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onstorage' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onstorage' property on 'HTMLFrameSetElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onstorage"] = V;
+ }
+
+ get onunhandledrejection() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onunhandledrejection' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onunhandledrejection"]);
+ }
+
+ set onunhandledrejection(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onunhandledrejection' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onunhandledrejection' property on 'HTMLFrameSetElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onunhandledrejection"] = V;
+ }
+
+ get onunload() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get onunload' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["onunload"]);
+ }
+
+ set onunload(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set onunload' called on an object that is not a valid instance of HTMLFrameSetElement."
+ );
+ }
+
+ if (!utils.isObject(V)) {
+ V = null;
+ } else {
+ V = EventHandlerNonNull.convert(globalObject, V, {
+ context: "Failed to set the 'onunload' property on 'HTMLFrameSetElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["onunload"] = V;
+ }
+ }
+ Object.defineProperties(HTMLFrameSetElement.prototype, {
+ cols: { enumerable: true },
+ rows: { enumerable: true },
+ onafterprint: { enumerable: true },
+ onbeforeprint: { enumerable: true },
+ onbeforeunload: { enumerable: true },
+ onhashchange: { enumerable: true },
+ onlanguagechange: { enumerable: true },
+ onmessage: { enumerable: true },
+ onmessageerror: { enumerable: true },
+ onoffline: { enumerable: true },
+ ononline: { enumerable: true },
+ onpagehide: { enumerable: true },
+ onpageshow: { enumerable: true },
+ onpopstate: { enumerable: true },
+ onrejectionhandled: { enumerable: true },
+ onstorage: { enumerable: true },
+ onunhandledrejection: { enumerable: true },
+ onunload: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLFrameSetElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLFrameSetElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLFrameSetElement
+ });
+};
+
+const Impl = require("../nodes/HTMLFrameSetElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLHRElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLHRElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..311493e50021ebac5fb3366e56d3126b0fa1bee4
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLHRElement.js
@@ -0,0 +1,320 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLHRElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLHRElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLHRElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLHRElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get align() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get align' called on an object that is not a valid instance of HTMLHRElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("align");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set align(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set align' called on an object that is not a valid instance of HTMLHRElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'align' property on 'HTMLHRElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get color() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get color' called on an object that is not a valid instance of HTMLHRElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("color");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set color(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set color' called on an object that is not a valid instance of HTMLHRElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'color' property on 'HTMLHRElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("color", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get noShade() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get noShade' called on an object that is not a valid instance of HTMLHRElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("noshade") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set noShade(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set noShade' called on an object that is not a valid instance of HTMLHRElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'noShade' property on 'HTMLHRElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("noshade", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("noshade");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get size() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get size' called on an object that is not a valid instance of HTMLHRElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("size");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set size(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set size' called on an object that is not a valid instance of HTMLHRElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'size' property on 'HTMLHRElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("size", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get width() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get width' called on an object that is not a valid instance of HTMLHRElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("width");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set width(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set width' called on an object that is not a valid instance of HTMLHRElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'width' property on 'HTMLHRElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("width", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLHRElement.prototype, {
+ align: { enumerable: true },
+ color: { enumerable: true },
+ noShade: { enumerable: true },
+ size: { enumerable: true },
+ width: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLHRElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLHRElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLHRElement
+ });
+};
+
+const Impl = require("../nodes/HTMLHRElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..f338881ccdc3ff00736408383b60f2380b1a38fa
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadElement.js
@@ -0,0 +1,110 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLHeadElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLHeadElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLHeadElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLHeadElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+ }
+ Object.defineProperties(HTMLHeadElement.prototype, {
+ [Symbol.toStringTag]: { value: "HTMLHeadElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLHeadElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLHeadElement
+ });
+};
+
+const Impl = require("../nodes/HTMLHeadElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadingElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadingElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..8efee4afed7a111ec2a184cae3fe10d58b86fdad
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadingElement.js
@@ -0,0 +1,153 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLHeadingElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLHeadingElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLHeadingElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLHeadingElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get align() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get align' called on an object that is not a valid instance of HTMLHeadingElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("align");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set align(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set align' called on an object that is not a valid instance of HTMLHeadingElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'align' property on 'HTMLHeadingElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLHeadingElement.prototype, {
+ align: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLHeadingElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLHeadingElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLHeadingElement
+ });
+};
+
+const Impl = require("../nodes/HTMLHeadingElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLHtmlElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLHtmlElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..c1f0c873b810509b37869800ecec36b5c1b55ffd
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLHtmlElement.js
@@ -0,0 +1,153 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLHtmlElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLHtmlElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLHtmlElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLHtmlElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get version() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get version' called on an object that is not a valid instance of HTMLHtmlElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("version");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set version(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set version' called on an object that is not a valid instance of HTMLHtmlElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'version' property on 'HTMLHtmlElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("version", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLHtmlElement.prototype, {
+ version: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLHtmlElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLHtmlElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLHtmlElement
+ });
+};
+
+const Impl = require("../nodes/HTMLHtmlElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLIFrameElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLIFrameElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..5190283d097fa7aa2878d7dafa47d3cffe621956
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLIFrameElement.js
@@ -0,0 +1,686 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const serializeURLwhatwg_url = require("whatwg-url").serializeURL;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLIFrameElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLIFrameElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLIFrameElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLIFrameElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ getSVGDocument() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'getSVGDocument' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol].getSVGDocument());
+ }
+
+ get src() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get src' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const impl = esValue[implSymbol];
+ const value = impl._reflectGetTheContentAttribute("src");
+ if (value === null) {
+ return "";
+ }
+
+ const document = impl._ownerDocument;
+ if (this._srcURLCacheKey === value && this._baseURLCache === document._baseURLCache) {
+ return this._srcURLCache;
+ }
+
+ this._srcURLCacheKey = value;
+ this._baseURLCache = document._baseURLCache;
+
+ const urlRecord = document.encodingParseAURL(value);
+ if (urlRecord !== null) {
+ this._srcURLCache = serializeURLwhatwg_url(urlRecord);
+ return this._srcURLCache;
+ }
+ this._srcURLCache = conversions.USVString(value);
+ return this._srcURLCache;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set src(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set src' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'src' property on 'HTMLIFrameElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("src", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get srcdoc() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get srcdoc' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("srcdoc");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set srcdoc(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set srcdoc' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'srcdoc' property on 'HTMLIFrameElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("srcdoc", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get name() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get name' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("name");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set name(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set name' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'name' property on 'HTMLIFrameElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get allowFullscreen() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get allowFullscreen' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("allowfullscreen") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set allowFullscreen(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set allowFullscreen' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'allowFullscreen' property on 'HTMLIFrameElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("allowfullscreen", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("allowfullscreen");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get width() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get width' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("width");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set width(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set width' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'width' property on 'HTMLIFrameElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("width", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get height() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get height' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("height");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set height(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set height' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'height' property on 'HTMLIFrameElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("height", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get contentDocument() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get contentDocument' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["contentDocument"]);
+ }
+
+ get contentWindow() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get contentWindow' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["contentWindow"]);
+ }
+
+ get align() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get align' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("align");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set align(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set align' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'align' property on 'HTMLIFrameElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get scrolling() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get scrolling' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("scrolling");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set scrolling(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set scrolling' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'scrolling' property on 'HTMLIFrameElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("scrolling", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get frameBorder() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get frameBorder' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("frameborder");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set frameBorder(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set frameBorder' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'frameBorder' property on 'HTMLIFrameElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("frameborder", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get longDesc() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get longDesc' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const impl = esValue[implSymbol];
+ const value = impl._reflectGetTheContentAttribute("longdesc");
+ if (value === null) {
+ return "";
+ }
+
+ const document = impl._ownerDocument;
+ if (this._longdescURLCacheKey === value && this._baseURLCache === document._baseURLCache) {
+ return this._longdescURLCache;
+ }
+
+ this._longdescURLCacheKey = value;
+ this._baseURLCache = document._baseURLCache;
+
+ const urlRecord = document.encodingParseAURL(value);
+ if (urlRecord !== null) {
+ this._longdescURLCache = serializeURLwhatwg_url(urlRecord);
+ return this._longdescURLCache;
+ }
+ this._longdescURLCache = conversions.USVString(value);
+ return this._longdescURLCache;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set longDesc(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set longDesc' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'longDesc' property on 'HTMLIFrameElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("longdesc", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get marginHeight() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get marginHeight' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("marginheight");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set marginHeight(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set marginHeight' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'marginHeight' property on 'HTMLIFrameElement': The provided value",
+ globals: globalObject,
+ treatNullAsEmptyString: true
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("marginheight", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get marginWidth() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get marginWidth' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("marginwidth");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set marginWidth(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set marginWidth' called on an object that is not a valid instance of HTMLIFrameElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'marginWidth' property on 'HTMLIFrameElement': The provided value",
+ globals: globalObject,
+ treatNullAsEmptyString: true
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("marginwidth", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLIFrameElement.prototype, {
+ getSVGDocument: { enumerable: true },
+ src: { enumerable: true },
+ srcdoc: { enumerable: true },
+ name: { enumerable: true },
+ allowFullscreen: { enumerable: true },
+ width: { enumerable: true },
+ height: { enumerable: true },
+ contentDocument: { enumerable: true },
+ contentWindow: { enumerable: true },
+ align: { enumerable: true },
+ scrolling: { enumerable: true },
+ frameBorder: { enumerable: true },
+ longDesc: { enumerable: true },
+ marginHeight: { enumerable: true },
+ marginWidth: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLIFrameElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLIFrameElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLIFrameElement
+ });
+};
+
+const Impl = require("../nodes/HTMLIFrameElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLImageElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLImageElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..e607cfd2fb6f414b525bf48b0bfbdef6cfb296a4
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLImageElement.js
@@ -0,0 +1,902 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const serializeURLwhatwg_url = require("whatwg-url").serializeURL;
+const parseNonNegativeInteger_helpers_strings = require("../helpers/strings.js").parseNonNegativeInteger;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLImageElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLImageElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLImageElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLImageElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get alt() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get alt' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("alt");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set alt(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set alt' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'alt' property on 'HTMLImageElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("alt", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get src() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get src' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const impl = esValue[implSymbol];
+ const value = impl._reflectGetTheContentAttribute("src");
+ if (value === null) {
+ return "";
+ }
+
+ const document = impl._ownerDocument;
+ if (this._srcURLCacheKey === value && this._baseURLCache === document._baseURLCache) {
+ return this._srcURLCache;
+ }
+
+ this._srcURLCacheKey = value;
+ this._baseURLCache = document._baseURLCache;
+
+ const urlRecord = document.encodingParseAURL(value);
+ if (urlRecord !== null) {
+ this._srcURLCache = serializeURLwhatwg_url(urlRecord);
+ return this._srcURLCache;
+ }
+ this._srcURLCache = conversions.USVString(value);
+ return this._srcURLCache;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set src(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set src' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'src' property on 'HTMLImageElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("src", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get srcset() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get srcset' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("srcset");
+ return value === null ? "" : conversions.USVString(value);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set srcset(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set srcset' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'srcset' property on 'HTMLImageElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("srcset", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get sizes() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get sizes' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("sizes");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set sizes(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set sizes' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'sizes' property on 'HTMLImageElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("sizes", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get crossOrigin() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get crossOrigin' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("crossorigin");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set crossOrigin(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set crossOrigin' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'crossOrigin' property on 'HTMLImageElement': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("crossorigin");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("crossorigin", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get useMap() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get useMap' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("usemap");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set useMap(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set useMap' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'useMap' property on 'HTMLImageElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("usemap", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get isMap() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get isMap' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("ismap") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set isMap(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set isMap' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'isMap' property on 'HTMLImageElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("ismap", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("ismap");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get width() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get width' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["width"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set width(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set width' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'width' property on 'HTMLImageElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["width"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get height() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get height' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["height"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set height(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set height' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'height' property on 'HTMLImageElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["height"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get naturalWidth() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get naturalWidth' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ return esValue[implSymbol]["naturalWidth"];
+ }
+
+ get naturalHeight() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get naturalHeight' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ return esValue[implSymbol]["naturalHeight"];
+ }
+
+ get complete() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get complete' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ return esValue[implSymbol]["complete"];
+ }
+
+ get currentSrc() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get currentSrc' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ return esValue[implSymbol]["currentSrc"];
+ }
+
+ get name() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get name' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("name");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set name(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set name' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'name' property on 'HTMLImageElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get lowsrc() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get lowsrc' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const impl = esValue[implSymbol];
+ const value = impl._reflectGetTheContentAttribute("lowsrc");
+ if (value === null) {
+ return "";
+ }
+
+ const document = impl._ownerDocument;
+ if (this._lowsrcURLCacheKey === value && this._baseURLCache === document._baseURLCache) {
+ return this._lowsrcURLCache;
+ }
+
+ this._lowsrcURLCacheKey = value;
+ this._baseURLCache = document._baseURLCache;
+
+ const urlRecord = document.encodingParseAURL(value);
+ if (urlRecord !== null) {
+ this._lowsrcURLCache = serializeURLwhatwg_url(urlRecord);
+ return this._lowsrcURLCache;
+ }
+ this._lowsrcURLCache = conversions.USVString(value);
+ return this._lowsrcURLCache;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set lowsrc(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set lowsrc' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'lowsrc' property on 'HTMLImageElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("lowsrc", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get align() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get align' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("align");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set align(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set align' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'align' property on 'HTMLImageElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get hspace() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get hspace' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("hspace");
+ if (value !== null) {
+ value = parseNonNegativeInteger_helpers_strings(value);
+ if (value !== null && value >= 0 && value <= 2147483647) {
+ return value;
+ }
+ }
+ return 0;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set hspace(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set hspace' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'hspace' property on 'HTMLImageElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const newValue = V <= 2147483647 && V >= 0 ? V : 0;
+ esValue[implSymbol]._reflectSetTheContentAttribute("hspace", String(newValue));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get vspace() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get vspace' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("vspace");
+ if (value !== null) {
+ value = parseNonNegativeInteger_helpers_strings(value);
+ if (value !== null && value >= 0 && value <= 2147483647) {
+ return value;
+ }
+ }
+ return 0;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set vspace(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set vspace' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'vspace' property on 'HTMLImageElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const newValue = V <= 2147483647 && V >= 0 ? V : 0;
+ esValue[implSymbol]._reflectSetTheContentAttribute("vspace", String(newValue));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get longDesc() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get longDesc' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const impl = esValue[implSymbol];
+ const value = impl._reflectGetTheContentAttribute("longdesc");
+ if (value === null) {
+ return "";
+ }
+
+ const document = impl._ownerDocument;
+ if (this._longdescURLCacheKey === value && this._baseURLCache === document._baseURLCache) {
+ return this._longdescURLCache;
+ }
+
+ this._longdescURLCacheKey = value;
+ this._baseURLCache = document._baseURLCache;
+
+ const urlRecord = document.encodingParseAURL(value);
+ if (urlRecord !== null) {
+ this._longdescURLCache = serializeURLwhatwg_url(urlRecord);
+ return this._longdescURLCache;
+ }
+ this._longdescURLCache = conversions.USVString(value);
+ return this._longdescURLCache;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set longDesc(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set longDesc' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'longDesc' property on 'HTMLImageElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("longdesc", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get border() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get border' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("border");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set border(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set border' called on an object that is not a valid instance of HTMLImageElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'border' property on 'HTMLImageElement': The provided value",
+ globals: globalObject,
+ treatNullAsEmptyString: true
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("border", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLImageElement.prototype, {
+ alt: { enumerable: true },
+ src: { enumerable: true },
+ srcset: { enumerable: true },
+ sizes: { enumerable: true },
+ crossOrigin: { enumerable: true },
+ useMap: { enumerable: true },
+ isMap: { enumerable: true },
+ width: { enumerable: true },
+ height: { enumerable: true },
+ naturalWidth: { enumerable: true },
+ naturalHeight: { enumerable: true },
+ complete: { enumerable: true },
+ currentSrc: { enumerable: true },
+ name: { enumerable: true },
+ lowsrc: { enumerable: true },
+ align: { enumerable: true },
+ hspace: { enumerable: true },
+ vspace: { enumerable: true },
+ longDesc: { enumerable: true },
+ border: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLImageElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLImageElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLImageElement
+ });
+};
+
+const Impl = require("../nodes/HTMLImageElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLInputElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLInputElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..5abc198a438a229bb180e1868ee62781d322e657
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLInputElement.js
@@ -0,0 +1,1927 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const SelectionMode = require("./SelectionMode.js");
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const FileList = require("./FileList.js");
+const parseNonNegativeInteger_helpers_strings = require("../helpers/strings.js").parseNonNegativeInteger;
+const create_DOMException = require("./DOMException.js").create;
+const serializeURLwhatwg_url = require("whatwg-url").serializeURL;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLInputElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLInputElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLInputElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLInputElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ stepUp() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'stepUp' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg !== undefined) {
+ curArg = conversions["long"](curArg, {
+ context: "Failed to execute 'stepUp' on 'HTMLInputElement': parameter 1",
+ globals: globalObject
+ });
+ } else {
+ curArg = 1;
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].stepUp(...args);
+ }
+
+ stepDown() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'stepDown' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg !== undefined) {
+ curArg = conversions["long"](curArg, {
+ context: "Failed to execute 'stepDown' on 'HTMLInputElement': parameter 1",
+ globals: globalObject
+ });
+ } else {
+ curArg = 1;
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].stepDown(...args);
+ }
+
+ checkValidity() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'checkValidity' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ return esValue[implSymbol].checkValidity();
+ }
+
+ reportValidity() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'reportValidity' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ return esValue[implSymbol].reportValidity();
+ }
+
+ setCustomValidity(error) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'setCustomValidity' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'setCustomValidity' on 'HTMLInputElement': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'setCustomValidity' on 'HTMLInputElement': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].setCustomValidity(...args);
+ }
+
+ select() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'select' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ return esValue[implSymbol].select();
+ }
+
+ setRangeText(replacement) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'setRangeText' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'setRangeText' on 'HTMLInputElement': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ switch (arguments.length) {
+ case 1:
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'setRangeText' on 'HTMLInputElement': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ break;
+ case 2:
+ throw new globalObject.TypeError(
+ `Failed to execute 'setRangeText' on 'HTMLInputElement': only ${arguments.length} arguments present.`
+ );
+ break;
+ case 3:
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'setRangeText' on 'HTMLInputElement': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'setRangeText' on 'HTMLInputElement': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'setRangeText' on 'HTMLInputElement': parameter 3",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ break;
+ default:
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'setRangeText' on 'HTMLInputElement': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'setRangeText' on 'HTMLInputElement': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'setRangeText' on 'HTMLInputElement': parameter 3",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[3];
+ if (curArg !== undefined) {
+ curArg = SelectionMode.convert(globalObject, curArg, {
+ context: "Failed to execute 'setRangeText' on 'HTMLInputElement': parameter 4"
+ });
+ } else {
+ curArg = "preserve";
+ }
+ args.push(curArg);
+ }
+ }
+ return esValue[implSymbol].setRangeText(...args);
+ }
+
+ setSelectionRange(start, end) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'setSelectionRange' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'setSelectionRange' on 'HTMLInputElement': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'setSelectionRange' on 'HTMLInputElement': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'setSelectionRange' on 'HTMLInputElement': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ if (curArg !== undefined) {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'setSelectionRange' on 'HTMLInputElement': parameter 3",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].setSelectionRange(...args);
+ }
+
+ get accept() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get accept' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("accept");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set accept(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set accept' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'accept' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("accept", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get alt() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get alt' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("alt");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set alt(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set alt' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'alt' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("alt", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get autocomplete() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get autocomplete' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("autocomplete");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set autocomplete(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set autocomplete' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'autocomplete' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("autocomplete", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get autofocus() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get autofocus' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("autofocus") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set autofocus(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set autofocus' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'autofocus' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("autofocus", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("autofocus");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get defaultChecked() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get defaultChecked' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("checked") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set defaultChecked(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set defaultChecked' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'defaultChecked' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("checked", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("checked");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get checked() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get checked' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ return esValue[implSymbol]["checked"];
+ }
+
+ set checked(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set checked' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'checked' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["checked"] = V;
+ }
+
+ get dirName() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get dirName' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("dirname");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set dirName(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set dirName' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'dirName' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("dirname", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get disabled() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get disabled' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("disabled") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set disabled(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set disabled' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'disabled' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("disabled", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("disabled");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get form() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get form' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["form"]);
+ }
+
+ get files() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get files' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["files"]);
+ }
+
+ set files(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set files' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = FileList.convert(globalObject, V, {
+ context: "Failed to set the 'files' property on 'HTMLInputElement': The provided value"
+ });
+ }
+ esValue[implSymbol]["files"] = V;
+ }
+
+ get formNoValidate() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get formNoValidate' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("formnovalidate") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set formNoValidate(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set formNoValidate' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'formNoValidate' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("formnovalidate", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("formnovalidate");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get formTarget() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get formTarget' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("formtarget");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set formTarget(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set formTarget' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'formTarget' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("formtarget", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get indeterminate() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get indeterminate' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ return esValue[implSymbol]["indeterminate"];
+ }
+
+ set indeterminate(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set indeterminate' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'indeterminate' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["indeterminate"] = V;
+ }
+
+ get inputMode() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get inputMode' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("inputmode");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set inputMode(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set inputMode' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'inputMode' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("inputmode", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get list() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get list' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["list"]);
+ }
+
+ get max() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get max' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("max");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set max(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set max' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'max' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("max", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get maxLength() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get maxLength' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("maxlength");
+ if (value !== null) {
+ value = parseNonNegativeInteger_helpers_strings(value);
+ if (value !== null && conversions.long(value) === value) {
+ return value;
+ }
+ }
+ return -1;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set maxLength(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set maxLength' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["long"](V, {
+ context: "Failed to set the 'maxLength' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V < 0) {
+ throw create_DOMException(globalObject, [
+ `The negative value ${V} cannot be set for the maxLength property.`,
+ "IndexSizeError"
+ ]);
+ }
+
+ esValue[implSymbol]._reflectSetTheContentAttribute("maxlength", String(V));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get min() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get min' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("min");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set min(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set min' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'min' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("min", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get minLength() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get minLength' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("minlength");
+ if (value !== null) {
+ value = parseNonNegativeInteger_helpers_strings(value);
+ if (value !== null && conversions.long(value) === value) {
+ return value;
+ }
+ }
+ return -1;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set minLength(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set minLength' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["long"](V, {
+ context: "Failed to set the 'minLength' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V < 0) {
+ throw create_DOMException(globalObject, [
+ `The negative value ${V} cannot be set for the minLength property.`,
+ "IndexSizeError"
+ ]);
+ }
+
+ esValue[implSymbol]._reflectSetTheContentAttribute("minlength", String(V));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get multiple() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get multiple' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("multiple") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set multiple(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set multiple' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'multiple' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("multiple", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("multiple");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get name() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get name' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("name");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set name(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set name' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'name' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get pattern() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get pattern' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("pattern");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set pattern(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set pattern' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'pattern' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("pattern", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get placeholder() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get placeholder' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("placeholder");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set placeholder(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set placeholder' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'placeholder' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("placeholder", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get readOnly() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get readOnly' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("readonly") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set readOnly(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set readOnly' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'readOnly' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("readonly", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("readonly");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get required() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get required' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("required") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set required(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set required' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'required' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("required", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("required");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get size() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get size' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("size");
+ if (value !== null) {
+ value = parseNonNegativeInteger_helpers_strings(value);
+ if (value !== null && value >= 1 && value <= 2147483647) {
+ return value;
+ }
+ }
+ return 20;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set size(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set size' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'size' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === 0) {
+ throw create_DOMException(globalObject, [
+ `The value ${V} cannot be set for the size property.`,
+ "IndexSizeError"
+ ]);
+ }
+
+ const newValue = V <= 2147483647 && V >= 1 ? V : 20;
+ esValue[implSymbol]._reflectSetTheContentAttribute("size", String(newValue));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get src() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get src' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const impl = esValue[implSymbol];
+ const value = impl._reflectGetTheContentAttribute("src");
+ if (value === null) {
+ return "";
+ }
+
+ const document = impl._ownerDocument;
+ if (this._srcURLCacheKey === value && this._baseURLCache === document._baseURLCache) {
+ return this._srcURLCache;
+ }
+
+ this._srcURLCacheKey = value;
+ this._baseURLCache = document._baseURLCache;
+
+ const urlRecord = document.encodingParseAURL(value);
+ if (urlRecord !== null) {
+ this._srcURLCache = serializeURLwhatwg_url(urlRecord);
+ return this._srcURLCache;
+ }
+ this._srcURLCache = conversions.USVString(value);
+ return this._srcURLCache;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set src(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set src' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'src' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("src", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get step() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get step' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("step");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set step(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set step' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'step' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("step", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get type() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get type' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["type"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set type(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set type' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'type' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["type"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get defaultValue() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get defaultValue' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("value");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set defaultValue(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set defaultValue' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'defaultValue' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("value", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get value() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get value' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["value"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set value(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set value' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'value' property on 'HTMLInputElement': The provided value",
+ globals: globalObject,
+ treatNullAsEmptyString: true
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["value"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get valueAsDate() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get valueAsDate' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ return esValue[implSymbol]["valueAsDate"];
+ }
+
+ set valueAsDate(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set valueAsDate' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["object"](V, {
+ context: "Failed to set the 'valueAsDate' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+ }
+ esValue[implSymbol]["valueAsDate"] = V;
+ }
+
+ get valueAsNumber() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get valueAsNumber' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ return esValue[implSymbol]["valueAsNumber"];
+ }
+
+ set valueAsNumber(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set valueAsNumber' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["unrestricted double"](V, {
+ context: "Failed to set the 'valueAsNumber' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["valueAsNumber"] = V;
+ }
+
+ get willValidate() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get willValidate' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ return esValue[implSymbol]["willValidate"];
+ }
+
+ get validity() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get validity' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["validity"]);
+ }
+
+ get validationMessage() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get validationMessage' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ return esValue[implSymbol]["validationMessage"];
+ }
+
+ get labels() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get labels' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["labels"]);
+ }
+
+ get selectionStart() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get selectionStart' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ return esValue[implSymbol]["selectionStart"];
+ }
+
+ set selectionStart(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set selectionStart' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'selectionStart' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+ }
+ esValue[implSymbol]["selectionStart"] = V;
+ }
+
+ get selectionEnd() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get selectionEnd' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ return esValue[implSymbol]["selectionEnd"];
+ }
+
+ set selectionEnd(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set selectionEnd' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'selectionEnd' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+ }
+ esValue[implSymbol]["selectionEnd"] = V;
+ }
+
+ get selectionDirection() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get selectionDirection' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ return esValue[implSymbol]["selectionDirection"];
+ }
+
+ set selectionDirection(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set selectionDirection' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'selectionDirection' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+ }
+ esValue[implSymbol]["selectionDirection"] = V;
+ }
+
+ get align() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get align' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("align");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set align(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set align' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'align' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get useMap() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get useMap' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("usemap");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set useMap(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set useMap' called on an object that is not a valid instance of HTMLInputElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'useMap' property on 'HTMLInputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("usemap", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLInputElement.prototype, {
+ stepUp: { enumerable: true },
+ stepDown: { enumerable: true },
+ checkValidity: { enumerable: true },
+ reportValidity: { enumerable: true },
+ setCustomValidity: { enumerable: true },
+ select: { enumerable: true },
+ setRangeText: { enumerable: true },
+ setSelectionRange: { enumerable: true },
+ accept: { enumerable: true },
+ alt: { enumerable: true },
+ autocomplete: { enumerable: true },
+ autofocus: { enumerable: true },
+ defaultChecked: { enumerable: true },
+ checked: { enumerable: true },
+ dirName: { enumerable: true },
+ disabled: { enumerable: true },
+ form: { enumerable: true },
+ files: { enumerable: true },
+ formNoValidate: { enumerable: true },
+ formTarget: { enumerable: true },
+ indeterminate: { enumerable: true },
+ inputMode: { enumerable: true },
+ list: { enumerable: true },
+ max: { enumerable: true },
+ maxLength: { enumerable: true },
+ min: { enumerable: true },
+ minLength: { enumerable: true },
+ multiple: { enumerable: true },
+ name: { enumerable: true },
+ pattern: { enumerable: true },
+ placeholder: { enumerable: true },
+ readOnly: { enumerable: true },
+ required: { enumerable: true },
+ size: { enumerable: true },
+ src: { enumerable: true },
+ step: { enumerable: true },
+ type: { enumerable: true },
+ defaultValue: { enumerable: true },
+ value: { enumerable: true },
+ valueAsDate: { enumerable: true },
+ valueAsNumber: { enumerable: true },
+ willValidate: { enumerable: true },
+ validity: { enumerable: true },
+ validationMessage: { enumerable: true },
+ labels: { enumerable: true },
+ selectionStart: { enumerable: true },
+ selectionEnd: { enumerable: true },
+ selectionDirection: { enumerable: true },
+ align: { enumerable: true },
+ useMap: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLInputElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLInputElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLInputElement
+ });
+};
+
+const Impl = require("../nodes/HTMLInputElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLLIElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLLIElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..4e572b79bc9c6fc241e545c5a007cda48f49a01f
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLLIElement.js
@@ -0,0 +1,201 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const parseInteger_helpers_strings = require("../helpers/strings.js").parseInteger;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLLIElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLLIElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLLIElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLLIElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get value() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get value' called on an object that is not a valid instance of HTMLLIElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("value");
+ if (value !== null) {
+ value = parseInteger_helpers_strings(value);
+ if (value !== null && conversions.long(value) === value) {
+ return value;
+ }
+ }
+ return 0;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set value(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set value' called on an object that is not a valid instance of HTMLLIElement."
+ );
+ }
+
+ V = conversions["long"](V, {
+ context: "Failed to set the 'value' property on 'HTMLLIElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("value", String(V));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get type() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get type' called on an object that is not a valid instance of HTMLLIElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("type");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set type(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set type' called on an object that is not a valid instance of HTMLLIElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'type' property on 'HTMLLIElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("type", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLLIElement.prototype, {
+ value: { enumerable: true },
+ type: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLLIElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLLIElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLLIElement
+ });
+};
+
+const Impl = require("../nodes/HTMLLIElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLLabelElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLLabelElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..4f38c5e30071baca52023c6de23eb64bb833e641
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLLabelElement.js
@@ -0,0 +1,179 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLLabelElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLLabelElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLLabelElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLLabelElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get form() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get form' called on an object that is not a valid instance of HTMLLabelElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["form"]);
+ }
+
+ get htmlFor() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get htmlFor' called on an object that is not a valid instance of HTMLLabelElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("for");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set htmlFor(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set htmlFor' called on an object that is not a valid instance of HTMLLabelElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'htmlFor' property on 'HTMLLabelElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("for", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get control() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get control' called on an object that is not a valid instance of HTMLLabelElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["control"]);
+ }
+ }
+ Object.defineProperties(HTMLLabelElement.prototype, {
+ form: { enumerable: true },
+ htmlFor: { enumerable: true },
+ control: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLLabelElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLLabelElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLLabelElement
+ });
+};
+
+const Impl = require("../nodes/HTMLLabelElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLLegendElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLLegendElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..a67e6cc95aae67fa05628e22921ed998fdc9202f
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLLegendElement.js
@@ -0,0 +1,166 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLLegendElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLLegendElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLLegendElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLLegendElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get form() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get form' called on an object that is not a valid instance of HTMLLegendElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["form"]);
+ }
+
+ get align() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get align' called on an object that is not a valid instance of HTMLLegendElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("align");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set align(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set align' called on an object that is not a valid instance of HTMLLegendElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'align' property on 'HTMLLegendElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLLegendElement.prototype, {
+ form: { enumerable: true },
+ align: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLLegendElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLLegendElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLLegendElement
+ });
+};
+
+const Impl = require("../nodes/HTMLLegendElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLLinkElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLLinkElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..85e806e59f9a56c5956847aec731ddc2751ef2f7
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLLinkElement.js
@@ -0,0 +1,552 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const serializeURLwhatwg_url = require("whatwg-url").serializeURL;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLLinkElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLLinkElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLLinkElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLLinkElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get href() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get href' called on an object that is not a valid instance of HTMLLinkElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const impl = esValue[implSymbol];
+ const value = impl._reflectGetTheContentAttribute("href");
+ if (value === null) {
+ return "";
+ }
+
+ const document = impl._ownerDocument;
+ if (this._hrefURLCacheKey === value && this._baseURLCache === document._baseURLCache) {
+ return this._hrefURLCache;
+ }
+
+ this._hrefURLCacheKey = value;
+ this._baseURLCache = document._baseURLCache;
+
+ const urlRecord = document.encodingParseAURL(value);
+ if (urlRecord !== null) {
+ this._hrefURLCache = serializeURLwhatwg_url(urlRecord);
+ return this._hrefURLCache;
+ }
+ this._hrefURLCache = conversions.USVString(value);
+ return this._hrefURLCache;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set href(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set href' called on an object that is not a valid instance of HTMLLinkElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'href' property on 'HTMLLinkElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("href", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get crossOrigin() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get crossOrigin' called on an object that is not a valid instance of HTMLLinkElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("crossorigin");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set crossOrigin(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set crossOrigin' called on an object that is not a valid instance of HTMLLinkElement."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'crossOrigin' property on 'HTMLLinkElement': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("crossorigin");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("crossorigin", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get rel() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get rel' called on an object that is not a valid instance of HTMLLinkElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("rel");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set rel(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set rel' called on an object that is not a valid instance of HTMLLinkElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'rel' property on 'HTMLLinkElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("rel", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get relList() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get relList' called on an object that is not a valid instance of HTMLLinkElement."
+ );
+ }
+
+ return utils.getSameObject(this, "relList", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["relList"]);
+ });
+ }
+
+ set relList(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set relList' called on an object that is not a valid instance of HTMLLinkElement."
+ );
+ }
+
+ const Q = esValue["relList"];
+ if (!utils.isObject(Q)) {
+ throw new globalObject.TypeError("Property 'relList' is not an object");
+ }
+ Reflect.set(Q, "value", V);
+ }
+
+ get media() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get media' called on an object that is not a valid instance of HTMLLinkElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("media");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set media(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set media' called on an object that is not a valid instance of HTMLLinkElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'media' property on 'HTMLLinkElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("media", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get hreflang() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get hreflang' called on an object that is not a valid instance of HTMLLinkElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("hreflang");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set hreflang(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set hreflang' called on an object that is not a valid instance of HTMLLinkElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'hreflang' property on 'HTMLLinkElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("hreflang", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get type() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get type' called on an object that is not a valid instance of HTMLLinkElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("type");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set type(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set type' called on an object that is not a valid instance of HTMLLinkElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'type' property on 'HTMLLinkElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("type", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get charset() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get charset' called on an object that is not a valid instance of HTMLLinkElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("charset");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set charset(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set charset' called on an object that is not a valid instance of HTMLLinkElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'charset' property on 'HTMLLinkElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("charset", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get rev() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get rev' called on an object that is not a valid instance of HTMLLinkElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("rev");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set rev(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set rev' called on an object that is not a valid instance of HTMLLinkElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'rev' property on 'HTMLLinkElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("rev", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get target() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get target' called on an object that is not a valid instance of HTMLLinkElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("target");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set target(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set target' called on an object that is not a valid instance of HTMLLinkElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'target' property on 'HTMLLinkElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("target", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get sheet() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get sheet' called on an object that is not a valid instance of HTMLLinkElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["sheet"]);
+ }
+ }
+ Object.defineProperties(HTMLLinkElement.prototype, {
+ href: { enumerable: true },
+ crossOrigin: { enumerable: true },
+ rel: { enumerable: true },
+ relList: { enumerable: true },
+ media: { enumerable: true },
+ hreflang: { enumerable: true },
+ type: { enumerable: true },
+ charset: { enumerable: true },
+ rev: { enumerable: true },
+ target: { enumerable: true },
+ sheet: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLLinkElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLLinkElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLLinkElement
+ });
+};
+
+const Impl = require("../nodes/HTMLLinkElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLMapElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLMapElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..0c0f02f6bb138c57c25020a500ddd36e44ba830a
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLMapElement.js
@@ -0,0 +1,168 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLMapElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLMapElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLMapElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLMapElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get name() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get name' called on an object that is not a valid instance of HTMLMapElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("name");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set name(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set name' called on an object that is not a valid instance of HTMLMapElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'name' property on 'HTMLMapElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get areas() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get areas' called on an object that is not a valid instance of HTMLMapElement."
+ );
+ }
+
+ return utils.getSameObject(this, "areas", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["areas"]);
+ });
+ }
+ }
+ Object.defineProperties(HTMLMapElement.prototype, {
+ name: { enumerable: true },
+ areas: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLMapElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLMapElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLMapElement
+ });
+};
+
+const Impl = require("../nodes/HTMLMapElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLMarqueeElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLMarqueeElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..1550031508c4ee65b32d9a28f48eebb6bc2ac49a
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLMarqueeElement.js
@@ -0,0 +1,554 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const parseNonNegativeInteger_helpers_strings = require("../helpers/strings.js").parseNonNegativeInteger;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLMarqueeElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLMarqueeElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLMarqueeElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLMarqueeElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get behavior() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get behavior' called on an object that is not a valid instance of HTMLMarqueeElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("behavior");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set behavior(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set behavior' called on an object that is not a valid instance of HTMLMarqueeElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'behavior' property on 'HTMLMarqueeElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("behavior", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get bgColor() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get bgColor' called on an object that is not a valid instance of HTMLMarqueeElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("bgcolor");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set bgColor(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set bgColor' called on an object that is not a valid instance of HTMLMarqueeElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'bgColor' property on 'HTMLMarqueeElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("bgcolor", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get direction() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get direction' called on an object that is not a valid instance of HTMLMarqueeElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("direction");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set direction(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set direction' called on an object that is not a valid instance of HTMLMarqueeElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'direction' property on 'HTMLMarqueeElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("direction", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get height() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get height' called on an object that is not a valid instance of HTMLMarqueeElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("height");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set height(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set height' called on an object that is not a valid instance of HTMLMarqueeElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'height' property on 'HTMLMarqueeElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("height", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get hspace() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get hspace' called on an object that is not a valid instance of HTMLMarqueeElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("hspace");
+ if (value !== null) {
+ value = parseNonNegativeInteger_helpers_strings(value);
+ if (value !== null && value >= 0 && value <= 2147483647) {
+ return value;
+ }
+ }
+ return 0;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set hspace(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set hspace' called on an object that is not a valid instance of HTMLMarqueeElement."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'hspace' property on 'HTMLMarqueeElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const newValue = V <= 2147483647 && V >= 0 ? V : 0;
+ esValue[implSymbol]._reflectSetTheContentAttribute("hspace", String(newValue));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get scrollAmount() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get scrollAmount' called on an object that is not a valid instance of HTMLMarqueeElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("scrollamount");
+ if (value !== null) {
+ value = parseNonNegativeInteger_helpers_strings(value);
+ if (value !== null && value >= 0 && value <= 2147483647) {
+ return value;
+ }
+ }
+ return 0;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set scrollAmount(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set scrollAmount' called on an object that is not a valid instance of HTMLMarqueeElement."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'scrollAmount' property on 'HTMLMarqueeElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const newValue = V <= 2147483647 && V >= 0 ? V : 0;
+ esValue[implSymbol]._reflectSetTheContentAttribute("scrollamount", String(newValue));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get scrollDelay() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get scrollDelay' called on an object that is not a valid instance of HTMLMarqueeElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("scrolldelay");
+ if (value !== null) {
+ value = parseNonNegativeInteger_helpers_strings(value);
+ if (value !== null && value >= 0 && value <= 2147483647) {
+ return value;
+ }
+ }
+ return 0;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set scrollDelay(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set scrollDelay' called on an object that is not a valid instance of HTMLMarqueeElement."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'scrollDelay' property on 'HTMLMarqueeElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const newValue = V <= 2147483647 && V >= 0 ? V : 0;
+ esValue[implSymbol]._reflectSetTheContentAttribute("scrolldelay", String(newValue));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get trueSpeed() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get trueSpeed' called on an object that is not a valid instance of HTMLMarqueeElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("truespeed") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set trueSpeed(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set trueSpeed' called on an object that is not a valid instance of HTMLMarqueeElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'trueSpeed' property on 'HTMLMarqueeElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("truespeed", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("truespeed");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get vspace() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get vspace' called on an object that is not a valid instance of HTMLMarqueeElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("vspace");
+ if (value !== null) {
+ value = parseNonNegativeInteger_helpers_strings(value);
+ if (value !== null && value >= 0 && value <= 2147483647) {
+ return value;
+ }
+ }
+ return 0;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set vspace(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set vspace' called on an object that is not a valid instance of HTMLMarqueeElement."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'vspace' property on 'HTMLMarqueeElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const newValue = V <= 2147483647 && V >= 0 ? V : 0;
+ esValue[implSymbol]._reflectSetTheContentAttribute("vspace", String(newValue));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get width() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get width' called on an object that is not a valid instance of HTMLMarqueeElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("width");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set width(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set width' called on an object that is not a valid instance of HTMLMarqueeElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'width' property on 'HTMLMarqueeElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("width", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLMarqueeElement.prototype, {
+ behavior: { enumerable: true },
+ bgColor: { enumerable: true },
+ direction: { enumerable: true },
+ height: { enumerable: true },
+ hspace: { enumerable: true },
+ scrollAmount: { enumerable: true },
+ scrollDelay: { enumerable: true },
+ trueSpeed: { enumerable: true },
+ vspace: { enumerable: true },
+ width: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLMarqueeElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLMarqueeElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLMarqueeElement
+ });
+};
+
+const Impl = require("../nodes/HTMLMarqueeElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLMediaElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLMediaElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..894a70fe5d1959d4a49c32615e8497835adcbff6
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLMediaElement.js
@@ -0,0 +1,898 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const TextTrackKind = require("./TextTrackKind.js");
+const serializeURLwhatwg_url = require("whatwg-url").serializeURL;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLMediaElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLMediaElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLMediaElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLMediaElement extends globalObject.HTMLElement {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ load() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'load' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ return esValue[implSymbol].load();
+ }
+
+ canPlayType(type) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'canPlayType' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'canPlayType' on 'HTMLMediaElement': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'canPlayType' on 'HTMLMediaElement': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].canPlayType(...args));
+ }
+
+ play() {
+ try {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'play' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol].play());
+ } catch (e) {
+ return globalObject.Promise.reject(e);
+ }
+ }
+
+ pause() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'pause' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ return esValue[implSymbol].pause();
+ }
+
+ addTextTrack(kind) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'addTextTrack' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'addTextTrack' on 'HTMLMediaElement': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = TextTrackKind.convert(globalObject, curArg, {
+ context: "Failed to execute 'addTextTrack' on 'HTMLMediaElement': parameter 1"
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg !== undefined) {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'addTextTrack' on 'HTMLMediaElement': parameter 2",
+ globals: globalObject
+ });
+ } else {
+ curArg = "";
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ if (curArg !== undefined) {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'addTextTrack' on 'HTMLMediaElement': parameter 3",
+ globals: globalObject
+ });
+ } else {
+ curArg = "";
+ }
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].addTextTrack(...args));
+ }
+
+ get src() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get src' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const impl = esValue[implSymbol];
+ const value = impl._reflectGetTheContentAttribute("src");
+ if (value === null) {
+ return "";
+ }
+
+ const document = impl._ownerDocument;
+ if (this._srcURLCacheKey === value && this._baseURLCache === document._baseURLCache) {
+ return this._srcURLCache;
+ }
+
+ this._srcURLCacheKey = value;
+ this._baseURLCache = document._baseURLCache;
+
+ const urlRecord = document.encodingParseAURL(value);
+ if (urlRecord !== null) {
+ this._srcURLCache = serializeURLwhatwg_url(urlRecord);
+ return this._srcURLCache;
+ }
+ this._srcURLCache = conversions.USVString(value);
+ return this._srcURLCache;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set src(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set src' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'src' property on 'HTMLMediaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("src", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get currentSrc() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get currentSrc' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ return esValue[implSymbol]["currentSrc"];
+ }
+
+ get crossOrigin() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get crossOrigin' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("crossorigin");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set crossOrigin(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set crossOrigin' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'crossOrigin' property on 'HTMLMediaElement': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("crossorigin");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("crossorigin", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get networkState() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get networkState' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ return esValue[implSymbol]["networkState"];
+ }
+
+ get preload() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get preload' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("preload");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set preload(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set preload' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'preload' property on 'HTMLMediaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("preload", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get buffered() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get buffered' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["buffered"]);
+ }
+
+ get readyState() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get readyState' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ return esValue[implSymbol]["readyState"];
+ }
+
+ get seeking() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get seeking' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ return esValue[implSymbol]["seeking"];
+ }
+
+ get currentTime() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get currentTime' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ return esValue[implSymbol]["currentTime"];
+ }
+
+ set currentTime(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set currentTime' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ V = conversions["double"](V, {
+ context: "Failed to set the 'currentTime' property on 'HTMLMediaElement': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["currentTime"] = V;
+ }
+
+ get duration() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get duration' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ return esValue[implSymbol]["duration"];
+ }
+
+ get paused() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get paused' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ return esValue[implSymbol]["paused"];
+ }
+
+ get defaultPlaybackRate() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get defaultPlaybackRate' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ return esValue[implSymbol]["defaultPlaybackRate"];
+ }
+
+ set defaultPlaybackRate(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set defaultPlaybackRate' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ V = conversions["double"](V, {
+ context: "Failed to set the 'defaultPlaybackRate' property on 'HTMLMediaElement': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["defaultPlaybackRate"] = V;
+ }
+
+ get playbackRate() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get playbackRate' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ return esValue[implSymbol]["playbackRate"];
+ }
+
+ set playbackRate(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set playbackRate' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ V = conversions["double"](V, {
+ context: "Failed to set the 'playbackRate' property on 'HTMLMediaElement': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["playbackRate"] = V;
+ }
+
+ get played() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get played' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["played"]);
+ }
+
+ get seekable() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get seekable' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["seekable"]);
+ }
+
+ get ended() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ended' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ return esValue[implSymbol]["ended"];
+ }
+
+ get autoplay() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get autoplay' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("autoplay") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set autoplay(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set autoplay' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'autoplay' property on 'HTMLMediaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("autoplay", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("autoplay");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get loop() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get loop' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("loop") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set loop(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set loop' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'loop' property on 'HTMLMediaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("loop", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("loop");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get controls() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get controls' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("controls") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set controls(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set controls' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'controls' property on 'HTMLMediaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("controls", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("controls");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get volume() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get volume' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ return esValue[implSymbol]["volume"];
+ }
+
+ set volume(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set volume' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ V = conversions["double"](V, {
+ context: "Failed to set the 'volume' property on 'HTMLMediaElement': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["volume"] = V;
+ }
+
+ get muted() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get muted' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ return esValue[implSymbol]["muted"];
+ }
+
+ set muted(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set muted' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'muted' property on 'HTMLMediaElement': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["muted"] = V;
+ }
+
+ get defaultMuted() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get defaultMuted' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("muted") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set defaultMuted(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set defaultMuted' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'defaultMuted' property on 'HTMLMediaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("muted", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("muted");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get audioTracks() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get audioTracks' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ return utils.getSameObject(this, "audioTracks", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["audioTracks"]);
+ });
+ }
+
+ get videoTracks() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get videoTracks' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ return utils.getSameObject(this, "videoTracks", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["videoTracks"]);
+ });
+ }
+
+ get textTracks() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get textTracks' called on an object that is not a valid instance of HTMLMediaElement."
+ );
+ }
+
+ return utils.getSameObject(this, "textTracks", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["textTracks"]);
+ });
+ }
+ }
+ Object.defineProperties(HTMLMediaElement.prototype, {
+ load: { enumerable: true },
+ canPlayType: { enumerable: true },
+ play: { enumerable: true },
+ pause: { enumerable: true },
+ addTextTrack: { enumerable: true },
+ src: { enumerable: true },
+ currentSrc: { enumerable: true },
+ crossOrigin: { enumerable: true },
+ networkState: { enumerable: true },
+ preload: { enumerable: true },
+ buffered: { enumerable: true },
+ readyState: { enumerable: true },
+ seeking: { enumerable: true },
+ currentTime: { enumerable: true },
+ duration: { enumerable: true },
+ paused: { enumerable: true },
+ defaultPlaybackRate: { enumerable: true },
+ playbackRate: { enumerable: true },
+ played: { enumerable: true },
+ seekable: { enumerable: true },
+ ended: { enumerable: true },
+ autoplay: { enumerable: true },
+ loop: { enumerable: true },
+ controls: { enumerable: true },
+ volume: { enumerable: true },
+ muted: { enumerable: true },
+ defaultMuted: { enumerable: true },
+ audioTracks: { enumerable: true },
+ videoTracks: { enumerable: true },
+ textTracks: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLMediaElement", configurable: true },
+ NETWORK_EMPTY: { value: 0, enumerable: true },
+ NETWORK_IDLE: { value: 1, enumerable: true },
+ NETWORK_LOADING: { value: 2, enumerable: true },
+ NETWORK_NO_SOURCE: { value: 3, enumerable: true },
+ HAVE_NOTHING: { value: 0, enumerable: true },
+ HAVE_METADATA: { value: 1, enumerable: true },
+ HAVE_CURRENT_DATA: { value: 2, enumerable: true },
+ HAVE_FUTURE_DATA: { value: 3, enumerable: true },
+ HAVE_ENOUGH_DATA: { value: 4, enumerable: true }
+ });
+ Object.defineProperties(HTMLMediaElement, {
+ NETWORK_EMPTY: { value: 0, enumerable: true },
+ NETWORK_IDLE: { value: 1, enumerable: true },
+ NETWORK_LOADING: { value: 2, enumerable: true },
+ NETWORK_NO_SOURCE: { value: 3, enumerable: true },
+ HAVE_NOTHING: { value: 0, enumerable: true },
+ HAVE_METADATA: { value: 1, enumerable: true },
+ HAVE_CURRENT_DATA: { value: 2, enumerable: true },
+ HAVE_FUTURE_DATA: { value: 3, enumerable: true },
+ HAVE_ENOUGH_DATA: { value: 4, enumerable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLMediaElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLMediaElement
+ });
+};
+
+const Impl = require("../nodes/HTMLMediaElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLMenuElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLMenuElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..d23cf80520e09854863f2c985ec473849fb9df7e
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLMenuElement.js
@@ -0,0 +1,156 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLMenuElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLMenuElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLMenuElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLMenuElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get compact() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get compact' called on an object that is not a valid instance of HTMLMenuElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("compact") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set compact(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set compact' called on an object that is not a valid instance of HTMLMenuElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'compact' property on 'HTMLMenuElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("compact", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("compact");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLMenuElement.prototype, {
+ compact: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLMenuElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLMenuElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLMenuElement
+ });
+};
+
+const Impl = require("../nodes/HTMLMenuElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLMetaElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLMetaElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..01c6db6aeb0cd357cd740f4957fdfb980d6f1b61
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLMetaElement.js
@@ -0,0 +1,276 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLMetaElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLMetaElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLMetaElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLMetaElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get name() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get name' called on an object that is not a valid instance of HTMLMetaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("name");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set name(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set name' called on an object that is not a valid instance of HTMLMetaElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'name' property on 'HTMLMetaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get httpEquiv() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get httpEquiv' called on an object that is not a valid instance of HTMLMetaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("http-equiv");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set httpEquiv(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set httpEquiv' called on an object that is not a valid instance of HTMLMetaElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'httpEquiv' property on 'HTMLMetaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("http-equiv", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get content() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get content' called on an object that is not a valid instance of HTMLMetaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("content");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set content(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set content' called on an object that is not a valid instance of HTMLMetaElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'content' property on 'HTMLMetaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("content", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get scheme() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get scheme' called on an object that is not a valid instance of HTMLMetaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("scheme");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set scheme(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set scheme' called on an object that is not a valid instance of HTMLMetaElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'scheme' property on 'HTMLMetaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("scheme", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLMetaElement.prototype, {
+ name: { enumerable: true },
+ httpEquiv: { enumerable: true },
+ content: { enumerable: true },
+ scheme: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLMetaElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLMetaElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLMetaElement
+ });
+};
+
+const Impl = require("../nodes/HTMLMetaElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLMeterElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLMeterElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..029fdef6856891aea22db7c9cfccd8a79311a9b6
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLMeterElement.js
@@ -0,0 +1,365 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLMeterElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLMeterElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLMeterElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLMeterElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get value() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get value' called on an object that is not a valid instance of HTMLMeterElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["value"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set value(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set value' called on an object that is not a valid instance of HTMLMeterElement."
+ );
+ }
+
+ V = conversions["double"](V, {
+ context: "Failed to set the 'value' property on 'HTMLMeterElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["value"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get min() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get min' called on an object that is not a valid instance of HTMLMeterElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["min"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set min(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set min' called on an object that is not a valid instance of HTMLMeterElement."
+ );
+ }
+
+ V = conversions["double"](V, {
+ context: "Failed to set the 'min' property on 'HTMLMeterElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["min"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get max() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get max' called on an object that is not a valid instance of HTMLMeterElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["max"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set max(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set max' called on an object that is not a valid instance of HTMLMeterElement."
+ );
+ }
+
+ V = conversions["double"](V, {
+ context: "Failed to set the 'max' property on 'HTMLMeterElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["max"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get low() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get low' called on an object that is not a valid instance of HTMLMeterElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["low"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set low(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set low' called on an object that is not a valid instance of HTMLMeterElement."
+ );
+ }
+
+ V = conversions["double"](V, {
+ context: "Failed to set the 'low' property on 'HTMLMeterElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["low"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get high() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get high' called on an object that is not a valid instance of HTMLMeterElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["high"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set high(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set high' called on an object that is not a valid instance of HTMLMeterElement."
+ );
+ }
+
+ V = conversions["double"](V, {
+ context: "Failed to set the 'high' property on 'HTMLMeterElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["high"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get optimum() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get optimum' called on an object that is not a valid instance of HTMLMeterElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["optimum"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set optimum(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set optimum' called on an object that is not a valid instance of HTMLMeterElement."
+ );
+ }
+
+ V = conversions["double"](V, {
+ context: "Failed to set the 'optimum' property on 'HTMLMeterElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["optimum"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get labels() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get labels' called on an object that is not a valid instance of HTMLMeterElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["labels"]);
+ }
+ }
+ Object.defineProperties(HTMLMeterElement.prototype, {
+ value: { enumerable: true },
+ min: { enumerable: true },
+ max: { enumerable: true },
+ low: { enumerable: true },
+ high: { enumerable: true },
+ optimum: { enumerable: true },
+ labels: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLMeterElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLMeterElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLMeterElement
+ });
+};
+
+const Impl = require("../nodes/HTMLMeterElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLModElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLModElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..94f631888c47a172f5c64457610ee5f3005178ee
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLModElement.js
@@ -0,0 +1,214 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const serializeURLwhatwg_url = require("whatwg-url").serializeURL;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLModElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLModElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLModElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLModElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get cite() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get cite' called on an object that is not a valid instance of HTMLModElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const impl = esValue[implSymbol];
+ const value = impl._reflectGetTheContentAttribute("cite");
+ if (value === null) {
+ return "";
+ }
+
+ const document = impl._ownerDocument;
+ if (this._citeURLCacheKey === value && this._baseURLCache === document._baseURLCache) {
+ return this._citeURLCache;
+ }
+
+ this._citeURLCacheKey = value;
+ this._baseURLCache = document._baseURLCache;
+
+ const urlRecord = document.encodingParseAURL(value);
+ if (urlRecord !== null) {
+ this._citeURLCache = serializeURLwhatwg_url(urlRecord);
+ return this._citeURLCache;
+ }
+ this._citeURLCache = conversions.USVString(value);
+ return this._citeURLCache;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set cite(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set cite' called on an object that is not a valid instance of HTMLModElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'cite' property on 'HTMLModElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("cite", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get dateTime() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get dateTime' called on an object that is not a valid instance of HTMLModElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("datetime");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set dateTime(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set dateTime' called on an object that is not a valid instance of HTMLModElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'dateTime' property on 'HTMLModElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("datetime", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLModElement.prototype, {
+ cite: { enumerable: true },
+ dateTime: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLModElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLModElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLModElement
+ });
+};
+
+const Impl = require("../nodes/HTMLModElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLOListElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLOListElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..00ccf3725e5adb8133014b31cebcd1582d42007b
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLOListElement.js
@@ -0,0 +1,281 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLOListElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLOListElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLOListElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLOListElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get reversed() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get reversed' called on an object that is not a valid instance of HTMLOListElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("reversed") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set reversed(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set reversed' called on an object that is not a valid instance of HTMLOListElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'reversed' property on 'HTMLOListElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("reversed", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("reversed");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get start() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get start' called on an object that is not a valid instance of HTMLOListElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["start"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set start(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set start' called on an object that is not a valid instance of HTMLOListElement."
+ );
+ }
+
+ V = conversions["long"](V, {
+ context: "Failed to set the 'start' property on 'HTMLOListElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["start"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get type() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get type' called on an object that is not a valid instance of HTMLOListElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("type");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set type(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set type' called on an object that is not a valid instance of HTMLOListElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'type' property on 'HTMLOListElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("type", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get compact() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get compact' called on an object that is not a valid instance of HTMLOListElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("compact") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set compact(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set compact' called on an object that is not a valid instance of HTMLOListElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'compact' property on 'HTMLOListElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("compact", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("compact");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLOListElement.prototype, {
+ reversed: { enumerable: true },
+ start: { enumerable: true },
+ type: { enumerable: true },
+ compact: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLOListElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLOListElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLOListElement
+ });
+};
+
+const Impl = require("../nodes/HTMLOListElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLObjectElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLObjectElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..554ca94fa0894af07b23cc0e59ef618be72e915a
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLObjectElement.js
@@ -0,0 +1,941 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const serializeURLwhatwg_url = require("whatwg-url").serializeURL;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const parseNonNegativeInteger_helpers_strings = require("../helpers/strings.js").parseNonNegativeInteger;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLObjectElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLObjectElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLObjectElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLObjectElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ checkValidity() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'checkValidity' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ return esValue[implSymbol].checkValidity();
+ }
+
+ reportValidity() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'reportValidity' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ return esValue[implSymbol].reportValidity();
+ }
+
+ setCustomValidity(error) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'setCustomValidity' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'setCustomValidity' on 'HTMLObjectElement': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'setCustomValidity' on 'HTMLObjectElement': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].setCustomValidity(...args);
+ }
+
+ get data() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get data' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const impl = esValue[implSymbol];
+ const value = impl._reflectGetTheContentAttribute("data");
+ if (value === null) {
+ return "";
+ }
+
+ const document = impl._ownerDocument;
+ if (this._dataURLCacheKey === value && this._baseURLCache === document._baseURLCache) {
+ return this._dataURLCache;
+ }
+
+ this._dataURLCacheKey = value;
+ this._baseURLCache = document._baseURLCache;
+
+ const urlRecord = document.encodingParseAURL(value);
+ if (urlRecord !== null) {
+ this._dataURLCache = serializeURLwhatwg_url(urlRecord);
+ return this._dataURLCache;
+ }
+ this._dataURLCache = conversions.USVString(value);
+ return this._dataURLCache;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set data(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set data' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'data' property on 'HTMLObjectElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("data", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get type() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get type' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("type");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set type(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set type' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'type' property on 'HTMLObjectElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("type", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get name() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get name' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("name");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set name(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set name' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'name' property on 'HTMLObjectElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get useMap() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get useMap' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("usemap");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set useMap(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set useMap' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'useMap' property on 'HTMLObjectElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("usemap", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get form() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get form' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["form"]);
+ }
+
+ get width() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get width' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("width");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set width(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set width' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'width' property on 'HTMLObjectElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("width", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get height() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get height' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("height");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set height(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set height' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'height' property on 'HTMLObjectElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("height", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get contentDocument() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get contentDocument' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["contentDocument"]);
+ }
+
+ get willValidate() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get willValidate' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ return esValue[implSymbol]["willValidate"];
+ }
+
+ get validity() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get validity' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["validity"]);
+ }
+
+ get validationMessage() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get validationMessage' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ return esValue[implSymbol]["validationMessage"];
+ }
+
+ get align() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get align' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("align");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set align(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set align' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'align' property on 'HTMLObjectElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get archive() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get archive' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("archive");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set archive(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set archive' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'archive' property on 'HTMLObjectElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("archive", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get code() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get code' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("code");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set code(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set code' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'code' property on 'HTMLObjectElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("code", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get declare() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get declare' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("declare") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set declare(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set declare' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'declare' property on 'HTMLObjectElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("declare", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("declare");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get hspace() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get hspace' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("hspace");
+ if (value !== null) {
+ value = parseNonNegativeInteger_helpers_strings(value);
+ if (value !== null && value >= 0 && value <= 2147483647) {
+ return value;
+ }
+ }
+ return 0;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set hspace(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set hspace' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'hspace' property on 'HTMLObjectElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const newValue = V <= 2147483647 && V >= 0 ? V : 0;
+ esValue[implSymbol]._reflectSetTheContentAttribute("hspace", String(newValue));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get standby() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get standby' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("standby");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set standby(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set standby' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'standby' property on 'HTMLObjectElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("standby", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get vspace() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get vspace' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("vspace");
+ if (value !== null) {
+ value = parseNonNegativeInteger_helpers_strings(value);
+ if (value !== null && value >= 0 && value <= 2147483647) {
+ return value;
+ }
+ }
+ return 0;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set vspace(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set vspace' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'vspace' property on 'HTMLObjectElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const newValue = V <= 2147483647 && V >= 0 ? V : 0;
+ esValue[implSymbol]._reflectSetTheContentAttribute("vspace", String(newValue));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get codeBase() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get codeBase' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const impl = esValue[implSymbol];
+ const value = impl._reflectGetTheContentAttribute("codebase");
+ if (value === null) {
+ return "";
+ }
+
+ const document = impl._ownerDocument;
+ if (this._codebaseURLCacheKey === value && this._baseURLCache === document._baseURLCache) {
+ return this._codebaseURLCache;
+ }
+
+ this._codebaseURLCacheKey = value;
+ this._baseURLCache = document._baseURLCache;
+
+ const urlRecord = document.encodingParseAURL(value);
+ if (urlRecord !== null) {
+ this._codebaseURLCache = serializeURLwhatwg_url(urlRecord);
+ return this._codebaseURLCache;
+ }
+ this._codebaseURLCache = conversions.USVString(value);
+ return this._codebaseURLCache;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set codeBase(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set codeBase' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'codeBase' property on 'HTMLObjectElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("codebase", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get codeType() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get codeType' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("codetype");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set codeType(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set codeType' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'codeType' property on 'HTMLObjectElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("codetype", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get border() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get border' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("border");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set border(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set border' called on an object that is not a valid instance of HTMLObjectElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'border' property on 'HTMLObjectElement': The provided value",
+ globals: globalObject,
+ treatNullAsEmptyString: true
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("border", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLObjectElement.prototype, {
+ checkValidity: { enumerable: true },
+ reportValidity: { enumerable: true },
+ setCustomValidity: { enumerable: true },
+ data: { enumerable: true },
+ type: { enumerable: true },
+ name: { enumerable: true },
+ useMap: { enumerable: true },
+ form: { enumerable: true },
+ width: { enumerable: true },
+ height: { enumerable: true },
+ contentDocument: { enumerable: true },
+ willValidate: { enumerable: true },
+ validity: { enumerable: true },
+ validationMessage: { enumerable: true },
+ align: { enumerable: true },
+ archive: { enumerable: true },
+ code: { enumerable: true },
+ declare: { enumerable: true },
+ hspace: { enumerable: true },
+ standby: { enumerable: true },
+ vspace: { enumerable: true },
+ codeBase: { enumerable: true },
+ codeType: { enumerable: true },
+ border: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLObjectElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLObjectElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLObjectElement
+ });
+};
+
+const Impl = require("../nodes/HTMLObjectElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptGroupElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptGroupElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..641b5cbc89cf3f238e1a24bc6dd7098717f49c1e
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptGroupElement.js
@@ -0,0 +1,197 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLOptGroupElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLOptGroupElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLOptGroupElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLOptGroupElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get disabled() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get disabled' called on an object that is not a valid instance of HTMLOptGroupElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("disabled") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set disabled(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set disabled' called on an object that is not a valid instance of HTMLOptGroupElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'disabled' property on 'HTMLOptGroupElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("disabled", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("disabled");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get label() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get label' called on an object that is not a valid instance of HTMLOptGroupElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("label");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set label(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set label' called on an object that is not a valid instance of HTMLOptGroupElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'label' property on 'HTMLOptGroupElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("label", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLOptGroupElement.prototype, {
+ disabled: { enumerable: true },
+ label: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLOptGroupElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLOptGroupElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLOptGroupElement
+ });
+};
+
+const Impl = require("../nodes/HTMLOptGroupElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..3309f66dfa8a73b09ebe6ef7f5c51e4b1d2847a3
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionElement.js
@@ -0,0 +1,376 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLOptionElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLOptionElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLOptionElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLOptionElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get disabled() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get disabled' called on an object that is not a valid instance of HTMLOptionElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("disabled") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set disabled(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set disabled' called on an object that is not a valid instance of HTMLOptionElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'disabled' property on 'HTMLOptionElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("disabled", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("disabled");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get form() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get form' called on an object that is not a valid instance of HTMLOptionElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["form"]);
+ }
+
+ get label() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get label' called on an object that is not a valid instance of HTMLOptionElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["label"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set label(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set label' called on an object that is not a valid instance of HTMLOptionElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'label' property on 'HTMLOptionElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["label"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get defaultSelected() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get defaultSelected' called on an object that is not a valid instance of HTMLOptionElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("selected") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set defaultSelected(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set defaultSelected' called on an object that is not a valid instance of HTMLOptionElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'defaultSelected' property on 'HTMLOptionElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("selected", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("selected");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get selected() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get selected' called on an object that is not a valid instance of HTMLOptionElement."
+ );
+ }
+
+ return esValue[implSymbol]["selected"];
+ }
+
+ set selected(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set selected' called on an object that is not a valid instance of HTMLOptionElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'selected' property on 'HTMLOptionElement': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["selected"] = V;
+ }
+
+ get value() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get value' called on an object that is not a valid instance of HTMLOptionElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["value"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set value(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set value' called on an object that is not a valid instance of HTMLOptionElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'value' property on 'HTMLOptionElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["value"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get text() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get text' called on an object that is not a valid instance of HTMLOptionElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["text"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set text(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set text' called on an object that is not a valid instance of HTMLOptionElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'text' property on 'HTMLOptionElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["text"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get index() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get index' called on an object that is not a valid instance of HTMLOptionElement."
+ );
+ }
+
+ return esValue[implSymbol]["index"];
+ }
+ }
+ Object.defineProperties(HTMLOptionElement.prototype, {
+ disabled: { enumerable: true },
+ form: { enumerable: true },
+ label: { enumerable: true },
+ defaultSelected: { enumerable: true },
+ selected: { enumerable: true },
+ value: { enumerable: true },
+ text: { enumerable: true },
+ index: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLOptionElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLOptionElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLOptionElement
+ });
+};
+
+const Impl = require("../nodes/HTMLOptionElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionsCollection.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionsCollection.js
new file mode 100644
index 0000000000000000000000000000000000000000..90ace6d025080558e25a95435752563dc90c6dff
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionsCollection.js
@@ -0,0 +1,511 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLOptionElement = require("./HTMLOptionElement.js");
+const HTMLOptGroupElement = require("./HTMLOptGroupElement.js");
+const HTMLElement = require("./HTMLElement.js");
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLCollection = require("./HTMLCollection.js");
+
+const interfaceName = "HTMLOptionsCollection";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLOptionsCollection'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLOptionsCollection"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+function makeProxy(wrapper, globalObject) {
+ let proxyHandler = proxyHandlerCache.get(globalObject);
+ if (proxyHandler === undefined) {
+ proxyHandler = new ProxyHandler(globalObject);
+ proxyHandlerCache.set(globalObject, proxyHandler);
+ }
+ return new Proxy(wrapper, proxyHandler);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLCollection._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper = makeProxy(wrapper, globalObject);
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ let wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper = makeProxy(wrapper, globalObject);
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLOptionsCollection extends globalObject.HTMLCollection {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ add(element) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'add' called on an object that is not a valid instance of HTMLOptionsCollection."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'add' on 'HTMLOptionsCollection': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (HTMLOptionElement.is(curArg) || HTMLOptGroupElement.is(curArg)) {
+ curArg = utils.implForWrapper(curArg);
+ } else {
+ throw new globalObject.TypeError(
+ "Failed to execute 'add' on 'HTMLOptionsCollection': parameter 1" + " is not of any supported type."
+ );
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg !== undefined) {
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ if (HTMLElement.is(curArg)) {
+ curArg = utils.implForWrapper(curArg);
+ } else if (typeof curArg === "number") {
+ curArg = conversions["long"](curArg, {
+ context: "Failed to execute 'add' on 'HTMLOptionsCollection': parameter 2",
+ globals: globalObject
+ });
+ } else {
+ curArg = conversions["long"](curArg, {
+ context: "Failed to execute 'add' on 'HTMLOptionsCollection': parameter 2",
+ globals: globalObject
+ });
+ }
+ }
+ } else {
+ curArg = null;
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].add(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ remove(index) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'remove' called on an object that is not a valid instance of HTMLOptionsCollection."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'remove' on 'HTMLOptionsCollection': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["long"](curArg, {
+ context: "Failed to execute 'remove' on 'HTMLOptionsCollection': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].remove(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get length() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get length' called on an object that is not a valid instance of HTMLOptionsCollection."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["length"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set length(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set length' called on an object that is not a valid instance of HTMLOptionsCollection."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'length' property on 'HTMLOptionsCollection': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["length"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get selectedIndex() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get selectedIndex' called on an object that is not a valid instance of HTMLOptionsCollection."
+ );
+ }
+
+ return esValue[implSymbol]["selectedIndex"];
+ }
+
+ set selectedIndex(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set selectedIndex' called on an object that is not a valid instance of HTMLOptionsCollection."
+ );
+ }
+
+ V = conversions["long"](V, {
+ context: "Failed to set the 'selectedIndex' property on 'HTMLOptionsCollection': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["selectedIndex"] = V;
+ }
+ }
+ Object.defineProperties(HTMLOptionsCollection.prototype, {
+ add: { enumerable: true },
+ remove: { enumerable: true },
+ length: { enumerable: true },
+ selectedIndex: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLOptionsCollection", configurable: true },
+ [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLOptionsCollection;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLOptionsCollection
+ });
+};
+
+const proxyHandlerCache = new WeakMap();
+class ProxyHandler {
+ constructor(globalObject) {
+ this._globalObject = globalObject;
+ }
+
+ get(target, P, receiver) {
+ if (typeof P === "symbol") {
+ return Reflect.get(target, P, receiver);
+ }
+ const desc = this.getOwnPropertyDescriptor(target, P);
+ if (desc === undefined) {
+ const parent = Object.getPrototypeOf(target);
+ if (parent === null) {
+ return undefined;
+ }
+ return Reflect.get(target, P, receiver);
+ }
+ if (!desc.get && !desc.set) {
+ return desc.value;
+ }
+ const getter = desc.get;
+ if (getter === undefined) {
+ return undefined;
+ }
+ return Reflect.apply(getter, receiver, []);
+ }
+
+ has(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.has(target, P);
+ }
+ const desc = this.getOwnPropertyDescriptor(target, P);
+ if (desc !== undefined) {
+ return true;
+ }
+ const parent = Object.getPrototypeOf(target);
+ if (parent !== null) {
+ return Reflect.has(parent, P);
+ }
+ return false;
+ }
+
+ ownKeys(target) {
+ const keys = new Set();
+
+ for (const key of target[implSymbol][utils.supportedPropertyIndices]) {
+ keys.add(`${key}`);
+ }
+
+ for (const key of target[implSymbol][utils.supportedPropertyNames]) {
+ if (!(key in target)) {
+ keys.add(`${key}`);
+ }
+ }
+
+ for (const key of Reflect.ownKeys(target)) {
+ keys.add(key);
+ }
+ return [...keys];
+ }
+
+ getOwnPropertyDescriptor(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.getOwnPropertyDescriptor(target, P);
+ }
+ let ignoreNamedProps = false;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ const indexedValue = target[implSymbol].item(index);
+ if (indexedValue !== null) {
+ return {
+ writable: true,
+ enumerable: true,
+ configurable: true,
+ value: utils.tryWrapperForImpl(indexedValue)
+ };
+ }
+ ignoreNamedProps = true;
+ }
+
+ const namedValue = target[implSymbol].namedItem(P);
+
+ if (namedValue !== null && !(P in target) && !ignoreNamedProps) {
+ return {
+ writable: false,
+ enumerable: true,
+ configurable: true,
+ value: utils.tryWrapperForImpl(namedValue)
+ };
+ }
+
+ return Reflect.getOwnPropertyDescriptor(target, P);
+ }
+
+ set(target, P, V, receiver) {
+ if (typeof P === "symbol") {
+ return Reflect.set(target, P, V, receiver);
+ }
+ // The `receiver` argument refers to the Proxy exotic object or an object
+ // that inherits from it, whereas `target` refers to the Proxy target:
+ if (target[implSymbol][utils.wrapperSymbol] === receiver) {
+ const globalObject = this._globalObject;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ let indexedValue = V;
+
+ if (indexedValue === null || indexedValue === undefined) {
+ indexedValue = null;
+ } else {
+ indexedValue = HTMLOptionElement.convert(globalObject, indexedValue, {
+ context: "Failed to set the " + index + " property on 'HTMLOptionsCollection': The provided value"
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const creating = !(target[implSymbol].item(index) !== null);
+ if (creating) {
+ target[implSymbol][utils.indexedSetNew](index, indexedValue);
+ } else {
+ target[implSymbol][utils.indexedSetExisting](index, indexedValue);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+
+ return true;
+ }
+ }
+ let ownDesc;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ const indexedValue = target[implSymbol].item(index);
+ if (indexedValue !== null) {
+ ownDesc = {
+ writable: true,
+ enumerable: true,
+ configurable: true,
+ value: utils.tryWrapperForImpl(indexedValue)
+ };
+ }
+ }
+
+ if (ownDesc === undefined) {
+ ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
+ }
+ return utils.ordinarySetWithOwnDescriptor(target, P, V, receiver, ownDesc);
+ }
+
+ defineProperty(target, P, desc) {
+ if (typeof P === "symbol") {
+ return Reflect.defineProperty(target, P, desc);
+ }
+
+ const globalObject = this._globalObject;
+
+ if (utils.isArrayIndexPropName(P)) {
+ if (desc.get || desc.set) {
+ return false;
+ }
+
+ const index = P >>> 0;
+ let indexedValue = desc.value;
+
+ if (indexedValue === null || indexedValue === undefined) {
+ indexedValue = null;
+ } else {
+ indexedValue = HTMLOptionElement.convert(globalObject, indexedValue, {
+ context: "Failed to set the " + index + " property on 'HTMLOptionsCollection': The provided value"
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const creating = !(target[implSymbol].item(index) !== null);
+ if (creating) {
+ target[implSymbol][utils.indexedSetNew](index, indexedValue);
+ } else {
+ target[implSymbol][utils.indexedSetExisting](index, indexedValue);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+
+ return true;
+ }
+ if (!Object.hasOwn(target, P)) {
+ const creating = !(target[implSymbol].namedItem(P) !== null);
+ if (!creating) {
+ return false;
+ }
+ }
+ return Reflect.defineProperty(target, P, desc);
+ }
+
+ deleteProperty(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.deleteProperty(target, P);
+ }
+
+ const globalObject = this._globalObject;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ return !(target[implSymbol].item(index) !== null);
+ }
+
+ if (target[implSymbol].namedItem(P) !== null && !(P in target)) {
+ return false;
+ }
+
+ return Reflect.deleteProperty(target, P);
+ }
+
+ preventExtensions() {
+ return false;
+ }
+}
+
+const Impl = require("../nodes/HTMLOptionsCollection-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLOutputElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLOutputElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..00f3055a3cafd890bfce42bc1e01b9397349f8f1
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLOutputElement.js
@@ -0,0 +1,392 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLOutputElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLOutputElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLOutputElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLOutputElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ checkValidity() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'checkValidity' called on an object that is not a valid instance of HTMLOutputElement."
+ );
+ }
+
+ return esValue[implSymbol].checkValidity();
+ }
+
+ reportValidity() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'reportValidity' called on an object that is not a valid instance of HTMLOutputElement."
+ );
+ }
+
+ return esValue[implSymbol].reportValidity();
+ }
+
+ setCustomValidity(error) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'setCustomValidity' called on an object that is not a valid instance of HTMLOutputElement."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'setCustomValidity' on 'HTMLOutputElement': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'setCustomValidity' on 'HTMLOutputElement': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].setCustomValidity(...args);
+ }
+
+ get htmlFor() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get htmlFor' called on an object that is not a valid instance of HTMLOutputElement."
+ );
+ }
+
+ return utils.getSameObject(this, "htmlFor", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["htmlFor"]);
+ });
+ }
+
+ set htmlFor(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set htmlFor' called on an object that is not a valid instance of HTMLOutputElement."
+ );
+ }
+
+ const Q = esValue["htmlFor"];
+ if (!utils.isObject(Q)) {
+ throw new globalObject.TypeError("Property 'htmlFor' is not an object");
+ }
+ Reflect.set(Q, "value", V);
+ }
+
+ get form() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get form' called on an object that is not a valid instance of HTMLOutputElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["form"]);
+ }
+
+ get name() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get name' called on an object that is not a valid instance of HTMLOutputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("name");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set name(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set name' called on an object that is not a valid instance of HTMLOutputElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'name' property on 'HTMLOutputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get type() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get type' called on an object that is not a valid instance of HTMLOutputElement."
+ );
+ }
+
+ return esValue[implSymbol]["type"];
+ }
+
+ get defaultValue() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get defaultValue' called on an object that is not a valid instance of HTMLOutputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["defaultValue"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set defaultValue(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set defaultValue' called on an object that is not a valid instance of HTMLOutputElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'defaultValue' property on 'HTMLOutputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["defaultValue"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get value() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get value' called on an object that is not a valid instance of HTMLOutputElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["value"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set value(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set value' called on an object that is not a valid instance of HTMLOutputElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'value' property on 'HTMLOutputElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["value"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get willValidate() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get willValidate' called on an object that is not a valid instance of HTMLOutputElement."
+ );
+ }
+
+ return esValue[implSymbol]["willValidate"];
+ }
+
+ get validity() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get validity' called on an object that is not a valid instance of HTMLOutputElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["validity"]);
+ }
+
+ get validationMessage() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get validationMessage' called on an object that is not a valid instance of HTMLOutputElement."
+ );
+ }
+
+ return esValue[implSymbol]["validationMessage"];
+ }
+
+ get labels() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get labels' called on an object that is not a valid instance of HTMLOutputElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["labels"]);
+ }
+ }
+ Object.defineProperties(HTMLOutputElement.prototype, {
+ checkValidity: { enumerable: true },
+ reportValidity: { enumerable: true },
+ setCustomValidity: { enumerable: true },
+ htmlFor: { enumerable: true },
+ form: { enumerable: true },
+ name: { enumerable: true },
+ type: { enumerable: true },
+ defaultValue: { enumerable: true },
+ value: { enumerable: true },
+ willValidate: { enumerable: true },
+ validity: { enumerable: true },
+ validationMessage: { enumerable: true },
+ labels: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLOutputElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLOutputElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLOutputElement
+ });
+};
+
+const Impl = require("../nodes/HTMLOutputElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLParagraphElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLParagraphElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..f68be7bc8f9f4900ee16e8e8524e1c03cae621dd
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLParagraphElement.js
@@ -0,0 +1,153 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLParagraphElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLParagraphElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLParagraphElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLParagraphElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get align() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get align' called on an object that is not a valid instance of HTMLParagraphElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("align");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set align(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set align' called on an object that is not a valid instance of HTMLParagraphElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'align' property on 'HTMLParagraphElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLParagraphElement.prototype, {
+ align: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLParagraphElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLParagraphElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLParagraphElement
+ });
+};
+
+const Impl = require("../nodes/HTMLParagraphElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLParamElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLParamElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..7eb04a942dd671b80c7bf55cee2a47aae75dccbc
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLParamElement.js
@@ -0,0 +1,276 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLParamElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLParamElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLParamElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLParamElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get name() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get name' called on an object that is not a valid instance of HTMLParamElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("name");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set name(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set name' called on an object that is not a valid instance of HTMLParamElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'name' property on 'HTMLParamElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get value() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get value' called on an object that is not a valid instance of HTMLParamElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("value");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set value(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set value' called on an object that is not a valid instance of HTMLParamElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'value' property on 'HTMLParamElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("value", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get type() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get type' called on an object that is not a valid instance of HTMLParamElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("type");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set type(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set type' called on an object that is not a valid instance of HTMLParamElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'type' property on 'HTMLParamElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("type", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get valueType() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get valueType' called on an object that is not a valid instance of HTMLParamElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("valuetype");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set valueType(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set valueType' called on an object that is not a valid instance of HTMLParamElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'valueType' property on 'HTMLParamElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("valuetype", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLParamElement.prototype, {
+ name: { enumerable: true },
+ value: { enumerable: true },
+ type: { enumerable: true },
+ valueType: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLParamElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLParamElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLParamElement
+ });
+};
+
+const Impl = require("../nodes/HTMLParamElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLPictureElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLPictureElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..852d41efc3d01a74adfc63d21ecd9b23604bef20
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLPictureElement.js
@@ -0,0 +1,110 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLPictureElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLPictureElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLPictureElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLPictureElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+ }
+ Object.defineProperties(HTMLPictureElement.prototype, {
+ [Symbol.toStringTag]: { value: "HTMLPictureElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLPictureElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLPictureElement
+ });
+};
+
+const Impl = require("../nodes/HTMLPictureElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLPreElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLPreElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..784138f02f35f95e9d2d70613faf5a27feba2b80
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLPreElement.js
@@ -0,0 +1,160 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const parseInteger_helpers_strings = require("../helpers/strings.js").parseInteger;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLPreElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLPreElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLPreElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLPreElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get width() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get width' called on an object that is not a valid instance of HTMLPreElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("width");
+ if (value !== null) {
+ value = parseInteger_helpers_strings(value);
+ if (value !== null && conversions.long(value) === value) {
+ return value;
+ }
+ }
+ return 0;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set width(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set width' called on an object that is not a valid instance of HTMLPreElement."
+ );
+ }
+
+ V = conversions["long"](V, {
+ context: "Failed to set the 'width' property on 'HTMLPreElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("width", String(V));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLPreElement.prototype, {
+ width: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLPreElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLPreElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLPreElement
+ });
+};
+
+const Impl = require("../nodes/HTMLPreElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLProgressElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLProgressElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..b91b39f840158845e0e28340d0c6c5f19f9f8485
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLProgressElement.js
@@ -0,0 +1,228 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const parseFloatingPointNumber_helpers_strings = require("../helpers/strings.js").parseFloatingPointNumber;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLProgressElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLProgressElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLProgressElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLProgressElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get value() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get value' called on an object that is not a valid instance of HTMLProgressElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["value"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set value(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set value' called on an object that is not a valid instance of HTMLProgressElement."
+ );
+ }
+
+ V = conversions["double"](V, {
+ context: "Failed to set the 'value' property on 'HTMLProgressElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["value"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get max() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get max' called on an object that is not a valid instance of HTMLProgressElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("max");
+ if (value !== null) {
+ value = parseFloatingPointNumber_helpers_strings(value);
+ if (value !== null && value > 0) {
+ return value;
+ }
+ }
+ return 1;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set max(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set max' called on an object that is not a valid instance of HTMLProgressElement."
+ );
+ }
+
+ V = conversions["double"](V, {
+ context: "Failed to set the 'max' property on 'HTMLProgressElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V > 0) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("max", String(V));
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get position() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get position' called on an object that is not a valid instance of HTMLProgressElement."
+ );
+ }
+
+ return esValue[implSymbol]["position"];
+ }
+
+ get labels() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get labels' called on an object that is not a valid instance of HTMLProgressElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["labels"]);
+ }
+ }
+ Object.defineProperties(HTMLProgressElement.prototype, {
+ value: { enumerable: true },
+ max: { enumerable: true },
+ position: { enumerable: true },
+ labels: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLProgressElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLProgressElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLProgressElement
+ });
+};
+
+const Impl = require("../nodes/HTMLProgressElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLQuoteElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLQuoteElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..4ce1a727e9801a8268712da237b77d57de77c895
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLQuoteElement.js
@@ -0,0 +1,173 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const serializeURLwhatwg_url = require("whatwg-url").serializeURL;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLQuoteElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLQuoteElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLQuoteElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLQuoteElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get cite() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get cite' called on an object that is not a valid instance of HTMLQuoteElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const impl = esValue[implSymbol];
+ const value = impl._reflectGetTheContentAttribute("cite");
+ if (value === null) {
+ return "";
+ }
+
+ const document = impl._ownerDocument;
+ if (this._citeURLCacheKey === value && this._baseURLCache === document._baseURLCache) {
+ return this._citeURLCache;
+ }
+
+ this._citeURLCacheKey = value;
+ this._baseURLCache = document._baseURLCache;
+
+ const urlRecord = document.encodingParseAURL(value);
+ if (urlRecord !== null) {
+ this._citeURLCache = serializeURLwhatwg_url(urlRecord);
+ return this._citeURLCache;
+ }
+ this._citeURLCache = conversions.USVString(value);
+ return this._citeURLCache;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set cite(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set cite' called on an object that is not a valid instance of HTMLQuoteElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'cite' property on 'HTMLQuoteElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("cite", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLQuoteElement.prototype, {
+ cite: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLQuoteElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLQuoteElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLQuoteElement
+ });
+};
+
+const Impl = require("../nodes/HTMLQuoteElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLScriptElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLScriptElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..76d8f7c7df146d0f7197bc04afc589fda7839bb3
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLScriptElement.js
@@ -0,0 +1,469 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const serializeURLwhatwg_url = require("whatwg-url").serializeURL;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLScriptElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLScriptElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLScriptElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLScriptElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get src() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get src' called on an object that is not a valid instance of HTMLScriptElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const impl = esValue[implSymbol];
+ const value = impl._reflectGetTheContentAttribute("src");
+ if (value === null) {
+ return "";
+ }
+
+ const document = impl._ownerDocument;
+ if (this._srcURLCacheKey === value && this._baseURLCache === document._baseURLCache) {
+ return this._srcURLCache;
+ }
+
+ this._srcURLCacheKey = value;
+ this._baseURLCache = document._baseURLCache;
+
+ const urlRecord = document.encodingParseAURL(value);
+ if (urlRecord !== null) {
+ this._srcURLCache = serializeURLwhatwg_url(urlRecord);
+ return this._srcURLCache;
+ }
+ this._srcURLCache = conversions.USVString(value);
+ return this._srcURLCache;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set src(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set src' called on an object that is not a valid instance of HTMLScriptElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'src' property on 'HTMLScriptElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("src", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get type() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get type' called on an object that is not a valid instance of HTMLScriptElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("type");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set type(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set type' called on an object that is not a valid instance of HTMLScriptElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'type' property on 'HTMLScriptElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("type", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get defer() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get defer' called on an object that is not a valid instance of HTMLScriptElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("defer") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set defer(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set defer' called on an object that is not a valid instance of HTMLScriptElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'defer' property on 'HTMLScriptElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("defer", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("defer");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get crossOrigin() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get crossOrigin' called on an object that is not a valid instance of HTMLScriptElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("crossorigin");
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set crossOrigin(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set crossOrigin' called on an object that is not a valid instance of HTMLScriptElement."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'crossOrigin' property on 'HTMLScriptElement': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V === null) {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("crossorigin");
+ } else {
+ esValue[implSymbol]._reflectSetTheContentAttribute("crossorigin", V);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get text() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get text' called on an object that is not a valid instance of HTMLScriptElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["text"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set text(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set text' called on an object that is not a valid instance of HTMLScriptElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'text' property on 'HTMLScriptElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["text"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get charset() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get charset' called on an object that is not a valid instance of HTMLScriptElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("charset");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set charset(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set charset' called on an object that is not a valid instance of HTMLScriptElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'charset' property on 'HTMLScriptElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("charset", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get event() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get event' called on an object that is not a valid instance of HTMLScriptElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("event");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set event(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set event' called on an object that is not a valid instance of HTMLScriptElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'event' property on 'HTMLScriptElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("event", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get htmlFor() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get htmlFor' called on an object that is not a valid instance of HTMLScriptElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("for");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set htmlFor(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set htmlFor' called on an object that is not a valid instance of HTMLScriptElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'htmlFor' property on 'HTMLScriptElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("for", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLScriptElement.prototype, {
+ src: { enumerable: true },
+ type: { enumerable: true },
+ defer: { enumerable: true },
+ crossOrigin: { enumerable: true },
+ text: { enumerable: true },
+ charset: { enumerable: true },
+ event: { enumerable: true },
+ htmlFor: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLScriptElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLScriptElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLScriptElement
+ });
+};
+
+const Impl = require("../nodes/HTMLScriptElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLSelectElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLSelectElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..1504b2f9626a3c37da3122735765c10a9f1bf5b6
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLSelectElement.js
@@ -0,0 +1,989 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const HTMLOptionElement = require("./HTMLOptionElement.js");
+const HTMLOptGroupElement = require("./HTMLOptGroupElement.js");
+const HTMLElement = require("./HTMLElement.js");
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const parseNonNegativeInteger_helpers_strings = require("../helpers/strings.js").parseNonNegativeInteger;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "HTMLSelectElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLSelectElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLSelectElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+function makeProxy(wrapper, globalObject) {
+ let proxyHandler = proxyHandlerCache.get(globalObject);
+ if (proxyHandler === undefined) {
+ proxyHandler = new ProxyHandler(globalObject);
+ proxyHandlerCache.set(globalObject, proxyHandler);
+ }
+ return new Proxy(wrapper, proxyHandler);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper = makeProxy(wrapper, globalObject);
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ let wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper = makeProxy(wrapper, globalObject);
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLSelectElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ item(index) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'item' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'item' on 'HTMLSelectElement': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'item' on 'HTMLSelectElement': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].item(...args));
+ }
+
+ namedItem(name) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'namedItem' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'namedItem' on 'HTMLSelectElement': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'namedItem' on 'HTMLSelectElement': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].namedItem(...args));
+ }
+
+ add(element) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'add' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'add' on 'HTMLSelectElement': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (HTMLOptionElement.is(curArg) || HTMLOptGroupElement.is(curArg)) {
+ curArg = utils.implForWrapper(curArg);
+ } else {
+ throw new globalObject.TypeError(
+ "Failed to execute 'add' on 'HTMLSelectElement': parameter 1" + " is not of any supported type."
+ );
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg !== undefined) {
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ if (HTMLElement.is(curArg)) {
+ curArg = utils.implForWrapper(curArg);
+ } else if (typeof curArg === "number") {
+ curArg = conversions["long"](curArg, {
+ context: "Failed to execute 'add' on 'HTMLSelectElement': parameter 2",
+ globals: globalObject
+ });
+ } else {
+ curArg = conversions["long"](curArg, {
+ context: "Failed to execute 'add' on 'HTMLSelectElement': parameter 2",
+ globals: globalObject
+ });
+ }
+ }
+ } else {
+ curArg = null;
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].add(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ remove() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'remove' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+ const args = [];
+ switch (arguments.length) {
+ case 0:
+ break;
+ default: {
+ let curArg = arguments[0];
+ curArg = conversions["long"](curArg, {
+ context: "Failed to execute 'remove' on 'HTMLSelectElement': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].remove(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ checkValidity() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'checkValidity' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ return esValue[implSymbol].checkValidity();
+ }
+
+ reportValidity() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'reportValidity' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ return esValue[implSymbol].reportValidity();
+ }
+
+ setCustomValidity(error) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'setCustomValidity' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'setCustomValidity' on 'HTMLSelectElement': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'setCustomValidity' on 'HTMLSelectElement': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].setCustomValidity(...args);
+ }
+
+ get autofocus() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get autofocus' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("autofocus") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set autofocus(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set autofocus' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'autofocus' property on 'HTMLSelectElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("autofocus", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("autofocus");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get disabled() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get disabled' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("disabled") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set disabled(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set disabled' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'disabled' property on 'HTMLSelectElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("disabled", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("disabled");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get form() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get form' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["form"]);
+ }
+
+ get multiple() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get multiple' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("multiple") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set multiple(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set multiple' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'multiple' property on 'HTMLSelectElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("multiple", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("multiple");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get name() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get name' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("name");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set name(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set name' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'name' property on 'HTMLSelectElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get required() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get required' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("required") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set required(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set required' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'required' property on 'HTMLSelectElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("required", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("required");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get size() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get size' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("size");
+ if (value !== null) {
+ value = parseNonNegativeInteger_helpers_strings(value);
+ if (value !== null && value >= 0 && value <= 2147483647) {
+ return value;
+ }
+ }
+ return 0;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set size(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set size' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'size' property on 'HTMLSelectElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const newValue = V <= 2147483647 && V >= 0 ? V : 0;
+ esValue[implSymbol]._reflectSetTheContentAttribute("size", String(newValue));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get type() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get type' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ return esValue[implSymbol]["type"];
+ }
+
+ get options() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get options' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ return utils.getSameObject(this, "options", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["options"]);
+ });
+ }
+
+ get length() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get length' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["length"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set length(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set length' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'length' property on 'HTMLSelectElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["length"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get selectedOptions() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get selectedOptions' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ return utils.getSameObject(this, "selectedOptions", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["selectedOptions"]);
+ });
+ }
+
+ get selectedIndex() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get selectedIndex' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ return esValue[implSymbol]["selectedIndex"];
+ }
+
+ set selectedIndex(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set selectedIndex' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ V = conversions["long"](V, {
+ context: "Failed to set the 'selectedIndex' property on 'HTMLSelectElement': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["selectedIndex"] = V;
+ }
+
+ get value() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get value' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ return esValue[implSymbol]["value"];
+ }
+
+ set value(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set value' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'value' property on 'HTMLSelectElement': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["value"] = V;
+ }
+
+ get willValidate() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get willValidate' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ return esValue[implSymbol]["willValidate"];
+ }
+
+ get validity() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get validity' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["validity"]);
+ }
+
+ get validationMessage() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get validationMessage' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ return esValue[implSymbol]["validationMessage"];
+ }
+
+ get labels() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get labels' called on an object that is not a valid instance of HTMLSelectElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["labels"]);
+ }
+ }
+ Object.defineProperties(HTMLSelectElement.prototype, {
+ item: { enumerable: true },
+ namedItem: { enumerable: true },
+ add: { enumerable: true },
+ remove: { enumerable: true },
+ checkValidity: { enumerable: true },
+ reportValidity: { enumerable: true },
+ setCustomValidity: { enumerable: true },
+ autofocus: { enumerable: true },
+ disabled: { enumerable: true },
+ form: { enumerable: true },
+ multiple: { enumerable: true },
+ name: { enumerable: true },
+ required: { enumerable: true },
+ size: { enumerable: true },
+ type: { enumerable: true },
+ options: { enumerable: true },
+ length: { enumerable: true },
+ selectedOptions: { enumerable: true },
+ selectedIndex: { enumerable: true },
+ value: { enumerable: true },
+ willValidate: { enumerable: true },
+ validity: { enumerable: true },
+ validationMessage: { enumerable: true },
+ labels: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLSelectElement", configurable: true },
+ [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLSelectElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLSelectElement
+ });
+};
+
+const proxyHandlerCache = new WeakMap();
+class ProxyHandler {
+ constructor(globalObject) {
+ this._globalObject = globalObject;
+ }
+
+ get(target, P, receiver) {
+ if (typeof P === "symbol") {
+ return Reflect.get(target, P, receiver);
+ }
+ const desc = this.getOwnPropertyDescriptor(target, P);
+ if (desc === undefined) {
+ const parent = Object.getPrototypeOf(target);
+ if (parent === null) {
+ return undefined;
+ }
+ return Reflect.get(target, P, receiver);
+ }
+ if (!desc.get && !desc.set) {
+ return desc.value;
+ }
+ const getter = desc.get;
+ if (getter === undefined) {
+ return undefined;
+ }
+ return Reflect.apply(getter, receiver, []);
+ }
+
+ has(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.has(target, P);
+ }
+ const desc = this.getOwnPropertyDescriptor(target, P);
+ if (desc !== undefined) {
+ return true;
+ }
+ const parent = Object.getPrototypeOf(target);
+ if (parent !== null) {
+ return Reflect.has(parent, P);
+ }
+ return false;
+ }
+
+ ownKeys(target) {
+ const keys = new Set();
+
+ for (const key of target[implSymbol][utils.supportedPropertyIndices]) {
+ keys.add(`${key}`);
+ }
+
+ for (const key of Reflect.ownKeys(target)) {
+ keys.add(key);
+ }
+ return [...keys];
+ }
+
+ getOwnPropertyDescriptor(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.getOwnPropertyDescriptor(target, P);
+ }
+ let ignoreNamedProps = false;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ const indexedValue = target[implSymbol].item(index);
+ if (indexedValue !== null) {
+ return {
+ writable: true,
+ enumerable: true,
+ configurable: true,
+ value: utils.tryWrapperForImpl(indexedValue)
+ };
+ }
+ ignoreNamedProps = true;
+ }
+
+ return Reflect.getOwnPropertyDescriptor(target, P);
+ }
+
+ set(target, P, V, receiver) {
+ if (typeof P === "symbol") {
+ return Reflect.set(target, P, V, receiver);
+ }
+ // The `receiver` argument refers to the Proxy exotic object or an object
+ // that inherits from it, whereas `target` refers to the Proxy target:
+ if (target[implSymbol][utils.wrapperSymbol] === receiver) {
+ const globalObject = this._globalObject;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ let indexedValue = V;
+
+ if (indexedValue === null || indexedValue === undefined) {
+ indexedValue = null;
+ } else {
+ indexedValue = HTMLOptionElement.convert(globalObject, indexedValue, {
+ context: "Failed to set the " + index + " property on 'HTMLSelectElement': The provided value"
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const creating = !(target[implSymbol].item(index) !== null);
+ if (creating) {
+ target[implSymbol][utils.indexedSetNew](index, indexedValue);
+ } else {
+ target[implSymbol][utils.indexedSetExisting](index, indexedValue);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+
+ return true;
+ }
+ }
+ let ownDesc;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ const indexedValue = target[implSymbol].item(index);
+ if (indexedValue !== null) {
+ ownDesc = {
+ writable: true,
+ enumerable: true,
+ configurable: true,
+ value: utils.tryWrapperForImpl(indexedValue)
+ };
+ }
+ }
+
+ if (ownDesc === undefined) {
+ ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
+ }
+ return utils.ordinarySetWithOwnDescriptor(target, P, V, receiver, ownDesc);
+ }
+
+ defineProperty(target, P, desc) {
+ if (typeof P === "symbol") {
+ return Reflect.defineProperty(target, P, desc);
+ }
+
+ const globalObject = this._globalObject;
+
+ if (utils.isArrayIndexPropName(P)) {
+ if (desc.get || desc.set) {
+ return false;
+ }
+
+ const index = P >>> 0;
+ let indexedValue = desc.value;
+
+ if (indexedValue === null || indexedValue === undefined) {
+ indexedValue = null;
+ } else {
+ indexedValue = HTMLOptionElement.convert(globalObject, indexedValue, {
+ context: "Failed to set the " + index + " property on 'HTMLSelectElement': The provided value"
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const creating = !(target[implSymbol].item(index) !== null);
+ if (creating) {
+ target[implSymbol][utils.indexedSetNew](index, indexedValue);
+ } else {
+ target[implSymbol][utils.indexedSetExisting](index, indexedValue);
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+
+ return true;
+ }
+
+ return Reflect.defineProperty(target, P, desc);
+ }
+
+ deleteProperty(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.deleteProperty(target, P);
+ }
+
+ const globalObject = this._globalObject;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ return !(target[implSymbol].item(index) !== null);
+ }
+
+ return Reflect.deleteProperty(target, P);
+ }
+
+ preventExtensions() {
+ return false;
+ }
+}
+
+const Impl = require("../nodes/HTMLSelectElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLSlotElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLSlotElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..5dbf55fa73c78599e328a218b2bafa2c8c3a0a63
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLSlotElement.js
@@ -0,0 +1,192 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const AssignedNodesOptions = require("./AssignedNodesOptions.js");
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLSlotElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLSlotElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLSlotElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLSlotElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ assignedNodes() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'assignedNodes' called on an object that is not a valid instance of HTMLSlotElement."
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = AssignedNodesOptions.convert(globalObject, curArg, {
+ context: "Failed to execute 'assignedNodes' on 'HTMLSlotElement': parameter 1"
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].assignedNodes(...args));
+ }
+
+ assignedElements() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'assignedElements' called on an object that is not a valid instance of HTMLSlotElement."
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = AssignedNodesOptions.convert(globalObject, curArg, {
+ context: "Failed to execute 'assignedElements' on 'HTMLSlotElement': parameter 1"
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].assignedElements(...args));
+ }
+
+ get name() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get name' called on an object that is not a valid instance of HTMLSlotElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("name");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set name(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set name' called on an object that is not a valid instance of HTMLSlotElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'name' property on 'HTMLSlotElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLSlotElement.prototype, {
+ assignedNodes: { enumerable: true },
+ assignedElements: { enumerable: true },
+ name: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLSlotElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLSlotElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLSlotElement
+ });
+};
+
+const Impl = require("../nodes/HTMLSlotElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLSourceElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLSourceElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..97524860b329eef4dd71d066a874ee4381b6ade2
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLSourceElement.js
@@ -0,0 +1,337 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const serializeURLwhatwg_url = require("whatwg-url").serializeURL;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLSourceElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLSourceElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLSourceElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLSourceElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get src() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get src' called on an object that is not a valid instance of HTMLSourceElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const impl = esValue[implSymbol];
+ const value = impl._reflectGetTheContentAttribute("src");
+ if (value === null) {
+ return "";
+ }
+
+ const document = impl._ownerDocument;
+ if (this._srcURLCacheKey === value && this._baseURLCache === document._baseURLCache) {
+ return this._srcURLCache;
+ }
+
+ this._srcURLCacheKey = value;
+ this._baseURLCache = document._baseURLCache;
+
+ const urlRecord = document.encodingParseAURL(value);
+ if (urlRecord !== null) {
+ this._srcURLCache = serializeURLwhatwg_url(urlRecord);
+ return this._srcURLCache;
+ }
+ this._srcURLCache = conversions.USVString(value);
+ return this._srcURLCache;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set src(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set src' called on an object that is not a valid instance of HTMLSourceElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'src' property on 'HTMLSourceElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("src", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get type() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get type' called on an object that is not a valid instance of HTMLSourceElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("type");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set type(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set type' called on an object that is not a valid instance of HTMLSourceElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'type' property on 'HTMLSourceElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("type", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get srcset() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get srcset' called on an object that is not a valid instance of HTMLSourceElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("srcset");
+ return value === null ? "" : conversions.USVString(value);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set srcset(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set srcset' called on an object that is not a valid instance of HTMLSourceElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'srcset' property on 'HTMLSourceElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("srcset", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get sizes() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get sizes' called on an object that is not a valid instance of HTMLSourceElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("sizes");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set sizes(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set sizes' called on an object that is not a valid instance of HTMLSourceElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'sizes' property on 'HTMLSourceElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("sizes", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get media() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get media' called on an object that is not a valid instance of HTMLSourceElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("media");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set media(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set media' called on an object that is not a valid instance of HTMLSourceElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'media' property on 'HTMLSourceElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("media", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLSourceElement.prototype, {
+ src: { enumerable: true },
+ type: { enumerable: true },
+ srcset: { enumerable: true },
+ sizes: { enumerable: true },
+ media: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLSourceElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLSourceElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLSourceElement
+ });
+};
+
+const Impl = require("../nodes/HTMLSourceElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLSpanElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLSpanElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..db00caa7e03ed82b222dc5efdc5d9cd9a37d01dc
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLSpanElement.js
@@ -0,0 +1,110 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLSpanElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLSpanElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLSpanElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLSpanElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+ }
+ Object.defineProperties(HTMLSpanElement.prototype, {
+ [Symbol.toStringTag]: { value: "HTMLSpanElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLSpanElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLSpanElement
+ });
+};
+
+const Impl = require("../nodes/HTMLSpanElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLStyleElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLStyleElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..77ea37dc6ab43fb0a810a7d43e4942728d78cad9
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLStyleElement.js
@@ -0,0 +1,207 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLStyleElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLStyleElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLStyleElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLStyleElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get media() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get media' called on an object that is not a valid instance of HTMLStyleElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("media");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set media(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set media' called on an object that is not a valid instance of HTMLStyleElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'media' property on 'HTMLStyleElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("media", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get type() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get type' called on an object that is not a valid instance of HTMLStyleElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("type");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set type(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set type' called on an object that is not a valid instance of HTMLStyleElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'type' property on 'HTMLStyleElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("type", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get sheet() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get sheet' called on an object that is not a valid instance of HTMLStyleElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["sheet"]);
+ }
+ }
+ Object.defineProperties(HTMLStyleElement.prototype, {
+ media: { enumerable: true },
+ type: { enumerable: true },
+ sheet: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLStyleElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLStyleElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLStyleElement
+ });
+};
+
+const Impl = require("../nodes/HTMLStyleElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCaptionElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCaptionElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..c3f7ac56ea120b900c9f3cb6824c7ce85e31ad64
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCaptionElement.js
@@ -0,0 +1,153 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLTableCaptionElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLTableCaptionElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLTableCaptionElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLTableCaptionElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get align() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get align' called on an object that is not a valid instance of HTMLTableCaptionElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("align");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set align(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set align' called on an object that is not a valid instance of HTMLTableCaptionElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'align' property on 'HTMLTableCaptionElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLTableCaptionElement.prototype, {
+ align: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLTableCaptionElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLTableCaptionElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLTableCaptionElement
+ });
+};
+
+const Impl = require("../nodes/HTMLTableCaptionElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCellElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCellElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..f3eea947954960da356de4e58c03eb040271dc64
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCellElement.js
@@ -0,0 +1,729 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const parseNonNegativeInteger_helpers_strings = require("../helpers/strings.js").parseNonNegativeInteger;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLTableCellElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLTableCellElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLTableCellElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLTableCellElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get colSpan() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get colSpan' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("colspan");
+ if (value !== null) {
+ value = parseNonNegativeInteger_helpers_strings(value);
+ if (value !== null) {
+ if (value < 1) {
+ return 1;
+ } else if (value >= 1 && value <= 1000) {
+ return value;
+ } else {
+ return 1000;
+ }
+ }
+ }
+ return 1;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set colSpan(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set colSpan' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'colSpan' property on 'HTMLTableCellElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const newValue = V <= 2147483647 && V >= 0 ? V : 1;
+ esValue[implSymbol]._reflectSetTheContentAttribute("colspan", String(newValue));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get rowSpan() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get rowSpan' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("rowspan");
+ if (value !== null) {
+ value = parseNonNegativeInteger_helpers_strings(value);
+ if (value !== null) {
+ if (value < 0) {
+ return 0;
+ } else if (value >= 0 && value <= 65534) {
+ return value;
+ } else {
+ return 65534;
+ }
+ }
+ }
+ return 1;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set rowSpan(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set rowSpan' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'rowSpan' property on 'HTMLTableCellElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const newValue = V <= 2147483647 && V >= 0 ? V : 1;
+ esValue[implSymbol]._reflectSetTheContentAttribute("rowspan", String(newValue));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get headers() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get headers' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("headers");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set headers(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set headers' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'headers' property on 'HTMLTableCellElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("headers", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get cellIndex() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get cellIndex' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ return esValue[implSymbol]["cellIndex"];
+ }
+
+ get scope() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get scope' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["scope"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set scope(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set scope' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'scope' property on 'HTMLTableCellElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["scope"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get abbr() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get abbr' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("abbr");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set abbr(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set abbr' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'abbr' property on 'HTMLTableCellElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("abbr", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get align() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get align' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("align");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set align(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set align' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'align' property on 'HTMLTableCellElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get axis() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get axis' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("axis");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set axis(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set axis' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'axis' property on 'HTMLTableCellElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("axis", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get height() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get height' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("height");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set height(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set height' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'height' property on 'HTMLTableCellElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("height", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get width() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get width' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("width");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set width(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set width' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'width' property on 'HTMLTableCellElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("width", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ch() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ch' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("char");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ch(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ch' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ch' property on 'HTMLTableCellElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("char", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get chOff() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get chOff' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("charoff");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set chOff(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set chOff' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'chOff' property on 'HTMLTableCellElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("charoff", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get noWrap() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get noWrap' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("nowrap") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set noWrap(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set noWrap' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'noWrap' property on 'HTMLTableCellElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("nowrap", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("nowrap");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get vAlign() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get vAlign' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("valign");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set vAlign(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set vAlign' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'vAlign' property on 'HTMLTableCellElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("valign", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get bgColor() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get bgColor' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("bgcolor");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set bgColor(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set bgColor' called on an object that is not a valid instance of HTMLTableCellElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'bgColor' property on 'HTMLTableCellElement': The provided value",
+ globals: globalObject,
+ treatNullAsEmptyString: true
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("bgcolor", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLTableCellElement.prototype, {
+ colSpan: { enumerable: true },
+ rowSpan: { enumerable: true },
+ headers: { enumerable: true },
+ cellIndex: { enumerable: true },
+ scope: { enumerable: true },
+ abbr: { enumerable: true },
+ align: { enumerable: true },
+ axis: { enumerable: true },
+ height: { enumerable: true },
+ width: { enumerable: true },
+ ch: { enumerable: true },
+ chOff: { enumerable: true },
+ noWrap: { enumerable: true },
+ vAlign: { enumerable: true },
+ bgColor: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLTableCellElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLTableCellElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLTableCellElement
+ });
+};
+
+const Impl = require("../nodes/HTMLTableCellElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableColElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableColElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..365262568bffcf2378bc64b676aeca97ffa383dd
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableColElement.js
@@ -0,0 +1,372 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const parseNonNegativeInteger_helpers_strings = require("../helpers/strings.js").parseNonNegativeInteger;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLTableColElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLTableColElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLTableColElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLTableColElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get span() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get span' called on an object that is not a valid instance of HTMLTableColElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("span");
+ if (value !== null) {
+ value = parseNonNegativeInteger_helpers_strings(value);
+ if (value !== null) {
+ if (value < 1) {
+ return 1;
+ } else if (value >= 1 && value <= 1000) {
+ return value;
+ } else {
+ return 1000;
+ }
+ }
+ }
+ return 1;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set span(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set span' called on an object that is not a valid instance of HTMLTableColElement."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'span' property on 'HTMLTableColElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const newValue = V <= 2147483647 && V >= 0 ? V : 1;
+ esValue[implSymbol]._reflectSetTheContentAttribute("span", String(newValue));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get align() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get align' called on an object that is not a valid instance of HTMLTableColElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("align");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set align(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set align' called on an object that is not a valid instance of HTMLTableColElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'align' property on 'HTMLTableColElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ch() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ch' called on an object that is not a valid instance of HTMLTableColElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("char");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ch(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ch' called on an object that is not a valid instance of HTMLTableColElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ch' property on 'HTMLTableColElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("char", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get chOff() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get chOff' called on an object that is not a valid instance of HTMLTableColElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("charoff");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set chOff(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set chOff' called on an object that is not a valid instance of HTMLTableColElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'chOff' property on 'HTMLTableColElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("charoff", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get vAlign() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get vAlign' called on an object that is not a valid instance of HTMLTableColElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("valign");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set vAlign(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set vAlign' called on an object that is not a valid instance of HTMLTableColElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'vAlign' property on 'HTMLTableColElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("valign", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get width() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get width' called on an object that is not a valid instance of HTMLTableColElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("width");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set width(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set width' called on an object that is not a valid instance of HTMLTableColElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'width' property on 'HTMLTableColElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("width", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLTableColElement.prototype, {
+ span: { enumerable: true },
+ align: { enumerable: true },
+ ch: { enumerable: true },
+ chOff: { enumerable: true },
+ vAlign: { enumerable: true },
+ width: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLTableColElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLTableColElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLTableColElement
+ });
+};
+
+const Impl = require("../nodes/HTMLTableColElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..d9ff73bae462f91eccac364fd9705e7b508df43a
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableElement.js
@@ -0,0 +1,799 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const HTMLTableCaptionElement = require("./HTMLTableCaptionElement.js");
+const HTMLTableSectionElement = require("./HTMLTableSectionElement.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLTableElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLTableElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLTableElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLTableElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ createCaption() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'createCaption' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol].createCaption());
+ }
+
+ deleteCaption() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'deleteCaption' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].deleteCaption();
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ createTHead() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'createTHead' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol].createTHead());
+ }
+
+ deleteTHead() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'deleteTHead' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].deleteTHead();
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ createTFoot() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'createTFoot' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol].createTFoot());
+ }
+
+ deleteTFoot() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'deleteTFoot' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].deleteTFoot();
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ createTBody() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'createTBody' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol].createTBody());
+ }
+
+ insertRow() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'insertRow' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg !== undefined) {
+ curArg = conversions["long"](curArg, {
+ context: "Failed to execute 'insertRow' on 'HTMLTableElement': parameter 1",
+ globals: globalObject
+ });
+ } else {
+ curArg = -1;
+ }
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].insertRow(...args));
+ }
+
+ deleteRow(index) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'deleteRow' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'deleteRow' on 'HTMLTableElement': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["long"](curArg, {
+ context: "Failed to execute 'deleteRow' on 'HTMLTableElement': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].deleteRow(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get caption() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get caption' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["caption"]);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set caption(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set caption' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = HTMLTableCaptionElement.convert(globalObject, V, {
+ context: "Failed to set the 'caption' property on 'HTMLTableElement': The provided value"
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["caption"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get tHead() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get tHead' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["tHead"]);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set tHead(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set tHead' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = HTMLTableSectionElement.convert(globalObject, V, {
+ context: "Failed to set the 'tHead' property on 'HTMLTableElement': The provided value"
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["tHead"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get tFoot() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get tFoot' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["tFoot"]);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set tFoot(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set tFoot' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = HTMLTableSectionElement.convert(globalObject, V, {
+ context: "Failed to set the 'tFoot' property on 'HTMLTableElement': The provided value"
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["tFoot"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get tBodies() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get tBodies' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ return utils.getSameObject(this, "tBodies", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["tBodies"]);
+ });
+ }
+
+ get rows() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get rows' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ return utils.getSameObject(this, "rows", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["rows"]);
+ });
+ }
+
+ get align() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get align' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("align");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set align(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set align' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'align' property on 'HTMLTableElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get border() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get border' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("border");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set border(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set border' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'border' property on 'HTMLTableElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("border", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get frame() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get frame' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("frame");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set frame(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set frame' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'frame' property on 'HTMLTableElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("frame", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get rules() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get rules' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("rules");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set rules(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set rules' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'rules' property on 'HTMLTableElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("rules", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get summary() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get summary' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("summary");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set summary(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set summary' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'summary' property on 'HTMLTableElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("summary", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get width() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get width' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("width");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set width(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set width' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'width' property on 'HTMLTableElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("width", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get bgColor() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get bgColor' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("bgcolor");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set bgColor(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set bgColor' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'bgColor' property on 'HTMLTableElement': The provided value",
+ globals: globalObject,
+ treatNullAsEmptyString: true
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("bgcolor", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get cellPadding() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get cellPadding' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("cellpadding");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set cellPadding(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set cellPadding' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'cellPadding' property on 'HTMLTableElement': The provided value",
+ globals: globalObject,
+ treatNullAsEmptyString: true
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("cellpadding", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get cellSpacing() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get cellSpacing' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("cellspacing");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set cellSpacing(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set cellSpacing' called on an object that is not a valid instance of HTMLTableElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'cellSpacing' property on 'HTMLTableElement': The provided value",
+ globals: globalObject,
+ treatNullAsEmptyString: true
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("cellspacing", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLTableElement.prototype, {
+ createCaption: { enumerable: true },
+ deleteCaption: { enumerable: true },
+ createTHead: { enumerable: true },
+ deleteTHead: { enumerable: true },
+ createTFoot: { enumerable: true },
+ deleteTFoot: { enumerable: true },
+ createTBody: { enumerable: true },
+ insertRow: { enumerable: true },
+ deleteRow: { enumerable: true },
+ caption: { enumerable: true },
+ tHead: { enumerable: true },
+ tFoot: { enumerable: true },
+ tBodies: { enumerable: true },
+ rows: { enumerable: true },
+ align: { enumerable: true },
+ border: { enumerable: true },
+ frame: { enumerable: true },
+ rules: { enumerable: true },
+ summary: { enumerable: true },
+ width: { enumerable: true },
+ bgColor: { enumerable: true },
+ cellPadding: { enumerable: true },
+ cellSpacing: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLTableElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLTableElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLTableElement
+ });
+};
+
+const Impl = require("../nodes/HTMLTableElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableRowElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableRowElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..888c00c2cfaa4a5fa94922e0fde01f0394f51f16
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableRowElement.js
@@ -0,0 +1,414 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLTableRowElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLTableRowElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLTableRowElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLTableRowElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ insertCell() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'insertCell' called on an object that is not a valid instance of HTMLTableRowElement."
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg !== undefined) {
+ curArg = conversions["long"](curArg, {
+ context: "Failed to execute 'insertCell' on 'HTMLTableRowElement': parameter 1",
+ globals: globalObject
+ });
+ } else {
+ curArg = -1;
+ }
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].insertCell(...args));
+ }
+
+ deleteCell(index) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'deleteCell' called on an object that is not a valid instance of HTMLTableRowElement."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'deleteCell' on 'HTMLTableRowElement': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["long"](curArg, {
+ context: "Failed to execute 'deleteCell' on 'HTMLTableRowElement': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].deleteCell(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get rowIndex() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get rowIndex' called on an object that is not a valid instance of HTMLTableRowElement."
+ );
+ }
+
+ return esValue[implSymbol]["rowIndex"];
+ }
+
+ get sectionRowIndex() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get sectionRowIndex' called on an object that is not a valid instance of HTMLTableRowElement."
+ );
+ }
+
+ return esValue[implSymbol]["sectionRowIndex"];
+ }
+
+ get cells() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get cells' called on an object that is not a valid instance of HTMLTableRowElement."
+ );
+ }
+
+ return utils.getSameObject(this, "cells", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["cells"]);
+ });
+ }
+
+ get align() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get align' called on an object that is not a valid instance of HTMLTableRowElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("align");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set align(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set align' called on an object that is not a valid instance of HTMLTableRowElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'align' property on 'HTMLTableRowElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ch() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ch' called on an object that is not a valid instance of HTMLTableRowElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("char");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ch(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ch' called on an object that is not a valid instance of HTMLTableRowElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ch' property on 'HTMLTableRowElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("char", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get chOff() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get chOff' called on an object that is not a valid instance of HTMLTableRowElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("charoff");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set chOff(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set chOff' called on an object that is not a valid instance of HTMLTableRowElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'chOff' property on 'HTMLTableRowElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("charoff", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get vAlign() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get vAlign' called on an object that is not a valid instance of HTMLTableRowElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("valign");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set vAlign(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set vAlign' called on an object that is not a valid instance of HTMLTableRowElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'vAlign' property on 'HTMLTableRowElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("valign", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get bgColor() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get bgColor' called on an object that is not a valid instance of HTMLTableRowElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("bgcolor");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set bgColor(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set bgColor' called on an object that is not a valid instance of HTMLTableRowElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'bgColor' property on 'HTMLTableRowElement': The provided value",
+ globals: globalObject,
+ treatNullAsEmptyString: true
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("bgcolor", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLTableRowElement.prototype, {
+ insertCell: { enumerable: true },
+ deleteCell: { enumerable: true },
+ rowIndex: { enumerable: true },
+ sectionRowIndex: { enumerable: true },
+ cells: { enumerable: true },
+ align: { enumerable: true },
+ ch: { enumerable: true },
+ chOff: { enumerable: true },
+ vAlign: { enumerable: true },
+ bgColor: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLTableRowElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLTableRowElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLTableRowElement
+ });
+};
+
+const Impl = require("../nodes/HTMLTableRowElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableSectionElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableSectionElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..2a454d91051604a172e81abd514f9da31af0c0ab
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableSectionElement.js
@@ -0,0 +1,346 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLTableSectionElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLTableSectionElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLTableSectionElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLTableSectionElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ insertRow() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'insertRow' called on an object that is not a valid instance of HTMLTableSectionElement."
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg !== undefined) {
+ curArg = conversions["long"](curArg, {
+ context: "Failed to execute 'insertRow' on 'HTMLTableSectionElement': parameter 1",
+ globals: globalObject
+ });
+ } else {
+ curArg = -1;
+ }
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].insertRow(...args));
+ }
+
+ deleteRow(index) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'deleteRow' called on an object that is not a valid instance of HTMLTableSectionElement."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'deleteRow' on 'HTMLTableSectionElement': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["long"](curArg, {
+ context: "Failed to execute 'deleteRow' on 'HTMLTableSectionElement': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].deleteRow(...args);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get rows() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get rows' called on an object that is not a valid instance of HTMLTableSectionElement."
+ );
+ }
+
+ return utils.getSameObject(this, "rows", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["rows"]);
+ });
+ }
+
+ get align() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get align' called on an object that is not a valid instance of HTMLTableSectionElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("align");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set align(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set align' called on an object that is not a valid instance of HTMLTableSectionElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'align' property on 'HTMLTableSectionElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get ch() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ch' called on an object that is not a valid instance of HTMLTableSectionElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("char");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set ch(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set ch' called on an object that is not a valid instance of HTMLTableSectionElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'ch' property on 'HTMLTableSectionElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("char", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get chOff() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get chOff' called on an object that is not a valid instance of HTMLTableSectionElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("charoff");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set chOff(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set chOff' called on an object that is not a valid instance of HTMLTableSectionElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'chOff' property on 'HTMLTableSectionElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("charoff", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get vAlign() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get vAlign' called on an object that is not a valid instance of HTMLTableSectionElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("valign");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set vAlign(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set vAlign' called on an object that is not a valid instance of HTMLTableSectionElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'vAlign' property on 'HTMLTableSectionElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("valign", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLTableSectionElement.prototype, {
+ insertRow: { enumerable: true },
+ deleteRow: { enumerable: true },
+ rows: { enumerable: true },
+ align: { enumerable: true },
+ ch: { enumerable: true },
+ chOff: { enumerable: true },
+ vAlign: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLTableSectionElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLTableSectionElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLTableSectionElement
+ });
+};
+
+const Impl = require("../nodes/HTMLTableSectionElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLTemplateElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLTemplateElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..e77280c7af0351bff15342aec913ec9a3662ed53
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLTemplateElement.js
@@ -0,0 +1,123 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLTemplateElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLTemplateElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLTemplateElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLTemplateElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get content() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get content' called on an object that is not a valid instance of HTMLTemplateElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["content"]);
+ }
+ }
+ Object.defineProperties(HTMLTemplateElement.prototype, {
+ content: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLTemplateElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLTemplateElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLTemplateElement
+ });
+};
+
+const Impl = require("../nodes/HTMLTemplateElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLTextAreaElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLTextAreaElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..cd72c7b29695e2af551df57eb84aff02ef6f3342
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLTextAreaElement.js
@@ -0,0 +1,1206 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const SelectionMode = require("./SelectionMode.js");
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const parseNonNegativeInteger_helpers_strings = require("../helpers/strings.js").parseNonNegativeInteger;
+const create_DOMException = require("./DOMException.js").create;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLTextAreaElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLTextAreaElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLTextAreaElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLTextAreaElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ checkValidity() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'checkValidity' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ return esValue[implSymbol].checkValidity();
+ }
+
+ reportValidity() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'reportValidity' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ return esValue[implSymbol].reportValidity();
+ }
+
+ setCustomValidity(error) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'setCustomValidity' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'setCustomValidity' on 'HTMLTextAreaElement': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'setCustomValidity' on 'HTMLTextAreaElement': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].setCustomValidity(...args);
+ }
+
+ select() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'select' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ return esValue[implSymbol].select();
+ }
+
+ setRangeText(replacement) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'setRangeText' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'setRangeText' on 'HTMLTextAreaElement': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ switch (arguments.length) {
+ case 1:
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'setRangeText' on 'HTMLTextAreaElement': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ break;
+ case 2:
+ throw new globalObject.TypeError(
+ `Failed to execute 'setRangeText' on 'HTMLTextAreaElement': only ${arguments.length} arguments present.`
+ );
+ break;
+ case 3:
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'setRangeText' on 'HTMLTextAreaElement': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'setRangeText' on 'HTMLTextAreaElement': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'setRangeText' on 'HTMLTextAreaElement': parameter 3",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ break;
+ default:
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'setRangeText' on 'HTMLTextAreaElement': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'setRangeText' on 'HTMLTextAreaElement': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'setRangeText' on 'HTMLTextAreaElement': parameter 3",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[3];
+ if (curArg !== undefined) {
+ curArg = SelectionMode.convert(globalObject, curArg, {
+ context: "Failed to execute 'setRangeText' on 'HTMLTextAreaElement': parameter 4"
+ });
+ } else {
+ curArg = "preserve";
+ }
+ args.push(curArg);
+ }
+ }
+ return esValue[implSymbol].setRangeText(...args);
+ }
+
+ setSelectionRange(start, end) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'setSelectionRange' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'setSelectionRange' on 'HTMLTextAreaElement': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'setSelectionRange' on 'HTMLTextAreaElement': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'setSelectionRange' on 'HTMLTextAreaElement': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ if (curArg !== undefined) {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'setSelectionRange' on 'HTMLTextAreaElement': parameter 3",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].setSelectionRange(...args);
+ }
+
+ get autocomplete() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get autocomplete' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("autocomplete");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set autocomplete(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set autocomplete' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'autocomplete' property on 'HTMLTextAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("autocomplete", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get autofocus() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get autofocus' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("autofocus") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set autofocus(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set autofocus' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'autofocus' property on 'HTMLTextAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("autofocus", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("autofocus");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get cols() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get cols' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("cols");
+ if (value !== null) {
+ value = parseNonNegativeInteger_helpers_strings(value);
+ if (value !== null && value >= 1 && value <= 2147483647) {
+ return value;
+ }
+ }
+ return 20;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set cols(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set cols' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'cols' property on 'HTMLTextAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const newValue = V <= 2147483647 && V >= 1 ? V : 20;
+ esValue[implSymbol]._reflectSetTheContentAttribute("cols", String(newValue));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get dirName() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get dirName' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("dirname");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set dirName(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set dirName' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'dirName' property on 'HTMLTextAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("dirname", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get disabled() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get disabled' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("disabled") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set disabled(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set disabled' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'disabled' property on 'HTMLTextAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("disabled", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("disabled");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get form() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get form' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["form"]);
+ }
+
+ get inputMode() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get inputMode' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("inputmode");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set inputMode(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set inputMode' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'inputMode' property on 'HTMLTextAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("inputmode", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get maxLength() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get maxLength' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("maxlength");
+ if (value !== null) {
+ value = parseNonNegativeInteger_helpers_strings(value);
+ if (value !== null && conversions.long(value) === value) {
+ return value;
+ }
+ }
+ return -1;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set maxLength(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set maxLength' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ V = conversions["long"](V, {
+ context: "Failed to set the 'maxLength' property on 'HTMLTextAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V < 0) {
+ throw create_DOMException(globalObject, [
+ `The negative value ${V} cannot be set for the maxLength property.`,
+ "IndexSizeError"
+ ]);
+ }
+
+ esValue[implSymbol]._reflectSetTheContentAttribute("maxlength", String(V));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get minLength() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get minLength' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("minlength");
+ if (value !== null) {
+ value = parseNonNegativeInteger_helpers_strings(value);
+ if (value !== null && conversions.long(value) === value) {
+ return value;
+ }
+ }
+ return -1;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set minLength(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set minLength' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ V = conversions["long"](V, {
+ context: "Failed to set the 'minLength' property on 'HTMLTextAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V < 0) {
+ throw create_DOMException(globalObject, [
+ `The negative value ${V} cannot be set for the minLength property.`,
+ "IndexSizeError"
+ ]);
+ }
+
+ esValue[implSymbol]._reflectSetTheContentAttribute("minlength", String(V));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get name() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get name' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("name");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set name(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set name' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'name' property on 'HTMLTextAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get placeholder() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get placeholder' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("placeholder");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set placeholder(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set placeholder' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'placeholder' property on 'HTMLTextAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("placeholder", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get readOnly() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get readOnly' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("readonly") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set readOnly(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set readOnly' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'readOnly' property on 'HTMLTextAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("readonly", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("readonly");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get required() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get required' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("required") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set required(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set required' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'required' property on 'HTMLTextAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("required", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("required");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get rows() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get rows' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("rows");
+ if (value !== null) {
+ value = parseNonNegativeInteger_helpers_strings(value);
+ if (value !== null && value >= 1 && value <= 2147483647) {
+ return value;
+ }
+ }
+ return 2;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set rows(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set rows' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'rows' property on 'HTMLTextAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const newValue = V <= 2147483647 && V >= 1 ? V : 2;
+ esValue[implSymbol]._reflectSetTheContentAttribute("rows", String(newValue));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get wrap() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get wrap' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("wrap");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set wrap(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set wrap' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'wrap' property on 'HTMLTextAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("wrap", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get type() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get type' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ return esValue[implSymbol]["type"];
+ }
+
+ get defaultValue() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get defaultValue' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["defaultValue"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set defaultValue(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set defaultValue' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'defaultValue' property on 'HTMLTextAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["defaultValue"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get value() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get value' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["value"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set value(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set value' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'value' property on 'HTMLTextAreaElement': The provided value",
+ globals: globalObject,
+ treatNullAsEmptyString: true
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["value"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get textLength() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get textLength' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ return esValue[implSymbol]["textLength"];
+ }
+
+ get willValidate() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get willValidate' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ return esValue[implSymbol]["willValidate"];
+ }
+
+ get validity() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get validity' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["validity"]);
+ }
+
+ get validationMessage() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get validationMessage' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ return esValue[implSymbol]["validationMessage"];
+ }
+
+ get labels() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get labels' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["labels"]);
+ }
+
+ get selectionStart() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get selectionStart' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ return esValue[implSymbol]["selectionStart"];
+ }
+
+ set selectionStart(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set selectionStart' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'selectionStart' property on 'HTMLTextAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["selectionStart"] = V;
+ }
+
+ get selectionEnd() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get selectionEnd' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ return esValue[implSymbol]["selectionEnd"];
+ }
+
+ set selectionEnd(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set selectionEnd' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'selectionEnd' property on 'HTMLTextAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["selectionEnd"] = V;
+ }
+
+ get selectionDirection() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get selectionDirection' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ return esValue[implSymbol]["selectionDirection"];
+ }
+
+ set selectionDirection(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set selectionDirection' called on an object that is not a valid instance of HTMLTextAreaElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'selectionDirection' property on 'HTMLTextAreaElement': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["selectionDirection"] = V;
+ }
+ }
+ Object.defineProperties(HTMLTextAreaElement.prototype, {
+ checkValidity: { enumerable: true },
+ reportValidity: { enumerable: true },
+ setCustomValidity: { enumerable: true },
+ select: { enumerable: true },
+ setRangeText: { enumerable: true },
+ setSelectionRange: { enumerable: true },
+ autocomplete: { enumerable: true },
+ autofocus: { enumerable: true },
+ cols: { enumerable: true },
+ dirName: { enumerable: true },
+ disabled: { enumerable: true },
+ form: { enumerable: true },
+ inputMode: { enumerable: true },
+ maxLength: { enumerable: true },
+ minLength: { enumerable: true },
+ name: { enumerable: true },
+ placeholder: { enumerable: true },
+ readOnly: { enumerable: true },
+ required: { enumerable: true },
+ rows: { enumerable: true },
+ wrap: { enumerable: true },
+ type: { enumerable: true },
+ defaultValue: { enumerable: true },
+ value: { enumerable: true },
+ textLength: { enumerable: true },
+ willValidate: { enumerable: true },
+ validity: { enumerable: true },
+ validationMessage: { enumerable: true },
+ labels: { enumerable: true },
+ selectionStart: { enumerable: true },
+ selectionEnd: { enumerable: true },
+ selectionDirection: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLTextAreaElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLTextAreaElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLTextAreaElement
+ });
+};
+
+const Impl = require("../nodes/HTMLTextAreaElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLTimeElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLTimeElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..add13b0725625109bb6d9a00f7641a7b77a5a147
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLTimeElement.js
@@ -0,0 +1,153 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLTimeElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLTimeElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLTimeElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLTimeElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get dateTime() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get dateTime' called on an object that is not a valid instance of HTMLTimeElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("datetime");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set dateTime(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set dateTime' called on an object that is not a valid instance of HTMLTimeElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'dateTime' property on 'HTMLTimeElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("datetime", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLTimeElement.prototype, {
+ dateTime: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLTimeElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLTimeElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLTimeElement
+ });
+};
+
+const Impl = require("../nodes/HTMLTimeElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLTitleElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLTitleElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..372965b16b2093fa9d92ee21e939760ca2e8ed08
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLTitleElement.js
@@ -0,0 +1,152 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLTitleElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLTitleElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLTitleElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLTitleElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get text() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get text' called on an object that is not a valid instance of HTMLTitleElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["text"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set text(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set text' called on an object that is not a valid instance of HTMLTitleElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'text' property on 'HTMLTitleElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["text"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLTitleElement.prototype, {
+ text: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLTitleElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLTitleElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLTitleElement
+ });
+};
+
+const Impl = require("../nodes/HTMLTitleElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLTrackElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLTrackElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..9c81fec09e97b30ceac7aea5c60475f8331be32f
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLTrackElement.js
@@ -0,0 +1,363 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const serializeURLwhatwg_url = require("whatwg-url").serializeURL;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLTrackElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLTrackElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLTrackElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLTrackElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get kind() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get kind' called on an object that is not a valid instance of HTMLTrackElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("kind");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set kind(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set kind' called on an object that is not a valid instance of HTMLTrackElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'kind' property on 'HTMLTrackElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("kind", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get src() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get src' called on an object that is not a valid instance of HTMLTrackElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const impl = esValue[implSymbol];
+ const value = impl._reflectGetTheContentAttribute("src");
+ if (value === null) {
+ return "";
+ }
+
+ const document = impl._ownerDocument;
+ if (this._srcURLCacheKey === value && this._baseURLCache === document._baseURLCache) {
+ return this._srcURLCache;
+ }
+
+ this._srcURLCacheKey = value;
+ this._baseURLCache = document._baseURLCache;
+
+ const urlRecord = document.encodingParseAURL(value);
+ if (urlRecord !== null) {
+ this._srcURLCache = serializeURLwhatwg_url(urlRecord);
+ return this._srcURLCache;
+ }
+ this._srcURLCache = conversions.USVString(value);
+ return this._srcURLCache;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set src(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set src' called on an object that is not a valid instance of HTMLTrackElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'src' property on 'HTMLTrackElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("src", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get srclang() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get srclang' called on an object that is not a valid instance of HTMLTrackElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("srclang");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set srclang(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set srclang' called on an object that is not a valid instance of HTMLTrackElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'srclang' property on 'HTMLTrackElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("srclang", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get label() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get label' called on an object that is not a valid instance of HTMLTrackElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("label");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set label(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set label' called on an object that is not a valid instance of HTMLTrackElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'label' property on 'HTMLTrackElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("label", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get default() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get default' called on an object that is not a valid instance of HTMLTrackElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("default") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set default(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set default' called on an object that is not a valid instance of HTMLTrackElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'default' property on 'HTMLTrackElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("default", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("default");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get readyState() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get readyState' called on an object that is not a valid instance of HTMLTrackElement."
+ );
+ }
+
+ return esValue[implSymbol]["readyState"];
+ }
+ }
+ Object.defineProperties(HTMLTrackElement.prototype, {
+ kind: { enumerable: true },
+ src: { enumerable: true },
+ srclang: { enumerable: true },
+ label: { enumerable: true },
+ default: { enumerable: true },
+ readyState: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLTrackElement", configurable: true },
+ NONE: { value: 0, enumerable: true },
+ LOADING: { value: 1, enumerable: true },
+ LOADED: { value: 2, enumerable: true },
+ ERROR: { value: 3, enumerable: true }
+ });
+ Object.defineProperties(HTMLTrackElement, {
+ NONE: { value: 0, enumerable: true },
+ LOADING: { value: 1, enumerable: true },
+ LOADED: { value: 2, enumerable: true },
+ ERROR: { value: 3, enumerable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLTrackElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLTrackElement
+ });
+};
+
+const Impl = require("../nodes/HTMLTrackElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLUListElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLUListElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..2375c4c3c437096e9929236a5803b161db6e73d9
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLUListElement.js
@@ -0,0 +1,197 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLUListElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLUListElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLUListElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLUListElement extends globalObject.HTMLElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get compact() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get compact' called on an object that is not a valid instance of HTMLUListElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("compact") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set compact(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set compact' called on an object that is not a valid instance of HTMLUListElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'compact' property on 'HTMLUListElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("compact", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("compact");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get type() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get type' called on an object that is not a valid instance of HTMLUListElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const value = esValue[implSymbol]._reflectGetTheContentAttribute("type");
+ return value === null ? "" : value;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set type(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set type' called on an object that is not a valid instance of HTMLUListElement."
+ );
+ }
+
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'type' property on 'HTMLUListElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("type", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLUListElement.prototype, {
+ compact: { enumerable: true },
+ type: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLUListElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLUListElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLUListElement
+ });
+};
+
+const Impl = require("../nodes/HTMLUListElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLUnknownElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLUnknownElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..fb56afebfb78da4e9f6458f89929fd5e3f0577c4
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLUnknownElement.js
@@ -0,0 +1,109 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLElement = require("./HTMLElement.js");
+
+const interfaceName = "HTMLUnknownElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLUnknownElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLUnknownElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLUnknownElement extends globalObject.HTMLElement {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+ }
+ Object.defineProperties(HTMLUnknownElement.prototype, {
+ [Symbol.toStringTag]: { value: "HTMLUnknownElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLUnknownElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLUnknownElement
+ });
+};
+
+const Impl = require("../nodes/HTMLUnknownElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLVideoElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLVideoElement.js
new file mode 100644
index 0000000000000000000000000000000000000000..bb95807ad24964402a518b0bba57cff6db9555e2
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HTMLVideoElement.js
@@ -0,0 +1,340 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HTMLConstructor_helpers_html_constructor = require("../helpers/html-constructor.js").HTMLConstructor;
+const parseNonNegativeInteger_helpers_strings = require("../helpers/strings.js").parseNonNegativeInteger;
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const serializeURLwhatwg_url = require("whatwg-url").serializeURL;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const HTMLMediaElement = require("./HTMLMediaElement.js");
+
+const interfaceName = "HTMLVideoElement";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HTMLVideoElement'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HTMLVideoElement"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ HTMLMediaElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HTMLVideoElement extends globalObject.HTMLMediaElement {
+ constructor() {
+ return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
+ }
+
+ get width() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get width' called on an object that is not a valid instance of HTMLVideoElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("width");
+ if (value !== null) {
+ value = parseNonNegativeInteger_helpers_strings(value);
+ if (value !== null && value >= 0 && value <= 2147483647) {
+ return value;
+ }
+ }
+ return 0;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set width(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set width' called on an object that is not a valid instance of HTMLVideoElement."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'width' property on 'HTMLVideoElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const newValue = V <= 2147483647 && V >= 0 ? V : 0;
+ esValue[implSymbol]._reflectSetTheContentAttribute("width", String(newValue));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get height() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get height' called on an object that is not a valid instance of HTMLVideoElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ let value = esValue[implSymbol]._reflectGetTheContentAttribute("height");
+ if (value !== null) {
+ value = parseNonNegativeInteger_helpers_strings(value);
+ if (value !== null && value >= 0 && value <= 2147483647) {
+ return value;
+ }
+ }
+ return 0;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set height(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set height' called on an object that is not a valid instance of HTMLVideoElement."
+ );
+ }
+
+ V = conversions["unsigned long"](V, {
+ context: "Failed to set the 'height' property on 'HTMLVideoElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const newValue = V <= 2147483647 && V >= 0 ? V : 0;
+ esValue[implSymbol]._reflectSetTheContentAttribute("height", String(newValue));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get videoWidth() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get videoWidth' called on an object that is not a valid instance of HTMLVideoElement."
+ );
+ }
+
+ return esValue[implSymbol]["videoWidth"];
+ }
+
+ get videoHeight() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get videoHeight' called on an object that is not a valid instance of HTMLVideoElement."
+ );
+ }
+
+ return esValue[implSymbol]["videoHeight"];
+ }
+
+ get poster() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get poster' called on an object that is not a valid instance of HTMLVideoElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ const impl = esValue[implSymbol];
+ const value = impl._reflectGetTheContentAttribute("poster");
+ if (value === null) {
+ return "";
+ }
+
+ const document = impl._ownerDocument;
+ if (this._posterURLCacheKey === value && this._baseURLCache === document._baseURLCache) {
+ return this._posterURLCache;
+ }
+
+ this._posterURLCacheKey = value;
+ this._baseURLCache = document._baseURLCache;
+
+ const urlRecord = document.encodingParseAURL(value);
+ if (urlRecord !== null) {
+ this._posterURLCache = serializeURLwhatwg_url(urlRecord);
+ return this._posterURLCache;
+ }
+ this._posterURLCache = conversions.USVString(value);
+ return this._posterURLCache;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set poster(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set poster' called on an object that is not a valid instance of HTMLVideoElement."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'poster' property on 'HTMLVideoElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]._reflectSetTheContentAttribute("poster", V);
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get playsInline() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get playsInline' called on an object that is not a valid instance of HTMLVideoElement."
+ );
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]._reflectGetTheContentAttribute("playsinline") !== null;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set playsInline(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set playsInline' called on an object that is not a valid instance of HTMLVideoElement."
+ );
+ }
+
+ V = conversions["boolean"](V, {
+ context: "Failed to set the 'playsInline' property on 'HTMLVideoElement': The provided value",
+ globals: globalObject
+ });
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ if (V) {
+ esValue[implSymbol]._reflectSetTheContentAttribute("playsinline", "");
+ } else {
+ esValue[implSymbol]._reflectDeleteTheContentAttribute("playsinline");
+ }
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(HTMLVideoElement.prototype, {
+ width: { enumerable: true },
+ height: { enumerable: true },
+ videoWidth: { enumerable: true },
+ videoHeight: { enumerable: true },
+ poster: { enumerable: true },
+ playsInline: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HTMLVideoElement", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HTMLVideoElement;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HTMLVideoElement
+ });
+};
+
+const Impl = require("../nodes/HTMLVideoElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEvent.js b/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEvent.js
new file mode 100644
index 0000000000000000000000000000000000000000..cb31e4243b8168ebd392a509b71919e908687699
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEvent.js
@@ -0,0 +1,157 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const HashChangeEventInit = require("./HashChangeEventInit.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const Event = require("./Event.js");
+
+const interfaceName = "HashChangeEvent";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'HashChangeEvent'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["HashChangeEvent"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ Event._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class HashChangeEvent extends globalObject.Event {
+ constructor(type) {
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to construct 'HashChangeEvent': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to construct 'HashChangeEvent': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = HashChangeEventInit.convert(globalObject, curArg, {
+ context: "Failed to construct 'HashChangeEvent': parameter 2"
+ });
+ args.push(curArg);
+ }
+ return exports.setup(Object.create(new.target.prototype), globalObject, args);
+ }
+
+ get oldURL() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get oldURL' called on an object that is not a valid instance of HashChangeEvent."
+ );
+ }
+
+ return esValue[implSymbol]["oldURL"];
+ }
+
+ get newURL() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get newURL' called on an object that is not a valid instance of HashChangeEvent."
+ );
+ }
+
+ return esValue[implSymbol]["newURL"];
+ }
+ }
+ Object.defineProperties(HashChangeEvent.prototype, {
+ oldURL: { enumerable: true },
+ newURL: { enumerable: true },
+ [Symbol.toStringTag]: { value: "HashChangeEvent", configurable: true }
+ });
+ ctorRegistry[interfaceName] = HashChangeEvent;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: HashChangeEvent
+ });
+};
+
+const Impl = require("../events/HashChangeEvent-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEventInit.js b/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEventInit.js
new file mode 100644
index 0000000000000000000000000000000000000000..8bce20d2254cde20337ead3b5a8bb3dcaa62f63b
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEventInit.js
@@ -0,0 +1,50 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const EventInit = require("./EventInit.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ EventInit._convertInherit(globalObject, obj, ret, { context });
+
+ {
+ const key = "newURL";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["USVString"](value, {
+ context: context + " has member 'newURL' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = "";
+ }
+ }
+
+ {
+ const key = "oldURL";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["USVString"](value, {
+ context: context + " has member 'oldURL' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = "";
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/Headers.js b/node_modules/jsdom/lib/jsdom/living/generated/Headers.js
new file mode 100644
index 0000000000000000000000000000000000000000..9826948bae04c4c32ef46e9839a93167593e35b7
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/Headers.js
@@ -0,0 +1,418 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const Function = require("./Function.js");
+const newObjectInRealm = utils.newObjectInRealm;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "Headers";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'Headers'.`);
+};
+
+exports.createDefaultIterator = (globalObject, target, kind) => {
+ const ctorRegistry = globalObject[ctorRegistrySymbol];
+ const iteratorPrototype = ctorRegistry["Headers Iterator"];
+ const iterator = Object.create(iteratorPrototype);
+ Object.defineProperty(iterator, utils.iterInternalSymbol, {
+ value: { target, kind, index: 0 },
+ configurable: true
+ });
+ return iterator;
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["Headers"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class Headers {
+ constructor() {
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg !== undefined) {
+ if (utils.isObject(curArg)) {
+ if (curArg[Symbol.iterator] !== undefined) {
+ if (!utils.isObject(curArg)) {
+ throw new globalObject.TypeError(
+ "Failed to construct 'Headers': parameter 1" + " sequence" + " is not an iterable object."
+ );
+ } else {
+ const V = [];
+ const tmp = curArg;
+ for (let nextItem of tmp) {
+ if (!utils.isObject(nextItem)) {
+ throw new globalObject.TypeError(
+ "Failed to construct 'Headers': parameter 1" +
+ " sequence" +
+ "'s element" +
+ " is not an iterable object."
+ );
+ } else {
+ const V = [];
+ const tmp = nextItem;
+ for (let nextItem of tmp) {
+ nextItem = conversions["ByteString"](nextItem, {
+ context:
+ "Failed to construct 'Headers': parameter 1" + " sequence" + "'s element" + "'s element",
+ globals: globalObject
+ });
+
+ V.push(nextItem);
+ }
+ nextItem = V;
+ }
+
+ V.push(nextItem);
+ }
+ curArg = V;
+ }
+ } else {
+ if (!utils.isObject(curArg)) {
+ throw new globalObject.TypeError(
+ "Failed to construct 'Headers': parameter 1" + " record" + " is not an object."
+ );
+ } else {
+ const result = Object.create(null);
+ for (const key of Reflect.ownKeys(curArg)) {
+ const desc = Object.getOwnPropertyDescriptor(curArg, key);
+ if (desc && desc.enumerable) {
+ let typedKey = key;
+
+ typedKey = conversions["ByteString"](typedKey, {
+ context: "Failed to construct 'Headers': parameter 1" + " record" + "'s key",
+ globals: globalObject
+ });
+
+ let typedValue = curArg[key];
+
+ typedValue = conversions["ByteString"](typedValue, {
+ context: "Failed to construct 'Headers': parameter 1" + " record" + "'s value",
+ globals: globalObject
+ });
+
+ result[typedKey] = typedValue;
+ }
+ }
+ curArg = result;
+ }
+ }
+ } else {
+ throw new globalObject.TypeError(
+ "Failed to construct 'Headers': parameter 1" + " is not of any supported type."
+ );
+ }
+ }
+ args.push(curArg);
+ }
+ return exports.setup(Object.create(new.target.prototype), globalObject, args);
+ }
+
+ append(name, value) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'append' called on an object that is not a valid instance of Headers.");
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'append' on 'Headers': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["ByteString"](curArg, {
+ context: "Failed to execute 'append' on 'Headers': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["ByteString"](curArg, {
+ context: "Failed to execute 'append' on 'Headers': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].append(...args);
+ }
+
+ delete(name) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'delete' called on an object that is not a valid instance of Headers.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'delete' on 'Headers': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["ByteString"](curArg, {
+ context: "Failed to execute 'delete' on 'Headers': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].delete(...args);
+ }
+
+ get(name) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get' called on an object that is not a valid instance of Headers.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'get' on 'Headers': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["ByteString"](curArg, {
+ context: "Failed to execute 'get' on 'Headers': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].get(...args);
+ }
+
+ getSetCookie() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'getSetCookie' called on an object that is not a valid instance of Headers.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol].getSetCookie());
+ }
+
+ has(name) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'has' called on an object that is not a valid instance of Headers.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'has' on 'Headers': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["ByteString"](curArg, {
+ context: "Failed to execute 'has' on 'Headers': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].has(...args);
+ }
+
+ set(name, value) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set' called on an object that is not a valid instance of Headers.");
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'set' on 'Headers': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["ByteString"](curArg, {
+ context: "Failed to execute 'set' on 'Headers': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["ByteString"](curArg, {
+ context: "Failed to execute 'set' on 'Headers': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].set(...args);
+ }
+
+ keys() {
+ if (!exports.is(this)) {
+ throw new globalObject.TypeError("'keys' called on an object that is not a valid instance of Headers.");
+ }
+ return exports.createDefaultIterator(globalObject, this, "key");
+ }
+
+ values() {
+ if (!exports.is(this)) {
+ throw new globalObject.TypeError("'values' called on an object that is not a valid instance of Headers.");
+ }
+ return exports.createDefaultIterator(globalObject, this, "value");
+ }
+
+ entries() {
+ if (!exports.is(this)) {
+ throw new globalObject.TypeError("'entries' called on an object that is not a valid instance of Headers.");
+ }
+ return exports.createDefaultIterator(globalObject, this, "key+value");
+ }
+
+ forEach(callback) {
+ if (!exports.is(this)) {
+ throw new globalObject.TypeError("'forEach' called on an object that is not a valid instance of Headers.");
+ }
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ "Failed to execute 'forEach' on 'iterable': 1 argument required, but only 0 present."
+ );
+ }
+ callback = Function.convert(globalObject, callback, {
+ context: "Failed to execute 'forEach' on 'iterable': The callback provided as parameter 1"
+ });
+ const thisArg = arguments[1];
+ let pairs = Array.from(this[implSymbol]);
+ let i = 0;
+ while (i < pairs.length) {
+ const [key, value] = pairs[i].map(utils.tryWrapperForImpl);
+ callback.call(thisArg, value, key, this);
+ pairs = Array.from(this[implSymbol]);
+ i++;
+ }
+ }
+ }
+ Object.defineProperties(Headers.prototype, {
+ append: { enumerable: true },
+ delete: { enumerable: true },
+ get: { enumerable: true },
+ getSetCookie: { enumerable: true },
+ has: { enumerable: true },
+ set: { enumerable: true },
+ keys: { enumerable: true },
+ values: { enumerable: true },
+ entries: { enumerable: true },
+ forEach: { enumerable: true },
+ [Symbol.toStringTag]: { value: "Headers", configurable: true },
+ [Symbol.iterator]: { value: Headers.prototype.entries, configurable: true, writable: true }
+ });
+ ctorRegistry[interfaceName] = Headers;
+
+ ctorRegistry["Headers Iterator"] = Object.create(ctorRegistry["%IteratorPrototype%"], {
+ [Symbol.toStringTag]: {
+ configurable: true,
+ value: "Headers Iterator"
+ }
+ });
+ utils.define(ctorRegistry["Headers Iterator"], {
+ next() {
+ const internal = this && this[utils.iterInternalSymbol];
+ if (!internal) {
+ throw new globalObject.TypeError("next() called on a value that is not a Headers iterator object");
+ }
+
+ const { target, kind, index } = internal;
+ const values = Array.from(target[implSymbol]);
+ const len = values.length;
+ if (index >= len) {
+ return newObjectInRealm(globalObject, { value: undefined, done: true });
+ }
+
+ const pair = values[index];
+ internal.index = index + 1;
+ return newObjectInRealm(globalObject, utils.iteratorResult(pair.map(utils.tryWrapperForImpl), kind));
+ }
+ });
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: Headers
+ });
+};
+
+const Impl = require("../fetch/Headers-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/History.js b/node_modules/jsdom/lib/jsdom/living/generated/History.js
new file mode 100644
index 0000000000000000000000000000000000000000..531d95aecf9c9fd553df5810183bc4e939bb24f4
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/History.js
@@ -0,0 +1,266 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "History";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'History'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["History"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class History {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ go() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'go' called on an object that is not a valid instance of History.");
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg !== undefined) {
+ curArg = conversions["long"](curArg, {
+ context: "Failed to execute 'go' on 'History': parameter 1",
+ globals: globalObject
+ });
+ } else {
+ curArg = 0;
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].go(...args);
+ }
+
+ back() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'back' called on an object that is not a valid instance of History.");
+ }
+
+ return esValue[implSymbol].back();
+ }
+
+ forward() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'forward' called on an object that is not a valid instance of History.");
+ }
+
+ return esValue[implSymbol].forward();
+ }
+
+ pushState(data, title) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'pushState' called on an object that is not a valid instance of History.");
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'pushState' on 'History': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["any"](curArg, {
+ context: "Failed to execute 'pushState' on 'History': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'pushState' on 'History': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ if (curArg !== undefined) {
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = conversions["USVString"](curArg, {
+ context: "Failed to execute 'pushState' on 'History': parameter 3",
+ globals: globalObject
+ });
+ }
+ } else {
+ curArg = null;
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].pushState(...args);
+ }
+
+ replaceState(data, title) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'replaceState' called on an object that is not a valid instance of History.");
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'replaceState' on 'History': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["any"](curArg, {
+ context: "Failed to execute 'replaceState' on 'History': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'replaceState' on 'History': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ if (curArg !== undefined) {
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = conversions["USVString"](curArg, {
+ context: "Failed to execute 'replaceState' on 'History': parameter 3",
+ globals: globalObject
+ });
+ }
+ } else {
+ curArg = null;
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].replaceState(...args);
+ }
+
+ get length() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get length' called on an object that is not a valid instance of History.");
+ }
+
+ return esValue[implSymbol]["length"];
+ }
+
+ get state() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get state' called on an object that is not a valid instance of History.");
+ }
+
+ return esValue[implSymbol]["state"];
+ }
+ }
+ Object.defineProperties(History.prototype, {
+ go: { enumerable: true },
+ back: { enumerable: true },
+ forward: { enumerable: true },
+ pushState: { enumerable: true },
+ replaceState: { enumerable: true },
+ length: { enumerable: true },
+ state: { enumerable: true },
+ [Symbol.toStringTag]: { value: "History", configurable: true }
+ });
+ ctorRegistry[interfaceName] = History;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: History
+ });
+};
+
+const Impl = require("../window/History-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/InputEvent.js b/node_modules/jsdom/lib/jsdom/living/generated/InputEvent.js
new file mode 100644
index 0000000000000000000000000000000000000000..f7b729e247b35bd0b41a26188fcfd7cc20257152
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/InputEvent.js
@@ -0,0 +1,168 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const InputEventInit = require("./InputEventInit.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const UIEvent = require("./UIEvent.js");
+
+const interfaceName = "InputEvent";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'InputEvent'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["InputEvent"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ UIEvent._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class InputEvent extends globalObject.UIEvent {
+ constructor(type) {
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to construct 'InputEvent': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to construct 'InputEvent': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = InputEventInit.convert(globalObject, curArg, {
+ context: "Failed to construct 'InputEvent': parameter 2"
+ });
+ args.push(curArg);
+ }
+ return exports.setup(Object.create(new.target.prototype), globalObject, args);
+ }
+
+ get data() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get data' called on an object that is not a valid instance of InputEvent.");
+ }
+
+ return esValue[implSymbol]["data"];
+ }
+
+ get isComposing() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get isComposing' called on an object that is not a valid instance of InputEvent."
+ );
+ }
+
+ return esValue[implSymbol]["isComposing"];
+ }
+
+ get inputType() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get inputType' called on an object that is not a valid instance of InputEvent."
+ );
+ }
+
+ return esValue[implSymbol]["inputType"];
+ }
+ }
+ Object.defineProperties(InputEvent.prototype, {
+ data: { enumerable: true },
+ isComposing: { enumerable: true },
+ inputType: { enumerable: true },
+ [Symbol.toStringTag]: { value: "InputEvent", configurable: true }
+ });
+ ctorRegistry[interfaceName] = InputEvent;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: InputEvent
+ });
+};
+
+const Impl = require("../events/InputEvent-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/InputEventInit.js b/node_modules/jsdom/lib/jsdom/living/generated/InputEventInit.js
new file mode 100644
index 0000000000000000000000000000000000000000..480be505b275cb7d21ac713f8be2a6bc6ff7041b
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/InputEventInit.js
@@ -0,0 +1,68 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const UIEventInit = require("./UIEventInit.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ UIEventInit._convertInherit(globalObject, obj, ret, { context });
+
+ {
+ const key = "data";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ if (value === null || value === undefined) {
+ value = null;
+ } else {
+ value = conversions["DOMString"](value, {
+ context: context + " has member 'data' that",
+ globals: globalObject
+ });
+ }
+ ret[key] = value;
+ } else {
+ ret[key] = null;
+ }
+ }
+
+ {
+ const key = "inputType";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["DOMString"](value, {
+ context: context + " has member 'inputType' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = "";
+ }
+ }
+
+ {
+ const key = "isComposing";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, {
+ context: context + " has member 'isComposing' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEvent.js b/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEvent.js
new file mode 100644
index 0000000000000000000000000000000000000000..ecfc9722dad7c809d9f081dda4b42129676a7f79
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEvent.js
@@ -0,0 +1,445 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const KeyboardEventInit = require("./KeyboardEventInit.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const UIEvent = require("./UIEvent.js");
+
+const interfaceName = "KeyboardEvent";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'KeyboardEvent'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["KeyboardEvent"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ UIEvent._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class KeyboardEvent extends globalObject.UIEvent {
+ constructor(type) {
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to construct 'KeyboardEvent': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to construct 'KeyboardEvent': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = KeyboardEventInit.convert(globalObject, curArg, {
+ context: "Failed to construct 'KeyboardEvent': parameter 2"
+ });
+ args.push(curArg);
+ }
+ return exports.setup(Object.create(new.target.prototype), globalObject, args);
+ }
+
+ getModifierState(keyArg) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'getModifierState' called on an object that is not a valid instance of KeyboardEvent."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'getModifierState' on 'KeyboardEvent': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'getModifierState' on 'KeyboardEvent': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].getModifierState(...args);
+ }
+
+ initKeyboardEvent(typeArg) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'initKeyboardEvent' called on an object that is not a valid instance of KeyboardEvent."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'initKeyboardEvent' on 'KeyboardEvent': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'initKeyboardEvent' on 'KeyboardEvent': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg !== undefined) {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'initKeyboardEvent' on 'KeyboardEvent': parameter 2",
+ globals: globalObject
+ });
+ } else {
+ curArg = false;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ if (curArg !== undefined) {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'initKeyboardEvent' on 'KeyboardEvent': parameter 3",
+ globals: globalObject
+ });
+ } else {
+ curArg = false;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[3];
+ if (curArg !== undefined) {
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = utils.tryImplForWrapper(curArg);
+ }
+ } else {
+ curArg = null;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[4];
+ if (curArg !== undefined) {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'initKeyboardEvent' on 'KeyboardEvent': parameter 5",
+ globals: globalObject
+ });
+ } else {
+ curArg = "";
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[5];
+ if (curArg !== undefined) {
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'initKeyboardEvent' on 'KeyboardEvent': parameter 6",
+ globals: globalObject
+ });
+ } else {
+ curArg = 0;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[6];
+ if (curArg !== undefined) {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'initKeyboardEvent' on 'KeyboardEvent': parameter 7",
+ globals: globalObject
+ });
+ } else {
+ curArg = false;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[7];
+ if (curArg !== undefined) {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'initKeyboardEvent' on 'KeyboardEvent': parameter 8",
+ globals: globalObject
+ });
+ } else {
+ curArg = false;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[8];
+ if (curArg !== undefined) {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'initKeyboardEvent' on 'KeyboardEvent': parameter 9",
+ globals: globalObject
+ });
+ } else {
+ curArg = false;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[9];
+ if (curArg !== undefined) {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'initKeyboardEvent' on 'KeyboardEvent': parameter 10",
+ globals: globalObject
+ });
+ } else {
+ curArg = false;
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].initKeyboardEvent(...args);
+ }
+
+ get key() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get key' called on an object that is not a valid instance of KeyboardEvent."
+ );
+ }
+
+ return esValue[implSymbol]["key"];
+ }
+
+ get code() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get code' called on an object that is not a valid instance of KeyboardEvent."
+ );
+ }
+
+ return esValue[implSymbol]["code"];
+ }
+
+ get location() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get location' called on an object that is not a valid instance of KeyboardEvent."
+ );
+ }
+
+ return esValue[implSymbol]["location"];
+ }
+
+ get ctrlKey() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ctrlKey' called on an object that is not a valid instance of KeyboardEvent."
+ );
+ }
+
+ return esValue[implSymbol]["ctrlKey"];
+ }
+
+ get shiftKey() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get shiftKey' called on an object that is not a valid instance of KeyboardEvent."
+ );
+ }
+
+ return esValue[implSymbol]["shiftKey"];
+ }
+
+ get altKey() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get altKey' called on an object that is not a valid instance of KeyboardEvent."
+ );
+ }
+
+ return esValue[implSymbol]["altKey"];
+ }
+
+ get metaKey() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get metaKey' called on an object that is not a valid instance of KeyboardEvent."
+ );
+ }
+
+ return esValue[implSymbol]["metaKey"];
+ }
+
+ get repeat() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get repeat' called on an object that is not a valid instance of KeyboardEvent."
+ );
+ }
+
+ return esValue[implSymbol]["repeat"];
+ }
+
+ get isComposing() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get isComposing' called on an object that is not a valid instance of KeyboardEvent."
+ );
+ }
+
+ return esValue[implSymbol]["isComposing"];
+ }
+
+ get charCode() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get charCode' called on an object that is not a valid instance of KeyboardEvent."
+ );
+ }
+
+ return esValue[implSymbol]["charCode"];
+ }
+
+ get keyCode() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get keyCode' called on an object that is not a valid instance of KeyboardEvent."
+ );
+ }
+
+ return esValue[implSymbol]["keyCode"];
+ }
+ }
+ Object.defineProperties(KeyboardEvent.prototype, {
+ getModifierState: { enumerable: true },
+ initKeyboardEvent: { enumerable: true },
+ key: { enumerable: true },
+ code: { enumerable: true },
+ location: { enumerable: true },
+ ctrlKey: { enumerable: true },
+ shiftKey: { enumerable: true },
+ altKey: { enumerable: true },
+ metaKey: { enumerable: true },
+ repeat: { enumerable: true },
+ isComposing: { enumerable: true },
+ charCode: { enumerable: true },
+ keyCode: { enumerable: true },
+ [Symbol.toStringTag]: { value: "KeyboardEvent", configurable: true },
+ DOM_KEY_LOCATION_STANDARD: { value: 0x00, enumerable: true },
+ DOM_KEY_LOCATION_LEFT: { value: 0x01, enumerable: true },
+ DOM_KEY_LOCATION_RIGHT: { value: 0x02, enumerable: true },
+ DOM_KEY_LOCATION_NUMPAD: { value: 0x03, enumerable: true }
+ });
+ Object.defineProperties(KeyboardEvent, {
+ DOM_KEY_LOCATION_STANDARD: { value: 0x00, enumerable: true },
+ DOM_KEY_LOCATION_LEFT: { value: 0x01, enumerable: true },
+ DOM_KEY_LOCATION_RIGHT: { value: 0x02, enumerable: true },
+ DOM_KEY_LOCATION_NUMPAD: { value: 0x03, enumerable: true }
+ });
+ ctorRegistry[interfaceName] = KeyboardEvent;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: KeyboardEvent
+ });
+};
+
+const Impl = require("../events/KeyboardEvent-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEventInit.js b/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEventInit.js
new file mode 100644
index 0000000000000000000000000000000000000000..9094ed37e148668674faf063c9ecca160cc1e2c5
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEventInit.js
@@ -0,0 +1,116 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const EventModifierInit = require("./EventModifierInit.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ EventModifierInit._convertInherit(globalObject, obj, ret, { context });
+
+ {
+ const key = "charCode";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["unsigned long"](value, {
+ context: context + " has member 'charCode' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = 0;
+ }
+ }
+
+ {
+ const key = "code";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["DOMString"](value, { context: context + " has member 'code' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = "";
+ }
+ }
+
+ {
+ const key = "isComposing";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, {
+ context: context + " has member 'isComposing' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+
+ {
+ const key = "key";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["DOMString"](value, { context: context + " has member 'key' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = "";
+ }
+ }
+
+ {
+ const key = "keyCode";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["unsigned long"](value, {
+ context: context + " has member 'keyCode' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = 0;
+ }
+ }
+
+ {
+ const key = "location";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["unsigned long"](value, {
+ context: context + " has member 'location' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = 0;
+ }
+ }
+
+ {
+ const key = "repeat";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, { context: context + " has member 'repeat' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/Location.js b/node_modules/jsdom/lib/jsdom/living/generated/Location.js
new file mode 100644
index 0000000000000000000000000000000000000000..03672a764a58a3903b726c35918c2f12db08323e
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/Location.js
@@ -0,0 +1,404 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "Location";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'Location'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["Location"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+function getUnforgeables(globalObject) {
+ let unforgeables = unforgeablesMap.get(globalObject);
+ if (unforgeables === undefined) {
+ unforgeables = Object.create(null);
+ utils.define(unforgeables, {
+ assign(url) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'assign' called on an object that is not a valid instance of Location.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'assign' on 'Location': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["USVString"](curArg, {
+ context: "Failed to execute 'assign' on 'Location': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].assign(...args);
+ },
+ replace(url) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'replace' called on an object that is not a valid instance of Location.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'replace' on 'Location': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["USVString"](curArg, {
+ context: "Failed to execute 'replace' on 'Location': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].replace(...args);
+ },
+ reload() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'reload' called on an object that is not a valid instance of Location.");
+ }
+
+ return esValue[implSymbol].reload();
+ },
+ get href() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get href' called on an object that is not a valid instance of Location.");
+ }
+
+ return esValue[implSymbol]["href"];
+ },
+ set href(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set href' called on an object that is not a valid instance of Location.");
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'href' property on 'Location': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["href"] = V;
+ },
+ toString() {
+ const esValue = this;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'toString' called on an object that is not a valid instance of Location.");
+ }
+
+ return esValue[implSymbol]["href"];
+ },
+ get origin() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get origin' called on an object that is not a valid instance of Location."
+ );
+ }
+
+ return esValue[implSymbol]["origin"];
+ },
+ get protocol() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get protocol' called on an object that is not a valid instance of Location."
+ );
+ }
+
+ return esValue[implSymbol]["protocol"];
+ },
+ set protocol(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set protocol' called on an object that is not a valid instance of Location."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'protocol' property on 'Location': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["protocol"] = V;
+ },
+ get host() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get host' called on an object that is not a valid instance of Location.");
+ }
+
+ return esValue[implSymbol]["host"];
+ },
+ set host(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set host' called on an object that is not a valid instance of Location.");
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'host' property on 'Location': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["host"] = V;
+ },
+ get hostname() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get hostname' called on an object that is not a valid instance of Location."
+ );
+ }
+
+ return esValue[implSymbol]["hostname"];
+ },
+ set hostname(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set hostname' called on an object that is not a valid instance of Location."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'hostname' property on 'Location': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["hostname"] = V;
+ },
+ get port() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get port' called on an object that is not a valid instance of Location.");
+ }
+
+ return esValue[implSymbol]["port"];
+ },
+ set port(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set port' called on an object that is not a valid instance of Location.");
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'port' property on 'Location': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["port"] = V;
+ },
+ get pathname() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get pathname' called on an object that is not a valid instance of Location."
+ );
+ }
+
+ return esValue[implSymbol]["pathname"];
+ },
+ set pathname(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set pathname' called on an object that is not a valid instance of Location."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'pathname' property on 'Location': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["pathname"] = V;
+ },
+ get search() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get search' called on an object that is not a valid instance of Location."
+ );
+ }
+
+ return esValue[implSymbol]["search"];
+ },
+ set search(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'set search' called on an object that is not a valid instance of Location."
+ );
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'search' property on 'Location': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["search"] = V;
+ },
+ get hash() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get hash' called on an object that is not a valid instance of Location.");
+ }
+
+ return esValue[implSymbol]["hash"];
+ },
+ set hash(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set hash' called on an object that is not a valid instance of Location.");
+ }
+
+ V = conversions["USVString"](V, {
+ context: "Failed to set the 'hash' property on 'Location': The provided value",
+ globals: globalObject
+ });
+
+ esValue[implSymbol]["hash"] = V;
+ }
+ });
+ Object.defineProperties(unforgeables, {
+ assign: { configurable: false, writable: false },
+ replace: { configurable: false, writable: false },
+ reload: { configurable: false, writable: false },
+ href: { configurable: false },
+ toString: { configurable: false, writable: false },
+ origin: { configurable: false },
+ protocol: { configurable: false },
+ host: { configurable: false },
+ hostname: { configurable: false },
+ port: { configurable: false },
+ pathname: { configurable: false },
+ search: { configurable: false },
+ hash: { configurable: false }
+ });
+ unforgeablesMap.set(globalObject, unforgeables);
+ }
+ return unforgeables;
+}
+
+exports._internalSetup = (wrapper, globalObject) => {
+ utils.define(wrapper, getUnforgeables(globalObject));
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const unforgeablesMap = new WeakMap();
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class Location {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+ }
+ Object.defineProperties(Location.prototype, { [Symbol.toStringTag]: { value: "Location", configurable: true } });
+ ctorRegistry[interfaceName] = Location;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: Location
+ });
+};
+
+const Impl = require("../window/Location-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/MessageEvent.js b/node_modules/jsdom/lib/jsdom/living/generated/MessageEvent.js
new file mode 100644
index 0000000000000000000000000000000000000000..01d796c03644aa1472181c5d15a0f1b578b40e7f
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/MessageEvent.js
@@ -0,0 +1,317 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const MessageEventInit = require("./MessageEventInit.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const Event = require("./Event.js");
+
+const interfaceName = "MessageEvent";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'MessageEvent'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["MessageEvent"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ Event._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker", "AudioWorklet"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class MessageEvent extends globalObject.Event {
+ constructor(type) {
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to construct 'MessageEvent': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to construct 'MessageEvent': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = MessageEventInit.convert(globalObject, curArg, {
+ context: "Failed to construct 'MessageEvent': parameter 2"
+ });
+ args.push(curArg);
+ }
+ return exports.setup(Object.create(new.target.prototype), globalObject, args);
+ }
+
+ initMessageEvent(type) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'initMessageEvent' called on an object that is not a valid instance of MessageEvent."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'initMessageEvent' on 'MessageEvent': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'initMessageEvent' on 'MessageEvent': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg !== undefined) {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'initMessageEvent' on 'MessageEvent': parameter 2",
+ globals: globalObject
+ });
+ } else {
+ curArg = false;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ if (curArg !== undefined) {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'initMessageEvent' on 'MessageEvent': parameter 3",
+ globals: globalObject
+ });
+ } else {
+ curArg = false;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[3];
+ if (curArg !== undefined) {
+ curArg = conversions["any"](curArg, {
+ context: "Failed to execute 'initMessageEvent' on 'MessageEvent': parameter 4",
+ globals: globalObject
+ });
+ } else {
+ curArg = null;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[4];
+ if (curArg !== undefined) {
+ curArg = conversions["USVString"](curArg, {
+ context: "Failed to execute 'initMessageEvent' on 'MessageEvent': parameter 5",
+ globals: globalObject
+ });
+ } else {
+ curArg = "";
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[5];
+ if (curArg !== undefined) {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'initMessageEvent' on 'MessageEvent': parameter 6",
+ globals: globalObject
+ });
+ } else {
+ curArg = "";
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[6];
+ if (curArg !== undefined) {
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = utils.tryImplForWrapper(curArg);
+ }
+ } else {
+ curArg = null;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[7];
+ if (curArg !== undefined) {
+ if (!utils.isObject(curArg)) {
+ throw new globalObject.TypeError(
+ "Failed to execute 'initMessageEvent' on 'MessageEvent': parameter 8" + " is not an iterable object."
+ );
+ } else {
+ const V = [];
+ const tmp = curArg;
+ for (let nextItem of tmp) {
+ nextItem = utils.tryImplForWrapper(nextItem);
+
+ V.push(nextItem);
+ }
+ curArg = V;
+ }
+ } else {
+ curArg = [];
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].initMessageEvent(...args);
+ }
+
+ get data() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get data' called on an object that is not a valid instance of MessageEvent."
+ );
+ }
+
+ return esValue[implSymbol]["data"];
+ }
+
+ get origin() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get origin' called on an object that is not a valid instance of MessageEvent."
+ );
+ }
+
+ return esValue[implSymbol]["origin"];
+ }
+
+ get lastEventId() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get lastEventId' called on an object that is not a valid instance of MessageEvent."
+ );
+ }
+
+ return esValue[implSymbol]["lastEventId"];
+ }
+
+ get source() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get source' called on an object that is not a valid instance of MessageEvent."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["source"]);
+ }
+
+ get ports() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ports' called on an object that is not a valid instance of MessageEvent."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ports"]);
+ }
+ }
+ Object.defineProperties(MessageEvent.prototype, {
+ initMessageEvent: { enumerable: true },
+ data: { enumerable: true },
+ origin: { enumerable: true },
+ lastEventId: { enumerable: true },
+ source: { enumerable: true },
+ ports: { enumerable: true },
+ [Symbol.toStringTag]: { value: "MessageEvent", configurable: true }
+ });
+ ctorRegistry[interfaceName] = MessageEvent;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: MessageEvent
+ });
+};
+
+const Impl = require("../events/MessageEvent-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/MessageEventInit.js b/node_modules/jsdom/lib/jsdom/living/generated/MessageEventInit.js
new file mode 100644
index 0000000000000000000000000000000000000000..0e84b4425bf53391e0e85b26c995b05fa9b540b1
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/MessageEventInit.js
@@ -0,0 +1,100 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const EventInit = require("./EventInit.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ EventInit._convertInherit(globalObject, obj, ret, { context });
+
+ {
+ const key = "data";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["any"](value, { context: context + " has member 'data' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = null;
+ }
+ }
+
+ {
+ const key = "lastEventId";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["DOMString"](value, {
+ context: context + " has member 'lastEventId' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = "";
+ }
+ }
+
+ {
+ const key = "origin";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["USVString"](value, {
+ context: context + " has member 'origin' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = "";
+ }
+ }
+
+ {
+ const key = "ports";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ if (!utils.isObject(value)) {
+ throw new globalObject.TypeError(context + " has member 'ports' that" + " is not an iterable object.");
+ } else {
+ const V = [];
+ const tmp = value;
+ for (let nextItem of tmp) {
+ nextItem = utils.tryImplForWrapper(nextItem);
+
+ V.push(nextItem);
+ }
+ value = V;
+ }
+
+ ret[key] = value;
+ } else {
+ ret[key] = [];
+ }
+ }
+
+ {
+ const key = "source";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ if (value === null || value === undefined) {
+ value = null;
+ } else {
+ value = utils.tryImplForWrapper(value);
+ }
+ ret[key] = value;
+ } else {
+ ret[key] = null;
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/MimeType.js b/node_modules/jsdom/lib/jsdom/living/generated/MimeType.js
new file mode 100644
index 0000000000000000000000000000000000000000..f61bae73ccf0caeb042fe91a9ce5f0eccec38838
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/MimeType.js
@@ -0,0 +1,156 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "MimeType";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'MimeType'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["MimeType"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class MimeType {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ get type() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get type' called on an object that is not a valid instance of MimeType.");
+ }
+
+ return esValue[implSymbol]["type"];
+ }
+
+ get description() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get description' called on an object that is not a valid instance of MimeType."
+ );
+ }
+
+ return esValue[implSymbol]["description"];
+ }
+
+ get suffixes() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get suffixes' called on an object that is not a valid instance of MimeType."
+ );
+ }
+
+ return esValue[implSymbol]["suffixes"];
+ }
+
+ get enabledPlugin() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get enabledPlugin' called on an object that is not a valid instance of MimeType."
+ );
+ }
+
+ return esValue[implSymbol]["enabledPlugin"];
+ }
+ }
+ Object.defineProperties(MimeType.prototype, {
+ type: { enumerable: true },
+ description: { enumerable: true },
+ suffixes: { enumerable: true },
+ enabledPlugin: { enumerable: true },
+ [Symbol.toStringTag]: { value: "MimeType", configurable: true }
+ });
+ ctorRegistry[interfaceName] = MimeType;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: MimeType
+ });
+};
+
+const Impl = require("../navigator/MimeType-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/MimeTypeArray.js b/node_modules/jsdom/lib/jsdom/living/generated/MimeTypeArray.js
new file mode 100644
index 0000000000000000000000000000000000000000..854a31db25e3047ac1431c1a133706334b6c4c51
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/MimeTypeArray.js
@@ -0,0 +1,326 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "MimeTypeArray";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'MimeTypeArray'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["MimeTypeArray"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+function makeProxy(wrapper, globalObject) {
+ let proxyHandler = proxyHandlerCache.get(globalObject);
+ if (proxyHandler === undefined) {
+ proxyHandler = new ProxyHandler(globalObject);
+ proxyHandlerCache.set(globalObject, proxyHandler);
+ }
+ return new Proxy(wrapper, proxyHandler);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper = makeProxy(wrapper, globalObject);
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ let wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper = makeProxy(wrapper, globalObject);
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class MimeTypeArray {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ item(index) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'item' called on an object that is not a valid instance of MimeTypeArray.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'item' on 'MimeTypeArray': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'item' on 'MimeTypeArray': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].item(...args);
+ }
+
+ namedItem(name) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'namedItem' called on an object that is not a valid instance of MimeTypeArray."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'namedItem' on 'MimeTypeArray': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'namedItem' on 'MimeTypeArray': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].namedItem(...args);
+ }
+
+ get length() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get length' called on an object that is not a valid instance of MimeTypeArray."
+ );
+ }
+
+ return esValue[implSymbol]["length"];
+ }
+ }
+ Object.defineProperties(MimeTypeArray.prototype, {
+ item: { enumerable: true },
+ namedItem: { enumerable: true },
+ length: { enumerable: true },
+ [Symbol.toStringTag]: { value: "MimeTypeArray", configurable: true },
+ [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true }
+ });
+ ctorRegistry[interfaceName] = MimeTypeArray;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: MimeTypeArray
+ });
+};
+
+const proxyHandlerCache = new WeakMap();
+class ProxyHandler {
+ constructor(globalObject) {
+ this._globalObject = globalObject;
+ }
+
+ get(target, P, receiver) {
+ if (typeof P === "symbol") {
+ return Reflect.get(target, P, receiver);
+ }
+ const desc = this.getOwnPropertyDescriptor(target, P);
+ if (desc === undefined) {
+ const parent = Object.getPrototypeOf(target);
+ if (parent === null) {
+ return undefined;
+ }
+ return Reflect.get(target, P, receiver);
+ }
+ if (!desc.get && !desc.set) {
+ return desc.value;
+ }
+ const getter = desc.get;
+ if (getter === undefined) {
+ return undefined;
+ }
+ return Reflect.apply(getter, receiver, []);
+ }
+
+ has(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.has(target, P);
+ }
+ const desc = this.getOwnPropertyDescriptor(target, P);
+ if (desc !== undefined) {
+ return true;
+ }
+ const parent = Object.getPrototypeOf(target);
+ if (parent !== null) {
+ return Reflect.has(parent, P);
+ }
+ return false;
+ }
+
+ ownKeys(target) {
+ const keys = new Set();
+
+ for (const key of target[implSymbol][utils.supportedPropertyIndices]) {
+ keys.add(`${key}`);
+ }
+
+ for (const key of Reflect.ownKeys(target)) {
+ keys.add(key);
+ }
+ return [...keys];
+ }
+
+ getOwnPropertyDescriptor(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.getOwnPropertyDescriptor(target, P);
+ }
+ let ignoreNamedProps = false;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ const indexedValue = target[implSymbol].item(index);
+ if (indexedValue !== null) {
+ return {
+ writable: false,
+ enumerable: true,
+ configurable: true,
+ value: utils.tryWrapperForImpl(indexedValue)
+ };
+ }
+ ignoreNamedProps = true;
+ }
+
+ return Reflect.getOwnPropertyDescriptor(target, P);
+ }
+
+ set(target, P, V, receiver) {
+ if (typeof P === "symbol") {
+ return Reflect.set(target, P, V, receiver);
+ }
+ // The `receiver` argument refers to the Proxy exotic object or an object
+ // that inherits from it, whereas `target` refers to the Proxy target:
+ if (target[implSymbol][utils.wrapperSymbol] === receiver) {
+ const globalObject = this._globalObject;
+ }
+ let ownDesc;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ const indexedValue = target[implSymbol].item(index);
+ if (indexedValue !== null) {
+ ownDesc = {
+ writable: false,
+ enumerable: true,
+ configurable: true,
+ value: utils.tryWrapperForImpl(indexedValue)
+ };
+ }
+ }
+
+ if (ownDesc === undefined) {
+ ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
+ }
+ return utils.ordinarySetWithOwnDescriptor(target, P, V, receiver, ownDesc);
+ }
+
+ defineProperty(target, P, desc) {
+ if (typeof P === "symbol") {
+ return Reflect.defineProperty(target, P, desc);
+ }
+
+ const globalObject = this._globalObject;
+
+ if (utils.isArrayIndexPropName(P)) {
+ return false;
+ }
+
+ return Reflect.defineProperty(target, P, desc);
+ }
+
+ deleteProperty(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.deleteProperty(target, P);
+ }
+
+ const globalObject = this._globalObject;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ return !(target[implSymbol].item(index) !== null);
+ }
+
+ return Reflect.deleteProperty(target, P);
+ }
+
+ preventExtensions() {
+ return false;
+ }
+}
+
+const Impl = require("../navigator/MimeTypeArray-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/MouseEvent.js b/node_modules/jsdom/lib/jsdom/living/generated/MouseEvent.js
new file mode 100644
index 0000000000000000000000000000000000000000..e2fa3b415fe4dbd60e5391e8e5c40a63f500a655
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/MouseEvent.js
@@ -0,0 +1,595 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const MouseEventInit = require("./MouseEventInit.js");
+const EventTarget = require("./EventTarget.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const UIEvent = require("./UIEvent.js");
+
+const interfaceName = "MouseEvent";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'MouseEvent'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["MouseEvent"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ UIEvent._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class MouseEvent extends globalObject.UIEvent {
+ constructor(type) {
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to construct 'MouseEvent': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to construct 'MouseEvent': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = MouseEventInit.convert(globalObject, curArg, {
+ context: "Failed to construct 'MouseEvent': parameter 2"
+ });
+ args.push(curArg);
+ }
+ return exports.setup(Object.create(new.target.prototype), globalObject, args);
+ }
+
+ getModifierState(keyArg) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'getModifierState' called on an object that is not a valid instance of MouseEvent."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'getModifierState' on 'MouseEvent': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'getModifierState' on 'MouseEvent': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].getModifierState(...args);
+ }
+
+ initMouseEvent(typeArg) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'initMouseEvent' called on an object that is not a valid instance of MouseEvent."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'initMouseEvent' on 'MouseEvent': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg !== undefined) {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 2",
+ globals: globalObject
+ });
+ } else {
+ curArg = false;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[2];
+ if (curArg !== undefined) {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 3",
+ globals: globalObject
+ });
+ } else {
+ curArg = false;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[3];
+ if (curArg !== undefined) {
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = utils.tryImplForWrapper(curArg);
+ }
+ } else {
+ curArg = null;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[4];
+ if (curArg !== undefined) {
+ curArg = conversions["long"](curArg, {
+ context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 5",
+ globals: globalObject
+ });
+ } else {
+ curArg = 0;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[5];
+ if (curArg !== undefined) {
+ curArg = conversions["long"](curArg, {
+ context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 6",
+ globals: globalObject
+ });
+ } else {
+ curArg = 0;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[6];
+ if (curArg !== undefined) {
+ curArg = conversions["long"](curArg, {
+ context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 7",
+ globals: globalObject
+ });
+ } else {
+ curArg = 0;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[7];
+ if (curArg !== undefined) {
+ curArg = conversions["long"](curArg, {
+ context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 8",
+ globals: globalObject
+ });
+ } else {
+ curArg = 0;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[8];
+ if (curArg !== undefined) {
+ curArg = conversions["long"](curArg, {
+ context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 9",
+ globals: globalObject
+ });
+ } else {
+ curArg = 0;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[9];
+ if (curArg !== undefined) {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 10",
+ globals: globalObject
+ });
+ } else {
+ curArg = 0;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[10];
+ if (curArg !== undefined) {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 11",
+ globals: globalObject
+ });
+ } else {
+ curArg = 0;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[11];
+ if (curArg !== undefined) {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 12",
+ globals: globalObject
+ });
+ } else {
+ curArg = 0;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[12];
+ if (curArg !== undefined) {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 13",
+ globals: globalObject
+ });
+ } else {
+ curArg = 0;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[13];
+ if (curArg !== undefined) {
+ curArg = conversions["short"](curArg, {
+ context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 14",
+ globals: globalObject
+ });
+ } else {
+ curArg = 0;
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[14];
+ if (curArg !== undefined) {
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = EventTarget.convert(globalObject, curArg, {
+ context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 15"
+ });
+ }
+ } else {
+ curArg = null;
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].initMouseEvent(...args);
+ }
+
+ get screenX() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get screenX' called on an object that is not a valid instance of MouseEvent."
+ );
+ }
+
+ return esValue[implSymbol]["screenX"];
+ }
+
+ get screenY() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get screenY' called on an object that is not a valid instance of MouseEvent."
+ );
+ }
+
+ return esValue[implSymbol]["screenY"];
+ }
+
+ get clientX() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get clientX' called on an object that is not a valid instance of MouseEvent."
+ );
+ }
+
+ return esValue[implSymbol]["clientX"];
+ }
+
+ get clientY() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get clientY' called on an object that is not a valid instance of MouseEvent."
+ );
+ }
+
+ return esValue[implSymbol]["clientY"];
+ }
+
+ get ctrlKey() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ctrlKey' called on an object that is not a valid instance of MouseEvent."
+ );
+ }
+
+ return esValue[implSymbol]["ctrlKey"];
+ }
+
+ get shiftKey() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get shiftKey' called on an object that is not a valid instance of MouseEvent."
+ );
+ }
+
+ return esValue[implSymbol]["shiftKey"];
+ }
+
+ get altKey() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get altKey' called on an object that is not a valid instance of MouseEvent."
+ );
+ }
+
+ return esValue[implSymbol]["altKey"];
+ }
+
+ get metaKey() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get metaKey' called on an object that is not a valid instance of MouseEvent."
+ );
+ }
+
+ return esValue[implSymbol]["metaKey"];
+ }
+
+ get button() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get button' called on an object that is not a valid instance of MouseEvent."
+ );
+ }
+
+ return esValue[implSymbol]["button"];
+ }
+
+ get buttons() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get buttons' called on an object that is not a valid instance of MouseEvent."
+ );
+ }
+
+ return esValue[implSymbol]["buttons"];
+ }
+
+ get relatedTarget() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get relatedTarget' called on an object that is not a valid instance of MouseEvent."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["relatedTarget"]);
+ }
+
+ get pageX() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get pageX' called on an object that is not a valid instance of MouseEvent.");
+ }
+
+ return esValue[implSymbol]["pageX"];
+ }
+
+ get pageY() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get pageY' called on an object that is not a valid instance of MouseEvent.");
+ }
+
+ return esValue[implSymbol]["pageY"];
+ }
+
+ get x() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get x' called on an object that is not a valid instance of MouseEvent.");
+ }
+
+ return esValue[implSymbol]["x"];
+ }
+
+ get y() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get y' called on an object that is not a valid instance of MouseEvent.");
+ }
+
+ return esValue[implSymbol]["y"];
+ }
+
+ get offsetX() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get offsetX' called on an object that is not a valid instance of MouseEvent."
+ );
+ }
+
+ return esValue[implSymbol]["offsetX"];
+ }
+
+ get offsetY() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get offsetY' called on an object that is not a valid instance of MouseEvent."
+ );
+ }
+
+ return esValue[implSymbol]["offsetY"];
+ }
+
+ get movementX() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get movementX' called on an object that is not a valid instance of MouseEvent."
+ );
+ }
+
+ return esValue[implSymbol]["movementX"];
+ }
+
+ get movementY() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get movementY' called on an object that is not a valid instance of MouseEvent."
+ );
+ }
+
+ return esValue[implSymbol]["movementY"];
+ }
+ }
+ Object.defineProperties(MouseEvent.prototype, {
+ getModifierState: { enumerable: true },
+ initMouseEvent: { enumerable: true },
+ screenX: { enumerable: true },
+ screenY: { enumerable: true },
+ clientX: { enumerable: true },
+ clientY: { enumerable: true },
+ ctrlKey: { enumerable: true },
+ shiftKey: { enumerable: true },
+ altKey: { enumerable: true },
+ metaKey: { enumerable: true },
+ button: { enumerable: true },
+ buttons: { enumerable: true },
+ relatedTarget: { enumerable: true },
+ pageX: { enumerable: true },
+ pageY: { enumerable: true },
+ x: { enumerable: true },
+ y: { enumerable: true },
+ offsetX: { enumerable: true },
+ offsetY: { enumerable: true },
+ movementX: { enumerable: true },
+ movementY: { enumerable: true },
+ [Symbol.toStringTag]: { value: "MouseEvent", configurable: true }
+ });
+ ctorRegistry[interfaceName] = MouseEvent;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: MouseEvent
+ });
+};
+
+const Impl = require("../events/MouseEvent-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/MouseEventInit.js b/node_modules/jsdom/lib/jsdom/living/generated/MouseEventInit.js
new file mode 100644
index 0000000000000000000000000000000000000000..50c06d2dc5d2f7bd411a788352f72977b4065462
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/MouseEventInit.js
@@ -0,0 +1,189 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const EventTarget = require("./EventTarget.js");
+const EventModifierInit = require("./EventModifierInit.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ EventModifierInit._convertInherit(globalObject, obj, ret, { context });
+
+ {
+ const key = "button";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["short"](value, { context: context + " has member 'button' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = 0;
+ }
+ }
+
+ {
+ const key = "buttons";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["unsigned short"](value, {
+ context: context + " has member 'buttons' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = 0;
+ }
+ }
+
+ {
+ const key = "clientX";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["long"](value, { context: context + " has member 'clientX' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = 0;
+ }
+ }
+
+ {
+ const key = "clientX";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["double"](value, { context: context + " has member 'clientX' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = 0.0;
+ }
+ }
+
+ {
+ const key = "clientY";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["long"](value, { context: context + " has member 'clientY' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = 0;
+ }
+ }
+
+ {
+ const key = "clientY";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["double"](value, { context: context + " has member 'clientY' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = 0.0;
+ }
+ }
+
+ {
+ const key = "movementX";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["double"](value, {
+ context: context + " has member 'movementX' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = 0;
+ }
+ }
+
+ {
+ const key = "movementY";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["double"](value, {
+ context: context + " has member 'movementY' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = 0;
+ }
+ }
+
+ {
+ const key = "relatedTarget";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ if (value === null || value === undefined) {
+ value = null;
+ } else {
+ value = EventTarget.convert(globalObject, value, { context: context + " has member 'relatedTarget' that" });
+ }
+ ret[key] = value;
+ } else {
+ ret[key] = null;
+ }
+ }
+
+ {
+ const key = "screenX";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["long"](value, { context: context + " has member 'screenX' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = 0;
+ }
+ }
+
+ {
+ const key = "screenX";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["double"](value, { context: context + " has member 'screenX' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = 0.0;
+ }
+ }
+
+ {
+ const key = "screenY";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["long"](value, { context: context + " has member 'screenY' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = 0;
+ }
+ }
+
+ {
+ const key = "screenY";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["double"](value, { context: context + " has member 'screenY' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = 0.0;
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/MutationCallback.js b/node_modules/jsdom/lib/jsdom/living/generated/MutationCallback.js
new file mode 100644
index 0000000000000000000000000000000000000000..dec585c44d400eee66111674bd62896ffd9832bc
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/MutationCallback.js
@@ -0,0 +1,34 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (typeof value !== "function") {
+ throw new globalObject.TypeError(context + " is not a function");
+ }
+
+ function invokeTheCallbackFunction(mutations, observer) {
+ const thisArg = utils.tryWrapperForImpl(this);
+ let callResult;
+
+ mutations = utils.tryWrapperForImpl(mutations);
+
+ observer = utils.tryWrapperForImpl(observer);
+
+ callResult = Reflect.apply(value, thisArg, [mutations, observer]);
+ }
+
+ invokeTheCallbackFunction.construct = (mutations, observer) => {
+ mutations = utils.tryWrapperForImpl(mutations);
+
+ observer = utils.tryWrapperForImpl(observer);
+
+ let callResult = Reflect.construct(value, [mutations, observer]);
+ };
+
+ invokeTheCallbackFunction[utils.wrapperSymbol] = value;
+ invokeTheCallbackFunction.objectReference = value;
+
+ return invokeTheCallbackFunction;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/MutationObserver.js b/node_modules/jsdom/lib/jsdom/living/generated/MutationObserver.js
new file mode 100644
index 0000000000000000000000000000000000000000..32de69e4315a24378a402e91ab3ba4a865a2afa4
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/MutationObserver.js
@@ -0,0 +1,178 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const MutationCallback = require("./MutationCallback.js");
+const Node = require("./Node.js");
+const MutationObserverInit = require("./MutationObserverInit.js");
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "MutationObserver";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'MutationObserver'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["MutationObserver"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class MutationObserver {
+ constructor(callback) {
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to construct 'MutationObserver': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = MutationCallback.convert(globalObject, curArg, {
+ context: "Failed to construct 'MutationObserver': parameter 1"
+ });
+ args.push(curArg);
+ }
+ return exports.setup(Object.create(new.target.prototype), globalObject, args);
+ }
+
+ observe(target) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'observe' called on an object that is not a valid instance of MutationObserver."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'observe' on 'MutationObserver': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = Node.convert(globalObject, curArg, {
+ context: "Failed to execute 'observe' on 'MutationObserver': parameter 1"
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = MutationObserverInit.convert(globalObject, curArg, {
+ context: "Failed to execute 'observe' on 'MutationObserver': parameter 2"
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].observe(...args);
+ }
+
+ disconnect() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'disconnect' called on an object that is not a valid instance of MutationObserver."
+ );
+ }
+
+ return esValue[implSymbol].disconnect();
+ }
+
+ takeRecords() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'takeRecords' called on an object that is not a valid instance of MutationObserver."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol].takeRecords());
+ }
+ }
+ Object.defineProperties(MutationObserver.prototype, {
+ observe: { enumerable: true },
+ disconnect: { enumerable: true },
+ takeRecords: { enumerable: true },
+ [Symbol.toStringTag]: { value: "MutationObserver", configurable: true }
+ });
+ ctorRegistry[interfaceName] = MutationObserver;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: MutationObserver
+ });
+};
+
+const Impl = require("../mutation-observer/MutationObserver-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/MutationObserverInit.js b/node_modules/jsdom/lib/jsdom/living/generated/MutationObserverInit.js
new file mode 100644
index 0000000000000000000000000000000000000000..7efca69e49d2af66ebfe0a17b4fa4dca88647aa7
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/MutationObserverInit.js
@@ -0,0 +1,121 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
+ {
+ const key = "attributeFilter";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ if (!utils.isObject(value)) {
+ throw new globalObject.TypeError(
+ context + " has member 'attributeFilter' that" + " is not an iterable object."
+ );
+ } else {
+ const V = [];
+ const tmp = value;
+ for (let nextItem of tmp) {
+ nextItem = conversions["DOMString"](nextItem, {
+ context: context + " has member 'attributeFilter' that" + "'s element",
+ globals: globalObject
+ });
+
+ V.push(nextItem);
+ }
+ value = V;
+ }
+
+ ret[key] = value;
+ }
+ }
+
+ {
+ const key = "attributeOldValue";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, {
+ context: context + " has member 'attributeOldValue' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ }
+ }
+
+ {
+ const key = "attributes";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, {
+ context: context + " has member 'attributes' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ }
+ }
+
+ {
+ const key = "characterData";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, {
+ context: context + " has member 'characterData' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ }
+ }
+
+ {
+ const key = "characterDataOldValue";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, {
+ context: context + " has member 'characterDataOldValue' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ }
+ }
+
+ {
+ const key = "childList";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, {
+ context: context + " has member 'childList' that",
+ globals: globalObject
+ });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+
+ {
+ const key = "subtree";
+ let value = obj === undefined || obj === null ? undefined : obj[key];
+ if (value !== undefined) {
+ value = conversions["boolean"](value, { context: context + " has member 'subtree' that", globals: globalObject });
+
+ ret[key] = value;
+ } else {
+ ret[key] = false;
+ }
+ }
+};
+
+exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
+ if (obj !== undefined && typeof obj !== "object" && typeof obj !== "function") {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ const ret = Object.create(null);
+ exports._convertInherit(globalObject, obj, ret, { context });
+ return ret;
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/MutationRecord.js b/node_modules/jsdom/lib/jsdom/living/generated/MutationRecord.js
new file mode 100644
index 0000000000000000000000000000000000000000..187608b2f3e8ed53a83d86b9d5b10bfe74f12019
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/MutationRecord.js
@@ -0,0 +1,229 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "MutationRecord";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'MutationRecord'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["MutationRecord"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class MutationRecord {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ get type() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get type' called on an object that is not a valid instance of MutationRecord."
+ );
+ }
+
+ return esValue[implSymbol]["type"];
+ }
+
+ get target() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get target' called on an object that is not a valid instance of MutationRecord."
+ );
+ }
+
+ return utils.getSameObject(this, "target", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["target"]);
+ });
+ }
+
+ get addedNodes() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get addedNodes' called on an object that is not a valid instance of MutationRecord."
+ );
+ }
+
+ return utils.getSameObject(this, "addedNodes", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["addedNodes"]);
+ });
+ }
+
+ get removedNodes() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get removedNodes' called on an object that is not a valid instance of MutationRecord."
+ );
+ }
+
+ return utils.getSameObject(this, "removedNodes", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["removedNodes"]);
+ });
+ }
+
+ get previousSibling() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get previousSibling' called on an object that is not a valid instance of MutationRecord."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["previousSibling"]);
+ }
+
+ get nextSibling() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get nextSibling' called on an object that is not a valid instance of MutationRecord."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["nextSibling"]);
+ }
+
+ get attributeName() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get attributeName' called on an object that is not a valid instance of MutationRecord."
+ );
+ }
+
+ return esValue[implSymbol]["attributeName"];
+ }
+
+ get attributeNamespace() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get attributeNamespace' called on an object that is not a valid instance of MutationRecord."
+ );
+ }
+
+ return esValue[implSymbol]["attributeNamespace"];
+ }
+
+ get oldValue() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get oldValue' called on an object that is not a valid instance of MutationRecord."
+ );
+ }
+
+ return esValue[implSymbol]["oldValue"];
+ }
+ }
+ Object.defineProperties(MutationRecord.prototype, {
+ type: { enumerable: true },
+ target: { enumerable: true },
+ addedNodes: { enumerable: true },
+ removedNodes: { enumerable: true },
+ previousSibling: { enumerable: true },
+ nextSibling: { enumerable: true },
+ attributeName: { enumerable: true },
+ attributeNamespace: { enumerable: true },
+ oldValue: { enumerable: true },
+ [Symbol.toStringTag]: { value: "MutationRecord", configurable: true }
+ });
+ ctorRegistry[interfaceName] = MutationRecord;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: MutationRecord
+ });
+};
+
+const Impl = require("../mutation-observer/MutationRecord-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/NamedNodeMap.js b/node_modules/jsdom/lib/jsdom/living/generated/NamedNodeMap.js
new file mode 100644
index 0000000000000000000000000000000000000000..2bbcda346f2a8225567bbca8c4e1f1f61157312c
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/NamedNodeMap.js
@@ -0,0 +1,527 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const Attr = require("./Attr.js");
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "NamedNodeMap";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'NamedNodeMap'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["NamedNodeMap"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+function makeProxy(wrapper, globalObject) {
+ let proxyHandler = proxyHandlerCache.get(globalObject);
+ if (proxyHandler === undefined) {
+ proxyHandler = new ProxyHandler(globalObject);
+ proxyHandlerCache.set(globalObject, proxyHandler);
+ }
+ return new Proxy(wrapper, proxyHandler);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper = makeProxy(wrapper, globalObject);
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ let wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper = makeProxy(wrapper, globalObject);
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class NamedNodeMap {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ item(index) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'item' called on an object that is not a valid instance of NamedNodeMap.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'item' on 'NamedNodeMap': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'item' on 'NamedNodeMap': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].item(...args));
+ }
+
+ getNamedItem(qualifiedName) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'getNamedItem' called on an object that is not a valid instance of NamedNodeMap."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'getNamedItem' on 'NamedNodeMap': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'getNamedItem' on 'NamedNodeMap': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].getNamedItem(...args));
+ }
+
+ getNamedItemNS(namespace, localName) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'getNamedItemNS' called on an object that is not a valid instance of NamedNodeMap."
+ );
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'getNamedItemNS' on 'NamedNodeMap': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'getNamedItemNS' on 'NamedNodeMap': parameter 1",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'getNamedItemNS' on 'NamedNodeMap': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].getNamedItemNS(...args));
+ }
+
+ setNamedItem(attr) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'setNamedItem' called on an object that is not a valid instance of NamedNodeMap."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'setNamedItem' on 'NamedNodeMap': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = Attr.convert(globalObject, curArg, {
+ context: "Failed to execute 'setNamedItem' on 'NamedNodeMap': parameter 1"
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return utils.tryWrapperForImpl(esValue[implSymbol].setNamedItem(...args));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ setNamedItemNS(attr) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'setNamedItemNS' called on an object that is not a valid instance of NamedNodeMap."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'setNamedItemNS' on 'NamedNodeMap': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = Attr.convert(globalObject, curArg, {
+ context: "Failed to execute 'setNamedItemNS' on 'NamedNodeMap': parameter 1"
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return utils.tryWrapperForImpl(esValue[implSymbol].setNamedItemNS(...args));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ removeNamedItem(qualifiedName) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'removeNamedItem' called on an object that is not a valid instance of NamedNodeMap."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'removeNamedItem' on 'NamedNodeMap': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'removeNamedItem' on 'NamedNodeMap': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return utils.tryWrapperForImpl(esValue[implSymbol].removeNamedItem(...args));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ removeNamedItemNS(namespace, localName) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'removeNamedItemNS' called on an object that is not a valid instance of NamedNodeMap."
+ );
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'removeNamedItemNS' on 'NamedNodeMap': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'removeNamedItemNS' on 'NamedNodeMap': parameter 1",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'removeNamedItemNS' on 'NamedNodeMap': parameter 2",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return utils.tryWrapperForImpl(esValue[implSymbol].removeNamedItemNS(...args));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get length() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get length' called on an object that is not a valid instance of NamedNodeMap."
+ );
+ }
+
+ return esValue[implSymbol]["length"];
+ }
+ }
+ Object.defineProperties(NamedNodeMap.prototype, {
+ item: { enumerable: true },
+ getNamedItem: { enumerable: true },
+ getNamedItemNS: { enumerable: true },
+ setNamedItem: { enumerable: true },
+ setNamedItemNS: { enumerable: true },
+ removeNamedItem: { enumerable: true },
+ removeNamedItemNS: { enumerable: true },
+ length: { enumerable: true },
+ [Symbol.toStringTag]: { value: "NamedNodeMap", configurable: true },
+ [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true }
+ });
+ ctorRegistry[interfaceName] = NamedNodeMap;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: NamedNodeMap
+ });
+};
+
+const proxyHandlerCache = new WeakMap();
+class ProxyHandler {
+ constructor(globalObject) {
+ this._globalObject = globalObject;
+ }
+
+ get(target, P, receiver) {
+ if (typeof P === "symbol") {
+ return Reflect.get(target, P, receiver);
+ }
+ const desc = this.getOwnPropertyDescriptor(target, P);
+ if (desc === undefined) {
+ const parent = Object.getPrototypeOf(target);
+ if (parent === null) {
+ return undefined;
+ }
+ return Reflect.get(target, P, receiver);
+ }
+ if (!desc.get && !desc.set) {
+ return desc.value;
+ }
+ const getter = desc.get;
+ if (getter === undefined) {
+ return undefined;
+ }
+ return Reflect.apply(getter, receiver, []);
+ }
+
+ has(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.has(target, P);
+ }
+ const desc = this.getOwnPropertyDescriptor(target, P);
+ if (desc !== undefined) {
+ return true;
+ }
+ const parent = Object.getPrototypeOf(target);
+ if (parent !== null) {
+ return Reflect.has(parent, P);
+ }
+ return false;
+ }
+
+ ownKeys(target) {
+ const keys = new Set();
+
+ for (const key of target[implSymbol][utils.supportedPropertyIndices]) {
+ keys.add(`${key}`);
+ }
+
+ for (const key of target[implSymbol][utils.supportedPropertyNames]) {
+ if (!(key in target)) {
+ keys.add(`${key}`);
+ }
+ }
+
+ for (const key of Reflect.ownKeys(target)) {
+ keys.add(key);
+ }
+ return [...keys];
+ }
+
+ getOwnPropertyDescriptor(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.getOwnPropertyDescriptor(target, P);
+ }
+ let ignoreNamedProps = false;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ const indexedValue = target[implSymbol].item(index);
+ if (indexedValue !== null) {
+ return {
+ writable: false,
+ enumerable: true,
+ configurable: true,
+ value: utils.tryWrapperForImpl(indexedValue)
+ };
+ }
+ ignoreNamedProps = true;
+ }
+
+ const namedValue = target[implSymbol].getNamedItem(P);
+
+ if (namedValue !== null && !(P in target) && !ignoreNamedProps) {
+ return {
+ writable: false,
+ enumerable: false,
+ configurable: true,
+ value: utils.tryWrapperForImpl(namedValue)
+ };
+ }
+
+ return Reflect.getOwnPropertyDescriptor(target, P);
+ }
+
+ set(target, P, V, receiver) {
+ if (typeof P === "symbol") {
+ return Reflect.set(target, P, V, receiver);
+ }
+ // The `receiver` argument refers to the Proxy exotic object or an object
+ // that inherits from it, whereas `target` refers to the Proxy target:
+ if (target[implSymbol][utils.wrapperSymbol] === receiver) {
+ const globalObject = this._globalObject;
+ }
+ let ownDesc;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ const indexedValue = target[implSymbol].item(index);
+ if (indexedValue !== null) {
+ ownDesc = {
+ writable: false,
+ enumerable: true,
+ configurable: true,
+ value: utils.tryWrapperForImpl(indexedValue)
+ };
+ }
+ }
+
+ if (ownDesc === undefined) {
+ ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
+ }
+ return utils.ordinarySetWithOwnDescriptor(target, P, V, receiver, ownDesc);
+ }
+
+ defineProperty(target, P, desc) {
+ if (typeof P === "symbol") {
+ return Reflect.defineProperty(target, P, desc);
+ }
+
+ const globalObject = this._globalObject;
+
+ if (utils.isArrayIndexPropName(P)) {
+ return false;
+ }
+ if (!Object.hasOwn(target, P)) {
+ const creating = !(target[implSymbol].getNamedItem(P) !== null);
+ if (!creating) {
+ return false;
+ }
+ }
+ return Reflect.defineProperty(target, P, desc);
+ }
+
+ deleteProperty(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.deleteProperty(target, P);
+ }
+
+ const globalObject = this._globalObject;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ return !(target[implSymbol].item(index) !== null);
+ }
+
+ if (target[implSymbol].getNamedItem(P) !== null && !(P in target)) {
+ return false;
+ }
+
+ return Reflect.deleteProperty(target, P);
+ }
+
+ preventExtensions() {
+ return false;
+ }
+}
+
+const Impl = require("../attributes/NamedNodeMap-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/Navigator.js b/node_modules/jsdom/lib/jsdom/living/generated/Navigator.js
new file mode 100644
index 0000000000000000000000000000000000000000..35896a649dfa4af1021fb5b663223421823be4b7
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/Navigator.js
@@ -0,0 +1,326 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "Navigator";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'Navigator'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["Navigator"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class Navigator {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ javaEnabled() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'javaEnabled' called on an object that is not a valid instance of Navigator."
+ );
+ }
+
+ return esValue[implSymbol].javaEnabled();
+ }
+
+ get appCodeName() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get appCodeName' called on an object that is not a valid instance of Navigator."
+ );
+ }
+
+ return esValue[implSymbol]["appCodeName"];
+ }
+
+ get appName() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get appName' called on an object that is not a valid instance of Navigator."
+ );
+ }
+
+ return esValue[implSymbol]["appName"];
+ }
+
+ get appVersion() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get appVersion' called on an object that is not a valid instance of Navigator."
+ );
+ }
+
+ return esValue[implSymbol]["appVersion"];
+ }
+
+ get platform() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get platform' called on an object that is not a valid instance of Navigator."
+ );
+ }
+
+ return esValue[implSymbol]["platform"];
+ }
+
+ get product() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get product' called on an object that is not a valid instance of Navigator."
+ );
+ }
+
+ return esValue[implSymbol]["product"];
+ }
+
+ get productSub() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get productSub' called on an object that is not a valid instance of Navigator."
+ );
+ }
+
+ return esValue[implSymbol]["productSub"];
+ }
+
+ get userAgent() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get userAgent' called on an object that is not a valid instance of Navigator."
+ );
+ }
+
+ return esValue[implSymbol]["userAgent"];
+ }
+
+ get vendor() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get vendor' called on an object that is not a valid instance of Navigator.");
+ }
+
+ return esValue[implSymbol]["vendor"];
+ }
+
+ get vendorSub() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get vendorSub' called on an object that is not a valid instance of Navigator."
+ );
+ }
+
+ return esValue[implSymbol]["vendorSub"];
+ }
+
+ get language() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get language' called on an object that is not a valid instance of Navigator."
+ );
+ }
+
+ return esValue[implSymbol]["language"];
+ }
+
+ get languages() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get languages' called on an object that is not a valid instance of Navigator."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["languages"]);
+ }
+
+ get onLine() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get onLine' called on an object that is not a valid instance of Navigator.");
+ }
+
+ return esValue[implSymbol]["onLine"];
+ }
+
+ get cookieEnabled() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get cookieEnabled' called on an object that is not a valid instance of Navigator."
+ );
+ }
+
+ return esValue[implSymbol]["cookieEnabled"];
+ }
+
+ get plugins() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get plugins' called on an object that is not a valid instance of Navigator."
+ );
+ }
+
+ return utils.getSameObject(this, "plugins", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["plugins"]);
+ });
+ }
+
+ get mimeTypes() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get mimeTypes' called on an object that is not a valid instance of Navigator."
+ );
+ }
+
+ return utils.getSameObject(this, "mimeTypes", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["mimeTypes"]);
+ });
+ }
+
+ get hardwareConcurrency() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get hardwareConcurrency' called on an object that is not a valid instance of Navigator."
+ );
+ }
+
+ return esValue[implSymbol]["hardwareConcurrency"];
+ }
+ }
+ Object.defineProperties(Navigator.prototype, {
+ javaEnabled: { enumerable: true },
+ appCodeName: { enumerable: true },
+ appName: { enumerable: true },
+ appVersion: { enumerable: true },
+ platform: { enumerable: true },
+ product: { enumerable: true },
+ productSub: { enumerable: true },
+ userAgent: { enumerable: true },
+ vendor: { enumerable: true },
+ vendorSub: { enumerable: true },
+ language: { enumerable: true },
+ languages: { enumerable: true },
+ onLine: { enumerable: true },
+ cookieEnabled: { enumerable: true },
+ plugins: { enumerable: true },
+ mimeTypes: { enumerable: true },
+ hardwareConcurrency: { enumerable: true },
+ [Symbol.toStringTag]: { value: "Navigator", configurable: true }
+ });
+ ctorRegistry[interfaceName] = Navigator;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: Navigator
+ });
+};
+
+const Impl = require("../navigator/Navigator-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/Node.js b/node_modules/jsdom/lib/jsdom/living/generated/Node.js
new file mode 100644
index 0000000000000000000000000000000000000000..f2c3e41cdcdfb34cac819fa32a1c7c35b76564b0
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/Node.js
@@ -0,0 +1,763 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const GetRootNodeOptions = require("./GetRootNodeOptions.js");
+const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
+const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+const EventTarget = require("./EventTarget.js");
+
+const interfaceName = "Node";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'Node'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["Node"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+ EventTarget._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class Node extends globalObject.EventTarget {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ getRootNode() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'getRootNode' called on an object that is not a valid instance of Node.");
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = GetRootNodeOptions.convert(globalObject, curArg, {
+ context: "Failed to execute 'getRootNode' on 'Node': parameter 1"
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].getRootNode(...args));
+ }
+
+ hasChildNodes() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'hasChildNodes' called on an object that is not a valid instance of Node.");
+ }
+
+ return esValue[implSymbol].hasChildNodes();
+ }
+
+ normalize() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'normalize' called on an object that is not a valid instance of Node.");
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol].normalize();
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ cloneNode() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'cloneNode' called on an object that is not a valid instance of Node.");
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg !== undefined) {
+ curArg = conversions["boolean"](curArg, {
+ context: "Failed to execute 'cloneNode' on 'Node': parameter 1",
+ globals: globalObject
+ });
+ } else {
+ curArg = false;
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return utils.tryWrapperForImpl(esValue[implSymbol].cloneNode(...args));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ isEqualNode(otherNode) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'isEqualNode' called on an object that is not a valid instance of Node.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'isEqualNode' on 'Node': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = exports.convert(globalObject, curArg, {
+ context: "Failed to execute 'isEqualNode' on 'Node': parameter 1"
+ });
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].isEqualNode(...args);
+ }
+
+ isSameNode(otherNode) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'isSameNode' called on an object that is not a valid instance of Node.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'isSameNode' on 'Node': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = exports.convert(globalObject, curArg, {
+ context: "Failed to execute 'isSameNode' on 'Node': parameter 1"
+ });
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].isSameNode(...args);
+ }
+
+ compareDocumentPosition(other) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'compareDocumentPosition' called on an object that is not a valid instance of Node."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'compareDocumentPosition' on 'Node': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = exports.convert(globalObject, curArg, {
+ context: "Failed to execute 'compareDocumentPosition' on 'Node': parameter 1"
+ });
+ args.push(curArg);
+ }
+ return esValue[implSymbol].compareDocumentPosition(...args);
+ }
+
+ contains(other) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'contains' called on an object that is not a valid instance of Node.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'contains' on 'Node': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = exports.convert(globalObject, curArg, {
+ context: "Failed to execute 'contains' on 'Node': parameter 1"
+ });
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].contains(...args);
+ }
+
+ lookupPrefix(namespace) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'lookupPrefix' called on an object that is not a valid instance of Node.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'lookupPrefix' on 'Node': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'lookupPrefix' on 'Node': parameter 1",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].lookupPrefix(...args);
+ }
+
+ lookupNamespaceURI(prefix) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'lookupNamespaceURI' called on an object that is not a valid instance of Node."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'lookupNamespaceURI' on 'Node': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'lookupNamespaceURI' on 'Node': parameter 1",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].lookupNamespaceURI(...args);
+ }
+
+ isDefaultNamespace(namespace) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'isDefaultNamespace' called on an object that is not a valid instance of Node."
+ );
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'isDefaultNamespace' on 'Node': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = conversions["DOMString"](curArg, {
+ context: "Failed to execute 'isDefaultNamespace' on 'Node': parameter 1",
+ globals: globalObject
+ });
+ }
+ args.push(curArg);
+ }
+ return esValue[implSymbol].isDefaultNamespace(...args);
+ }
+
+ insertBefore(node, child) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'insertBefore' called on an object that is not a valid instance of Node.");
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'insertBefore' on 'Node': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = exports.convert(globalObject, curArg, {
+ context: "Failed to execute 'insertBefore' on 'Node': parameter 1"
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ if (curArg === null || curArg === undefined) {
+ curArg = null;
+ } else {
+ curArg = exports.convert(globalObject, curArg, {
+ context: "Failed to execute 'insertBefore' on 'Node': parameter 2"
+ });
+ }
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return utils.tryWrapperForImpl(esValue[implSymbol].insertBefore(...args));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ appendChild(node) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'appendChild' called on an object that is not a valid instance of Node.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'appendChild' on 'Node': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = exports.convert(globalObject, curArg, {
+ context: "Failed to execute 'appendChild' on 'Node': parameter 1"
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return utils.tryWrapperForImpl(esValue[implSymbol].appendChild(...args));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ replaceChild(node, child) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'replaceChild' called on an object that is not a valid instance of Node.");
+ }
+
+ if (arguments.length < 2) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'replaceChild' on 'Node': 2 arguments required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = exports.convert(globalObject, curArg, {
+ context: "Failed to execute 'replaceChild' on 'Node': parameter 1"
+ });
+ args.push(curArg);
+ }
+ {
+ let curArg = arguments[1];
+ curArg = exports.convert(globalObject, curArg, {
+ context: "Failed to execute 'replaceChild' on 'Node': parameter 2"
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return utils.tryWrapperForImpl(esValue[implSymbol].replaceChild(...args));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ removeChild(child) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'removeChild' called on an object that is not a valid instance of Node.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'removeChild' on 'Node': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = exports.convert(globalObject, curArg, {
+ context: "Failed to execute 'removeChild' on 'Node': parameter 1"
+ });
+ args.push(curArg);
+ }
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return utils.tryWrapperForImpl(esValue[implSymbol].removeChild(...args));
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get nodeType() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get nodeType' called on an object that is not a valid instance of Node.");
+ }
+
+ return esValue[implSymbol]["nodeType"];
+ }
+
+ get nodeName() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get nodeName' called on an object that is not a valid instance of Node.");
+ }
+
+ return esValue[implSymbol]["nodeName"];
+ }
+
+ get baseURI() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get baseURI' called on an object that is not a valid instance of Node.");
+ }
+
+ return esValue[implSymbol]["baseURI"];
+ }
+
+ get isConnected() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get isConnected' called on an object that is not a valid instance of Node.");
+ }
+
+ return esValue[implSymbol]["isConnected"];
+ }
+
+ get ownerDocument() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get ownerDocument' called on an object that is not a valid instance of Node."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["ownerDocument"]);
+ }
+
+ get parentNode() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get parentNode' called on an object that is not a valid instance of Node.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["parentNode"]);
+ }
+
+ get parentElement() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get parentElement' called on an object that is not a valid instance of Node."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["parentElement"]);
+ }
+
+ get childNodes() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get childNodes' called on an object that is not a valid instance of Node.");
+ }
+
+ return utils.getSameObject(this, "childNodes", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["childNodes"]);
+ });
+ }
+
+ get firstChild() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get firstChild' called on an object that is not a valid instance of Node.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["firstChild"]);
+ }
+
+ get lastChild() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get lastChild' called on an object that is not a valid instance of Node.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["lastChild"]);
+ }
+
+ get previousSibling() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get previousSibling' called on an object that is not a valid instance of Node."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["previousSibling"]);
+ }
+
+ get nextSibling() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get nextSibling' called on an object that is not a valid instance of Node.");
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["nextSibling"]);
+ }
+
+ get nodeValue() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get nodeValue' called on an object that is not a valid instance of Node.");
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["nodeValue"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set nodeValue(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set nodeValue' called on an object that is not a valid instance of Node.");
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'nodeValue' property on 'Node': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["nodeValue"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ get textContent() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get textContent' called on an object that is not a valid instance of Node.");
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ return esValue[implSymbol]["textContent"];
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+
+ set textContent(V) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'set textContent' called on an object that is not a valid instance of Node.");
+ }
+
+ if (V === null || V === undefined) {
+ V = null;
+ } else {
+ V = conversions["DOMString"](V, {
+ context: "Failed to set the 'textContent' property on 'Node': The provided value",
+ globals: globalObject
+ });
+ }
+
+ ceReactionsPreSteps_helpers_custom_elements(globalObject);
+ try {
+ esValue[implSymbol]["textContent"] = V;
+ } finally {
+ ceReactionsPostSteps_helpers_custom_elements(globalObject);
+ }
+ }
+ }
+ Object.defineProperties(Node.prototype, {
+ getRootNode: { enumerable: true },
+ hasChildNodes: { enumerable: true },
+ normalize: { enumerable: true },
+ cloneNode: { enumerable: true },
+ isEqualNode: { enumerable: true },
+ isSameNode: { enumerable: true },
+ compareDocumentPosition: { enumerable: true },
+ contains: { enumerable: true },
+ lookupPrefix: { enumerable: true },
+ lookupNamespaceURI: { enumerable: true },
+ isDefaultNamespace: { enumerable: true },
+ insertBefore: { enumerable: true },
+ appendChild: { enumerable: true },
+ replaceChild: { enumerable: true },
+ removeChild: { enumerable: true },
+ nodeType: { enumerable: true },
+ nodeName: { enumerable: true },
+ baseURI: { enumerable: true },
+ isConnected: { enumerable: true },
+ ownerDocument: { enumerable: true },
+ parentNode: { enumerable: true },
+ parentElement: { enumerable: true },
+ childNodes: { enumerable: true },
+ firstChild: { enumerable: true },
+ lastChild: { enumerable: true },
+ previousSibling: { enumerable: true },
+ nextSibling: { enumerable: true },
+ nodeValue: { enumerable: true },
+ textContent: { enumerable: true },
+ [Symbol.toStringTag]: { value: "Node", configurable: true },
+ ELEMENT_NODE: { value: 1, enumerable: true },
+ ATTRIBUTE_NODE: { value: 2, enumerable: true },
+ TEXT_NODE: { value: 3, enumerable: true },
+ CDATA_SECTION_NODE: { value: 4, enumerable: true },
+ ENTITY_REFERENCE_NODE: { value: 5, enumerable: true },
+ ENTITY_NODE: { value: 6, enumerable: true },
+ PROCESSING_INSTRUCTION_NODE: { value: 7, enumerable: true },
+ COMMENT_NODE: { value: 8, enumerable: true },
+ DOCUMENT_NODE: { value: 9, enumerable: true },
+ DOCUMENT_TYPE_NODE: { value: 10, enumerable: true },
+ DOCUMENT_FRAGMENT_NODE: { value: 11, enumerable: true },
+ NOTATION_NODE: { value: 12, enumerable: true },
+ DOCUMENT_POSITION_DISCONNECTED: { value: 0x01, enumerable: true },
+ DOCUMENT_POSITION_PRECEDING: { value: 0x02, enumerable: true },
+ DOCUMENT_POSITION_FOLLOWING: { value: 0x04, enumerable: true },
+ DOCUMENT_POSITION_CONTAINS: { value: 0x08, enumerable: true },
+ DOCUMENT_POSITION_CONTAINED_BY: { value: 0x10, enumerable: true },
+ DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { value: 0x20, enumerable: true }
+ });
+ Object.defineProperties(Node, {
+ ELEMENT_NODE: { value: 1, enumerable: true },
+ ATTRIBUTE_NODE: { value: 2, enumerable: true },
+ TEXT_NODE: { value: 3, enumerable: true },
+ CDATA_SECTION_NODE: { value: 4, enumerable: true },
+ ENTITY_REFERENCE_NODE: { value: 5, enumerable: true },
+ ENTITY_NODE: { value: 6, enumerable: true },
+ PROCESSING_INSTRUCTION_NODE: { value: 7, enumerable: true },
+ COMMENT_NODE: { value: 8, enumerable: true },
+ DOCUMENT_NODE: { value: 9, enumerable: true },
+ DOCUMENT_TYPE_NODE: { value: 10, enumerable: true },
+ DOCUMENT_FRAGMENT_NODE: { value: 11, enumerable: true },
+ NOTATION_NODE: { value: 12, enumerable: true },
+ DOCUMENT_POSITION_DISCONNECTED: { value: 0x01, enumerable: true },
+ DOCUMENT_POSITION_PRECEDING: { value: 0x02, enumerable: true },
+ DOCUMENT_POSITION_FOLLOWING: { value: 0x04, enumerable: true },
+ DOCUMENT_POSITION_CONTAINS: { value: 0x08, enumerable: true },
+ DOCUMENT_POSITION_CONTAINED_BY: { value: 0x10, enumerable: true },
+ DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { value: 0x20, enumerable: true }
+ });
+ ctorRegistry[interfaceName] = Node;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: Node
+ });
+};
+
+const Impl = require("../nodes/Node-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/NodeFilter.js b/node_modules/jsdom/lib/jsdom/living/generated/NodeFilter.js
new file mode 100644
index 0000000000000000000000000000000000000000..e7c28407cc63f55796f9a6a027598eab5bfee97c
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/NodeFilter.js
@@ -0,0 +1,75 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (!utils.isObject(value)) {
+ throw new globalObject.TypeError(`${context} is not an object.`);
+ }
+
+ function callTheUserObjectsOperation(node) {
+ let thisArg = utils.tryWrapperForImpl(this);
+ let O = value;
+ let X = O;
+
+ if (typeof O !== "function") {
+ X = O["acceptNode"];
+ if (typeof X !== "function") {
+ throw new globalObject.TypeError(`${context} does not correctly implement NodeFilter.`);
+ }
+ thisArg = O;
+ }
+
+ node = utils.tryWrapperForImpl(node);
+
+ let callResult = Reflect.apply(X, thisArg, [node]);
+
+ callResult = conversions["unsigned short"](callResult, { context: context, globals: globalObject });
+
+ return callResult;
+ }
+
+ callTheUserObjectsOperation[utils.wrapperSymbol] = value;
+ callTheUserObjectsOperation.objectReference = value;
+
+ return callTheUserObjectsOperation;
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ const NodeFilter = () => {
+ throw new globalObject.TypeError("Illegal invocation");
+ };
+
+ Object.defineProperties(NodeFilter, {
+ FILTER_ACCEPT: { value: 1, enumerable: true },
+ FILTER_REJECT: { value: 2, enumerable: true },
+ FILTER_SKIP: { value: 3, enumerable: true },
+ SHOW_ALL: { value: 0xffffffff, enumerable: true },
+ SHOW_ELEMENT: { value: 0x1, enumerable: true },
+ SHOW_ATTRIBUTE: { value: 0x2, enumerable: true },
+ SHOW_TEXT: { value: 0x4, enumerable: true },
+ SHOW_CDATA_SECTION: { value: 0x8, enumerable: true },
+ SHOW_ENTITY_REFERENCE: { value: 0x10, enumerable: true },
+ SHOW_ENTITY: { value: 0x20, enumerable: true },
+ SHOW_PROCESSING_INSTRUCTION: { value: 0x40, enumerable: true },
+ SHOW_COMMENT: { value: 0x80, enumerable: true },
+ SHOW_DOCUMENT: { value: 0x100, enumerable: true },
+ SHOW_DOCUMENT_TYPE: { value: 0x200, enumerable: true },
+ SHOW_DOCUMENT_FRAGMENT: { value: 0x400, enumerable: true },
+ SHOW_NOTATION: { value: 0x800, enumerable: true }
+ });
+
+ Object.defineProperty(globalObject, "NodeFilter", {
+ configurable: true,
+ writable: true,
+ value: NodeFilter
+ });
+};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/NodeIterator.js b/node_modules/jsdom/lib/jsdom/living/generated/NodeIterator.js
new file mode 100644
index 0000000000000000000000000000000000000000..7cae0bfff9bd9e3c66144ad9b20ea38bca158133
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/NodeIterator.js
@@ -0,0 +1,207 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "NodeIterator";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'NodeIterator'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["NodeIterator"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ const wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class NodeIterator {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ nextNode() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'nextNode' called on an object that is not a valid instance of NodeIterator."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol].nextNode());
+ }
+
+ previousNode() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'previousNode' called on an object that is not a valid instance of NodeIterator."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol].previousNode());
+ }
+
+ detach() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'detach' called on an object that is not a valid instance of NodeIterator.");
+ }
+
+ return esValue[implSymbol].detach();
+ }
+
+ get root() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get root' called on an object that is not a valid instance of NodeIterator."
+ );
+ }
+
+ return utils.getSameObject(this, "root", () => {
+ return utils.tryWrapperForImpl(esValue[implSymbol]["root"]);
+ });
+ }
+
+ get referenceNode() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get referenceNode' called on an object that is not a valid instance of NodeIterator."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["referenceNode"]);
+ }
+
+ get pointerBeforeReferenceNode() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get pointerBeforeReferenceNode' called on an object that is not a valid instance of NodeIterator."
+ );
+ }
+
+ return esValue[implSymbol]["pointerBeforeReferenceNode"];
+ }
+
+ get whatToShow() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get whatToShow' called on an object that is not a valid instance of NodeIterator."
+ );
+ }
+
+ return esValue[implSymbol]["whatToShow"];
+ }
+
+ get filter() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError(
+ "'get filter' called on an object that is not a valid instance of NodeIterator."
+ );
+ }
+
+ return utils.tryWrapperForImpl(esValue[implSymbol]["filter"]);
+ }
+ }
+ Object.defineProperties(NodeIterator.prototype, {
+ nextNode: { enumerable: true },
+ previousNode: { enumerable: true },
+ detach: { enumerable: true },
+ root: { enumerable: true },
+ referenceNode: { enumerable: true },
+ pointerBeforeReferenceNode: { enumerable: true },
+ whatToShow: { enumerable: true },
+ filter: { enumerable: true },
+ [Symbol.toStringTag]: { value: "NodeIterator", configurable: true }
+ });
+ ctorRegistry[interfaceName] = NodeIterator;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: NodeIterator
+ });
+};
+
+const Impl = require("../traversal/NodeIterator-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/NodeList.js b/node_modules/jsdom/lib/jsdom/living/generated/NodeList.js
new file mode 100644
index 0000000000000000000000000000000000000000..57e864de7e0c4b539c9132b449228978b9ff7d5a
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/NodeList.js
@@ -0,0 +1,302 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+const implSymbol = utils.implSymbol;
+const ctorRegistrySymbol = utils.ctorRegistrySymbol;
+
+const interfaceName = "NodeList";
+
+exports.is = value => {
+ return utils.isObject(value) && Object.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
+};
+exports.isImpl = value => {
+ return utils.isObject(value) && value instanceof Impl.implementation;
+};
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ if (exports.is(value)) {
+ return utils.implForWrapper(value);
+ }
+ throw new globalObject.TypeError(`${context} is not of type 'NodeList'.`);
+};
+
+function makeWrapper(globalObject, newTarget) {
+ let proto;
+ if (newTarget !== undefined) {
+ proto = newTarget.prototype;
+ }
+
+ if (!utils.isObject(proto)) {
+ proto = globalObject[ctorRegistrySymbol]["NodeList"].prototype;
+ }
+
+ return Object.create(proto);
+}
+
+function makeProxy(wrapper, globalObject) {
+ let proxyHandler = proxyHandlerCache.get(globalObject);
+ if (proxyHandler === undefined) {
+ proxyHandler = new ProxyHandler(globalObject);
+ proxyHandlerCache.set(globalObject, proxyHandler);
+ }
+ return new Proxy(wrapper, proxyHandler);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+ const wrapper = makeWrapper(globalObject);
+ return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+ const wrapper = exports.create(globalObject, constructorArgs, privateData);
+ return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+ privateData.wrapper = wrapper;
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: new Impl.implementation(globalObject, constructorArgs, privateData),
+ configurable: true
+ });
+
+ wrapper = makeProxy(wrapper, globalObject);
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper;
+};
+
+exports.new = (globalObject, newTarget) => {
+ let wrapper = makeWrapper(globalObject, newTarget);
+
+ exports._internalSetup(wrapper, globalObject);
+ Object.defineProperty(wrapper, implSymbol, {
+ value: Object.create(Impl.implementation.prototype),
+ configurable: true
+ });
+
+ wrapper = makeProxy(wrapper, globalObject);
+
+ wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+ if (Impl.init) {
+ Impl.init(wrapper[implSymbol]);
+ }
+ return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+ if (!globalNames.some(globalName => exposed.has(globalName))) {
+ return;
+ }
+
+ const ctorRegistry = utils.initCtorRegistry(globalObject);
+ class NodeList {
+ constructor() {
+ throw new globalObject.TypeError("Illegal constructor");
+ }
+
+ item(index) {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'item' called on an object that is not a valid instance of NodeList.");
+ }
+
+ if (arguments.length < 1) {
+ throw new globalObject.TypeError(
+ `Failed to execute 'item' on 'NodeList': 1 argument required, but only ${arguments.length} present.`
+ );
+ }
+ const args = [];
+ {
+ let curArg = arguments[0];
+ curArg = conversions["unsigned long"](curArg, {
+ context: "Failed to execute 'item' on 'NodeList': parameter 1",
+ globals: globalObject
+ });
+ args.push(curArg);
+ }
+ return utils.tryWrapperForImpl(esValue[implSymbol].item(...args));
+ }
+
+ get length() {
+ const esValue = this !== null && this !== undefined ? this : globalObject;
+
+ if (!exports.is(esValue)) {
+ throw new globalObject.TypeError("'get length' called on an object that is not a valid instance of NodeList.");
+ }
+
+ return esValue[implSymbol]["length"];
+ }
+ }
+ Object.defineProperties(NodeList.prototype, {
+ item: { enumerable: true },
+ length: { enumerable: true },
+ [Symbol.toStringTag]: { value: "NodeList", configurable: true },
+ [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true },
+ keys: { value: globalObject.Array.prototype.keys, configurable: true, enumerable: true, writable: true },
+ values: { value: globalObject.Array.prototype.values, configurable: true, enumerable: true, writable: true },
+ entries: { value: globalObject.Array.prototype.entries, configurable: true, enumerable: true, writable: true },
+ forEach: { value: globalObject.Array.prototype.forEach, configurable: true, enumerable: true, writable: true }
+ });
+ ctorRegistry[interfaceName] = NodeList;
+
+ Object.defineProperty(globalObject, interfaceName, {
+ configurable: true,
+ writable: true,
+ value: NodeList
+ });
+};
+
+const proxyHandlerCache = new WeakMap();
+class ProxyHandler {
+ constructor(globalObject) {
+ this._globalObject = globalObject;
+ }
+
+ get(target, P, receiver) {
+ if (typeof P === "symbol") {
+ return Reflect.get(target, P, receiver);
+ }
+ const desc = this.getOwnPropertyDescriptor(target, P);
+ if (desc === undefined) {
+ const parent = Object.getPrototypeOf(target);
+ if (parent === null) {
+ return undefined;
+ }
+ return Reflect.get(target, P, receiver);
+ }
+ if (!desc.get && !desc.set) {
+ return desc.value;
+ }
+ const getter = desc.get;
+ if (getter === undefined) {
+ return undefined;
+ }
+ return Reflect.apply(getter, receiver, []);
+ }
+
+ has(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.has(target, P);
+ }
+ const desc = this.getOwnPropertyDescriptor(target, P);
+ if (desc !== undefined) {
+ return true;
+ }
+ const parent = Object.getPrototypeOf(target);
+ if (parent !== null) {
+ return Reflect.has(parent, P);
+ }
+ return false;
+ }
+
+ ownKeys(target) {
+ const keys = new Set();
+
+ for (const key of target[implSymbol][utils.supportedPropertyIndices]) {
+ keys.add(`${key}`);
+ }
+
+ for (const key of Reflect.ownKeys(target)) {
+ keys.add(key);
+ }
+ return [...keys];
+ }
+
+ getOwnPropertyDescriptor(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.getOwnPropertyDescriptor(target, P);
+ }
+ let ignoreNamedProps = false;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ const indexedValue = target[implSymbol].item(index);
+ if (indexedValue !== null) {
+ return {
+ writable: false,
+ enumerable: true,
+ configurable: true,
+ value: utils.tryWrapperForImpl(indexedValue)
+ };
+ }
+ ignoreNamedProps = true;
+ }
+
+ return Reflect.getOwnPropertyDescriptor(target, P);
+ }
+
+ set(target, P, V, receiver) {
+ if (typeof P === "symbol") {
+ return Reflect.set(target, P, V, receiver);
+ }
+ // The `receiver` argument refers to the Proxy exotic object or an object
+ // that inherits from it, whereas `target` refers to the Proxy target:
+ if (target[implSymbol][utils.wrapperSymbol] === receiver) {
+ const globalObject = this._globalObject;
+ }
+ let ownDesc;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ const indexedValue = target[implSymbol].item(index);
+ if (indexedValue !== null) {
+ ownDesc = {
+ writable: false,
+ enumerable: true,
+ configurable: true,
+ value: utils.tryWrapperForImpl(indexedValue)
+ };
+ }
+ }
+
+ if (ownDesc === undefined) {
+ ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
+ }
+ return utils.ordinarySetWithOwnDescriptor(target, P, V, receiver, ownDesc);
+ }
+
+ defineProperty(target, P, desc) {
+ if (typeof P === "symbol") {
+ return Reflect.defineProperty(target, P, desc);
+ }
+
+ const globalObject = this._globalObject;
+
+ if (utils.isArrayIndexPropName(P)) {
+ return false;
+ }
+
+ return Reflect.defineProperty(target, P, desc);
+ }
+
+ deleteProperty(target, P) {
+ if (typeof P === "symbol") {
+ return Reflect.deleteProperty(target, P);
+ }
+
+ const globalObject = this._globalObject;
+
+ if (utils.isArrayIndexPropName(P)) {
+ const index = P >>> 0;
+ return !(target[implSymbol].item(index) !== null);
+ }
+
+ return Reflect.deleteProperty(target, P);
+ }
+
+ preventExtensions() {
+ return false;
+ }
+}
+
+const Impl = require("../nodes/NodeList-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/OnBeforeUnloadEventHandlerNonNull.js b/node_modules/jsdom/lib/jsdom/living/generated/OnBeforeUnloadEventHandlerNonNull.js
new file mode 100644
index 0000000000000000000000000000000000000000..571d1109e203ac58a4567cea8828ce1647f8d72c
--- /dev/null
+++ b/node_modules/jsdom/lib/jsdom/living/generated/OnBeforeUnloadEventHandlerNonNull.js
@@ -0,0 +1,42 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
+ function invokeTheCallbackFunction(event) {
+ const thisArg = utils.tryWrapperForImpl(this);
+ let callResult;
+
+ if (typeof value === "function") {
+ event = utils.tryWrapperForImpl(event);
+
+ callResult = Reflect.apply(value, thisArg, [event]);
+ }
+
+ if (callResult === null || callResult === undefined) {
+ callResult = null;
+ } else {
+ callResult = conversions["DOMString"](callResult, { context: context, globals: globalObject });
+ }
+ return callResult;
+ }
+
+ invokeTheCallbackFunction.construct = event => {
+ event = utils.tryWrapperForImpl(event);
+
+ let callResult = Reflect.construct(value, [event]);
+
+ if (callResult === null || callResult === undefined) {
+ callResult = null;
+ } else {
+ callResult = conversions["DOMString"](callResult, { context: context, globals: globalObject });
+ }
+ return callResult;
+ };
+
+ invokeTheCallbackFunction[utils.wrapperSymbol] = value;
+ invokeTheCallbackFunction.objectReference = value;
+
+ return invokeTheCallbackFunction;
+};