├── .gitignore
├── .npmignore
├── .prettierrc
├── LICENSE
├── README.md
├── h
└── package.json
├── html
└── package.json
├── jsx-runtime.d.ts
├── package-lock.json
├── package.json
├── rollup.config.js
├── src
├── client.d.ts
├── client.js
├── core.ts
├── h.ts
├── html.ts
├── index.ts
├── jsx.d.ts
└── lib.ts
└── tsconfig.json
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | lib/
3 | dist/
4 | types/
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | src/
2 | types/tsconfig.tsbuildinfo
3 | *.config.js
4 | tsconfig.json
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "trailingComma": "none",
3 | "tabWidth": 2,
4 | "semi": true,
5 | "singleQuote": false,
6 | "arrowParens": "avoid",
7 | "printWidth": 100
8 | }
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018-19 Ryan Carniato
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # VueRX JSX
2 |
3 | This library is a demonstration of how Vue's Reactivity system can be leveraged directly in JSX for considerably better performance than pairing it with a Virtual DOM library. Even the fastest Virtual DOM library will have overhead when reconciling many small discrete changes into a scheduled render and patch.
4 |
5 | It accomplishes this with using [Babel Plugin JSX DOM Expressions](https://github.com/ryansolid/dom-expressions). It compiles JSX to DOM statements and wraps expressions in functions that can be called by the library of choice. In this case `effect` wraps these expressions ensuring the view stays up to date. Unlike Virtual DOM only the changed nodes are affected and the whole tree is not re-rendered over and over. Unlike even Vue 3 there is no hard tie to Components which should allow this approach to significantly exceed its performance.
6 |
7 | See it as a top performer on the [JS Framework Benchmark](https://krausest.github.io/js-framework-benchmark/current.html).
8 |
9 | To use call render:
10 |
11 | ```js
12 | import { render } from 'vuerx-jsx';
13 |
14 | render(App, document.getElementById('main'));
15 | ```
16 |
17 | And include 'babel-plugin-jsx-dom-expressions' in your babelrc, webpack babel loader, or rollup babel plugin.
18 |
19 | ```js
20 | "plugins": [["jsx-dom-expressions", {moduleName: 'vuerx-jsx'}]]
21 | ```
22 |
23 | For TS JSX types add to your `tsconfig.json`:
24 | ```js
25 | "jsx": "preserve",
26 | "jsxImportSource": "vuerx-jsx"
27 | ```
28 |
29 | ## Installation
30 |
31 | ```sh
32 | > npm install vuerx-jsx babel-plugin-jsx-dom-expressions
33 | ```
34 |
35 | ## Example
36 |
37 | [Vue Counter](https://codesandbox.io/s/vue-jsx-counter-nbqbj?file=/index.js)
38 |
39 | ## API
40 |
41 | VueRX JSX works with function components. It also ships a specialize map function for optimal list rendering that takes an array as it's first argument.
42 |
43 | ```jsx
44 | const list = ref(["Alpha", "Beta", "Gamma"]);
45 |
46 |
{
47 | map(() => list.value, item => - {item}
)
48 | }
49 | ```
50 |
51 | VueRX JSX also supports a Context API.
52 |
53 |
54 | Alternatively this library supports Tagged Template Literals or HyperScript for non-precompiled environments by installing the companion library and including variants:
55 | ```js
56 | import { html } from 'vuerx-jsx/html'; // or
57 | import { h } from 'vuerx-jsx/h';
58 | ```
59 | There is a small performance overhead of using these runtimes but the performance is still very impressive. Tagged Template solution is much more performant that the HyperScript version, but HyperScript opens up compatibility with some companion tooling like:
60 |
61 | * [HyperScript Helpers](https://github.com/ohanhi/hyperscript-helpers) Use an element as functions DSL
62 | * [Babel Plugin HTM](https://github.com/developit/htm/tree/master/packages/babel-plugin-htm) Transpile Tagged Template Literals to HyperScript
63 |
64 | Further documentation available at: [Lit DOM Expressions](https://github.com/ryansolid/lit-dom-expressions) and [Hyper DOM Expressions](https://github.com/ryansolid/hyper-dom-expressions).
65 |
--------------------------------------------------------------------------------
/h/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vuerx-jsx/h",
3 | "main": "../lib/h.js",
4 | "module": "../dist/h.js",
5 | "types": "../types/h.d.ts",
6 | "sideEffects": false
7 | }
--------------------------------------------------------------------------------
/html/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vuerx-jsx/html",
3 | "main": "../lib/html.js",
4 | "module": "../dist/html.js",
5 | "types": "../types/html.d.ts",
6 | "sideEffects": false
7 | }
--------------------------------------------------------------------------------
/jsx-runtime.d.ts:
--------------------------------------------------------------------------------
1 | export * from "./types/jsx"
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vuerx-jsx",
3 | "version": "0.2.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "vuerx-jsx",
9 | "version": "0.2.0",
10 | "license": "MIT",
11 | "dependencies": {
12 | "csstype": "^3.1.0"
13 | },
14 | "devDependencies": {
15 | "@babel/core": "7.19.3",
16 | "@babel/preset-typescript": "7.18.6",
17 | "@rollup/plugin-babel": "5.3.1",
18 | "@rollup/plugin-node-resolve": "14.1.0",
19 | "@vue/reactivity": "3.2.40",
20 | "dom-expressions": "0.34.12",
21 | "hyper-dom-expressions": "0.34.12",
22 | "lit-dom-expressions": "0.34.12",
23 | "ncp": "2.0.0",
24 | "rollup": "^2.41.4",
25 | "typescript": "4.8.4"
26 | },
27 | "peerDependencies": {
28 | "@vue/reactivity": "^3.0.0"
29 | }
30 | },
31 | "node_modules/@ampproject/remapping": {
32 | "version": "2.2.0",
33 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
34 | "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
35 | "dev": true,
36 | "dependencies": {
37 | "@jridgewell/gen-mapping": "^0.1.0",
38 | "@jridgewell/trace-mapping": "^0.3.9"
39 | },
40 | "engines": {
41 | "node": ">=6.0.0"
42 | }
43 | },
44 | "node_modules/@babel/code-frame": {
45 | "version": "7.18.6",
46 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
47 | "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
48 | "dev": true,
49 | "dependencies": {
50 | "@babel/highlight": "^7.18.6"
51 | },
52 | "engines": {
53 | "node": ">=6.9.0"
54 | }
55 | },
56 | "node_modules/@babel/compat-data": {
57 | "version": "7.19.3",
58 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.3.tgz",
59 | "integrity": "sha512-prBHMK4JYYK+wDjJF1q99KK4JLL+egWS4nmNqdlMUgCExMZ+iZW0hGhyC3VEbsPjvaN0TBhW//VIFwBrk8sEiw==",
60 | "dev": true,
61 | "engines": {
62 | "node": ">=6.9.0"
63 | }
64 | },
65 | "node_modules/@babel/core": {
66 | "version": "7.19.3",
67 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz",
68 | "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==",
69 | "dev": true,
70 | "dependencies": {
71 | "@ampproject/remapping": "^2.1.0",
72 | "@babel/code-frame": "^7.18.6",
73 | "@babel/generator": "^7.19.3",
74 | "@babel/helper-compilation-targets": "^7.19.3",
75 | "@babel/helper-module-transforms": "^7.19.0",
76 | "@babel/helpers": "^7.19.0",
77 | "@babel/parser": "^7.19.3",
78 | "@babel/template": "^7.18.10",
79 | "@babel/traverse": "^7.19.3",
80 | "@babel/types": "^7.19.3",
81 | "convert-source-map": "^1.7.0",
82 | "debug": "^4.1.0",
83 | "gensync": "^1.0.0-beta.2",
84 | "json5": "^2.2.1",
85 | "semver": "^6.3.0"
86 | },
87 | "engines": {
88 | "node": ">=6.9.0"
89 | },
90 | "funding": {
91 | "type": "opencollective",
92 | "url": "https://opencollective.com/babel"
93 | }
94 | },
95 | "node_modules/@babel/generator": {
96 | "version": "7.19.3",
97 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.3.tgz",
98 | "integrity": "sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ==",
99 | "dev": true,
100 | "dependencies": {
101 | "@babel/types": "^7.19.3",
102 | "@jridgewell/gen-mapping": "^0.3.2",
103 | "jsesc": "^2.5.1"
104 | },
105 | "engines": {
106 | "node": ">=6.9.0"
107 | }
108 | },
109 | "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": {
110 | "version": "0.3.2",
111 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
112 | "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
113 | "dev": true,
114 | "dependencies": {
115 | "@jridgewell/set-array": "^1.0.1",
116 | "@jridgewell/sourcemap-codec": "^1.4.10",
117 | "@jridgewell/trace-mapping": "^0.3.9"
118 | },
119 | "engines": {
120 | "node": ">=6.0.0"
121 | }
122 | },
123 | "node_modules/@babel/helper-annotate-as-pure": {
124 | "version": "7.18.6",
125 | "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz",
126 | "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==",
127 | "dev": true,
128 | "dependencies": {
129 | "@babel/types": "^7.18.6"
130 | },
131 | "engines": {
132 | "node": ">=6.9.0"
133 | }
134 | },
135 | "node_modules/@babel/helper-compilation-targets": {
136 | "version": "7.19.3",
137 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz",
138 | "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==",
139 | "dev": true,
140 | "dependencies": {
141 | "@babel/compat-data": "^7.19.3",
142 | "@babel/helper-validator-option": "^7.18.6",
143 | "browserslist": "^4.21.3",
144 | "semver": "^6.3.0"
145 | },
146 | "engines": {
147 | "node": ">=6.9.0"
148 | },
149 | "peerDependencies": {
150 | "@babel/core": "^7.0.0"
151 | }
152 | },
153 | "node_modules/@babel/helper-create-class-features-plugin": {
154 | "version": "7.19.0",
155 | "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz",
156 | "integrity": "sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==",
157 | "dev": true,
158 | "dependencies": {
159 | "@babel/helper-annotate-as-pure": "^7.18.6",
160 | "@babel/helper-environment-visitor": "^7.18.9",
161 | "@babel/helper-function-name": "^7.19.0",
162 | "@babel/helper-member-expression-to-functions": "^7.18.9",
163 | "@babel/helper-optimise-call-expression": "^7.18.6",
164 | "@babel/helper-replace-supers": "^7.18.9",
165 | "@babel/helper-split-export-declaration": "^7.18.6"
166 | },
167 | "engines": {
168 | "node": ">=6.9.0"
169 | },
170 | "peerDependencies": {
171 | "@babel/core": "^7.0.0"
172 | }
173 | },
174 | "node_modules/@babel/helper-environment-visitor": {
175 | "version": "7.18.9",
176 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
177 | "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
178 | "dev": true,
179 | "engines": {
180 | "node": ">=6.9.0"
181 | }
182 | },
183 | "node_modules/@babel/helper-function-name": {
184 | "version": "7.19.0",
185 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz",
186 | "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==",
187 | "dev": true,
188 | "dependencies": {
189 | "@babel/template": "^7.18.10",
190 | "@babel/types": "^7.19.0"
191 | },
192 | "engines": {
193 | "node": ">=6.9.0"
194 | }
195 | },
196 | "node_modules/@babel/helper-hoist-variables": {
197 | "version": "7.18.6",
198 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
199 | "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
200 | "dev": true,
201 | "dependencies": {
202 | "@babel/types": "^7.18.6"
203 | },
204 | "engines": {
205 | "node": ">=6.9.0"
206 | }
207 | },
208 | "node_modules/@babel/helper-member-expression-to-functions": {
209 | "version": "7.18.9",
210 | "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz",
211 | "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==",
212 | "dev": true,
213 | "dependencies": {
214 | "@babel/types": "^7.18.9"
215 | },
216 | "engines": {
217 | "node": ">=6.9.0"
218 | }
219 | },
220 | "node_modules/@babel/helper-module-imports": {
221 | "version": "7.18.6",
222 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
223 | "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
224 | "dev": true,
225 | "dependencies": {
226 | "@babel/types": "^7.18.6"
227 | },
228 | "engines": {
229 | "node": ">=6.9.0"
230 | }
231 | },
232 | "node_modules/@babel/helper-module-transforms": {
233 | "version": "7.19.0",
234 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz",
235 | "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==",
236 | "dev": true,
237 | "dependencies": {
238 | "@babel/helper-environment-visitor": "^7.18.9",
239 | "@babel/helper-module-imports": "^7.18.6",
240 | "@babel/helper-simple-access": "^7.18.6",
241 | "@babel/helper-split-export-declaration": "^7.18.6",
242 | "@babel/helper-validator-identifier": "^7.18.6",
243 | "@babel/template": "^7.18.10",
244 | "@babel/traverse": "^7.19.0",
245 | "@babel/types": "^7.19.0"
246 | },
247 | "engines": {
248 | "node": ">=6.9.0"
249 | }
250 | },
251 | "node_modules/@babel/helper-optimise-call-expression": {
252 | "version": "7.18.6",
253 | "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz",
254 | "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==",
255 | "dev": true,
256 | "dependencies": {
257 | "@babel/types": "^7.18.6"
258 | },
259 | "engines": {
260 | "node": ">=6.9.0"
261 | }
262 | },
263 | "node_modules/@babel/helper-plugin-utils": {
264 | "version": "7.19.0",
265 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz",
266 | "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==",
267 | "dev": true,
268 | "engines": {
269 | "node": ">=6.9.0"
270 | }
271 | },
272 | "node_modules/@babel/helper-replace-supers": {
273 | "version": "7.19.1",
274 | "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz",
275 | "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==",
276 | "dev": true,
277 | "dependencies": {
278 | "@babel/helper-environment-visitor": "^7.18.9",
279 | "@babel/helper-member-expression-to-functions": "^7.18.9",
280 | "@babel/helper-optimise-call-expression": "^7.18.6",
281 | "@babel/traverse": "^7.19.1",
282 | "@babel/types": "^7.19.0"
283 | },
284 | "engines": {
285 | "node": ">=6.9.0"
286 | }
287 | },
288 | "node_modules/@babel/helper-simple-access": {
289 | "version": "7.18.6",
290 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz",
291 | "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==",
292 | "dev": true,
293 | "dependencies": {
294 | "@babel/types": "^7.18.6"
295 | },
296 | "engines": {
297 | "node": ">=6.9.0"
298 | }
299 | },
300 | "node_modules/@babel/helper-split-export-declaration": {
301 | "version": "7.18.6",
302 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
303 | "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
304 | "dev": true,
305 | "dependencies": {
306 | "@babel/types": "^7.18.6"
307 | },
308 | "engines": {
309 | "node": ">=6.9.0"
310 | }
311 | },
312 | "node_modules/@babel/helper-string-parser": {
313 | "version": "7.18.10",
314 | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz",
315 | "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==",
316 | "dev": true,
317 | "engines": {
318 | "node": ">=6.9.0"
319 | }
320 | },
321 | "node_modules/@babel/helper-validator-identifier": {
322 | "version": "7.19.1",
323 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
324 | "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
325 | "dev": true,
326 | "engines": {
327 | "node": ">=6.9.0"
328 | }
329 | },
330 | "node_modules/@babel/helper-validator-option": {
331 | "version": "7.18.6",
332 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
333 | "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
334 | "dev": true,
335 | "engines": {
336 | "node": ">=6.9.0"
337 | }
338 | },
339 | "node_modules/@babel/helpers": {
340 | "version": "7.19.0",
341 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz",
342 | "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==",
343 | "dev": true,
344 | "dependencies": {
345 | "@babel/template": "^7.18.10",
346 | "@babel/traverse": "^7.19.0",
347 | "@babel/types": "^7.19.0"
348 | },
349 | "engines": {
350 | "node": ">=6.9.0"
351 | }
352 | },
353 | "node_modules/@babel/highlight": {
354 | "version": "7.18.6",
355 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
356 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
357 | "dev": true,
358 | "dependencies": {
359 | "@babel/helper-validator-identifier": "^7.18.6",
360 | "chalk": "^2.0.0",
361 | "js-tokens": "^4.0.0"
362 | },
363 | "engines": {
364 | "node": ">=6.9.0"
365 | }
366 | },
367 | "node_modules/@babel/parser": {
368 | "version": "7.19.3",
369 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.3.tgz",
370 | "integrity": "sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ==",
371 | "dev": true,
372 | "bin": {
373 | "parser": "bin/babel-parser.js"
374 | },
375 | "engines": {
376 | "node": ">=6.0.0"
377 | }
378 | },
379 | "node_modules/@babel/plugin-syntax-typescript": {
380 | "version": "7.18.6",
381 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz",
382 | "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==",
383 | "dev": true,
384 | "dependencies": {
385 | "@babel/helper-plugin-utils": "^7.18.6"
386 | },
387 | "engines": {
388 | "node": ">=6.9.0"
389 | },
390 | "peerDependencies": {
391 | "@babel/core": "^7.0.0-0"
392 | }
393 | },
394 | "node_modules/@babel/plugin-transform-typescript": {
395 | "version": "7.19.3",
396 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.3.tgz",
397 | "integrity": "sha512-z6fnuK9ve9u/0X0rRvI9MY0xg+DOUaABDYOe+/SQTxtlptaBB/V9JIUxJn6xp3lMBeb9qe8xSFmHU35oZDXD+w==",
398 | "dev": true,
399 | "dependencies": {
400 | "@babel/helper-create-class-features-plugin": "^7.19.0",
401 | "@babel/helper-plugin-utils": "^7.19.0",
402 | "@babel/plugin-syntax-typescript": "^7.18.6"
403 | },
404 | "engines": {
405 | "node": ">=6.9.0"
406 | },
407 | "peerDependencies": {
408 | "@babel/core": "^7.0.0-0"
409 | }
410 | },
411 | "node_modules/@babel/preset-typescript": {
412 | "version": "7.18.6",
413 | "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz",
414 | "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==",
415 | "dev": true,
416 | "dependencies": {
417 | "@babel/helper-plugin-utils": "^7.18.6",
418 | "@babel/helper-validator-option": "^7.18.6",
419 | "@babel/plugin-transform-typescript": "^7.18.6"
420 | },
421 | "engines": {
422 | "node": ">=6.9.0"
423 | },
424 | "peerDependencies": {
425 | "@babel/core": "^7.0.0-0"
426 | }
427 | },
428 | "node_modules/@babel/template": {
429 | "version": "7.18.10",
430 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz",
431 | "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
432 | "dev": true,
433 | "dependencies": {
434 | "@babel/code-frame": "^7.18.6",
435 | "@babel/parser": "^7.18.10",
436 | "@babel/types": "^7.18.10"
437 | },
438 | "engines": {
439 | "node": ">=6.9.0"
440 | }
441 | },
442 | "node_modules/@babel/traverse": {
443 | "version": "7.19.3",
444 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.3.tgz",
445 | "integrity": "sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ==",
446 | "dev": true,
447 | "dependencies": {
448 | "@babel/code-frame": "^7.18.6",
449 | "@babel/generator": "^7.19.3",
450 | "@babel/helper-environment-visitor": "^7.18.9",
451 | "@babel/helper-function-name": "^7.19.0",
452 | "@babel/helper-hoist-variables": "^7.18.6",
453 | "@babel/helper-split-export-declaration": "^7.18.6",
454 | "@babel/parser": "^7.19.3",
455 | "@babel/types": "^7.19.3",
456 | "debug": "^4.1.0",
457 | "globals": "^11.1.0"
458 | },
459 | "engines": {
460 | "node": ">=6.9.0"
461 | }
462 | },
463 | "node_modules/@babel/types": {
464 | "version": "7.19.3",
465 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.3.tgz",
466 | "integrity": "sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw==",
467 | "dev": true,
468 | "dependencies": {
469 | "@babel/helper-string-parser": "^7.18.10",
470 | "@babel/helper-validator-identifier": "^7.19.1",
471 | "to-fast-properties": "^2.0.0"
472 | },
473 | "engines": {
474 | "node": ">=6.9.0"
475 | }
476 | },
477 | "node_modules/@jridgewell/gen-mapping": {
478 | "version": "0.1.1",
479 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
480 | "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
481 | "dev": true,
482 | "dependencies": {
483 | "@jridgewell/set-array": "^1.0.0",
484 | "@jridgewell/sourcemap-codec": "^1.4.10"
485 | },
486 | "engines": {
487 | "node": ">=6.0.0"
488 | }
489 | },
490 | "node_modules/@jridgewell/resolve-uri": {
491 | "version": "3.1.0",
492 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
493 | "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
494 | "dev": true,
495 | "engines": {
496 | "node": ">=6.0.0"
497 | }
498 | },
499 | "node_modules/@jridgewell/set-array": {
500 | "version": "1.1.2",
501 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
502 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
503 | "dev": true,
504 | "engines": {
505 | "node": ">=6.0.0"
506 | }
507 | },
508 | "node_modules/@jridgewell/sourcemap-codec": {
509 | "version": "1.4.14",
510 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
511 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
512 | "dev": true
513 | },
514 | "node_modules/@jridgewell/trace-mapping": {
515 | "version": "0.3.15",
516 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz",
517 | "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==",
518 | "dev": true,
519 | "dependencies": {
520 | "@jridgewell/resolve-uri": "^3.0.3",
521 | "@jridgewell/sourcemap-codec": "^1.4.10"
522 | }
523 | },
524 | "node_modules/@rollup/plugin-babel": {
525 | "version": "5.3.1",
526 | "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz",
527 | "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==",
528 | "dev": true,
529 | "dependencies": {
530 | "@babel/helper-module-imports": "^7.10.4",
531 | "@rollup/pluginutils": "^3.1.0"
532 | },
533 | "engines": {
534 | "node": ">= 10.0.0"
535 | },
536 | "peerDependencies": {
537 | "@babel/core": "^7.0.0",
538 | "@types/babel__core": "^7.1.9",
539 | "rollup": "^1.20.0||^2.0.0"
540 | },
541 | "peerDependenciesMeta": {
542 | "@types/babel__core": {
543 | "optional": true
544 | }
545 | }
546 | },
547 | "node_modules/@rollup/plugin-node-resolve": {
548 | "version": "14.1.0",
549 | "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-14.1.0.tgz",
550 | "integrity": "sha512-5G2niJroNCz/1zqwXtk0t9+twOSDlG00k1Wfd7bkbbXmwg8H8dvgHdIWAun53Ps/rckfvOC7scDBjuGFg5OaWw==",
551 | "dev": true,
552 | "dependencies": {
553 | "@rollup/pluginutils": "^3.1.0",
554 | "@types/resolve": "1.17.1",
555 | "deepmerge": "^4.2.2",
556 | "is-builtin-module": "^3.1.0",
557 | "is-module": "^1.0.0",
558 | "resolve": "^1.19.0"
559 | },
560 | "engines": {
561 | "node": ">= 10.0.0"
562 | },
563 | "peerDependencies": {
564 | "rollup": "^2.78.0"
565 | }
566 | },
567 | "node_modules/@rollup/pluginutils": {
568 | "version": "3.1.0",
569 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
570 | "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
571 | "dev": true,
572 | "dependencies": {
573 | "@types/estree": "0.0.39",
574 | "estree-walker": "^1.0.1",
575 | "picomatch": "^2.2.2"
576 | },
577 | "engines": {
578 | "node": ">= 8.0.0"
579 | },
580 | "peerDependencies": {
581 | "rollup": "^1.20.0||^2.0.0"
582 | }
583 | },
584 | "node_modules/@types/estree": {
585 | "version": "0.0.39",
586 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
587 | "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
588 | "dev": true
589 | },
590 | "node_modules/@types/node": {
591 | "version": "18.8.3",
592 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.3.tgz",
593 | "integrity": "sha512-0os9vz6BpGwxGe9LOhgP/ncvYN5Tx1fNcd2TM3rD/aCGBkysb+ZWpXEocG24h6ZzOi13+VB8HndAQFezsSOw1w==",
594 | "dev": true
595 | },
596 | "node_modules/@types/resolve": {
597 | "version": "1.17.1",
598 | "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
599 | "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==",
600 | "dev": true,
601 | "dependencies": {
602 | "@types/node": "*"
603 | }
604 | },
605 | "node_modules/@vue/reactivity": {
606 | "version": "3.2.40",
607 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.40.tgz",
608 | "integrity": "sha512-N9qgGLlZmtUBMHF9xDT4EkD9RdXde1Xbveb+niWMXuHVWQP5BzgRmE3SFyUBBcyayG4y1lhoz+lphGRRxxK4RA==",
609 | "dev": true,
610 | "dependencies": {
611 | "@vue/shared": "3.2.40"
612 | }
613 | },
614 | "node_modules/@vue/shared": {
615 | "version": "3.2.40",
616 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.40.tgz",
617 | "integrity": "sha512-0PLQ6RUtZM0vO3teRfzGi4ltLUO5aO+kLgwh4Um3THSR03rpQWLTuRCkuO5A41ITzwdWeKdPHtSARuPkoo5pCQ==",
618 | "dev": true
619 | },
620 | "node_modules/ansi-styles": {
621 | "version": "3.2.1",
622 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
623 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
624 | "dev": true,
625 | "dependencies": {
626 | "color-convert": "^1.9.0"
627 | },
628 | "engines": {
629 | "node": ">=4"
630 | }
631 | },
632 | "node_modules/babel-plugin-transform-rename-import": {
633 | "version": "2.3.0",
634 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-rename-import/-/babel-plugin-transform-rename-import-2.3.0.tgz",
635 | "integrity": "sha512-dPgJoT57XC0PqSnLgl2FwNvxFrWlspatX2dkk7yjKQj5HHGw071vAcOf+hqW8ClqcBDMvEbm6mevn5yHAD8mlQ==",
636 | "dev": true
637 | },
638 | "node_modules/browserslist": {
639 | "version": "4.21.4",
640 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
641 | "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
642 | "dev": true,
643 | "funding": [
644 | {
645 | "type": "opencollective",
646 | "url": "https://opencollective.com/browserslist"
647 | },
648 | {
649 | "type": "tidelift",
650 | "url": "https://tidelift.com/funding/github/npm/browserslist"
651 | }
652 | ],
653 | "dependencies": {
654 | "caniuse-lite": "^1.0.30001400",
655 | "electron-to-chromium": "^1.4.251",
656 | "node-releases": "^2.0.6",
657 | "update-browserslist-db": "^1.0.9"
658 | },
659 | "bin": {
660 | "browserslist": "cli.js"
661 | },
662 | "engines": {
663 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
664 | }
665 | },
666 | "node_modules/builtin-modules": {
667 | "version": "3.3.0",
668 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
669 | "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
670 | "dev": true,
671 | "engines": {
672 | "node": ">=6"
673 | },
674 | "funding": {
675 | "url": "https://github.com/sponsors/sindresorhus"
676 | }
677 | },
678 | "node_modules/caniuse-lite": {
679 | "version": "1.0.30001416",
680 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001416.tgz",
681 | "integrity": "sha512-06wzzdAkCPZO+Qm4e/eNghZBDfVNDsCgw33T27OwBH9unE9S478OYw//Q2L7Npf/zBzs7rjZOszIFQkwQKAEqA==",
682 | "dev": true,
683 | "funding": [
684 | {
685 | "type": "opencollective",
686 | "url": "https://opencollective.com/browserslist"
687 | },
688 | {
689 | "type": "tidelift",
690 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
691 | }
692 | ]
693 | },
694 | "node_modules/chalk": {
695 | "version": "2.4.2",
696 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
697 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
698 | "dev": true,
699 | "dependencies": {
700 | "ansi-styles": "^3.2.1",
701 | "escape-string-regexp": "^1.0.5",
702 | "supports-color": "^5.3.0"
703 | },
704 | "engines": {
705 | "node": ">=4"
706 | }
707 | },
708 | "node_modules/color-convert": {
709 | "version": "1.9.3",
710 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
711 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
712 | "dev": true,
713 | "dependencies": {
714 | "color-name": "1.1.3"
715 | }
716 | },
717 | "node_modules/color-name": {
718 | "version": "1.1.3",
719 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
720 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
721 | "dev": true
722 | },
723 | "node_modules/convert-source-map": {
724 | "version": "1.8.0",
725 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
726 | "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
727 | "dev": true,
728 | "dependencies": {
729 | "safe-buffer": "~5.1.1"
730 | }
731 | },
732 | "node_modules/csstype": {
733 | "version": "3.1.1",
734 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
735 | "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
736 | },
737 | "node_modules/debug": {
738 | "version": "4.3.4",
739 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
740 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
741 | "dev": true,
742 | "dependencies": {
743 | "ms": "2.1.2"
744 | },
745 | "engines": {
746 | "node": ">=6.0"
747 | },
748 | "peerDependenciesMeta": {
749 | "supports-color": {
750 | "optional": true
751 | }
752 | }
753 | },
754 | "node_modules/deepmerge": {
755 | "version": "4.2.2",
756 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
757 | "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
758 | "dev": true,
759 | "engines": {
760 | "node": ">=0.10.0"
761 | }
762 | },
763 | "node_modules/devalue": {
764 | "version": "2.0.1",
765 | "resolved": "https://registry.npmjs.org/devalue/-/devalue-2.0.1.tgz",
766 | "integrity": "sha512-I2TiqT5iWBEyB8GRfTDP0hiLZ0YeDJZ+upDxjBfOC2lebO5LezQMv7QvIUTzdb64jQyAKLf1AHADtGN+jw6v8Q==",
767 | "dev": true
768 | },
769 | "node_modules/dom-expressions": {
770 | "version": "0.34.12",
771 | "resolved": "https://registry.npmjs.org/dom-expressions/-/dom-expressions-0.34.12.tgz",
772 | "integrity": "sha512-GIKL8KOJ45RsBe7hI3QeTe9gtBUty36FIcSG0CFE9U6CVPciWX2ye5W5kmfI64TENFh19k9u1anZBQEqmfudoA==",
773 | "dev": true,
774 | "dependencies": {
775 | "babel-plugin-transform-rename-import": "^2.3.0",
776 | "devalue": "^2.0.1"
777 | },
778 | "peerDependencies": {
779 | "csstype": "^3.0"
780 | }
781 | },
782 | "node_modules/electron-to-chromium": {
783 | "version": "1.4.275",
784 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.275.tgz",
785 | "integrity": "sha512-aJeQQ+Hl9Jyyzv4chBqYJwmVRY46N5i2BEX5Cuyk/5gFCUZ5F3i7Hnba6snZftWla7Gglwc5pIgcd+E7cW+rPg==",
786 | "dev": true
787 | },
788 | "node_modules/escalade": {
789 | "version": "3.1.1",
790 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
791 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
792 | "dev": true,
793 | "engines": {
794 | "node": ">=6"
795 | }
796 | },
797 | "node_modules/escape-string-regexp": {
798 | "version": "1.0.5",
799 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
800 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
801 | "dev": true,
802 | "engines": {
803 | "node": ">=0.8.0"
804 | }
805 | },
806 | "node_modules/estree-walker": {
807 | "version": "1.0.1",
808 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
809 | "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
810 | "dev": true
811 | },
812 | "node_modules/fsevents": {
813 | "version": "2.3.2",
814 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
815 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
816 | "dev": true,
817 | "hasInstallScript": true,
818 | "optional": true,
819 | "os": [
820 | "darwin"
821 | ],
822 | "engines": {
823 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
824 | }
825 | },
826 | "node_modules/function-bind": {
827 | "version": "1.1.1",
828 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
829 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
830 | "dev": true
831 | },
832 | "node_modules/gensync": {
833 | "version": "1.0.0-beta.2",
834 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
835 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
836 | "dev": true,
837 | "engines": {
838 | "node": ">=6.9.0"
839 | }
840 | },
841 | "node_modules/globals": {
842 | "version": "11.12.0",
843 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
844 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
845 | "dev": true,
846 | "engines": {
847 | "node": ">=4"
848 | }
849 | },
850 | "node_modules/has": {
851 | "version": "1.0.3",
852 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
853 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
854 | "dev": true,
855 | "dependencies": {
856 | "function-bind": "^1.1.1"
857 | },
858 | "engines": {
859 | "node": ">= 0.4.0"
860 | }
861 | },
862 | "node_modules/has-flag": {
863 | "version": "3.0.0",
864 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
865 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
866 | "dev": true,
867 | "engines": {
868 | "node": ">=4"
869 | }
870 | },
871 | "node_modules/hyper-dom-expressions": {
872 | "version": "0.34.12",
873 | "resolved": "https://registry.npmjs.org/hyper-dom-expressions/-/hyper-dom-expressions-0.34.12.tgz",
874 | "integrity": "sha512-mz6lUmtWt16Xx4hHjnN32QPV19gfy6Lh+C/ASyn+6Hxsgv2+8Q4P552etfNnhgoIE4c7foRSlvow5OU6m6ljmA==",
875 | "dev": true
876 | },
877 | "node_modules/is-builtin-module": {
878 | "version": "3.2.0",
879 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz",
880 | "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==",
881 | "dev": true,
882 | "dependencies": {
883 | "builtin-modules": "^3.3.0"
884 | },
885 | "engines": {
886 | "node": ">=6"
887 | },
888 | "funding": {
889 | "url": "https://github.com/sponsors/sindresorhus"
890 | }
891 | },
892 | "node_modules/is-core-module": {
893 | "version": "2.10.0",
894 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz",
895 | "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
896 | "dev": true,
897 | "dependencies": {
898 | "has": "^1.0.3"
899 | },
900 | "funding": {
901 | "url": "https://github.com/sponsors/ljharb"
902 | }
903 | },
904 | "node_modules/is-module": {
905 | "version": "1.0.0",
906 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
907 | "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
908 | "dev": true
909 | },
910 | "node_modules/js-tokens": {
911 | "version": "4.0.0",
912 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
913 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
914 | "dev": true
915 | },
916 | "node_modules/jsesc": {
917 | "version": "2.5.2",
918 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
919 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
920 | "dev": true,
921 | "bin": {
922 | "jsesc": "bin/jsesc"
923 | },
924 | "engines": {
925 | "node": ">=4"
926 | }
927 | },
928 | "node_modules/json5": {
929 | "version": "2.2.1",
930 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
931 | "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
932 | "dev": true,
933 | "bin": {
934 | "json5": "lib/cli.js"
935 | },
936 | "engines": {
937 | "node": ">=6"
938 | }
939 | },
940 | "node_modules/lit-dom-expressions": {
941 | "version": "0.34.12",
942 | "resolved": "https://registry.npmjs.org/lit-dom-expressions/-/lit-dom-expressions-0.34.12.tgz",
943 | "integrity": "sha512-Bffcw6tTA4qsBJt034ip28xx9sAx1xMJ56h6lOd4cQ0gC+goVpPiQMkoNLeMUvrcRIPdsOpdjraZHvRO5/H5Rg==",
944 | "dev": true
945 | },
946 | "node_modules/ms": {
947 | "version": "2.1.2",
948 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
949 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
950 | "dev": true
951 | },
952 | "node_modules/ncp": {
953 | "version": "2.0.0",
954 | "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
955 | "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==",
956 | "dev": true,
957 | "bin": {
958 | "ncp": "bin/ncp"
959 | }
960 | },
961 | "node_modules/node-releases": {
962 | "version": "2.0.6",
963 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
964 | "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
965 | "dev": true
966 | },
967 | "node_modules/path-parse": {
968 | "version": "1.0.7",
969 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
970 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
971 | "dev": true
972 | },
973 | "node_modules/picocolors": {
974 | "version": "1.0.0",
975 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
976 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
977 | "dev": true
978 | },
979 | "node_modules/picomatch": {
980 | "version": "2.3.1",
981 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
982 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
983 | "dev": true,
984 | "engines": {
985 | "node": ">=8.6"
986 | },
987 | "funding": {
988 | "url": "https://github.com/sponsors/jonschlinkert"
989 | }
990 | },
991 | "node_modules/resolve": {
992 | "version": "1.22.1",
993 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
994 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
995 | "dev": true,
996 | "dependencies": {
997 | "is-core-module": "^2.9.0",
998 | "path-parse": "^1.0.7",
999 | "supports-preserve-symlinks-flag": "^1.0.0"
1000 | },
1001 | "bin": {
1002 | "resolve": "bin/resolve"
1003 | },
1004 | "funding": {
1005 | "url": "https://github.com/sponsors/ljharb"
1006 | }
1007 | },
1008 | "node_modules/rollup": {
1009 | "version": "2.79.1",
1010 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz",
1011 | "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==",
1012 | "dev": true,
1013 | "bin": {
1014 | "rollup": "dist/bin/rollup"
1015 | },
1016 | "engines": {
1017 | "node": ">=10.0.0"
1018 | },
1019 | "optionalDependencies": {
1020 | "fsevents": "~2.3.2"
1021 | }
1022 | },
1023 | "node_modules/safe-buffer": {
1024 | "version": "5.1.2",
1025 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1026 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
1027 | "dev": true
1028 | },
1029 | "node_modules/semver": {
1030 | "version": "6.3.0",
1031 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1032 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1033 | "dev": true,
1034 | "bin": {
1035 | "semver": "bin/semver.js"
1036 | }
1037 | },
1038 | "node_modules/supports-color": {
1039 | "version": "5.5.0",
1040 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1041 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1042 | "dev": true,
1043 | "dependencies": {
1044 | "has-flag": "^3.0.0"
1045 | },
1046 | "engines": {
1047 | "node": ">=4"
1048 | }
1049 | },
1050 | "node_modules/supports-preserve-symlinks-flag": {
1051 | "version": "1.0.0",
1052 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
1053 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
1054 | "dev": true,
1055 | "engines": {
1056 | "node": ">= 0.4"
1057 | },
1058 | "funding": {
1059 | "url": "https://github.com/sponsors/ljharb"
1060 | }
1061 | },
1062 | "node_modules/to-fast-properties": {
1063 | "version": "2.0.0",
1064 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
1065 | "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
1066 | "dev": true,
1067 | "engines": {
1068 | "node": ">=4"
1069 | }
1070 | },
1071 | "node_modules/typescript": {
1072 | "version": "4.8.4",
1073 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz",
1074 | "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
1075 | "dev": true,
1076 | "bin": {
1077 | "tsc": "bin/tsc",
1078 | "tsserver": "bin/tsserver"
1079 | },
1080 | "engines": {
1081 | "node": ">=4.2.0"
1082 | }
1083 | },
1084 | "node_modules/update-browserslist-db": {
1085 | "version": "1.0.10",
1086 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
1087 | "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
1088 | "dev": true,
1089 | "funding": [
1090 | {
1091 | "type": "opencollective",
1092 | "url": "https://opencollective.com/browserslist"
1093 | },
1094 | {
1095 | "type": "tidelift",
1096 | "url": "https://tidelift.com/funding/github/npm/browserslist"
1097 | }
1098 | ],
1099 | "dependencies": {
1100 | "escalade": "^3.1.1",
1101 | "picocolors": "^1.0.0"
1102 | },
1103 | "bin": {
1104 | "browserslist-lint": "cli.js"
1105 | },
1106 | "peerDependencies": {
1107 | "browserslist": ">= 4.21.0"
1108 | }
1109 | }
1110 | },
1111 | "dependencies": {
1112 | "@ampproject/remapping": {
1113 | "version": "2.2.0",
1114 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
1115 | "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
1116 | "dev": true,
1117 | "requires": {
1118 | "@jridgewell/gen-mapping": "^0.1.0",
1119 | "@jridgewell/trace-mapping": "^0.3.9"
1120 | }
1121 | },
1122 | "@babel/code-frame": {
1123 | "version": "7.18.6",
1124 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
1125 | "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
1126 | "dev": true,
1127 | "requires": {
1128 | "@babel/highlight": "^7.18.6"
1129 | }
1130 | },
1131 | "@babel/compat-data": {
1132 | "version": "7.19.3",
1133 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.3.tgz",
1134 | "integrity": "sha512-prBHMK4JYYK+wDjJF1q99KK4JLL+egWS4nmNqdlMUgCExMZ+iZW0hGhyC3VEbsPjvaN0TBhW//VIFwBrk8sEiw==",
1135 | "dev": true
1136 | },
1137 | "@babel/core": {
1138 | "version": "7.19.3",
1139 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz",
1140 | "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==",
1141 | "dev": true,
1142 | "requires": {
1143 | "@ampproject/remapping": "^2.1.0",
1144 | "@babel/code-frame": "^7.18.6",
1145 | "@babel/generator": "^7.19.3",
1146 | "@babel/helper-compilation-targets": "^7.19.3",
1147 | "@babel/helper-module-transforms": "^7.19.0",
1148 | "@babel/helpers": "^7.19.0",
1149 | "@babel/parser": "^7.19.3",
1150 | "@babel/template": "^7.18.10",
1151 | "@babel/traverse": "^7.19.3",
1152 | "@babel/types": "^7.19.3",
1153 | "convert-source-map": "^1.7.0",
1154 | "debug": "^4.1.0",
1155 | "gensync": "^1.0.0-beta.2",
1156 | "json5": "^2.2.1",
1157 | "semver": "^6.3.0"
1158 | }
1159 | },
1160 | "@babel/generator": {
1161 | "version": "7.19.3",
1162 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.3.tgz",
1163 | "integrity": "sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ==",
1164 | "dev": true,
1165 | "requires": {
1166 | "@babel/types": "^7.19.3",
1167 | "@jridgewell/gen-mapping": "^0.3.2",
1168 | "jsesc": "^2.5.1"
1169 | },
1170 | "dependencies": {
1171 | "@jridgewell/gen-mapping": {
1172 | "version": "0.3.2",
1173 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
1174 | "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
1175 | "dev": true,
1176 | "requires": {
1177 | "@jridgewell/set-array": "^1.0.1",
1178 | "@jridgewell/sourcemap-codec": "^1.4.10",
1179 | "@jridgewell/trace-mapping": "^0.3.9"
1180 | }
1181 | }
1182 | }
1183 | },
1184 | "@babel/helper-annotate-as-pure": {
1185 | "version": "7.18.6",
1186 | "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz",
1187 | "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==",
1188 | "dev": true,
1189 | "requires": {
1190 | "@babel/types": "^7.18.6"
1191 | }
1192 | },
1193 | "@babel/helper-compilation-targets": {
1194 | "version": "7.19.3",
1195 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz",
1196 | "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==",
1197 | "dev": true,
1198 | "requires": {
1199 | "@babel/compat-data": "^7.19.3",
1200 | "@babel/helper-validator-option": "^7.18.6",
1201 | "browserslist": "^4.21.3",
1202 | "semver": "^6.3.0"
1203 | }
1204 | },
1205 | "@babel/helper-create-class-features-plugin": {
1206 | "version": "7.19.0",
1207 | "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz",
1208 | "integrity": "sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==",
1209 | "dev": true,
1210 | "requires": {
1211 | "@babel/helper-annotate-as-pure": "^7.18.6",
1212 | "@babel/helper-environment-visitor": "^7.18.9",
1213 | "@babel/helper-function-name": "^7.19.0",
1214 | "@babel/helper-member-expression-to-functions": "^7.18.9",
1215 | "@babel/helper-optimise-call-expression": "^7.18.6",
1216 | "@babel/helper-replace-supers": "^7.18.9",
1217 | "@babel/helper-split-export-declaration": "^7.18.6"
1218 | }
1219 | },
1220 | "@babel/helper-environment-visitor": {
1221 | "version": "7.18.9",
1222 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
1223 | "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
1224 | "dev": true
1225 | },
1226 | "@babel/helper-function-name": {
1227 | "version": "7.19.0",
1228 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz",
1229 | "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==",
1230 | "dev": true,
1231 | "requires": {
1232 | "@babel/template": "^7.18.10",
1233 | "@babel/types": "^7.19.0"
1234 | }
1235 | },
1236 | "@babel/helper-hoist-variables": {
1237 | "version": "7.18.6",
1238 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
1239 | "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
1240 | "dev": true,
1241 | "requires": {
1242 | "@babel/types": "^7.18.6"
1243 | }
1244 | },
1245 | "@babel/helper-member-expression-to-functions": {
1246 | "version": "7.18.9",
1247 | "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz",
1248 | "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==",
1249 | "dev": true,
1250 | "requires": {
1251 | "@babel/types": "^7.18.9"
1252 | }
1253 | },
1254 | "@babel/helper-module-imports": {
1255 | "version": "7.18.6",
1256 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
1257 | "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
1258 | "dev": true,
1259 | "requires": {
1260 | "@babel/types": "^7.18.6"
1261 | }
1262 | },
1263 | "@babel/helper-module-transforms": {
1264 | "version": "7.19.0",
1265 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz",
1266 | "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==",
1267 | "dev": true,
1268 | "requires": {
1269 | "@babel/helper-environment-visitor": "^7.18.9",
1270 | "@babel/helper-module-imports": "^7.18.6",
1271 | "@babel/helper-simple-access": "^7.18.6",
1272 | "@babel/helper-split-export-declaration": "^7.18.6",
1273 | "@babel/helper-validator-identifier": "^7.18.6",
1274 | "@babel/template": "^7.18.10",
1275 | "@babel/traverse": "^7.19.0",
1276 | "@babel/types": "^7.19.0"
1277 | }
1278 | },
1279 | "@babel/helper-optimise-call-expression": {
1280 | "version": "7.18.6",
1281 | "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz",
1282 | "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==",
1283 | "dev": true,
1284 | "requires": {
1285 | "@babel/types": "^7.18.6"
1286 | }
1287 | },
1288 | "@babel/helper-plugin-utils": {
1289 | "version": "7.19.0",
1290 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz",
1291 | "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==",
1292 | "dev": true
1293 | },
1294 | "@babel/helper-replace-supers": {
1295 | "version": "7.19.1",
1296 | "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz",
1297 | "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==",
1298 | "dev": true,
1299 | "requires": {
1300 | "@babel/helper-environment-visitor": "^7.18.9",
1301 | "@babel/helper-member-expression-to-functions": "^7.18.9",
1302 | "@babel/helper-optimise-call-expression": "^7.18.6",
1303 | "@babel/traverse": "^7.19.1",
1304 | "@babel/types": "^7.19.0"
1305 | }
1306 | },
1307 | "@babel/helper-simple-access": {
1308 | "version": "7.18.6",
1309 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz",
1310 | "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==",
1311 | "dev": true,
1312 | "requires": {
1313 | "@babel/types": "^7.18.6"
1314 | }
1315 | },
1316 | "@babel/helper-split-export-declaration": {
1317 | "version": "7.18.6",
1318 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
1319 | "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
1320 | "dev": true,
1321 | "requires": {
1322 | "@babel/types": "^7.18.6"
1323 | }
1324 | },
1325 | "@babel/helper-string-parser": {
1326 | "version": "7.18.10",
1327 | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz",
1328 | "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==",
1329 | "dev": true
1330 | },
1331 | "@babel/helper-validator-identifier": {
1332 | "version": "7.19.1",
1333 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
1334 | "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
1335 | "dev": true
1336 | },
1337 | "@babel/helper-validator-option": {
1338 | "version": "7.18.6",
1339 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
1340 | "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
1341 | "dev": true
1342 | },
1343 | "@babel/helpers": {
1344 | "version": "7.19.0",
1345 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz",
1346 | "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==",
1347 | "dev": true,
1348 | "requires": {
1349 | "@babel/template": "^7.18.10",
1350 | "@babel/traverse": "^7.19.0",
1351 | "@babel/types": "^7.19.0"
1352 | }
1353 | },
1354 | "@babel/highlight": {
1355 | "version": "7.18.6",
1356 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
1357 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
1358 | "dev": true,
1359 | "requires": {
1360 | "@babel/helper-validator-identifier": "^7.18.6",
1361 | "chalk": "^2.0.0",
1362 | "js-tokens": "^4.0.0"
1363 | }
1364 | },
1365 | "@babel/parser": {
1366 | "version": "7.19.3",
1367 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.3.tgz",
1368 | "integrity": "sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ==",
1369 | "dev": true
1370 | },
1371 | "@babel/plugin-syntax-typescript": {
1372 | "version": "7.18.6",
1373 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz",
1374 | "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==",
1375 | "dev": true,
1376 | "requires": {
1377 | "@babel/helper-plugin-utils": "^7.18.6"
1378 | }
1379 | },
1380 | "@babel/plugin-transform-typescript": {
1381 | "version": "7.19.3",
1382 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.3.tgz",
1383 | "integrity": "sha512-z6fnuK9ve9u/0X0rRvI9MY0xg+DOUaABDYOe+/SQTxtlptaBB/V9JIUxJn6xp3lMBeb9qe8xSFmHU35oZDXD+w==",
1384 | "dev": true,
1385 | "requires": {
1386 | "@babel/helper-create-class-features-plugin": "^7.19.0",
1387 | "@babel/helper-plugin-utils": "^7.19.0",
1388 | "@babel/plugin-syntax-typescript": "^7.18.6"
1389 | }
1390 | },
1391 | "@babel/preset-typescript": {
1392 | "version": "7.18.6",
1393 | "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz",
1394 | "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==",
1395 | "dev": true,
1396 | "requires": {
1397 | "@babel/helper-plugin-utils": "^7.18.6",
1398 | "@babel/helper-validator-option": "^7.18.6",
1399 | "@babel/plugin-transform-typescript": "^7.18.6"
1400 | }
1401 | },
1402 | "@babel/template": {
1403 | "version": "7.18.10",
1404 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz",
1405 | "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
1406 | "dev": true,
1407 | "requires": {
1408 | "@babel/code-frame": "^7.18.6",
1409 | "@babel/parser": "^7.18.10",
1410 | "@babel/types": "^7.18.10"
1411 | }
1412 | },
1413 | "@babel/traverse": {
1414 | "version": "7.19.3",
1415 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.3.tgz",
1416 | "integrity": "sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ==",
1417 | "dev": true,
1418 | "requires": {
1419 | "@babel/code-frame": "^7.18.6",
1420 | "@babel/generator": "^7.19.3",
1421 | "@babel/helper-environment-visitor": "^7.18.9",
1422 | "@babel/helper-function-name": "^7.19.0",
1423 | "@babel/helper-hoist-variables": "^7.18.6",
1424 | "@babel/helper-split-export-declaration": "^7.18.6",
1425 | "@babel/parser": "^7.19.3",
1426 | "@babel/types": "^7.19.3",
1427 | "debug": "^4.1.0",
1428 | "globals": "^11.1.0"
1429 | }
1430 | },
1431 | "@babel/types": {
1432 | "version": "7.19.3",
1433 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.3.tgz",
1434 | "integrity": "sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw==",
1435 | "dev": true,
1436 | "requires": {
1437 | "@babel/helper-string-parser": "^7.18.10",
1438 | "@babel/helper-validator-identifier": "^7.19.1",
1439 | "to-fast-properties": "^2.0.0"
1440 | }
1441 | },
1442 | "@jridgewell/gen-mapping": {
1443 | "version": "0.1.1",
1444 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
1445 | "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
1446 | "dev": true,
1447 | "requires": {
1448 | "@jridgewell/set-array": "^1.0.0",
1449 | "@jridgewell/sourcemap-codec": "^1.4.10"
1450 | }
1451 | },
1452 | "@jridgewell/resolve-uri": {
1453 | "version": "3.1.0",
1454 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
1455 | "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
1456 | "dev": true
1457 | },
1458 | "@jridgewell/set-array": {
1459 | "version": "1.1.2",
1460 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
1461 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
1462 | "dev": true
1463 | },
1464 | "@jridgewell/sourcemap-codec": {
1465 | "version": "1.4.14",
1466 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
1467 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
1468 | "dev": true
1469 | },
1470 | "@jridgewell/trace-mapping": {
1471 | "version": "0.3.15",
1472 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz",
1473 | "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==",
1474 | "dev": true,
1475 | "requires": {
1476 | "@jridgewell/resolve-uri": "^3.0.3",
1477 | "@jridgewell/sourcemap-codec": "^1.4.10"
1478 | }
1479 | },
1480 | "@rollup/plugin-babel": {
1481 | "version": "5.3.1",
1482 | "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz",
1483 | "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==",
1484 | "dev": true,
1485 | "requires": {
1486 | "@babel/helper-module-imports": "^7.10.4",
1487 | "@rollup/pluginutils": "^3.1.0"
1488 | }
1489 | },
1490 | "@rollup/plugin-node-resolve": {
1491 | "version": "14.1.0",
1492 | "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-14.1.0.tgz",
1493 | "integrity": "sha512-5G2niJroNCz/1zqwXtk0t9+twOSDlG00k1Wfd7bkbbXmwg8H8dvgHdIWAun53Ps/rckfvOC7scDBjuGFg5OaWw==",
1494 | "dev": true,
1495 | "requires": {
1496 | "@rollup/pluginutils": "^3.1.0",
1497 | "@types/resolve": "1.17.1",
1498 | "deepmerge": "^4.2.2",
1499 | "is-builtin-module": "^3.1.0",
1500 | "is-module": "^1.0.0",
1501 | "resolve": "^1.19.0"
1502 | }
1503 | },
1504 | "@rollup/pluginutils": {
1505 | "version": "3.1.0",
1506 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
1507 | "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
1508 | "dev": true,
1509 | "requires": {
1510 | "@types/estree": "0.0.39",
1511 | "estree-walker": "^1.0.1",
1512 | "picomatch": "^2.2.2"
1513 | }
1514 | },
1515 | "@types/estree": {
1516 | "version": "0.0.39",
1517 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
1518 | "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
1519 | "dev": true
1520 | },
1521 | "@types/node": {
1522 | "version": "18.8.3",
1523 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.3.tgz",
1524 | "integrity": "sha512-0os9vz6BpGwxGe9LOhgP/ncvYN5Tx1fNcd2TM3rD/aCGBkysb+ZWpXEocG24h6ZzOi13+VB8HndAQFezsSOw1w==",
1525 | "dev": true
1526 | },
1527 | "@types/resolve": {
1528 | "version": "1.17.1",
1529 | "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
1530 | "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==",
1531 | "dev": true,
1532 | "requires": {
1533 | "@types/node": "*"
1534 | }
1535 | },
1536 | "@vue/reactivity": {
1537 | "version": "3.2.40",
1538 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.40.tgz",
1539 | "integrity": "sha512-N9qgGLlZmtUBMHF9xDT4EkD9RdXde1Xbveb+niWMXuHVWQP5BzgRmE3SFyUBBcyayG4y1lhoz+lphGRRxxK4RA==",
1540 | "dev": true,
1541 | "requires": {
1542 | "@vue/shared": "3.2.40"
1543 | }
1544 | },
1545 | "@vue/shared": {
1546 | "version": "3.2.40",
1547 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.40.tgz",
1548 | "integrity": "sha512-0PLQ6RUtZM0vO3teRfzGi4ltLUO5aO+kLgwh4Um3THSR03rpQWLTuRCkuO5A41ITzwdWeKdPHtSARuPkoo5pCQ==",
1549 | "dev": true
1550 | },
1551 | "ansi-styles": {
1552 | "version": "3.2.1",
1553 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1554 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1555 | "dev": true,
1556 | "requires": {
1557 | "color-convert": "^1.9.0"
1558 | }
1559 | },
1560 | "babel-plugin-transform-rename-import": {
1561 | "version": "2.3.0",
1562 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-rename-import/-/babel-plugin-transform-rename-import-2.3.0.tgz",
1563 | "integrity": "sha512-dPgJoT57XC0PqSnLgl2FwNvxFrWlspatX2dkk7yjKQj5HHGw071vAcOf+hqW8ClqcBDMvEbm6mevn5yHAD8mlQ==",
1564 | "dev": true
1565 | },
1566 | "browserslist": {
1567 | "version": "4.21.4",
1568 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
1569 | "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
1570 | "dev": true,
1571 | "requires": {
1572 | "caniuse-lite": "^1.0.30001400",
1573 | "electron-to-chromium": "^1.4.251",
1574 | "node-releases": "^2.0.6",
1575 | "update-browserslist-db": "^1.0.9"
1576 | }
1577 | },
1578 | "builtin-modules": {
1579 | "version": "3.3.0",
1580 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
1581 | "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
1582 | "dev": true
1583 | },
1584 | "caniuse-lite": {
1585 | "version": "1.0.30001416",
1586 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001416.tgz",
1587 | "integrity": "sha512-06wzzdAkCPZO+Qm4e/eNghZBDfVNDsCgw33T27OwBH9unE9S478OYw//Q2L7Npf/zBzs7rjZOszIFQkwQKAEqA==",
1588 | "dev": true
1589 | },
1590 | "chalk": {
1591 | "version": "2.4.2",
1592 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
1593 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
1594 | "dev": true,
1595 | "requires": {
1596 | "ansi-styles": "^3.2.1",
1597 | "escape-string-regexp": "^1.0.5",
1598 | "supports-color": "^5.3.0"
1599 | }
1600 | },
1601 | "color-convert": {
1602 | "version": "1.9.3",
1603 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
1604 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
1605 | "dev": true,
1606 | "requires": {
1607 | "color-name": "1.1.3"
1608 | }
1609 | },
1610 | "color-name": {
1611 | "version": "1.1.3",
1612 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
1613 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
1614 | "dev": true
1615 | },
1616 | "convert-source-map": {
1617 | "version": "1.8.0",
1618 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
1619 | "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
1620 | "dev": true,
1621 | "requires": {
1622 | "safe-buffer": "~5.1.1"
1623 | }
1624 | },
1625 | "csstype": {
1626 | "version": "3.1.1",
1627 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
1628 | "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
1629 | },
1630 | "debug": {
1631 | "version": "4.3.4",
1632 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1633 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1634 | "dev": true,
1635 | "requires": {
1636 | "ms": "2.1.2"
1637 | }
1638 | },
1639 | "deepmerge": {
1640 | "version": "4.2.2",
1641 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
1642 | "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
1643 | "dev": true
1644 | },
1645 | "devalue": {
1646 | "version": "2.0.1",
1647 | "resolved": "https://registry.npmjs.org/devalue/-/devalue-2.0.1.tgz",
1648 | "integrity": "sha512-I2TiqT5iWBEyB8GRfTDP0hiLZ0YeDJZ+upDxjBfOC2lebO5LezQMv7QvIUTzdb64jQyAKLf1AHADtGN+jw6v8Q==",
1649 | "dev": true
1650 | },
1651 | "dom-expressions": {
1652 | "version": "0.34.12",
1653 | "resolved": "https://registry.npmjs.org/dom-expressions/-/dom-expressions-0.34.12.tgz",
1654 | "integrity": "sha512-GIKL8KOJ45RsBe7hI3QeTe9gtBUty36FIcSG0CFE9U6CVPciWX2ye5W5kmfI64TENFh19k9u1anZBQEqmfudoA==",
1655 | "dev": true,
1656 | "requires": {
1657 | "babel-plugin-transform-rename-import": "^2.3.0",
1658 | "devalue": "^2.0.1"
1659 | }
1660 | },
1661 | "electron-to-chromium": {
1662 | "version": "1.4.275",
1663 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.275.tgz",
1664 | "integrity": "sha512-aJeQQ+Hl9Jyyzv4chBqYJwmVRY46N5i2BEX5Cuyk/5gFCUZ5F3i7Hnba6snZftWla7Gglwc5pIgcd+E7cW+rPg==",
1665 | "dev": true
1666 | },
1667 | "escalade": {
1668 | "version": "3.1.1",
1669 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
1670 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
1671 | "dev": true
1672 | },
1673 | "escape-string-regexp": {
1674 | "version": "1.0.5",
1675 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1676 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
1677 | "dev": true
1678 | },
1679 | "estree-walker": {
1680 | "version": "1.0.1",
1681 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
1682 | "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
1683 | "dev": true
1684 | },
1685 | "fsevents": {
1686 | "version": "2.3.2",
1687 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
1688 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
1689 | "dev": true,
1690 | "optional": true
1691 | },
1692 | "function-bind": {
1693 | "version": "1.1.1",
1694 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1695 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
1696 | "dev": true
1697 | },
1698 | "gensync": {
1699 | "version": "1.0.0-beta.2",
1700 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
1701 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
1702 | "dev": true
1703 | },
1704 | "globals": {
1705 | "version": "11.12.0",
1706 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
1707 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
1708 | "dev": true
1709 | },
1710 | "has": {
1711 | "version": "1.0.3",
1712 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1713 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1714 | "dev": true,
1715 | "requires": {
1716 | "function-bind": "^1.1.1"
1717 | }
1718 | },
1719 | "has-flag": {
1720 | "version": "3.0.0",
1721 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1722 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
1723 | "dev": true
1724 | },
1725 | "hyper-dom-expressions": {
1726 | "version": "0.34.12",
1727 | "resolved": "https://registry.npmjs.org/hyper-dom-expressions/-/hyper-dom-expressions-0.34.12.tgz",
1728 | "integrity": "sha512-mz6lUmtWt16Xx4hHjnN32QPV19gfy6Lh+C/ASyn+6Hxsgv2+8Q4P552etfNnhgoIE4c7foRSlvow5OU6m6ljmA==",
1729 | "dev": true
1730 | },
1731 | "is-builtin-module": {
1732 | "version": "3.2.0",
1733 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz",
1734 | "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==",
1735 | "dev": true,
1736 | "requires": {
1737 | "builtin-modules": "^3.3.0"
1738 | }
1739 | },
1740 | "is-core-module": {
1741 | "version": "2.10.0",
1742 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz",
1743 | "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
1744 | "dev": true,
1745 | "requires": {
1746 | "has": "^1.0.3"
1747 | }
1748 | },
1749 | "is-module": {
1750 | "version": "1.0.0",
1751 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
1752 | "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
1753 | "dev": true
1754 | },
1755 | "js-tokens": {
1756 | "version": "4.0.0",
1757 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1758 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
1759 | "dev": true
1760 | },
1761 | "jsesc": {
1762 | "version": "2.5.2",
1763 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
1764 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
1765 | "dev": true
1766 | },
1767 | "json5": {
1768 | "version": "2.2.1",
1769 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
1770 | "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
1771 | "dev": true
1772 | },
1773 | "lit-dom-expressions": {
1774 | "version": "0.34.12",
1775 | "resolved": "https://registry.npmjs.org/lit-dom-expressions/-/lit-dom-expressions-0.34.12.tgz",
1776 | "integrity": "sha512-Bffcw6tTA4qsBJt034ip28xx9sAx1xMJ56h6lOd4cQ0gC+goVpPiQMkoNLeMUvrcRIPdsOpdjraZHvRO5/H5Rg==",
1777 | "dev": true
1778 | },
1779 | "ms": {
1780 | "version": "2.1.2",
1781 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1782 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1783 | "dev": true
1784 | },
1785 | "ncp": {
1786 | "version": "2.0.0",
1787 | "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
1788 | "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==",
1789 | "dev": true
1790 | },
1791 | "node-releases": {
1792 | "version": "2.0.6",
1793 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
1794 | "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
1795 | "dev": true
1796 | },
1797 | "path-parse": {
1798 | "version": "1.0.7",
1799 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
1800 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
1801 | "dev": true
1802 | },
1803 | "picocolors": {
1804 | "version": "1.0.0",
1805 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
1806 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
1807 | "dev": true
1808 | },
1809 | "picomatch": {
1810 | "version": "2.3.1",
1811 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
1812 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
1813 | "dev": true
1814 | },
1815 | "resolve": {
1816 | "version": "1.22.1",
1817 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
1818 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
1819 | "dev": true,
1820 | "requires": {
1821 | "is-core-module": "^2.9.0",
1822 | "path-parse": "^1.0.7",
1823 | "supports-preserve-symlinks-flag": "^1.0.0"
1824 | }
1825 | },
1826 | "rollup": {
1827 | "version": "2.79.1",
1828 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz",
1829 | "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==",
1830 | "dev": true,
1831 | "requires": {
1832 | "fsevents": "~2.3.2"
1833 | }
1834 | },
1835 | "safe-buffer": {
1836 | "version": "5.1.2",
1837 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1838 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
1839 | "dev": true
1840 | },
1841 | "semver": {
1842 | "version": "6.3.0",
1843 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1844 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1845 | "dev": true
1846 | },
1847 | "supports-color": {
1848 | "version": "5.5.0",
1849 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1850 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1851 | "dev": true,
1852 | "requires": {
1853 | "has-flag": "^3.0.0"
1854 | }
1855 | },
1856 | "supports-preserve-symlinks-flag": {
1857 | "version": "1.0.0",
1858 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
1859 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
1860 | "dev": true
1861 | },
1862 | "to-fast-properties": {
1863 | "version": "2.0.0",
1864 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
1865 | "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
1866 | "dev": true
1867 | },
1868 | "typescript": {
1869 | "version": "4.8.4",
1870 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz",
1871 | "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
1872 | "dev": true
1873 | },
1874 | "update-browserslist-db": {
1875 | "version": "1.0.10",
1876 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
1877 | "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
1878 | "dev": true,
1879 | "requires": {
1880 | "escalade": "^3.1.1",
1881 | "picocolors": "^1.0.0"
1882 | }
1883 | }
1884 | }
1885 | }
1886 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vuerx-jsx",
3 | "description": "Vue Reactivity with a Fine-Grained Renderer",
4 | "version": "0.3.0",
5 | "author": "Ryan Carniato",
6 | "license": "MIT",
7 | "repository": {
8 | "type": "git",
9 | "url": "https://github.com/ryansolid/vuerx-jsx"
10 | },
11 | "module": "dist/index.js",
12 | "main": "lib/index.js",
13 | "types": "types/index.d.ts",
14 | "scripts": {
15 | "build": "rollup -c && ncp ./src/jsx.d.ts ./types/jsx.d.ts && tsc && ncp ./src/client.d.ts ./types/client.d.ts",
16 | "prepublishOnly": "npm run build"
17 | },
18 | "dependencies": {
19 | "csstype": "^3.1.0"
20 | },
21 | "devDependencies": {
22 | "@babel/core": "7.19.3",
23 | "@babel/preset-typescript": "7.18.6",
24 | "@rollup/plugin-babel": "5.3.1",
25 | "@rollup/plugin-node-resolve": "14.1.0",
26 | "@vue/reactivity": "3.2.40",
27 | "dom-expressions": "0.34.12",
28 | "hyper-dom-expressions": "0.34.12",
29 | "lit-dom-expressions": "0.34.12",
30 | "ncp": "2.0.0",
31 | "rollup": "^2.41.4",
32 | "typescript": "4.8.4"
33 | },
34 | "peerDependencies": {
35 | "@vue/reactivity": "^3.0.0"
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/rollup.config.js:
--------------------------------------------------------------------------------
1 | import babel from '@rollup/plugin-babel';
2 | import nodeResolve from '@rollup/plugin-node-resolve';
3 |
4 | const plugins = [
5 | nodeResolve({
6 | extensions: ['.js', '.ts']
7 | }),
8 | babel({
9 | extensions: ['.js', '.ts'],
10 | babelHelpers: "bundled",
11 | presets: ["@babel/preset-typescript"],
12 | plugins: [
13 | [
14 | "babel-plugin-transform-rename-import",
15 | {
16 | original: "rxcore",
17 | replacement: "../../../src/core"
18 | }
19 | ]
20 | ]
21 | })
22 | ];
23 |
24 | export default [{
25 | input: 'src/index.ts',
26 | output: [{
27 | format: 'cjs',
28 | file: 'lib/index.js'
29 | }, {
30 | format: 'es',
31 | file: 'dist/index.js'
32 | }],
33 | external: ['@vue/reactivity'],
34 | plugins
35 | }, {
36 | input: 'src/html.ts',
37 | output: [{
38 | format: 'cjs',
39 | file: 'lib/html.js'
40 | }, {
41 | format: 'es',
42 | file: 'dist/html.js'
43 | }],
44 | external: ['./index', '@vue/reactivity'],
45 | plugins
46 | }, {
47 | input: 'src/h.ts',
48 | output: [{
49 | format: 'cjs',
50 | file: 'lib/h.js'
51 | }, {
52 | format: 'es',
53 | file: 'dist/h.js'
54 | }],
55 | external: ['./index', '@vue/reactivity'],
56 | plugins
57 | }];
--------------------------------------------------------------------------------
/src/client.d.ts:
--------------------------------------------------------------------------------
1 | import { JSX } from "./jsx.js";
2 | export const Aliases: Record;
3 | export const PropAliases: Record;
4 | export const Properties: Set;
5 | export const ChildProperties: Set;
6 | export const DelegatedEvents: Set;
7 | export const DOMElements: Set;
8 | export const SVGElements: Set;
9 | export const SVGNamespace: Record;
10 |
11 | type MountableElement = Element | Document | ShadowRoot | DocumentFragment | Node;
12 | export function render(code: () => JSX.Element, element: MountableElement): () => void;
13 | export function template(html: string, count: number, isSVG?: boolean): Element;
14 | export function effect(fn: (prev?: T) => T, init?: T): void;
15 | export function memo(fn: () => T, equal: boolean): () => T;
16 | export function untrack(fn: () => T): T;
17 | export function insert(
18 | parent: MountableElement,
19 | accessor: (() => T) | T,
20 | marker?: Node | null,
21 | init?: JSX.Element
22 | ): JSX.Element;
23 | export function createComponent(Comp: (props: T) => JSX.Element, props: T): JSX.Element;
24 | export function delegateEvents(eventNames: string[], d?: Document): void;
25 | export function clearDelegatedEvents(d?: Document): void;
26 | export function spread(
27 | node: Element,
28 | accessor: (() => T) | T,
29 | isSVG?: Boolean,
30 | skipChildren?: Boolean
31 | ): void;
32 | export function assign(node: Element, props: any, isSVG?: Boolean, skipChildren?: Boolean): void;
33 | export function setAttribute(node: Element, name: string, value: string): void;
34 | export function setAttributeNS(node: Element, namespace: string, name: string, value: string): void;
35 | export function className(node: Element, value: string): void;
36 | export function innerHTML(node: Element, content: string): void;
37 | export function addEventListener(
38 | node: Element,
39 | name: string,
40 | handler: () => void,
41 | delegate: boolean
42 | ): void;
43 | export function classList(
44 | node: Element,
45 | value: { [k: string]: boolean },
46 | prev?: { [k: string]: boolean }
47 | ): void;
48 | export function style(
49 | node: Element,
50 | value: { [k: string]: string },
51 | prev?: { [k: string]: string }
52 | ): void;
53 | export function getOwner(): unknown;
54 | export function mergeProps(...sources: unknown[]): unknown;
55 | export function dynamicProperty(props: unknown, key: string): unknown;
56 |
57 | export function hydrate(
58 | fn: () => JSX.Element,
59 | node: MountableElement,
60 | options?: { renderId?: string }
61 | ): () => void;
62 | export function getHydrationKey(): string;
63 | export function getNextElement(template?: HTMLTemplateElement): Element;
64 | export function getNextMatch(start: Node, elementName: string): Element;
65 | export function getNextMarker(start: Node): [Node, Array];
66 | export function useAssets(fn: () => string): void;
67 | export function getAssets(): string;
68 | export function Assets(props: { children?: JSX.Element }): JSX.Element;
69 | export function HydrationScript(): JSX.Element;
70 | export function NoHydration(props: { children?: JSX.Element }): JSX.Element;
71 | export function generateHydrationScript(): string;
--------------------------------------------------------------------------------
/src/client.js:
--------------------------------------------------------------------------------
1 | export * from "dom-expressions/src/client";
--------------------------------------------------------------------------------
/src/core.ts:
--------------------------------------------------------------------------------
1 | export {
2 | root,
3 | effect,
4 | memo,
5 | createComponent,
6 | untrack
7 | } from "./lib"
8 |
9 | export const sharedConfig = {};
10 | export const getOwner = null;
--------------------------------------------------------------------------------
/src/h.ts:
--------------------------------------------------------------------------------
1 | import { createHyperScript } from "hyper-dom-expressions";
2 | import { spread, assign, insert, createComponent, dynamicProperty, SVGElements } from "./index.js";
3 |
4 | export const h = createHyperScript({
5 | spread,
6 | assign,
7 | insert,
8 | createComponent,
9 | dynamicProperty,
10 | SVGElements
11 | });
12 |
13 | export * from './index';
--------------------------------------------------------------------------------
/src/html.ts:
--------------------------------------------------------------------------------
1 | import { createHTML } from "lit-dom-expressions";
2 | import {
3 | effect,
4 | style,
5 | insert,
6 | untrack,
7 | spread,
8 | createComponent,
9 | delegateEvents,
10 | classList,
11 | dynamicProperty,
12 | mergeProps,
13 | setAttribute,
14 | setAttributeNS,
15 | addEventListener,
16 | Aliases,
17 | PropAliases,
18 | Properties,
19 | ChildProperties,
20 | DelegatedEvents,
21 | SVGElements,
22 | SVGNamespace
23 | } from "./index.js";
24 |
25 | export const html = createHTML({
26 | effect,
27 | style,
28 | insert,
29 | untrack,
30 | spread,
31 | createComponent,
32 | delegateEvents,
33 | classList,
34 | mergeProps,
35 | dynamicProperty,
36 | setAttribute,
37 | setAttributeNS,
38 | addEventListener,
39 | Aliases,
40 | PropAliases,
41 | Properties,
42 | ChildProperties,
43 | DelegatedEvents,
44 | SVGElements,
45 | SVGNamespace
46 | });
47 |
48 | export { root, cleanup } from "./index";
49 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | export { root, cleanup, createSelector, lazy, createContext, useContext, map, untrack } from "./lib";
2 | export type { Context, Component, ComponentProps } from "./lib";
3 | export * from "./client";
4 |
5 | export type { JSX } from "./jsx"
6 |
--------------------------------------------------------------------------------
/src/jsx.d.ts:
--------------------------------------------------------------------------------
1 | import * as csstype from 'csstype';
2 |
3 | /**
4 | * Based on JSX types for Surplus and Inferno and adapted for `dom-expressions`.
5 | *
6 | * https://github.com/adamhaile/surplus/blob/master/index.d.ts
7 | * https://github.com/infernojs/inferno/blob/master/packages/inferno/src/core/types.ts
8 | */
9 | type DOMElement = Element;
10 |
11 | export namespace JSX {
12 | type Element =
13 | | Node
14 | | ArrayElement
15 | | FunctionElement
16 | | (string & {})
17 | | number
18 | | boolean
19 | | null
20 | | undefined;
21 | interface ArrayElement extends Array {}
22 | interface FunctionElement {
23 | (): Element;
24 | }
25 | interface ElementClass {
26 | // empty, libs can define requirements downstream
27 | }
28 | interface ElementAttributesProperty {
29 | // empty, libs can define requirements downstream
30 | }
31 | interface ElementChildrenAttribute {
32 | children: {};
33 | }
34 | interface EventHandler {
35 | (
36 | e: E & {
37 | currentTarget: T;
38 | target: DOMElement;
39 | }
40 | ): void;
41 | }
42 | interface BoundEventHandler {
43 | 0: (
44 | data: any,
45 | e: E & {
46 | currentTarget: T;
47 | target: DOMElement;
48 | }
49 | ) => void;
50 | 1: any;
51 | }
52 | type EventHandlerUnion = EventHandler | BoundEventHandler;
53 | interface IntrinsicAttributes {
54 | ref?: unknown | ((e: unknown) => void);
55 | }
56 | interface CustomAttributes {
57 | ref?: T | ((el: T) => void);
58 | classList?: {
59 | [k: string]: boolean | undefined;
60 | };
61 | $ServerOnly?: boolean;
62 | }
63 | type Accessor = () => T
64 | interface Directives {}
65 | interface DirectiveFunctions {
66 | [x: string]: (el: Element, accessor: Accessor) => void;
67 | }
68 | interface ExplicitProperties {}
69 | interface ExplicitAttributes {}
70 | interface CustomEvents {}
71 | interface CustomCaptureEvents {}
72 | type DirectiveAttributes = {
73 | [Key in keyof Directives as `use:${Key}`]?: Directives[Key];
74 | };
75 | type DirectiveFunctionAttributes = {
76 | [K in keyof DirectiveFunctions as string extends K ? never : `use:${K}`]?: DirectiveFunctions[K] extends (
77 | el: infer E, // will be unknown if not provided
78 | ...rest: infer R // use rest so that we can check whether it's provided or not
79 | ) => void
80 | ? T extends E // everything extends unknown if E is unknown
81 | ? R extends [infer A] // check if has accessor provided
82 | ? A extends Accessor
83 | ? V // it's an accessor
84 | : never // it isn't, type error
85 | : true // no accessor provided
86 | : never // T is the wrong element
87 | : never; // it isn't a function
88 | };
89 | type PropAttributes = {
90 | [Key in keyof ExplicitProperties as `prop:${Key}`]?: ExplicitProperties[Key];
91 | };
92 | type AttrAttributes = {
93 | [Key in keyof ExplicitAttributes as `attr:${Key}`]?: ExplicitAttributes[Key];
94 | };
95 | type OnAttributes = {
96 | [Key in keyof CustomEvents as `on:${Key}`]?: EventHandler;
97 | }
98 | type OnCaptureAttributes = {
99 | [Key in keyof CustomCaptureEvents as `oncapture:${Key}`]?: EventHandler;
100 | }
101 | interface DOMAttributes extends CustomAttributes, DirectiveAttributes, DirectiveFunctionAttributes, PropAttributes, AttrAttributes, OnAttributes, OnCaptureAttributes {
102 | children?: Element;
103 | innerHTML?: string;
104 | innerText?: string | number;
105 | textContent?: string | number;
106 | onCopy?: EventHandlerUnion;
107 | onCut?: EventHandlerUnion;
108 | onPaste?: EventHandlerUnion;
109 | onCompositionEnd?: EventHandlerUnion;
110 | onCompositionStart?: EventHandlerUnion;
111 | onCompositionUpdate?: EventHandlerUnion;
112 | onFocus?: EventHandlerUnion;
113 | onFocusOut?: EventHandlerUnion;
114 | onFocusIn?: EventHandlerUnion;
115 | onBlur?: EventHandlerUnion;
116 | onChange?: EventHandlerUnion;
117 | onInvalid?: EventHandlerUnion;
118 | onInput?: EventHandlerUnion;
119 | onBeforeInput?: EventHandlerUnion;
120 | onReset?: EventHandlerUnion;
121 | onSubmit?: EventHandlerUnion<
122 | T,
123 | Event & {
124 | submitter: HTMLElement;
125 | }
126 | >;
127 | onLoad?: EventHandlerUnion;
128 | onError?: EventHandlerUnion;
129 | onKeyDown?: EventHandlerUnion;
130 | onKeyPress?: EventHandlerUnion;
131 | onKeyUp?: EventHandlerUnion;
132 | onGotPointerCapture?: EventHandlerUnion;
133 | onLostPointerCapture?: EventHandlerUnion;
134 | onPointerCancel?: EventHandlerUnion;
135 | onPointerDown?: EventHandlerUnion;
136 | onPointerEnter?: EventHandlerUnion;
137 | onPointerLeave?: EventHandlerUnion;
138 | onPointerMove?: EventHandlerUnion;
139 | onPointerOver?: EventHandlerUnion;
140 | onPointerOut?: EventHandlerUnion;
141 | onPointerUp?: EventHandlerUnion;
142 | onAbort?: EventHandlerUnion;
143 | onCanPlay?: EventHandlerUnion;
144 | onCanPlayThrough?: EventHandlerUnion;
145 | onDurationChange?: EventHandlerUnion;
146 | onEmptied?: EventHandlerUnion;
147 | onEncrypted?: EventHandlerUnion;
148 | onEnded?: EventHandlerUnion;
149 | onLoadedData?: EventHandlerUnion;
150 | onLoadedMetadata?: EventHandlerUnion;
151 | onLoadStart?: EventHandlerUnion;
152 | onPause?: EventHandlerUnion;
153 | onPlay?: EventHandlerUnion;
154 | onPlaying?: EventHandlerUnion;
155 | onProgress?: EventHandlerUnion;
156 | onRateChange?: EventHandlerUnion;
157 | onSeeked?: EventHandlerUnion;
158 | onSeeking?: EventHandlerUnion;
159 | onStalled?: EventHandlerUnion;
160 | onSuspend?: EventHandlerUnion;
161 | onTimeUpdate?: EventHandlerUnion;
162 | onVolumeChange?: EventHandlerUnion;
163 | onWaiting?: EventHandlerUnion;
164 | onClick?: EventHandlerUnion;
165 | onAuxClick?: EventHandlerUnion;
166 | onContextMenu?: EventHandlerUnion;
167 | onDblClick?: EventHandlerUnion;
168 | onDrag?: EventHandlerUnion;
169 | onDragEnd?: EventHandlerUnion;
170 | onDragEnter?: EventHandlerUnion;
171 | onDragExit?: EventHandlerUnion;
172 | onDragLeave?: EventHandlerUnion;
173 | onDragOver?: EventHandlerUnion;
174 | onDragStart?: EventHandlerUnion;
175 | onDrop?: EventHandlerUnion;
176 | onMouseDown?: EventHandlerUnion;
177 | onMouseEnter?: EventHandlerUnion;
178 | onMouseLeave?: EventHandlerUnion;
179 | onMouseMove?: EventHandlerUnion;
180 | onMouseOut?: EventHandlerUnion;
181 | onMouseOver?: EventHandlerUnion;
182 | onMouseUp?: EventHandlerUnion;
183 | onSelect?: EventHandlerUnion;
184 | onTouchCancel?: EventHandlerUnion;
185 | onTouchEnd?: EventHandlerUnion;
186 | onTouchMove?: EventHandlerUnion;
187 | onTouchStart?: EventHandlerUnion;
188 | onScroll?: EventHandlerUnion;
189 | onWheel?: EventHandlerUnion;
190 | onAnimationStart?: EventHandlerUnion;
191 | onAnimationEnd?: EventHandlerUnion;
192 | onAnimationIteration?: EventHandlerUnion;
193 | onTransitionEnd?: EventHandlerUnion;
194 |
195 | // lower case events
196 | oncopy?: EventHandlerUnion;
197 | oncut?: EventHandlerUnion;
198 | onpaste?: EventHandlerUnion;
199 | oncompositionend?: EventHandlerUnion;
200 | oncompositionstart?: EventHandlerUnion;
201 | oncompositionupdate?: EventHandlerUnion;
202 | onfocus?: EventHandlerUnion;
203 | onfocusout?: EventHandlerUnion;
204 | onfocusin?: EventHandlerUnion;
205 | onblur?: EventHandlerUnion;
206 | onchange?: EventHandlerUnion;
207 | oninvalid?: EventHandlerUnion;
208 | oninput?: EventHandlerUnion;
209 | onbeforeinput?: EventHandlerUnion;
210 | onreset?: EventHandlerUnion;
211 | onsubmit?: EventHandlerUnion<
212 | T,
213 | Event & {
214 | submitter: HTMLElement;
215 | }
216 | >;
217 | onload?: EventHandlerUnion;
218 | onerror?: EventHandlerUnion;
219 | onkeydown?: EventHandlerUnion;
220 | onkeypress?: EventHandlerUnion;
221 | onkeyup?: EventHandlerUnion;
222 | ongotpointercapture?: EventHandlerUnion;
223 | onlostpointercapture?: EventHandlerUnion;
224 | onpointercancel?: EventHandlerUnion;
225 | onpointerdown?: EventHandlerUnion;
226 | onpointerenter?: EventHandlerUnion;
227 | onpointerleave?: EventHandlerUnion;
228 | onpointermove?: EventHandlerUnion;
229 | onpointerover?: EventHandlerUnion;
230 | onpointerout?: EventHandlerUnion;
231 | onpointerup?: EventHandlerUnion;
232 | onabort?: EventHandlerUnion;
233 | oncanplay?: EventHandlerUnion;
234 | oncanplaythrough?: EventHandlerUnion;
235 | ondurationchange?: EventHandlerUnion;
236 | onemptied?: EventHandlerUnion;
237 | onencrypted?: EventHandlerUnion;
238 | onended?: EventHandlerUnion;
239 | onloadeddata?: EventHandlerUnion;
240 | onloadedmetadata?: EventHandlerUnion;
241 | onloadstart?: EventHandlerUnion;
242 | onpause?: EventHandlerUnion;
243 | onplay?: EventHandlerUnion;
244 | onplaying?: EventHandlerUnion;
245 | onprogress?: EventHandlerUnion;
246 | onratechange?: EventHandlerUnion;
247 | onseeked?: EventHandlerUnion;
248 | onseeking?: EventHandlerUnion;
249 | onstalled?: EventHandlerUnion;
250 | onsuspend?: EventHandlerUnion;
251 | ontimeupdate?: EventHandlerUnion;
252 | onvolumechange?: EventHandlerUnion;
253 | onwaiting?: EventHandlerUnion;
254 | onclick?: EventHandlerUnion;
255 | onauxclick?: EventHandlerUnion;
256 | oncontextmenu?: EventHandlerUnion;
257 | ondblclick?: EventHandlerUnion;
258 | ondrag?: EventHandlerUnion;
259 | ondragend?: EventHandlerUnion;
260 | ondragenter?: EventHandlerUnion;
261 | ondragexit?: EventHandlerUnion;
262 | ondragleave?: EventHandlerUnion;
263 | ondragover?: EventHandlerUnion;
264 | ondragstart?: EventHandlerUnion;
265 | ondrop?: EventHandlerUnion;
266 | onmousedown?: EventHandlerUnion;
267 | onmouseenter?: EventHandlerUnion;
268 | onmouseleave?: EventHandlerUnion;
269 | onmousemove?: EventHandlerUnion;
270 | onmouseout?: EventHandlerUnion;
271 | onmouseover?: EventHandlerUnion;
272 | onmouseup?: EventHandlerUnion;
273 | onselect?: EventHandlerUnion;
274 | ontouchcancel?: EventHandlerUnion;
275 | ontouchend?: EventHandlerUnion;
276 | ontouchmove?: EventHandlerUnion;
277 | ontouchstart?: EventHandlerUnion;
278 | onscroll?: EventHandlerUnion;
279 | onwheel?: EventHandlerUnion;
280 | onanimationstart?: EventHandlerUnion;
281 | onanimationend?: EventHandlerUnion;
282 | onanimationiteration?: EventHandlerUnion;
283 | ontransitionend?: EventHandlerUnion;
284 | }
285 |
286 | interface CSSProperties extends csstype.PropertiesHyphen {
287 | // Override
288 | [key: `-${string}`]: string | number | undefined
289 | }
290 |
291 | type HTMLAutocapitalize = "off" | "none" | "on" | "sentences" | "words" | "characters";
292 | type HTMLDir = "ltr" | "rtl" | "auto";
293 | type HTMLFormEncType = "application/x-www-form-urlencoded" | "multipart/form-data" | "text/plain";
294 | type HTMLFormMethod = "post" | "get" | "dialog";
295 | type HTMLCrossorigin = "anonymous" | "use-credentials" | "";
296 | type HTMLReferrerPolicy =
297 | | "no-referrer"
298 | | "no-referrer-when-downgrade"
299 | | "origin"
300 | | "origin-when-cross-origin"
301 | | "same-origin"
302 | | "strict-origin"
303 | | "strict-origin-when-cross-origin"
304 | | "unsafe-url";
305 | type HTMLIframeSandbox =
306 | | "allow-downloads-without-user-activation"
307 | | "allow-downloads"
308 | | "allow-forms"
309 | | "allow-modals"
310 | | "allow-orientation-lock"
311 | | "allow-pointer-lock"
312 | | "allow-popups"
313 | | "allow-popups-to-escape-sandbox"
314 | | "allow-presentation"
315 | | "allow-same-origin"
316 | | "allow-scripts"
317 | | "allow-storage-access-by-user-activation"
318 | | "allow-top-navigation"
319 | | "allow-top-navigation-by-user-activation";
320 | type HTMLLinkAs =
321 | | "audio"
322 | | "document"
323 | | "embed"
324 | | "fetch"
325 | | "font"
326 | | "image"
327 | | "object"
328 | | "script"
329 | | "style"
330 | | "track"
331 | | "video"
332 | | "worker";
333 |
334 | // All the WAI-ARIA 1.1 attributes from https://www.w3.org/TR/wai-aria-1.1/
335 | interface AriaAttributes {
336 | /** Identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application. */
337 | "aria-activedescendant"?: string;
338 | /** Indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the aria-relevant attribute. */
339 | "aria-atomic"?: boolean | "false" | "true";
340 | /**
341 | * Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be
342 | * presented if they are made.
343 | */
344 | "aria-autocomplete"?: "none" | "inline" | "list" | "both";
345 | /** Indicates an element is being modified and that assistive technologies MAY want to wait until the modifications are complete before exposing them to the user. */
346 | "aria-busy"?: boolean | "false" | "true";
347 | /**
348 | * Indicates the current "checked" state of checkboxes, radio buttons, and other widgets.
349 | * @see aria-pressed @see aria-selected.
350 | */
351 | "aria-checked"?: boolean | "false" | "mixed" | "true";
352 | /**
353 | * Defines the total number of columns in a table, grid, or treegrid.
354 | * @see aria-colindex.
355 | */
356 | "aria-colcount"?: number | string;
357 | /**
358 | * Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid.
359 | * @see aria-colcount @see aria-colspan.
360 | */
361 | "aria-colindex"?: number | string;
362 | /**
363 | * Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid.
364 | * @see aria-colindex @see aria-rowspan.
365 | */
366 | "aria-colspan"?: number | string;
367 | /**
368 | * Identifies the element (or elements) whose contents or presence are controlled by the current element.
369 | * @see aria-owns.
370 | */
371 | "aria-controls"?: string;
372 | /** Indicates the element that represents the current item within a container or set of related elements. */
373 | "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time";
374 | /**
375 | * Identifies the element (or elements) that describes the object.
376 | * @see aria-labelledby
377 | */
378 | "aria-describedby"?: string;
379 | /**
380 | * Identifies the element that provides a detailed, extended description for the object.
381 | * @see aria-describedby.
382 | */
383 | "aria-details"?: string;
384 | /**
385 | * Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable.
386 | * @see aria-hidden @see aria-readonly.
387 | */
388 | "aria-disabled"?: boolean | "false" | "true";
389 | /**
390 | * Indicates what functions can be performed when a dragged object is released on the drop target.
391 | * @deprecated in ARIA 1.1
392 | */
393 | "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup";
394 | /**
395 | * Identifies the element that provides an error message for the object.
396 | * @see aria-invalid @see aria-describedby.
397 | */
398 | "aria-errormessage"?: string;
399 | /** Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed. */
400 | "aria-expanded"?: boolean | "false" | "true";
401 | /**
402 | * Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion,
403 | * allows assistive technology to override the general default of reading in document source order.
404 | */
405 | "aria-flowto"?: string;
406 | /**
407 | * Indicates an element's "grabbed" state in a drag-and-drop operation.
408 | * @deprecated in ARIA 1.1
409 | */
410 | "aria-grabbed"?: boolean | "false" | "true";
411 | /** Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element. */
412 | "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog";
413 | /**
414 | * Indicates whether the element is exposed to an accessibility API.
415 | * @see aria-disabled.
416 | */
417 | "aria-hidden"?: boolean | "false" | "true";
418 | /**
419 | * Indicates the entered value does not conform to the format expected by the application.
420 | * @see aria-errormessage.
421 | */
422 | "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling";
423 | /** Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element. */
424 | "aria-keyshortcuts"?: string;
425 | /**
426 | * Defines a string value that labels the current element.
427 | * @see aria-labelledby.
428 | */
429 | "aria-label"?: string;
430 | /**
431 | * Identifies the element (or elements) that labels the current element.
432 | * @see aria-describedby.
433 | */
434 | "aria-labelledby"?: string;
435 | /** Defines the hierarchical level of an element within a structure. */
436 | "aria-level"?: number | string;
437 | /** Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region. */
438 | "aria-live"?: "off" | "assertive" | "polite";
439 | /** Indicates whether an element is modal when displayed. */
440 | "aria-modal"?: boolean | "false" | "true";
441 | /** Indicates whether a text box accepts multiple lines of input or only a single line. */
442 | "aria-multiline"?: boolean | "false" | "true";
443 | /** Indicates that the user may select more than one item from the current selectable descendants. */
444 | "aria-multiselectable"?: boolean | "false" | "true";
445 | /** Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous. */
446 | "aria-orientation"?: "horizontal" | "vertical";
447 | /**
448 | * Identifies an element (or elements) in order to define a visual, functional, or contextual parent/child relationship
449 | * between DOM elements where the DOM hierarchy cannot be used to represent the relationship.
450 | * @see aria-controls.
451 | */
452 | "aria-owns"?: string;
453 | /**
454 | * Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value.
455 | * A hint could be a sample value or a brief description of the expected format.
456 | */
457 | "aria-placeholder"?: string;
458 | /**
459 | * Defines an element's number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.
460 | * @see aria-setsize.
461 | */
462 | "aria-posinset"?: number | string;
463 | /**
464 | * Indicates the current "pressed" state of toggle buttons.
465 | * @see aria-checked @see aria-selected.
466 | */
467 | "aria-pressed"?: boolean | "false" | "mixed" | "true";
468 | /**
469 | * Indicates that the element is not editable, but is otherwise operable.
470 | * @see aria-disabled.
471 | */
472 | "aria-readonly"?: boolean | "false" | "true";
473 | /**
474 | * Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified.
475 | * @see aria-atomic.
476 | */
477 | "aria-relevant"?:
478 | | "additions"
479 | | "additions removals"
480 | | "additions text"
481 | | "all"
482 | | "removals"
483 | | "removals additions"
484 | | "removals text"
485 | | "text"
486 | | "text additions"
487 | | "text removals";
488 | /** Indicates that user input is required on the element before a form may be submitted. */
489 | "aria-required"?: boolean | "false" | "true";
490 | /** Defines a human-readable, author-localized description for the role of an element. */
491 | "aria-roledescription"?: string;
492 | /**
493 | * Defines the total number of rows in a table, grid, or treegrid.
494 | * @see aria-rowindex.
495 | */
496 | "aria-rowcount"?: number | string;
497 | /**
498 | * Defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid.
499 | * @see aria-rowcount @see aria-rowspan.
500 | */
501 | "aria-rowindex"?: number | string;
502 | /**
503 | * Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid.
504 | * @see aria-rowindex @see aria-colspan.
505 | */
506 | "aria-rowspan"?: number | string;
507 | /**
508 | * Indicates the current "selected" state of various widgets.
509 | * @see aria-checked @see aria-pressed.
510 | */
511 | "aria-selected"?: boolean | "false" | "true";
512 | /**
513 | * Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.
514 | * @see aria-posinset.
515 | */
516 | "aria-setsize"?: number | string;
517 | /** Indicates if items in a table or grid are sorted in ascending or descending order. */
518 | "aria-sort"?: "none" | "ascending" | "descending" | "other";
519 | /** Defines the maximum allowed value for a range widget. */
520 | "aria-valuemax"?: number | string;
521 | /** Defines the minimum allowed value for a range widget. */
522 | "aria-valuemin"?: number | string;
523 | /**
524 | * Defines the current value for a range widget.
525 | * @see aria-valuetext.
526 | */
527 | "aria-valuenow"?: number | string;
528 | /** Defines the human readable text alternative of aria-valuenow for a range widget. */
529 | "aria-valuetext"?: string;
530 | role?:
531 | | "alert"
532 | | "alertdialog"
533 | | "application"
534 | | "article"
535 | | "banner"
536 | | "button"
537 | | "cell"
538 | | "checkbox"
539 | | "columnheader"
540 | | "combobox"
541 | | "complementary"
542 | | "contentinfo"
543 | | "definition"
544 | | "dialog"
545 | | "directory"
546 | | "document"
547 | | "feed"
548 | | "figure"
549 | | "form"
550 | | "grid"
551 | | "gridcell"
552 | | "group"
553 | | "heading"
554 | | "img"
555 | | "link"
556 | | "list"
557 | | "listbox"
558 | | "listitem"
559 | | "log"
560 | | "main"
561 | | "marquee"
562 | | "math"
563 | | "menu"
564 | | "menubar"
565 | | "menuitem"
566 | | "menuitemcheckbox"
567 | | "menuitemradio"
568 | | "meter"
569 | | "navigation"
570 | | "none"
571 | | "note"
572 | | "option"
573 | | "presentation"
574 | | "progressbar"
575 | | "radio"
576 | | "radiogroup"
577 | | "region"
578 | | "row"
579 | | "rowgroup"
580 | | "rowheader"
581 | | "scrollbar"
582 | | "search"
583 | | "searchbox"
584 | | "separator"
585 | | "slider"
586 | | "spinbutton"
587 | | "status"
588 | | "switch"
589 | | "tab"
590 | | "table"
591 | | "tablist"
592 | | "tabpanel"
593 | | "term"
594 | | "textbox"
595 | | "timer"
596 | | "toolbar"
597 | | "tooltip"
598 | | "tree"
599 | | "treegrid"
600 | | "treeitem";
601 | }
602 |
603 | // TODO: Should we allow this?
604 | // type ClassKeys = `class:${string}`;
605 | // type CSSKeys = Exclude;
606 |
607 | // type CSSAttributes = {
608 | // [key in CSSKeys as `style:${key}`]: csstype.PropertiesHyphen[key];
609 | // };
610 |
611 | interface HTMLAttributes extends AriaAttributes, DOMAttributes {
612 | // [key: ClassKeys]: boolean;
613 | accessKey?: string;
614 | class?: string;
615 | contenteditable?: boolean | "inherit";
616 | contextmenu?: string;
617 | dir?: HTMLDir;
618 | draggable?: boolean;
619 | hidden?: boolean;
620 | id?: string;
621 | lang?: string;
622 | spellcheck?: boolean;
623 | style?: CSSProperties | string;
624 | tabindex?: number | string;
625 | title?: string;
626 | translate?: "yes" | "no";
627 | about?: string;
628 | datatype?: string;
629 | inlist?: any;
630 | prefix?: string;
631 | property?: string;
632 | resource?: string;
633 | typeof?: string;
634 | vocab?: string;
635 | autocapitalize?: HTMLAutocapitalize;
636 | slot?: string;
637 | color?: string;
638 | itemprop?: string;
639 | itemscope?: boolean;
640 | itemtype?: string;
641 | itemid?: string;
642 | itemref?: string;
643 | part?: string;
644 | exportparts?: string;
645 | inputmode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search";
646 | contentEditable?: boolean | "inherit";
647 | contextMenu?: string;
648 | tabIndex?: number | string;
649 | autoCapitalize?: HTMLAutocapitalize;
650 | itemProp?: string;
651 | itemScope?: boolean;
652 | itemType?: string;
653 | itemId?: string;
654 | itemRef?: string;
655 | exportParts?: string;
656 | inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search";
657 | }
658 | interface AnchorHTMLAttributes extends HTMLAttributes {
659 | download?: any;
660 | href?: string;
661 | hreflang?: string;
662 | media?: string;
663 | ping?: string;
664 | referrerpolicy?: HTMLReferrerPolicy;
665 | rel?: string;
666 | target?: string;
667 | type?: string;
668 | referrerPolicy?: HTMLReferrerPolicy;
669 | }
670 | interface AudioHTMLAttributes extends MediaHTMLAttributes {}
671 | interface AreaHTMLAttributes extends HTMLAttributes {
672 | alt?: string;
673 | coords?: string;
674 | download?: any;
675 | href?: string;
676 | hreflang?: string;
677 | ping?: string;
678 | referrerpolicy?: HTMLReferrerPolicy;
679 | rel?: string;
680 | shape?: "rect" | "circle" | "poly" | "default";
681 | target?: string;
682 | referrerPolicy?: HTMLReferrerPolicy;
683 | }
684 | interface BaseHTMLAttributes extends HTMLAttributes {
685 | href?: string;
686 | target?: string;
687 | }
688 | interface BlockquoteHTMLAttributes extends HTMLAttributes {
689 | cite?: string;
690 | }
691 | interface ButtonHTMLAttributes extends HTMLAttributes {
692 | autofocus?: boolean;
693 | disabled?: boolean;
694 | form?: string;
695 | formaction?: string;
696 | formenctype?: HTMLFormEncType;
697 | formmethod?: HTMLFormMethod;
698 | formnovalidate?: boolean;
699 | formtarget?: string;
700 | name?: string;
701 | type?: "submit" | "reset" | "button";
702 | value?: string;
703 | formAction?: string;
704 | formEnctype?: HTMLFormEncType;
705 | formMethod?: HTMLFormMethod;
706 | formNoValidate?: boolean;
707 | formTarget?: string;
708 | }
709 | interface CanvasHTMLAttributes extends HTMLAttributes {
710 | width?: number | string;
711 | height?: number | string;
712 | }
713 | interface ColHTMLAttributes extends HTMLAttributes {
714 | span?: number | string;
715 | width?: number | string;
716 | }
717 | interface ColgroupHTMLAttributes extends HTMLAttributes {
718 | span?: number | string;
719 | }
720 | interface DataHTMLAttributes extends HTMLAttributes {
721 | value?: string | string[] | number;
722 | }
723 | interface DetailsHtmlAttributes extends HTMLAttributes {
724 | open?: boolean;
725 | onToggle?: EventHandlerUnion;
726 | ontoggle?: EventHandlerUnion;
727 | }
728 | interface DialogHtmlAttributes extends HTMLAttributes {
729 | open?: boolean;
730 | }
731 | interface EmbedHTMLAttributes extends HTMLAttributes {
732 | height?: number | string;
733 | src?: string;
734 | type?: string;
735 | width?: number | string;
736 | }
737 | interface FieldsetHTMLAttributes extends HTMLAttributes {
738 | disabled?: boolean;
739 | form?: string;
740 | name?: string;
741 | }
742 | interface FormHTMLAttributes extends HTMLAttributes {
743 | acceptcharset?: string;
744 | action?: string;
745 | autocomplete?: string;
746 | encoding?: HTMLFormEncType;
747 | enctype?: HTMLFormEncType;
748 | method?: HTMLFormMethod;
749 | name?: string;
750 | novalidate?: boolean;
751 | target?: string;
752 | acceptCharset?: string;
753 | noValidate?: boolean;
754 | }
755 | interface IframeHTMLAttributes extends HTMLAttributes {
756 | allow?: string;
757 | allowfullscreen?: boolean;
758 | height?: number | string;
759 | name?: string;
760 | referrerpolicy?: HTMLReferrerPolicy;
761 | sandbox?: HTMLIframeSandbox | string;
762 | src?: string;
763 | srcdoc?: string;
764 | width?: number | string;
765 | referrerPolicy?: HTMLReferrerPolicy;
766 | }
767 | interface ImgHTMLAttributes extends HTMLAttributes {
768 | alt?: string;
769 | crossorigin?: HTMLCrossorigin;
770 | decoding?: "sync" | "async" | "auto";
771 | height?: number | string;
772 | ismap?: boolean;
773 | isMap?: boolean;
774 | loading?: "eager" | "lazy";
775 | referrerpolicy?: HTMLReferrerPolicy;
776 | referrerPolicy?: HTMLReferrerPolicy;
777 | sizes?: string;
778 | src?: string;
779 | srcset?: string;
780 | srcSet?: string;
781 | usemap?: string;
782 | useMap?: string;
783 | width?: number | string;
784 | crossOrigin?: HTMLCrossorigin;
785 | }
786 | interface InputHTMLAttributes extends HTMLAttributes {
787 | accept?: string;
788 | alt?: string;
789 | autocomplete?: string;
790 | autofocus?: boolean;
791 | capture?: boolean | string;
792 | checked?: boolean;
793 | crossorigin?: HTMLCrossorigin;
794 | disabled?: boolean;
795 | form?: string;
796 | formaction?: string;
797 | formenctype?: HTMLFormEncType;
798 | formmethod?: HTMLFormMethod;
799 | formnovalidate?: boolean;
800 | formtarget?: string;
801 | height?: number | string;
802 | list?: string;
803 | max?: number | string;
804 | maxlength?: number | string;
805 | min?: number | string;
806 | minlength?: number | string;
807 | multiple?: boolean;
808 | name?: string;
809 | pattern?: string;
810 | placeholder?: string;
811 | readonly?: boolean;
812 | required?: boolean;
813 | size?: number | string;
814 | src?: string;
815 | step?: number | string;
816 | type?: string;
817 | value?: string | string[] | number;
818 | width?: number | string;
819 | crossOrigin?: HTMLCrossorigin;
820 | formAction?: string;
821 | formEnctype?: HTMLFormEncType;
822 | formMethod?: HTMLFormMethod;
823 | formNoValidate?: boolean;
824 | formTarget?: string;
825 | maxLength?: number | string;
826 | minLength?: number | string;
827 | readOnly?: boolean;
828 | }
829 | interface InsHTMLAttributes extends HTMLAttributes {
830 | cite?: string;
831 | dateTime?: string;
832 | }
833 | interface KeygenHTMLAttributes extends HTMLAttributes {
834 | autofocus?: boolean;
835 | challenge?: string;
836 | disabled?: boolean;
837 | form?: string;
838 | keytype?: string;
839 | keyparams?: string;
840 | name?: string;
841 | }
842 | interface LabelHTMLAttributes extends HTMLAttributes {
843 | for?: string;
844 | form?: string;
845 | }
846 | interface LiHTMLAttributes extends HTMLAttributes {
847 | value?: number | string;
848 | }
849 | interface LinkHTMLAttributes extends HTMLAttributes {
850 | as?: HTMLLinkAs;
851 | crossorigin?: HTMLCrossorigin;
852 | disabled?: boolean;
853 | href?: string;
854 | hreflang?: string;
855 | integrity?: string;
856 | media?: string;
857 | referrerpolicy?: HTMLReferrerPolicy;
858 | rel?: string;
859 | sizes?: string;
860 | type?: string;
861 | crossOrigin?: HTMLCrossorigin;
862 | referrerPolicy?: HTMLReferrerPolicy;
863 | }
864 | interface MapHTMLAttributes extends HTMLAttributes {
865 | name?: string;
866 | }
867 | interface MediaHTMLAttributes extends HTMLAttributes