├── .github
└── dependabot.yml
├── .gitignore
├── .husky
└── pre-commit
├── .npmignore
├── .prettierignore
├── LICENSE
├── README.md
├── dist
├── panix.cjs.js
├── panix.cjs.min.js
├── panix.es.js
├── panix.es.min.js
├── panix.umd.js
└── panix.umd.min.js
├── minifier.js
├── package-lock.json
├── package.json
├── rollup.config.js
├── src
├── error.js
└── index.js
└── tests
├── SpecRunner.html
├── lib
└── jasmine-4.3.0
│ ├── boot0.js
│ ├── boot1.js
│ ├── jasmine-html.js
│ ├── jasmine.css
│ ├── jasmine.js
│ └── jasmine_favicon.png
└── spec
├── createElement.spec.js
├── node.spec.js
├── render.spec.js
└── update.spec.js
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | # To get started with Dependabot version updates, you'll need to specify which
2 | # package ecosystems to update and where the package manifests are located.
3 | # Please see the documentation for all configuration options:
4 | # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5 |
6 | version: 2
7 | updates:
8 | - package-ecosystem: "npm" # See documentation for possible values
9 | directory: "/" # Location of package manifests
10 | schedule:
11 | interval: "daily"
12 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | *.log
3 | syntax/
4 | *example*
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . "$(dirname "$0")/_/husky.sh"
3 |
4 | npm run prepare
5 | git add .
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | *.html
3 | *.css
4 | *.log
5 | syntax/
6 | *example*
7 | .husky/
8 | .github/
9 | tests/
10 | docs/
11 | .prettierignore
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | *.html
2 | *.json
3 | *.min.js
4 | *.md
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | copyright 2021-2022 panixjs
2 | Permission is hereby granted that everybody can use , copy , change and publish this software with accepting following conditions :
3 | 1- Although you can publish this software , you cannot sell and trade this software .
4 | 2- every software that is copying from this software (even one line) , must use this license .
5 | 3- This software is provided without any kind of Warranty .
6 | 4- The Authors or copyright holders are not liable for any damages or any kind of liability.
7 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Panix.js
2 | 
3 |
4 |     
5 |
6 | Panix is a tiny weight Virtual Dom library .
7 | Today's Virtual Doms have easy syntax but they are heavy , **very heavy** .
8 | Panix is one of the most lightweight (~1kb) virtual DOM implementations, and is a learning resource more than a tool you should actually use in production.
9 |
10 | ## Installation
11 | Or if you want to use npm :
12 | ```
13 | npm i panix
14 | ```
15 | and simply
16 | ```js
17 | import {node, createElement, update} from "panix"
18 | ```
19 | **Note** : always add `type="module"` to your script when you are importing
20 | ## Hello World
21 |
22 | let's make a simple example in panix :
23 | ```js
24 | let el = createElement(node("h1", { id: "hello" },"Hello World"));
25 | render(el, document.body); // render the element to the body
26 | let newNode= node("h1", { id: "hello" },"Bye World");
27 | let el = update(el, newNode); // update the element
28 | render(el, document.body) // re-render
29 | ```
30 | ## Timer
31 | ```js
32 | let timer = 0
33 | let el = createElement(node("p",{id:"time"},"hello world"))
34 | render(el, document.body);
35 | setInterval(() => {
36 | timer++;
37 | document.body.removeChild(el)
38 | let newNode = node("p",{id:"time"},`${timer}`)
39 | el =update(newNode,el)
40 | render(el,document.body)
41 | }, 1000);
42 | ```
43 | ## API
44 |
45 | `node(tagName:[String],props:[object,null],Children:[array,string])`:
46 | makes a Panix node object and returns it.
47 |
48 | `createElement(node:[Panix node])`:
49 | Creates a DOM element and returns it. If children is an array would make a element in parent element
50 |
51 | `render(container:[element],el:[element])`:
52 | Add el to container
53 |
54 | `update(newNode:[Panix Node], oldElement:[element])`:
55 | Checks all diffrences between this two, Then return a element that is new one. It doesn't just replace them, It checks for each props,children to be same or not.
56 |
57 | #### Thank you
58 |
59 | Thanks to all of the people who starred panix :
60 |
61 | [](https://github.com/mehanalavimajd/panix/stargazers)
62 |
63 |
64 | ### License
65 |
66 | See license in [LICENSE](LICENSE) file
67 |
--------------------------------------------------------------------------------
/dist/panix.cjs.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | Object.defineProperty(exports, '__esModule', { value: true });
4 |
5 | const error = (text) => {
6 | throw new Error("Panix.js has made a problem: " + text);
7 | };
8 |
9 | let node = (tag, props, children) => {
10 | return {
11 | tag,
12 | props: !props ? {} : props,
13 | children,
14 | };
15 | };
16 | let createElement = (node) => {
17 | let el = document.createElement(node.tag);
18 | for (const key in node.props) {
19 | if (node.props.hasOwnProperty(key)) {
20 | el.setAttribute(key, node.props[key]);
21 | }
22 | }
23 | if (Array.isArray(node.children)) {
24 | node.children.forEach((child) => {
25 | el.appendChild(createElement(child));
26 | });
27 | } else if (typeof node.children == "string") {
28 | el.innerHTML = node.children;
29 | } else {
30 | error("The children argument of node should be either an array or String");
31 | }
32 | return el;
33 | };
34 | let update = (newnode, oldel) => {
35 | if (newnode.tag.toLowerCase !== oldel.tagName.toLowerCase) {
36 | oldel = createElement(newnode);
37 | } else {
38 | // props
39 | if (newnode.props.length === oldel.attributes.length) {
40 | oldel.attributes.forEach((item) => {
41 | item.key;
42 | item.value;
43 | for (const [key, value] in newnode.props) {
44 | }
45 | });
46 | } else {
47 | oldel = createElement(newnode);
48 | }
49 | // children
50 | if (Array.isArray(newnode.children)) {
51 | if (newnode.children.length === oldel.children.length) {
52 | let i = 0;
53 | newnode.forEach((child) => {
54 | if (newnode.children[i] !== oldel.children[i]) {
55 | oldel.children[i] = newnode.children[i];
56 | }
57 | i++;
58 | });
59 | } else {
60 | oldel = createElement(newnode);
61 | }
62 | } else if (typeof newnode.children == "string") {
63 | if (newnode.children !== oldel.textContent) {
64 | oldel.textContent = newnode.children;
65 | }
66 | }
67 | }
68 | return oldel;
69 | };
70 | let render = (el, cont) => {
71 | cont.appendChild(el);
72 | };
73 |
74 | exports.createElement = createElement;
75 | exports.node = node;
76 | exports.render = render;
77 | exports.update = update;
78 |
--------------------------------------------------------------------------------
/dist/panix.cjs.min.js:
--------------------------------------------------------------------------------
1 | "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const error=e=>{throw new Error("Panix.js has made a problem: "+e)};let node=(e,r,t)=>({tag:e,props:r||{},children:t}),createElement=e=>{let r=document.createElement(e.tag);for(const t in e.props)e.props.hasOwnProperty(t)&&r.setAttribute(t,e.props[t]);return Array.isArray(e.children)?e.children.forEach(e=>{r.appendChild(createElement(e))}):"string"==typeof e.children?r.innerHTML=e.children:error("The children argument of node should be either an array or String"),r},update=(n,t)=>{if(n.tag.toLowerCase!==t.tagName.toLowerCase)t=createElement(n);else if(n.props.length===t.attributes.length?t.attributes.forEach(e=>{for(var[r,t]in e.key,e.value,n.props);}):t=createElement(n),Array.isArray(n.children))if(n.children.length===t.children.length){let r=0;n.forEach(e=>{n.children[r]!==t.children[r]&&(t.children[r]=n.children[r]),r++})}else t=createElement(n);else"string"==typeof n.children&&n.children!==t.textContent&&(t.textContent=n.children);return t},render=(e,r)=>{r.appendChild(e)};exports.createElement=createElement,exports.node=node,exports.render=render,exports.update=update;
--------------------------------------------------------------------------------
/dist/panix.es.js:
--------------------------------------------------------------------------------
1 | const error = (text) => {
2 | throw new Error("Panix.js has made a problem: " + text);
3 | };
4 |
5 | let node = (tag, props, children) => {
6 | return {
7 | tag,
8 | props: !props ? {} : props,
9 | children,
10 | };
11 | };
12 | let createElement = (node) => {
13 | let el = document.createElement(node.tag);
14 | for (const key in node.props) {
15 | if (node.props.hasOwnProperty(key)) {
16 | el.setAttribute(key, node.props[key]);
17 | }
18 | }
19 | if (Array.isArray(node.children)) {
20 | node.children.forEach((child) => {
21 | el.appendChild(createElement(child));
22 | });
23 | } else if (typeof node.children == "string") {
24 | el.innerHTML = node.children;
25 | } else {
26 | error("The children argument of node should be either an array or String");
27 | }
28 | return el;
29 | };
30 | let update = (newnode, oldel) => {
31 | if (newnode.tag.toLowerCase !== oldel.tagName.toLowerCase) {
32 | oldel = createElement(newnode);
33 | } else {
34 | // props
35 | if (newnode.props.length === oldel.attributes.length) {
36 | oldel.attributes.forEach((item) => {
37 | item.key;
38 | item.value;
39 | for (const [key, value] in newnode.props) {
40 | }
41 | });
42 | } else {
43 | oldel = createElement(newnode);
44 | }
45 | // children
46 | if (Array.isArray(newnode.children)) {
47 | if (newnode.children.length === oldel.children.length) {
48 | let i = 0;
49 | newnode.forEach((child) => {
50 | if (newnode.children[i] !== oldel.children[i]) {
51 | oldel.children[i] = newnode.children[i];
52 | }
53 | i++;
54 | });
55 | } else {
56 | oldel = createElement(newnode);
57 | }
58 | } else if (typeof newnode.children == "string") {
59 | if (newnode.children !== oldel.textContent) {
60 | oldel.textContent = newnode.children;
61 | }
62 | }
63 | }
64 | return oldel;
65 | };
66 | let render = (el, cont) => {
67 | cont.appendChild(el);
68 | };
69 |
70 | export { createElement, node, render, update };
71 |
--------------------------------------------------------------------------------
/dist/panix.es.min.js:
--------------------------------------------------------------------------------
1 | const error=e=>{throw new Error("Panix.js has made a problem: "+e)};let node=(e,r,t)=>({tag:e,props:r||{},children:t}),createElement=e=>{let r=document.createElement(e.tag);for(const t in e.props)e.props.hasOwnProperty(t)&&r.setAttribute(t,e.props[t]);return Array.isArray(e.children)?e.children.forEach(e=>{r.appendChild(createElement(e))}):"string"==typeof e.children?r.innerHTML=e.children:error("The children argument of node should be either an array or String"),r},update=(n,t)=>{if(n.tag.toLowerCase!==t.tagName.toLowerCase)t=createElement(n);else if(n.props.length===t.attributes.length?t.attributes.forEach(e=>{for(var[r,t]in e.key,e.value,n.props);}):t=createElement(n),Array.isArray(n.children))if(n.children.length===t.children.length){let r=0;n.forEach(e=>{n.children[r]!==t.children[r]&&(t.children[r]=n.children[r]),r++})}else t=createElement(n);else"string"==typeof n.children&&n.children!==t.textContent&&(t.textContent=n.children);return t},render=(e,r)=>{r.appendChild(e)};export{createElement,node,render,update};
--------------------------------------------------------------------------------
/dist/panix.umd.js:
--------------------------------------------------------------------------------
1 | (function (global, factory) {
2 | typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
3 | typeof define === 'function' && define.amd ? define(['exports'], factory) :
4 | (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.panix = {}));
5 | })(this, (function (exports) { 'use strict';
6 |
7 | const error = (text) => {
8 | throw new Error("Panix.js has made a problem: " + text);
9 | };
10 |
11 | let node = (tag, props, children) => {
12 | return {
13 | tag,
14 | props: !props ? {} : props,
15 | children,
16 | };
17 | };
18 | let createElement = (node) => {
19 | let el = document.createElement(node.tag);
20 | for (const key in node.props) {
21 | if (node.props.hasOwnProperty(key)) {
22 | el.setAttribute(key, node.props[key]);
23 | }
24 | }
25 | if (Array.isArray(node.children)) {
26 | node.children.forEach((child) => {
27 | el.appendChild(createElement(child));
28 | });
29 | } else if (typeof node.children == "string") {
30 | el.innerHTML = node.children;
31 | } else {
32 | error("The children argument of node should be either an array or String");
33 | }
34 | return el;
35 | };
36 | let update = (newnode, oldel) => {
37 | if (newnode.tag.toLowerCase !== oldel.tagName.toLowerCase) {
38 | oldel = createElement(newnode);
39 | } else {
40 | // props
41 | if (newnode.props.length === oldel.attributes.length) {
42 | oldel.attributes.forEach((item) => {
43 | item.key;
44 | item.value;
45 | for (const [key, value] in newnode.props) {
46 | }
47 | });
48 | } else {
49 | oldel = createElement(newnode);
50 | }
51 | // children
52 | if (Array.isArray(newnode.children)) {
53 | if (newnode.children.length === oldel.children.length) {
54 | let i = 0;
55 | newnode.forEach((child) => {
56 | if (newnode.children[i] !== oldel.children[i]) {
57 | oldel.children[i] = newnode.children[i];
58 | }
59 | i++;
60 | });
61 | } else {
62 | oldel = createElement(newnode);
63 | }
64 | } else if (typeof newnode.children == "string") {
65 | if (newnode.children !== oldel.textContent) {
66 | oldel.textContent = newnode.children;
67 | }
68 | }
69 | }
70 | return oldel;
71 | };
72 | let render = (el, cont) => {
73 | cont.appendChild(el);
74 | };
75 |
76 | exports.createElement = createElement;
77 | exports.node = node;
78 | exports.render = render;
79 | exports.update = update;
80 |
81 | Object.defineProperty(exports, '__esModule', { value: true });
82 |
83 | }));
84 |
--------------------------------------------------------------------------------
/dist/panix.umd.min.js:
--------------------------------------------------------------------------------
1 | !function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self).panix={})}(this,function(e){"use strict";let i=e=>{let r=document.createElement(e.tag);for(const t in e.props)e.props.hasOwnProperty(t)&&r.setAttribute(t,e.props[t]);if(Array.isArray(e.children))e.children.forEach(e=>{r.appendChild(i(e))});else{if("string"!=typeof e.children)throw new Error("Panix.js has made a problem: "+"The children argument of node should be either an array or String");r.innerHTML=e.children}return r};e.createElement=i,e.node=(e,r,t)=>({tag:e,props:r||{},children:t}),e.render=(e,r)=>{r.appendChild(e)},e.update=(n,t)=>{if(n.tag.toLowerCase!==t.tagName.toLowerCase)t=i(n);else if(n.props.length===t.attributes.length?t.attributes.forEach(e=>{for(var[r,t]in e.key,e.value,n.props);}):t=i(n),Array.isArray(n.children))if(n.children.length===t.children.length){let r=0;n.forEach(e=>{n.children[r]!==t.children[r]&&(t.children[r]=n.children[r]),r++})}else t=i(n);else"string"==typeof n.children&&n.children!==t.textContent&&(t.textContent=n.children);return t},Object.defineProperty(e,"__esModule",{value:!0})});
--------------------------------------------------------------------------------
/minifier.js:
--------------------------------------------------------------------------------
1 | let fs = require("fs");
2 | const uglify = require("uglify-js");
3 |
4 | function minify(filein, fileout) {
5 | fs.writeFileSync(
6 | fileout,
7 | uglify.minify(fs.readFileSync(filein).toString()).code
8 | );
9 | }
10 | minify("./dist/panix.cjs.js", "./dist/panix.cjs.min.js");
11 | minify("./dist/panix.es.js", "./dist/panix.es.min.js");
12 | minify("./dist/panix.umd.js", "./dist/panix.umd.min.js");
13 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "panix",
3 | "version": "1.0.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "panix",
9 | "version": "1.0.0",
10 | "license": "see License in LICENSE",
11 | "dependencies": {
12 | "@testing-library/dom": "^8.17.1",
13 | "@testing-library/jest-dom": "^5.16.5",
14 | "jsdom": "^20.0.0",
15 | "uglify-js": "^3.17.0"
16 | },
17 | "devDependencies": {
18 | "husky": "^8.0.1",
19 | "prettier": "^2.3.2",
20 | "rollup": "^2.58.0"
21 | }
22 | },
23 | "node_modules/@adobe/css-tools": {
24 | "version": "4.0.1",
25 | "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.0.1.tgz",
26 | "integrity": "sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g=="
27 | },
28 | "node_modules/@babel/code-frame": {
29 | "version": "7.18.6",
30 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
31 | "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
32 | "dependencies": {
33 | "@babel/highlight": "^7.18.6"
34 | },
35 | "engines": {
36 | "node": ">=6.9.0"
37 | }
38 | },
39 | "node_modules/@babel/helper-validator-identifier": {
40 | "version": "7.18.6",
41 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
42 | "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==",
43 | "engines": {
44 | "node": ">=6.9.0"
45 | }
46 | },
47 | "node_modules/@babel/highlight": {
48 | "version": "7.18.6",
49 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
50 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
51 | "dependencies": {
52 | "@babel/helper-validator-identifier": "^7.18.6",
53 | "chalk": "^2.0.0",
54 | "js-tokens": "^4.0.0"
55 | },
56 | "engines": {
57 | "node": ">=6.9.0"
58 | }
59 | },
60 | "node_modules/@babel/highlight/node_modules/ansi-styles": {
61 | "version": "3.2.1",
62 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
63 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
64 | "dependencies": {
65 | "color-convert": "^1.9.0"
66 | },
67 | "engines": {
68 | "node": ">=4"
69 | }
70 | },
71 | "node_modules/@babel/highlight/node_modules/chalk": {
72 | "version": "2.4.2",
73 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
74 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
75 | "dependencies": {
76 | "ansi-styles": "^3.2.1",
77 | "escape-string-regexp": "^1.0.5",
78 | "supports-color": "^5.3.0"
79 | },
80 | "engines": {
81 | "node": ">=4"
82 | }
83 | },
84 | "node_modules/@babel/highlight/node_modules/color-convert": {
85 | "version": "1.9.3",
86 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
87 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
88 | "dependencies": {
89 | "color-name": "1.1.3"
90 | }
91 | },
92 | "node_modules/@babel/highlight/node_modules/color-name": {
93 | "version": "1.1.3",
94 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
95 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
96 | },
97 | "node_modules/@babel/highlight/node_modules/escape-string-regexp": {
98 | "version": "1.0.5",
99 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
100 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
101 | "engines": {
102 | "node": ">=0.8.0"
103 | }
104 | },
105 | "node_modules/@babel/highlight/node_modules/has-flag": {
106 | "version": "3.0.0",
107 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
108 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
109 | "engines": {
110 | "node": ">=4"
111 | }
112 | },
113 | "node_modules/@babel/highlight/node_modules/supports-color": {
114 | "version": "5.5.0",
115 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
116 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
117 | "dependencies": {
118 | "has-flag": "^3.0.0"
119 | },
120 | "engines": {
121 | "node": ">=4"
122 | }
123 | },
124 | "node_modules/@babel/runtime": {
125 | "version": "7.18.9",
126 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz",
127 | "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
128 | "dependencies": {
129 | "regenerator-runtime": "^0.13.4"
130 | },
131 | "engines": {
132 | "node": ">=6.9.0"
133 | }
134 | },
135 | "node_modules/@jest/expect-utils": {
136 | "version": "28.1.3",
137 | "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz",
138 | "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==",
139 | "dependencies": {
140 | "jest-get-type": "^28.0.2"
141 | },
142 | "engines": {
143 | "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
144 | }
145 | },
146 | "node_modules/@jest/schemas": {
147 | "version": "28.1.3",
148 | "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz",
149 | "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==",
150 | "dependencies": {
151 | "@sinclair/typebox": "^0.24.1"
152 | },
153 | "engines": {
154 | "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
155 | }
156 | },
157 | "node_modules/@jest/types": {
158 | "version": "28.1.3",
159 | "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz",
160 | "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==",
161 | "dependencies": {
162 | "@jest/schemas": "^28.1.3",
163 | "@types/istanbul-lib-coverage": "^2.0.0",
164 | "@types/istanbul-reports": "^3.0.0",
165 | "@types/node": "*",
166 | "@types/yargs": "^17.0.8",
167 | "chalk": "^4.0.0"
168 | },
169 | "engines": {
170 | "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
171 | }
172 | },
173 | "node_modules/@sinclair/typebox": {
174 | "version": "0.24.28",
175 | "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.28.tgz",
176 | "integrity": "sha512-dgJd3HLOkLmz4Bw50eZx/zJwtBq65nms3N9VBYu5LTjJ883oBFkTyXRlCB/ZGGwqYpJJHA5zW2Ibhl5ngITfow=="
177 | },
178 | "node_modules/@testing-library/dom": {
179 | "version": "8.17.1",
180 | "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.17.1.tgz",
181 | "integrity": "sha512-KnH2MnJUzmFNPW6RIKfd+zf2Wue8mEKX0M3cpX6aKl5ZXrJM1/c/Pc8c2xDNYQCnJO48Sm5ITbMXgqTr3h4jxQ==",
182 | "dependencies": {
183 | "@babel/code-frame": "^7.10.4",
184 | "@babel/runtime": "^7.12.5",
185 | "@types/aria-query": "^4.2.0",
186 | "aria-query": "^5.0.0",
187 | "chalk": "^4.1.0",
188 | "dom-accessibility-api": "^0.5.9",
189 | "lz-string": "^1.4.4",
190 | "pretty-format": "^27.0.2"
191 | },
192 | "engines": {
193 | "node": ">=12"
194 | }
195 | },
196 | "node_modules/@testing-library/dom/node_modules/ansi-styles": {
197 | "version": "5.2.0",
198 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
199 | "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
200 | "engines": {
201 | "node": ">=10"
202 | },
203 | "funding": {
204 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
205 | }
206 | },
207 | "node_modules/@testing-library/dom/node_modules/pretty-format": {
208 | "version": "27.5.1",
209 | "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz",
210 | "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
211 | "dependencies": {
212 | "ansi-regex": "^5.0.1",
213 | "ansi-styles": "^5.0.0",
214 | "react-is": "^17.0.1"
215 | },
216 | "engines": {
217 | "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
218 | }
219 | },
220 | "node_modules/@testing-library/dom/node_modules/react-is": {
221 | "version": "17.0.2",
222 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
223 | "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
224 | },
225 | "node_modules/@testing-library/jest-dom": {
226 | "version": "5.16.5",
227 | "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz",
228 | "integrity": "sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==",
229 | "dependencies": {
230 | "@adobe/css-tools": "^4.0.1",
231 | "@babel/runtime": "^7.9.2",
232 | "@types/testing-library__jest-dom": "^5.9.1",
233 | "aria-query": "^5.0.0",
234 | "chalk": "^3.0.0",
235 | "css.escape": "^1.5.1",
236 | "dom-accessibility-api": "^0.5.6",
237 | "lodash": "^4.17.15",
238 | "redent": "^3.0.0"
239 | },
240 | "engines": {
241 | "node": ">=8",
242 | "npm": ">=6",
243 | "yarn": ">=1"
244 | }
245 | },
246 | "node_modules/@testing-library/jest-dom/node_modules/chalk": {
247 | "version": "3.0.0",
248 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
249 | "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
250 | "dependencies": {
251 | "ansi-styles": "^4.1.0",
252 | "supports-color": "^7.1.0"
253 | },
254 | "engines": {
255 | "node": ">=8"
256 | }
257 | },
258 | "node_modules/@tootallnate/once": {
259 | "version": "2.0.0",
260 | "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
261 | "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
262 | "engines": {
263 | "node": ">= 10"
264 | }
265 | },
266 | "node_modules/@types/aria-query": {
267 | "version": "4.2.2",
268 | "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz",
269 | "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig=="
270 | },
271 | "node_modules/@types/istanbul-lib-coverage": {
272 | "version": "2.0.4",
273 | "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
274 | "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g=="
275 | },
276 | "node_modules/@types/istanbul-lib-report": {
277 | "version": "3.0.0",
278 | "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
279 | "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
280 | "dependencies": {
281 | "@types/istanbul-lib-coverage": "*"
282 | }
283 | },
284 | "node_modules/@types/istanbul-reports": {
285 | "version": "3.0.1",
286 | "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
287 | "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
288 | "dependencies": {
289 | "@types/istanbul-lib-report": "*"
290 | }
291 | },
292 | "node_modules/@types/jest": {
293 | "version": "28.1.7",
294 | "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.7.tgz",
295 | "integrity": "sha512-acDN4VHD40V24tgu0iC44jchXavRNVFXQ/E6Z5XNsswgoSO/4NgsXoEYmPUGookKldlZQyIpmrEXsHI9cA3ZTA==",
296 | "dependencies": {
297 | "expect": "^28.0.0",
298 | "pretty-format": "^28.0.0"
299 | }
300 | },
301 | "node_modules/@types/node": {
302 | "version": "18.7.11",
303 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.11.tgz",
304 | "integrity": "sha512-KZhFpSLlmK/sdocfSAjqPETTMd0ug6HIMIAwkwUpU79olnZdQtMxpQP+G1wDzCH7na+FltSIhbaZuKdwZ8RDrw=="
305 | },
306 | "node_modules/@types/stack-utils": {
307 | "version": "2.0.1",
308 | "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
309 | "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
310 | },
311 | "node_modules/@types/testing-library__jest-dom": {
312 | "version": "5.14.5",
313 | "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz",
314 | "integrity": "sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ==",
315 | "dependencies": {
316 | "@types/jest": "*"
317 | }
318 | },
319 | "node_modules/@types/yargs": {
320 | "version": "17.0.11",
321 | "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.11.tgz",
322 | "integrity": "sha512-aB4y9UDUXTSMxmM4MH+YnuR0g5Cph3FLQBoWoMB21DSvFVAxRVEHEMx3TLh+zUZYMCQtKiqazz0Q4Rre31f/OA==",
323 | "dependencies": {
324 | "@types/yargs-parser": "*"
325 | }
326 | },
327 | "node_modules/@types/yargs-parser": {
328 | "version": "21.0.0",
329 | "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz",
330 | "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA=="
331 | },
332 | "node_modules/abab": {
333 | "version": "2.0.6",
334 | "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
335 | "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA=="
336 | },
337 | "node_modules/acorn": {
338 | "version": "8.8.0",
339 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
340 | "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
341 | "bin": {
342 | "acorn": "bin/acorn"
343 | },
344 | "engines": {
345 | "node": ">=0.4.0"
346 | }
347 | },
348 | "node_modules/acorn-globals": {
349 | "version": "6.0.0",
350 | "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz",
351 | "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==",
352 | "dependencies": {
353 | "acorn": "^7.1.1",
354 | "acorn-walk": "^7.1.1"
355 | }
356 | },
357 | "node_modules/acorn-globals/node_modules/acorn": {
358 | "version": "7.4.1",
359 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
360 | "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
361 | "bin": {
362 | "acorn": "bin/acorn"
363 | },
364 | "engines": {
365 | "node": ">=0.4.0"
366 | }
367 | },
368 | "node_modules/acorn-walk": {
369 | "version": "7.2.0",
370 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
371 | "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
372 | "engines": {
373 | "node": ">=0.4.0"
374 | }
375 | },
376 | "node_modules/agent-base": {
377 | "version": "6.0.2",
378 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
379 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
380 | "dependencies": {
381 | "debug": "4"
382 | },
383 | "engines": {
384 | "node": ">= 6.0.0"
385 | }
386 | },
387 | "node_modules/ansi-regex": {
388 | "version": "5.0.1",
389 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
390 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
391 | "engines": {
392 | "node": ">=8"
393 | }
394 | },
395 | "node_modules/ansi-styles": {
396 | "version": "4.3.0",
397 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
398 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
399 | "dependencies": {
400 | "color-convert": "^2.0.1"
401 | },
402 | "engines": {
403 | "node": ">=8"
404 | },
405 | "funding": {
406 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
407 | }
408 | },
409 | "node_modules/aria-query": {
410 | "version": "5.0.0",
411 | "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz",
412 | "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==",
413 | "engines": {
414 | "node": ">=6.0"
415 | }
416 | },
417 | "node_modules/asynckit": {
418 | "version": "0.4.0",
419 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
420 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
421 | },
422 | "node_modules/braces": {
423 | "version": "3.0.2",
424 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
425 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
426 | "dependencies": {
427 | "fill-range": "^7.0.1"
428 | },
429 | "engines": {
430 | "node": ">=8"
431 | }
432 | },
433 | "node_modules/browser-process-hrtime": {
434 | "version": "1.0.0",
435 | "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
436 | "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="
437 | },
438 | "node_modules/chalk": {
439 | "version": "4.1.2",
440 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
441 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
442 | "dependencies": {
443 | "ansi-styles": "^4.1.0",
444 | "supports-color": "^7.1.0"
445 | },
446 | "engines": {
447 | "node": ">=10"
448 | },
449 | "funding": {
450 | "url": "https://github.com/chalk/chalk?sponsor=1"
451 | }
452 | },
453 | "node_modules/ci-info": {
454 | "version": "3.3.2",
455 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz",
456 | "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg=="
457 | },
458 | "node_modules/color-convert": {
459 | "version": "2.0.1",
460 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
461 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
462 | "dependencies": {
463 | "color-name": "~1.1.4"
464 | },
465 | "engines": {
466 | "node": ">=7.0.0"
467 | }
468 | },
469 | "node_modules/color-name": {
470 | "version": "1.1.4",
471 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
472 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
473 | },
474 | "node_modules/combined-stream": {
475 | "version": "1.0.8",
476 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
477 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
478 | "dependencies": {
479 | "delayed-stream": "~1.0.0"
480 | },
481 | "engines": {
482 | "node": ">= 0.8"
483 | }
484 | },
485 | "node_modules/css.escape": {
486 | "version": "1.5.1",
487 | "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz",
488 | "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg=="
489 | },
490 | "node_modules/cssom": {
491 | "version": "0.5.0",
492 | "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz",
493 | "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw=="
494 | },
495 | "node_modules/cssstyle": {
496 | "version": "2.3.0",
497 | "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
498 | "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
499 | "dependencies": {
500 | "cssom": "~0.3.6"
501 | },
502 | "engines": {
503 | "node": ">=8"
504 | }
505 | },
506 | "node_modules/cssstyle/node_modules/cssom": {
507 | "version": "0.3.8",
508 | "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
509 | "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
510 | },
511 | "node_modules/data-urls": {
512 | "version": "3.0.2",
513 | "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz",
514 | "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==",
515 | "dependencies": {
516 | "abab": "^2.0.6",
517 | "whatwg-mimetype": "^3.0.0",
518 | "whatwg-url": "^11.0.0"
519 | },
520 | "engines": {
521 | "node": ">=12"
522 | }
523 | },
524 | "node_modules/debug": {
525 | "version": "4.3.4",
526 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
527 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
528 | "dependencies": {
529 | "ms": "2.1.2"
530 | },
531 | "engines": {
532 | "node": ">=6.0"
533 | },
534 | "peerDependenciesMeta": {
535 | "supports-color": {
536 | "optional": true
537 | }
538 | }
539 | },
540 | "node_modules/decimal.js": {
541 | "version": "10.4.0",
542 | "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.0.tgz",
543 | "integrity": "sha512-Nv6ENEzyPQ6AItkGwLE2PGKinZZ9g59vSh2BeH6NqPu0OTKZ5ruJsVqh/orbAnqXc9pBbgXAIrc2EyaCj8NpGg=="
544 | },
545 | "node_modules/deep-is": {
546 | "version": "0.1.4",
547 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
548 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
549 | },
550 | "node_modules/delayed-stream": {
551 | "version": "1.0.0",
552 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
553 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
554 | "engines": {
555 | "node": ">=0.4.0"
556 | }
557 | },
558 | "node_modules/diff-sequences": {
559 | "version": "28.1.1",
560 | "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz",
561 | "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==",
562 | "engines": {
563 | "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
564 | }
565 | },
566 | "node_modules/dom-accessibility-api": {
567 | "version": "0.5.14",
568 | "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz",
569 | "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg=="
570 | },
571 | "node_modules/domexception": {
572 | "version": "4.0.0",
573 | "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz",
574 | "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==",
575 | "dependencies": {
576 | "webidl-conversions": "^7.0.0"
577 | },
578 | "engines": {
579 | "node": ">=12"
580 | }
581 | },
582 | "node_modules/entities": {
583 | "version": "4.3.1",
584 | "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz",
585 | "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==",
586 | "engines": {
587 | "node": ">=0.12"
588 | },
589 | "funding": {
590 | "url": "https://github.com/fb55/entities?sponsor=1"
591 | }
592 | },
593 | "node_modules/escape-string-regexp": {
594 | "version": "2.0.0",
595 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
596 | "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
597 | "engines": {
598 | "node": ">=8"
599 | }
600 | },
601 | "node_modules/escodegen": {
602 | "version": "2.0.0",
603 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz",
604 | "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==",
605 | "dependencies": {
606 | "esprima": "^4.0.1",
607 | "estraverse": "^5.2.0",
608 | "esutils": "^2.0.2",
609 | "optionator": "^0.8.1"
610 | },
611 | "bin": {
612 | "escodegen": "bin/escodegen.js",
613 | "esgenerate": "bin/esgenerate.js"
614 | },
615 | "engines": {
616 | "node": ">=6.0"
617 | },
618 | "optionalDependencies": {
619 | "source-map": "~0.6.1"
620 | }
621 | },
622 | "node_modules/esprima": {
623 | "version": "4.0.1",
624 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
625 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
626 | "bin": {
627 | "esparse": "bin/esparse.js",
628 | "esvalidate": "bin/esvalidate.js"
629 | },
630 | "engines": {
631 | "node": ">=4"
632 | }
633 | },
634 | "node_modules/estraverse": {
635 | "version": "5.3.0",
636 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
637 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
638 | "engines": {
639 | "node": ">=4.0"
640 | }
641 | },
642 | "node_modules/esutils": {
643 | "version": "2.0.3",
644 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
645 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
646 | "engines": {
647 | "node": ">=0.10.0"
648 | }
649 | },
650 | "node_modules/expect": {
651 | "version": "28.1.3",
652 | "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz",
653 | "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==",
654 | "dependencies": {
655 | "@jest/expect-utils": "^28.1.3",
656 | "jest-get-type": "^28.0.2",
657 | "jest-matcher-utils": "^28.1.3",
658 | "jest-message-util": "^28.1.3",
659 | "jest-util": "^28.1.3"
660 | },
661 | "engines": {
662 | "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
663 | }
664 | },
665 | "node_modules/fast-levenshtein": {
666 | "version": "2.0.6",
667 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
668 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
669 | },
670 | "node_modules/fill-range": {
671 | "version": "7.0.1",
672 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
673 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
674 | "dependencies": {
675 | "to-regex-range": "^5.0.1"
676 | },
677 | "engines": {
678 | "node": ">=8"
679 | }
680 | },
681 | "node_modules/form-data": {
682 | "version": "4.0.0",
683 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
684 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
685 | "dependencies": {
686 | "asynckit": "^0.4.0",
687 | "combined-stream": "^1.0.8",
688 | "mime-types": "^2.1.12"
689 | },
690 | "engines": {
691 | "node": ">= 6"
692 | }
693 | },
694 | "node_modules/fsevents": {
695 | "version": "2.3.2",
696 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
697 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
698 | "dev": true,
699 | "hasInstallScript": true,
700 | "optional": true,
701 | "os": [
702 | "darwin"
703 | ],
704 | "engines": {
705 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
706 | }
707 | },
708 | "node_modules/graceful-fs": {
709 | "version": "4.2.10",
710 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
711 | "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
712 | },
713 | "node_modules/has-flag": {
714 | "version": "4.0.0",
715 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
716 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
717 | "engines": {
718 | "node": ">=8"
719 | }
720 | },
721 | "node_modules/html-encoding-sniffer": {
722 | "version": "3.0.0",
723 | "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz",
724 | "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==",
725 | "dependencies": {
726 | "whatwg-encoding": "^2.0.0"
727 | },
728 | "engines": {
729 | "node": ">=12"
730 | }
731 | },
732 | "node_modules/http-proxy-agent": {
733 | "version": "5.0.0",
734 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
735 | "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
736 | "dependencies": {
737 | "@tootallnate/once": "2",
738 | "agent-base": "6",
739 | "debug": "4"
740 | },
741 | "engines": {
742 | "node": ">= 6"
743 | }
744 | },
745 | "node_modules/https-proxy-agent": {
746 | "version": "5.0.1",
747 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
748 | "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
749 | "dependencies": {
750 | "agent-base": "6",
751 | "debug": "4"
752 | },
753 | "engines": {
754 | "node": ">= 6"
755 | }
756 | },
757 | "node_modules/husky": {
758 | "version": "8.0.1",
759 | "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.1.tgz",
760 | "integrity": "sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==",
761 | "dev": true,
762 | "bin": {
763 | "husky": "lib/bin.js"
764 | },
765 | "engines": {
766 | "node": ">=14"
767 | },
768 | "funding": {
769 | "url": "https://github.com/sponsors/typicode"
770 | }
771 | },
772 | "node_modules/iconv-lite": {
773 | "version": "0.6.3",
774 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
775 | "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
776 | "dependencies": {
777 | "safer-buffer": ">= 2.1.2 < 3.0.0"
778 | },
779 | "engines": {
780 | "node": ">=0.10.0"
781 | }
782 | },
783 | "node_modules/indent-string": {
784 | "version": "4.0.0",
785 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
786 | "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
787 | "engines": {
788 | "node": ">=8"
789 | }
790 | },
791 | "node_modules/is-number": {
792 | "version": "7.0.0",
793 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
794 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
795 | "engines": {
796 | "node": ">=0.12.0"
797 | }
798 | },
799 | "node_modules/is-potential-custom-element-name": {
800 | "version": "1.0.1",
801 | "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
802 | "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="
803 | },
804 | "node_modules/jest-diff": {
805 | "version": "28.1.3",
806 | "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz",
807 | "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==",
808 | "dependencies": {
809 | "chalk": "^4.0.0",
810 | "diff-sequences": "^28.1.1",
811 | "jest-get-type": "^28.0.2",
812 | "pretty-format": "^28.1.3"
813 | },
814 | "engines": {
815 | "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
816 | }
817 | },
818 | "node_modules/jest-get-type": {
819 | "version": "28.0.2",
820 | "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz",
821 | "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==",
822 | "engines": {
823 | "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
824 | }
825 | },
826 | "node_modules/jest-matcher-utils": {
827 | "version": "28.1.3",
828 | "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz",
829 | "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==",
830 | "dependencies": {
831 | "chalk": "^4.0.0",
832 | "jest-diff": "^28.1.3",
833 | "jest-get-type": "^28.0.2",
834 | "pretty-format": "^28.1.3"
835 | },
836 | "engines": {
837 | "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
838 | }
839 | },
840 | "node_modules/jest-message-util": {
841 | "version": "28.1.3",
842 | "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz",
843 | "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==",
844 | "dependencies": {
845 | "@babel/code-frame": "^7.12.13",
846 | "@jest/types": "^28.1.3",
847 | "@types/stack-utils": "^2.0.0",
848 | "chalk": "^4.0.0",
849 | "graceful-fs": "^4.2.9",
850 | "micromatch": "^4.0.4",
851 | "pretty-format": "^28.1.3",
852 | "slash": "^3.0.0",
853 | "stack-utils": "^2.0.3"
854 | },
855 | "engines": {
856 | "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
857 | }
858 | },
859 | "node_modules/jest-util": {
860 | "version": "28.1.3",
861 | "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz",
862 | "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==",
863 | "dependencies": {
864 | "@jest/types": "^28.1.3",
865 | "@types/node": "*",
866 | "chalk": "^4.0.0",
867 | "ci-info": "^3.2.0",
868 | "graceful-fs": "^4.2.9",
869 | "picomatch": "^2.2.3"
870 | },
871 | "engines": {
872 | "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
873 | }
874 | },
875 | "node_modules/js-tokens": {
876 | "version": "4.0.0",
877 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
878 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
879 | },
880 | "node_modules/jsdom": {
881 | "version": "20.0.0",
882 | "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.0.tgz",
883 | "integrity": "sha512-x4a6CKCgx00uCmP+QakBDFXwjAJ69IkkIWHmtmjd3wvXPcdOS44hfX2vqkOQrVrq8l9DhNNADZRXaCEWvgXtVA==",
884 | "dependencies": {
885 | "abab": "^2.0.6",
886 | "acorn": "^8.7.1",
887 | "acorn-globals": "^6.0.0",
888 | "cssom": "^0.5.0",
889 | "cssstyle": "^2.3.0",
890 | "data-urls": "^3.0.2",
891 | "decimal.js": "^10.3.1",
892 | "domexception": "^4.0.0",
893 | "escodegen": "^2.0.0",
894 | "form-data": "^4.0.0",
895 | "html-encoding-sniffer": "^3.0.0",
896 | "http-proxy-agent": "^5.0.0",
897 | "https-proxy-agent": "^5.0.1",
898 | "is-potential-custom-element-name": "^1.0.1",
899 | "nwsapi": "^2.2.0",
900 | "parse5": "^7.0.0",
901 | "saxes": "^6.0.0",
902 | "symbol-tree": "^3.2.4",
903 | "tough-cookie": "^4.0.0",
904 | "w3c-hr-time": "^1.0.2",
905 | "w3c-xmlserializer": "^3.0.0",
906 | "webidl-conversions": "^7.0.0",
907 | "whatwg-encoding": "^2.0.0",
908 | "whatwg-mimetype": "^3.0.0",
909 | "whatwg-url": "^11.0.0",
910 | "ws": "^8.8.0",
911 | "xml-name-validator": "^4.0.0"
912 | },
913 | "engines": {
914 | "node": ">=14"
915 | },
916 | "peerDependencies": {
917 | "canvas": "^2.5.0"
918 | },
919 | "peerDependenciesMeta": {
920 | "canvas": {
921 | "optional": true
922 | }
923 | }
924 | },
925 | "node_modules/levn": {
926 | "version": "0.3.0",
927 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
928 | "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
929 | "dependencies": {
930 | "prelude-ls": "~1.1.2",
931 | "type-check": "~0.3.2"
932 | },
933 | "engines": {
934 | "node": ">= 0.8.0"
935 | }
936 | },
937 | "node_modules/lodash": {
938 | "version": "4.17.21",
939 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
940 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
941 | },
942 | "node_modules/lz-string": {
943 | "version": "1.4.4",
944 | "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz",
945 | "integrity": "sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==",
946 | "bin": {
947 | "lz-string": "bin/bin.js"
948 | }
949 | },
950 | "node_modules/micromatch": {
951 | "version": "4.0.5",
952 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
953 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
954 | "dependencies": {
955 | "braces": "^3.0.2",
956 | "picomatch": "^2.3.1"
957 | },
958 | "engines": {
959 | "node": ">=8.6"
960 | }
961 | },
962 | "node_modules/mime-db": {
963 | "version": "1.52.0",
964 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
965 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
966 | "engines": {
967 | "node": ">= 0.6"
968 | }
969 | },
970 | "node_modules/mime-types": {
971 | "version": "2.1.35",
972 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
973 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
974 | "dependencies": {
975 | "mime-db": "1.52.0"
976 | },
977 | "engines": {
978 | "node": ">= 0.6"
979 | }
980 | },
981 | "node_modules/min-indent": {
982 | "version": "1.0.1",
983 | "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
984 | "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
985 | "engines": {
986 | "node": ">=4"
987 | }
988 | },
989 | "node_modules/ms": {
990 | "version": "2.1.2",
991 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
992 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
993 | },
994 | "node_modules/nwsapi": {
995 | "version": "2.2.1",
996 | "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.1.tgz",
997 | "integrity": "sha512-JYOWTeFoS0Z93587vRJgASD5Ut11fYl5NyihP3KrYBvMe1FRRs6RN7m20SA/16GM4P6hTnZjT+UmDOt38UeXNg=="
998 | },
999 | "node_modules/optionator": {
1000 | "version": "0.8.3",
1001 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
1002 | "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
1003 | "dependencies": {
1004 | "deep-is": "~0.1.3",
1005 | "fast-levenshtein": "~2.0.6",
1006 | "levn": "~0.3.0",
1007 | "prelude-ls": "~1.1.2",
1008 | "type-check": "~0.3.2",
1009 | "word-wrap": "~1.2.3"
1010 | },
1011 | "engines": {
1012 | "node": ">= 0.8.0"
1013 | }
1014 | },
1015 | "node_modules/parse5": {
1016 | "version": "7.0.0",
1017 | "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz",
1018 | "integrity": "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==",
1019 | "dependencies": {
1020 | "entities": "^4.3.0"
1021 | },
1022 | "funding": {
1023 | "url": "https://github.com/inikulin/parse5?sponsor=1"
1024 | }
1025 | },
1026 | "node_modules/picomatch": {
1027 | "version": "2.3.1",
1028 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
1029 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
1030 | "engines": {
1031 | "node": ">=8.6"
1032 | },
1033 | "funding": {
1034 | "url": "https://github.com/sponsors/jonschlinkert"
1035 | }
1036 | },
1037 | "node_modules/prelude-ls": {
1038 | "version": "1.1.2",
1039 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
1040 | "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
1041 | "engines": {
1042 | "node": ">= 0.8.0"
1043 | }
1044 | },
1045 | "node_modules/prettier": {
1046 | "version": "2.6.2",
1047 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz",
1048 | "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==",
1049 | "dev": true,
1050 | "bin": {
1051 | "prettier": "bin-prettier.js"
1052 | },
1053 | "engines": {
1054 | "node": ">=10.13.0"
1055 | },
1056 | "funding": {
1057 | "url": "https://github.com/prettier/prettier?sponsor=1"
1058 | }
1059 | },
1060 | "node_modules/pretty-format": {
1061 | "version": "28.1.3",
1062 | "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz",
1063 | "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==",
1064 | "dependencies": {
1065 | "@jest/schemas": "^28.1.3",
1066 | "ansi-regex": "^5.0.1",
1067 | "ansi-styles": "^5.0.0",
1068 | "react-is": "^18.0.0"
1069 | },
1070 | "engines": {
1071 | "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
1072 | }
1073 | },
1074 | "node_modules/pretty-format/node_modules/ansi-styles": {
1075 | "version": "5.2.0",
1076 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
1077 | "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
1078 | "engines": {
1079 | "node": ">=10"
1080 | },
1081 | "funding": {
1082 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
1083 | }
1084 | },
1085 | "node_modules/psl": {
1086 | "version": "1.9.0",
1087 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
1088 | "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
1089 | },
1090 | "node_modules/punycode": {
1091 | "version": "2.1.1",
1092 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
1093 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
1094 | "engines": {
1095 | "node": ">=6"
1096 | }
1097 | },
1098 | "node_modules/querystringify": {
1099 | "version": "2.2.0",
1100 | "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
1101 | "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
1102 | },
1103 | "node_modules/react-is": {
1104 | "version": "18.2.0",
1105 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
1106 | "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
1107 | },
1108 | "node_modules/redent": {
1109 | "version": "3.0.0",
1110 | "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
1111 | "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
1112 | "dependencies": {
1113 | "indent-string": "^4.0.0",
1114 | "strip-indent": "^3.0.0"
1115 | },
1116 | "engines": {
1117 | "node": ">=8"
1118 | }
1119 | },
1120 | "node_modules/regenerator-runtime": {
1121 | "version": "0.13.9",
1122 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
1123 | "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
1124 | },
1125 | "node_modules/requires-port": {
1126 | "version": "1.0.0",
1127 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
1128 | "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
1129 | },
1130 | "node_modules/rollup": {
1131 | "version": "2.78.1",
1132 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.1.tgz",
1133 | "integrity": "sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==",
1134 | "dev": true,
1135 | "bin": {
1136 | "rollup": "dist/bin/rollup"
1137 | },
1138 | "engines": {
1139 | "node": ">=10.0.0"
1140 | },
1141 | "optionalDependencies": {
1142 | "fsevents": "~2.3.2"
1143 | }
1144 | },
1145 | "node_modules/safer-buffer": {
1146 | "version": "2.1.2",
1147 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1148 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1149 | },
1150 | "node_modules/saxes": {
1151 | "version": "6.0.0",
1152 | "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
1153 | "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
1154 | "dependencies": {
1155 | "xmlchars": "^2.2.0"
1156 | },
1157 | "engines": {
1158 | "node": ">=v12.22.7"
1159 | }
1160 | },
1161 | "node_modules/slash": {
1162 | "version": "3.0.0",
1163 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
1164 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
1165 | "engines": {
1166 | "node": ">=8"
1167 | }
1168 | },
1169 | "node_modules/source-map": {
1170 | "version": "0.6.1",
1171 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1172 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1173 | "optional": true,
1174 | "engines": {
1175 | "node": ">=0.10.0"
1176 | }
1177 | },
1178 | "node_modules/stack-utils": {
1179 | "version": "2.0.5",
1180 | "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz",
1181 | "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==",
1182 | "dependencies": {
1183 | "escape-string-regexp": "^2.0.0"
1184 | },
1185 | "engines": {
1186 | "node": ">=10"
1187 | }
1188 | },
1189 | "node_modules/strip-indent": {
1190 | "version": "3.0.0",
1191 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
1192 | "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
1193 | "dependencies": {
1194 | "min-indent": "^1.0.0"
1195 | },
1196 | "engines": {
1197 | "node": ">=8"
1198 | }
1199 | },
1200 | "node_modules/supports-color": {
1201 | "version": "7.2.0",
1202 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
1203 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
1204 | "dependencies": {
1205 | "has-flag": "^4.0.0"
1206 | },
1207 | "engines": {
1208 | "node": ">=8"
1209 | }
1210 | },
1211 | "node_modules/symbol-tree": {
1212 | "version": "3.2.4",
1213 | "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
1214 | "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
1215 | },
1216 | "node_modules/to-regex-range": {
1217 | "version": "5.0.1",
1218 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1219 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1220 | "dependencies": {
1221 | "is-number": "^7.0.0"
1222 | },
1223 | "engines": {
1224 | "node": ">=8.0"
1225 | }
1226 | },
1227 | "node_modules/tough-cookie": {
1228 | "version": "4.1.0",
1229 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.0.tgz",
1230 | "integrity": "sha512-IVX6AagLelGwl6F0E+hoRpXzuD192cZhAcmT7/eoLr0PnsB1wv2E5c+A2O+V8xth9FlL2p0OstFsWn0bZpVn4w==",
1231 | "dependencies": {
1232 | "psl": "^1.1.33",
1233 | "punycode": "^2.1.1",
1234 | "universalify": "^0.2.0",
1235 | "url-parse": "^1.5.3"
1236 | },
1237 | "engines": {
1238 | "node": ">=6"
1239 | }
1240 | },
1241 | "node_modules/tr46": {
1242 | "version": "3.0.0",
1243 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
1244 | "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
1245 | "dependencies": {
1246 | "punycode": "^2.1.1"
1247 | },
1248 | "engines": {
1249 | "node": ">=12"
1250 | }
1251 | },
1252 | "node_modules/type-check": {
1253 | "version": "0.3.2",
1254 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
1255 | "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
1256 | "dependencies": {
1257 | "prelude-ls": "~1.1.2"
1258 | },
1259 | "engines": {
1260 | "node": ">= 0.8.0"
1261 | }
1262 | },
1263 | "node_modules/uglify-js": {
1264 | "version": "3.17.0",
1265 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.0.tgz",
1266 | "integrity": "sha512-aTeNPVmgIMPpm1cxXr2Q/nEbvkmV8yq66F3om7X3P/cvOXQ0TMQ64Wk63iyT1gPlmdmGzjGpyLh1f3y8MZWXGg==",
1267 | "bin": {
1268 | "uglifyjs": "bin/uglifyjs"
1269 | },
1270 | "engines": {
1271 | "node": ">=0.8.0"
1272 | }
1273 | },
1274 | "node_modules/universalify": {
1275 | "version": "0.2.0",
1276 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
1277 | "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
1278 | "engines": {
1279 | "node": ">= 4.0.0"
1280 | }
1281 | },
1282 | "node_modules/url-parse": {
1283 | "version": "1.5.10",
1284 | "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
1285 | "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
1286 | "dependencies": {
1287 | "querystringify": "^2.1.1",
1288 | "requires-port": "^1.0.0"
1289 | }
1290 | },
1291 | "node_modules/w3c-hr-time": {
1292 | "version": "1.0.2",
1293 | "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
1294 | "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==",
1295 | "dependencies": {
1296 | "browser-process-hrtime": "^1.0.0"
1297 | }
1298 | },
1299 | "node_modules/w3c-xmlserializer": {
1300 | "version": "3.0.0",
1301 | "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz",
1302 | "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==",
1303 | "dependencies": {
1304 | "xml-name-validator": "^4.0.0"
1305 | },
1306 | "engines": {
1307 | "node": ">=12"
1308 | }
1309 | },
1310 | "node_modules/webidl-conversions": {
1311 | "version": "7.0.0",
1312 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
1313 | "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
1314 | "engines": {
1315 | "node": ">=12"
1316 | }
1317 | },
1318 | "node_modules/whatwg-encoding": {
1319 | "version": "2.0.0",
1320 | "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz",
1321 | "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==",
1322 | "dependencies": {
1323 | "iconv-lite": "0.6.3"
1324 | },
1325 | "engines": {
1326 | "node": ">=12"
1327 | }
1328 | },
1329 | "node_modules/whatwg-mimetype": {
1330 | "version": "3.0.0",
1331 | "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz",
1332 | "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==",
1333 | "engines": {
1334 | "node": ">=12"
1335 | }
1336 | },
1337 | "node_modules/whatwg-url": {
1338 | "version": "11.0.0",
1339 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
1340 | "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
1341 | "dependencies": {
1342 | "tr46": "^3.0.0",
1343 | "webidl-conversions": "^7.0.0"
1344 | },
1345 | "engines": {
1346 | "node": ">=12"
1347 | }
1348 | },
1349 | "node_modules/word-wrap": {
1350 | "version": "1.2.3",
1351 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
1352 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
1353 | "engines": {
1354 | "node": ">=0.10.0"
1355 | }
1356 | },
1357 | "node_modules/ws": {
1358 | "version": "8.8.1",
1359 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz",
1360 | "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==",
1361 | "engines": {
1362 | "node": ">=10.0.0"
1363 | },
1364 | "peerDependencies": {
1365 | "bufferutil": "^4.0.1",
1366 | "utf-8-validate": "^5.0.2"
1367 | },
1368 | "peerDependenciesMeta": {
1369 | "bufferutil": {
1370 | "optional": true
1371 | },
1372 | "utf-8-validate": {
1373 | "optional": true
1374 | }
1375 | }
1376 | },
1377 | "node_modules/xml-name-validator": {
1378 | "version": "4.0.0",
1379 | "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
1380 | "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
1381 | "engines": {
1382 | "node": ">=12"
1383 | }
1384 | },
1385 | "node_modules/xmlchars": {
1386 | "version": "2.2.0",
1387 | "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
1388 | "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="
1389 | }
1390 | },
1391 | "dependencies": {
1392 | "@adobe/css-tools": {
1393 | "version": "4.0.1",
1394 | "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.0.1.tgz",
1395 | "integrity": "sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g=="
1396 | },
1397 | "@babel/code-frame": {
1398 | "version": "7.18.6",
1399 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
1400 | "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
1401 | "requires": {
1402 | "@babel/highlight": "^7.18.6"
1403 | }
1404 | },
1405 | "@babel/helper-validator-identifier": {
1406 | "version": "7.18.6",
1407 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
1408 | "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g=="
1409 | },
1410 | "@babel/highlight": {
1411 | "version": "7.18.6",
1412 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
1413 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
1414 | "requires": {
1415 | "@babel/helper-validator-identifier": "^7.18.6",
1416 | "chalk": "^2.0.0",
1417 | "js-tokens": "^4.0.0"
1418 | },
1419 | "dependencies": {
1420 | "ansi-styles": {
1421 | "version": "3.2.1",
1422 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1423 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1424 | "requires": {
1425 | "color-convert": "^1.9.0"
1426 | }
1427 | },
1428 | "chalk": {
1429 | "version": "2.4.2",
1430 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
1431 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
1432 | "requires": {
1433 | "ansi-styles": "^3.2.1",
1434 | "escape-string-regexp": "^1.0.5",
1435 | "supports-color": "^5.3.0"
1436 | }
1437 | },
1438 | "color-convert": {
1439 | "version": "1.9.3",
1440 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
1441 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
1442 | "requires": {
1443 | "color-name": "1.1.3"
1444 | }
1445 | },
1446 | "color-name": {
1447 | "version": "1.1.3",
1448 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
1449 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
1450 | },
1451 | "escape-string-regexp": {
1452 | "version": "1.0.5",
1453 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1454 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
1455 | },
1456 | "has-flag": {
1457 | "version": "3.0.0",
1458 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1459 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
1460 | },
1461 | "supports-color": {
1462 | "version": "5.5.0",
1463 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1464 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1465 | "requires": {
1466 | "has-flag": "^3.0.0"
1467 | }
1468 | }
1469 | }
1470 | },
1471 | "@babel/runtime": {
1472 | "version": "7.18.9",
1473 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz",
1474 | "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
1475 | "requires": {
1476 | "regenerator-runtime": "^0.13.4"
1477 | }
1478 | },
1479 | "@jest/expect-utils": {
1480 | "version": "28.1.3",
1481 | "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz",
1482 | "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==",
1483 | "requires": {
1484 | "jest-get-type": "^28.0.2"
1485 | }
1486 | },
1487 | "@jest/schemas": {
1488 | "version": "28.1.3",
1489 | "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz",
1490 | "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==",
1491 | "requires": {
1492 | "@sinclair/typebox": "^0.24.1"
1493 | }
1494 | },
1495 | "@jest/types": {
1496 | "version": "28.1.3",
1497 | "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz",
1498 | "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==",
1499 | "requires": {
1500 | "@jest/schemas": "^28.1.3",
1501 | "@types/istanbul-lib-coverage": "^2.0.0",
1502 | "@types/istanbul-reports": "^3.0.0",
1503 | "@types/node": "*",
1504 | "@types/yargs": "^17.0.8",
1505 | "chalk": "^4.0.0"
1506 | }
1507 | },
1508 | "@sinclair/typebox": {
1509 | "version": "0.24.28",
1510 | "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.28.tgz",
1511 | "integrity": "sha512-dgJd3HLOkLmz4Bw50eZx/zJwtBq65nms3N9VBYu5LTjJ883oBFkTyXRlCB/ZGGwqYpJJHA5zW2Ibhl5ngITfow=="
1512 | },
1513 | "@testing-library/dom": {
1514 | "version": "8.17.1",
1515 | "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.17.1.tgz",
1516 | "integrity": "sha512-KnH2MnJUzmFNPW6RIKfd+zf2Wue8mEKX0M3cpX6aKl5ZXrJM1/c/Pc8c2xDNYQCnJO48Sm5ITbMXgqTr3h4jxQ==",
1517 | "requires": {
1518 | "@babel/code-frame": "^7.10.4",
1519 | "@babel/runtime": "^7.12.5",
1520 | "@types/aria-query": "^4.2.0",
1521 | "aria-query": "^5.0.0",
1522 | "chalk": "^4.1.0",
1523 | "dom-accessibility-api": "^0.5.9",
1524 | "lz-string": "^1.4.4",
1525 | "pretty-format": "^27.0.2"
1526 | },
1527 | "dependencies": {
1528 | "ansi-styles": {
1529 | "version": "5.2.0",
1530 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
1531 | "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="
1532 | },
1533 | "pretty-format": {
1534 | "version": "27.5.1",
1535 | "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz",
1536 | "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
1537 | "requires": {
1538 | "ansi-regex": "^5.0.1",
1539 | "ansi-styles": "^5.0.0",
1540 | "react-is": "^17.0.1"
1541 | }
1542 | },
1543 | "react-is": {
1544 | "version": "17.0.2",
1545 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
1546 | "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
1547 | }
1548 | }
1549 | },
1550 | "@testing-library/jest-dom": {
1551 | "version": "5.16.5",
1552 | "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz",
1553 | "integrity": "sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==",
1554 | "requires": {
1555 | "@adobe/css-tools": "^4.0.1",
1556 | "@babel/runtime": "^7.9.2",
1557 | "@types/testing-library__jest-dom": "^5.9.1",
1558 | "aria-query": "^5.0.0",
1559 | "chalk": "^3.0.0",
1560 | "css.escape": "^1.5.1",
1561 | "dom-accessibility-api": "^0.5.6",
1562 | "lodash": "^4.17.15",
1563 | "redent": "^3.0.0"
1564 | },
1565 | "dependencies": {
1566 | "chalk": {
1567 | "version": "3.0.0",
1568 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
1569 | "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
1570 | "requires": {
1571 | "ansi-styles": "^4.1.0",
1572 | "supports-color": "^7.1.0"
1573 | }
1574 | }
1575 | }
1576 | },
1577 | "@tootallnate/once": {
1578 | "version": "2.0.0",
1579 | "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
1580 | "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A=="
1581 | },
1582 | "@types/aria-query": {
1583 | "version": "4.2.2",
1584 | "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz",
1585 | "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig=="
1586 | },
1587 | "@types/istanbul-lib-coverage": {
1588 | "version": "2.0.4",
1589 | "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
1590 | "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g=="
1591 | },
1592 | "@types/istanbul-lib-report": {
1593 | "version": "3.0.0",
1594 | "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
1595 | "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
1596 | "requires": {
1597 | "@types/istanbul-lib-coverage": "*"
1598 | }
1599 | },
1600 | "@types/istanbul-reports": {
1601 | "version": "3.0.1",
1602 | "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
1603 | "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
1604 | "requires": {
1605 | "@types/istanbul-lib-report": "*"
1606 | }
1607 | },
1608 | "@types/jest": {
1609 | "version": "28.1.7",
1610 | "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.7.tgz",
1611 | "integrity": "sha512-acDN4VHD40V24tgu0iC44jchXavRNVFXQ/E6Z5XNsswgoSO/4NgsXoEYmPUGookKldlZQyIpmrEXsHI9cA3ZTA==",
1612 | "requires": {
1613 | "expect": "^28.0.0",
1614 | "pretty-format": "^28.0.0"
1615 | }
1616 | },
1617 | "@types/node": {
1618 | "version": "18.7.11",
1619 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.11.tgz",
1620 | "integrity": "sha512-KZhFpSLlmK/sdocfSAjqPETTMd0ug6HIMIAwkwUpU79olnZdQtMxpQP+G1wDzCH7na+FltSIhbaZuKdwZ8RDrw=="
1621 | },
1622 | "@types/stack-utils": {
1623 | "version": "2.0.1",
1624 | "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
1625 | "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
1626 | },
1627 | "@types/testing-library__jest-dom": {
1628 | "version": "5.14.5",
1629 | "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz",
1630 | "integrity": "sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ==",
1631 | "requires": {
1632 | "@types/jest": "*"
1633 | }
1634 | },
1635 | "@types/yargs": {
1636 | "version": "17.0.11",
1637 | "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.11.tgz",
1638 | "integrity": "sha512-aB4y9UDUXTSMxmM4MH+YnuR0g5Cph3FLQBoWoMB21DSvFVAxRVEHEMx3TLh+zUZYMCQtKiqazz0Q4Rre31f/OA==",
1639 | "requires": {
1640 | "@types/yargs-parser": "*"
1641 | }
1642 | },
1643 | "@types/yargs-parser": {
1644 | "version": "21.0.0",
1645 | "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz",
1646 | "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA=="
1647 | },
1648 | "abab": {
1649 | "version": "2.0.6",
1650 | "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
1651 | "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA=="
1652 | },
1653 | "acorn": {
1654 | "version": "8.8.0",
1655 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
1656 | "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w=="
1657 | },
1658 | "acorn-globals": {
1659 | "version": "6.0.0",
1660 | "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz",
1661 | "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==",
1662 | "requires": {
1663 | "acorn": "^7.1.1",
1664 | "acorn-walk": "^7.1.1"
1665 | },
1666 | "dependencies": {
1667 | "acorn": {
1668 | "version": "7.4.1",
1669 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
1670 | "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
1671 | }
1672 | }
1673 | },
1674 | "acorn-walk": {
1675 | "version": "7.2.0",
1676 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
1677 | "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA=="
1678 | },
1679 | "agent-base": {
1680 | "version": "6.0.2",
1681 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
1682 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
1683 | "requires": {
1684 | "debug": "4"
1685 | }
1686 | },
1687 | "ansi-regex": {
1688 | "version": "5.0.1",
1689 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
1690 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
1691 | },
1692 | "ansi-styles": {
1693 | "version": "4.3.0",
1694 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1695 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1696 | "requires": {
1697 | "color-convert": "^2.0.1"
1698 | }
1699 | },
1700 | "aria-query": {
1701 | "version": "5.0.0",
1702 | "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz",
1703 | "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg=="
1704 | },
1705 | "asynckit": {
1706 | "version": "0.4.0",
1707 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
1708 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
1709 | },
1710 | "braces": {
1711 | "version": "3.0.2",
1712 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
1713 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
1714 | "requires": {
1715 | "fill-range": "^7.0.1"
1716 | }
1717 | },
1718 | "browser-process-hrtime": {
1719 | "version": "1.0.0",
1720 | "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
1721 | "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="
1722 | },
1723 | "chalk": {
1724 | "version": "4.1.2",
1725 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
1726 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
1727 | "requires": {
1728 | "ansi-styles": "^4.1.0",
1729 | "supports-color": "^7.1.0"
1730 | }
1731 | },
1732 | "ci-info": {
1733 | "version": "3.3.2",
1734 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz",
1735 | "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg=="
1736 | },
1737 | "color-convert": {
1738 | "version": "2.0.1",
1739 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1740 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1741 | "requires": {
1742 | "color-name": "~1.1.4"
1743 | }
1744 | },
1745 | "color-name": {
1746 | "version": "1.1.4",
1747 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1748 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
1749 | },
1750 | "combined-stream": {
1751 | "version": "1.0.8",
1752 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
1753 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
1754 | "requires": {
1755 | "delayed-stream": "~1.0.0"
1756 | }
1757 | },
1758 | "css.escape": {
1759 | "version": "1.5.1",
1760 | "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz",
1761 | "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg=="
1762 | },
1763 | "cssom": {
1764 | "version": "0.5.0",
1765 | "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz",
1766 | "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw=="
1767 | },
1768 | "cssstyle": {
1769 | "version": "2.3.0",
1770 | "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
1771 | "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
1772 | "requires": {
1773 | "cssom": "~0.3.6"
1774 | },
1775 | "dependencies": {
1776 | "cssom": {
1777 | "version": "0.3.8",
1778 | "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
1779 | "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
1780 | }
1781 | }
1782 | },
1783 | "data-urls": {
1784 | "version": "3.0.2",
1785 | "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz",
1786 | "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==",
1787 | "requires": {
1788 | "abab": "^2.0.6",
1789 | "whatwg-mimetype": "^3.0.0",
1790 | "whatwg-url": "^11.0.0"
1791 | }
1792 | },
1793 | "debug": {
1794 | "version": "4.3.4",
1795 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1796 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1797 | "requires": {
1798 | "ms": "2.1.2"
1799 | }
1800 | },
1801 | "decimal.js": {
1802 | "version": "10.4.0",
1803 | "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.0.tgz",
1804 | "integrity": "sha512-Nv6ENEzyPQ6AItkGwLE2PGKinZZ9g59vSh2BeH6NqPu0OTKZ5ruJsVqh/orbAnqXc9pBbgXAIrc2EyaCj8NpGg=="
1805 | },
1806 | "deep-is": {
1807 | "version": "0.1.4",
1808 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
1809 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
1810 | },
1811 | "delayed-stream": {
1812 | "version": "1.0.0",
1813 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
1814 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
1815 | },
1816 | "diff-sequences": {
1817 | "version": "28.1.1",
1818 | "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz",
1819 | "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw=="
1820 | },
1821 | "dom-accessibility-api": {
1822 | "version": "0.5.14",
1823 | "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz",
1824 | "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg=="
1825 | },
1826 | "domexception": {
1827 | "version": "4.0.0",
1828 | "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz",
1829 | "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==",
1830 | "requires": {
1831 | "webidl-conversions": "^7.0.0"
1832 | }
1833 | },
1834 | "entities": {
1835 | "version": "4.3.1",
1836 | "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz",
1837 | "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg=="
1838 | },
1839 | "escape-string-regexp": {
1840 | "version": "2.0.0",
1841 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
1842 | "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="
1843 | },
1844 | "escodegen": {
1845 | "version": "2.0.0",
1846 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz",
1847 | "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==",
1848 | "requires": {
1849 | "esprima": "^4.0.1",
1850 | "estraverse": "^5.2.0",
1851 | "esutils": "^2.0.2",
1852 | "optionator": "^0.8.1",
1853 | "source-map": "~0.6.1"
1854 | }
1855 | },
1856 | "esprima": {
1857 | "version": "4.0.1",
1858 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
1859 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
1860 | },
1861 | "estraverse": {
1862 | "version": "5.3.0",
1863 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
1864 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
1865 | },
1866 | "esutils": {
1867 | "version": "2.0.3",
1868 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
1869 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
1870 | },
1871 | "expect": {
1872 | "version": "28.1.3",
1873 | "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz",
1874 | "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==",
1875 | "requires": {
1876 | "@jest/expect-utils": "^28.1.3",
1877 | "jest-get-type": "^28.0.2",
1878 | "jest-matcher-utils": "^28.1.3",
1879 | "jest-message-util": "^28.1.3",
1880 | "jest-util": "^28.1.3"
1881 | }
1882 | },
1883 | "fast-levenshtein": {
1884 | "version": "2.0.6",
1885 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
1886 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
1887 | },
1888 | "fill-range": {
1889 | "version": "7.0.1",
1890 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
1891 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
1892 | "requires": {
1893 | "to-regex-range": "^5.0.1"
1894 | }
1895 | },
1896 | "form-data": {
1897 | "version": "4.0.0",
1898 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
1899 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
1900 | "requires": {
1901 | "asynckit": "^0.4.0",
1902 | "combined-stream": "^1.0.8",
1903 | "mime-types": "^2.1.12"
1904 | }
1905 | },
1906 | "fsevents": {
1907 | "version": "2.3.2",
1908 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
1909 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
1910 | "dev": true,
1911 | "optional": true
1912 | },
1913 | "graceful-fs": {
1914 | "version": "4.2.10",
1915 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
1916 | "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
1917 | },
1918 | "has-flag": {
1919 | "version": "4.0.0",
1920 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1921 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
1922 | },
1923 | "html-encoding-sniffer": {
1924 | "version": "3.0.0",
1925 | "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz",
1926 | "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==",
1927 | "requires": {
1928 | "whatwg-encoding": "^2.0.0"
1929 | }
1930 | },
1931 | "http-proxy-agent": {
1932 | "version": "5.0.0",
1933 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
1934 | "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
1935 | "requires": {
1936 | "@tootallnate/once": "2",
1937 | "agent-base": "6",
1938 | "debug": "4"
1939 | }
1940 | },
1941 | "https-proxy-agent": {
1942 | "version": "5.0.1",
1943 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
1944 | "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
1945 | "requires": {
1946 | "agent-base": "6",
1947 | "debug": "4"
1948 | }
1949 | },
1950 | "husky": {
1951 | "version": "8.0.1",
1952 | "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.1.tgz",
1953 | "integrity": "sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==",
1954 | "dev": true
1955 | },
1956 | "iconv-lite": {
1957 | "version": "0.6.3",
1958 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
1959 | "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
1960 | "requires": {
1961 | "safer-buffer": ">= 2.1.2 < 3.0.0"
1962 | }
1963 | },
1964 | "indent-string": {
1965 | "version": "4.0.0",
1966 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
1967 | "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="
1968 | },
1969 | "is-number": {
1970 | "version": "7.0.0",
1971 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1972 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
1973 | },
1974 | "is-potential-custom-element-name": {
1975 | "version": "1.0.1",
1976 | "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
1977 | "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="
1978 | },
1979 | "jest-diff": {
1980 | "version": "28.1.3",
1981 | "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz",
1982 | "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==",
1983 | "requires": {
1984 | "chalk": "^4.0.0",
1985 | "diff-sequences": "^28.1.1",
1986 | "jest-get-type": "^28.0.2",
1987 | "pretty-format": "^28.1.3"
1988 | }
1989 | },
1990 | "jest-get-type": {
1991 | "version": "28.0.2",
1992 | "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz",
1993 | "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA=="
1994 | },
1995 | "jest-matcher-utils": {
1996 | "version": "28.1.3",
1997 | "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz",
1998 | "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==",
1999 | "requires": {
2000 | "chalk": "^4.0.0",
2001 | "jest-diff": "^28.1.3",
2002 | "jest-get-type": "^28.0.2",
2003 | "pretty-format": "^28.1.3"
2004 | }
2005 | },
2006 | "jest-message-util": {
2007 | "version": "28.1.3",
2008 | "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz",
2009 | "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==",
2010 | "requires": {
2011 | "@babel/code-frame": "^7.12.13",
2012 | "@jest/types": "^28.1.3",
2013 | "@types/stack-utils": "^2.0.0",
2014 | "chalk": "^4.0.0",
2015 | "graceful-fs": "^4.2.9",
2016 | "micromatch": "^4.0.4",
2017 | "pretty-format": "^28.1.3",
2018 | "slash": "^3.0.0",
2019 | "stack-utils": "^2.0.3"
2020 | }
2021 | },
2022 | "jest-util": {
2023 | "version": "28.1.3",
2024 | "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz",
2025 | "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==",
2026 | "requires": {
2027 | "@jest/types": "^28.1.3",
2028 | "@types/node": "*",
2029 | "chalk": "^4.0.0",
2030 | "ci-info": "^3.2.0",
2031 | "graceful-fs": "^4.2.9",
2032 | "picomatch": "^2.2.3"
2033 | }
2034 | },
2035 | "js-tokens": {
2036 | "version": "4.0.0",
2037 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
2038 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
2039 | },
2040 | "jsdom": {
2041 | "version": "20.0.0",
2042 | "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.0.tgz",
2043 | "integrity": "sha512-x4a6CKCgx00uCmP+QakBDFXwjAJ69IkkIWHmtmjd3wvXPcdOS44hfX2vqkOQrVrq8l9DhNNADZRXaCEWvgXtVA==",
2044 | "requires": {
2045 | "abab": "^2.0.6",
2046 | "acorn": "^8.7.1",
2047 | "acorn-globals": "^6.0.0",
2048 | "cssom": "^0.5.0",
2049 | "cssstyle": "^2.3.0",
2050 | "data-urls": "^3.0.2",
2051 | "decimal.js": "^10.3.1",
2052 | "domexception": "^4.0.0",
2053 | "escodegen": "^2.0.0",
2054 | "form-data": "^4.0.0",
2055 | "html-encoding-sniffer": "^3.0.0",
2056 | "http-proxy-agent": "^5.0.0",
2057 | "https-proxy-agent": "^5.0.1",
2058 | "is-potential-custom-element-name": "^1.0.1",
2059 | "nwsapi": "^2.2.0",
2060 | "parse5": "^7.0.0",
2061 | "saxes": "^6.0.0",
2062 | "symbol-tree": "^3.2.4",
2063 | "tough-cookie": "^4.0.0",
2064 | "w3c-hr-time": "^1.0.2",
2065 | "w3c-xmlserializer": "^3.0.0",
2066 | "webidl-conversions": "^7.0.0",
2067 | "whatwg-encoding": "^2.0.0",
2068 | "whatwg-mimetype": "^3.0.0",
2069 | "whatwg-url": "^11.0.0",
2070 | "ws": "^8.8.0",
2071 | "xml-name-validator": "^4.0.0"
2072 | }
2073 | },
2074 | "levn": {
2075 | "version": "0.3.0",
2076 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
2077 | "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
2078 | "requires": {
2079 | "prelude-ls": "~1.1.2",
2080 | "type-check": "~0.3.2"
2081 | }
2082 | },
2083 | "lodash": {
2084 | "version": "4.17.21",
2085 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
2086 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
2087 | },
2088 | "lz-string": {
2089 | "version": "1.4.4",
2090 | "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz",
2091 | "integrity": "sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ=="
2092 | },
2093 | "micromatch": {
2094 | "version": "4.0.5",
2095 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
2096 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
2097 | "requires": {
2098 | "braces": "^3.0.2",
2099 | "picomatch": "^2.3.1"
2100 | }
2101 | },
2102 | "mime-db": {
2103 | "version": "1.52.0",
2104 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
2105 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
2106 | },
2107 | "mime-types": {
2108 | "version": "2.1.35",
2109 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
2110 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
2111 | "requires": {
2112 | "mime-db": "1.52.0"
2113 | }
2114 | },
2115 | "min-indent": {
2116 | "version": "1.0.1",
2117 | "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
2118 | "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg=="
2119 | },
2120 | "ms": {
2121 | "version": "2.1.2",
2122 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
2123 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
2124 | },
2125 | "nwsapi": {
2126 | "version": "2.2.1",
2127 | "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.1.tgz",
2128 | "integrity": "sha512-JYOWTeFoS0Z93587vRJgASD5Ut11fYl5NyihP3KrYBvMe1FRRs6RN7m20SA/16GM4P6hTnZjT+UmDOt38UeXNg=="
2129 | },
2130 | "optionator": {
2131 | "version": "0.8.3",
2132 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
2133 | "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
2134 | "requires": {
2135 | "deep-is": "~0.1.3",
2136 | "fast-levenshtein": "~2.0.6",
2137 | "levn": "~0.3.0",
2138 | "prelude-ls": "~1.1.2",
2139 | "type-check": "~0.3.2",
2140 | "word-wrap": "~1.2.3"
2141 | }
2142 | },
2143 | "parse5": {
2144 | "version": "7.0.0",
2145 | "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz",
2146 | "integrity": "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==",
2147 | "requires": {
2148 | "entities": "^4.3.0"
2149 | }
2150 | },
2151 | "picomatch": {
2152 | "version": "2.3.1",
2153 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
2154 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
2155 | },
2156 | "prelude-ls": {
2157 | "version": "1.1.2",
2158 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
2159 | "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w=="
2160 | },
2161 | "prettier": {
2162 | "version": "2.6.2",
2163 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz",
2164 | "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==",
2165 | "dev": true
2166 | },
2167 | "pretty-format": {
2168 | "version": "28.1.3",
2169 | "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz",
2170 | "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==",
2171 | "requires": {
2172 | "@jest/schemas": "^28.1.3",
2173 | "ansi-regex": "^5.0.1",
2174 | "ansi-styles": "^5.0.0",
2175 | "react-is": "^18.0.0"
2176 | },
2177 | "dependencies": {
2178 | "ansi-styles": {
2179 | "version": "5.2.0",
2180 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
2181 | "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="
2182 | }
2183 | }
2184 | },
2185 | "psl": {
2186 | "version": "1.9.0",
2187 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
2188 | "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
2189 | },
2190 | "punycode": {
2191 | "version": "2.1.1",
2192 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
2193 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
2194 | },
2195 | "querystringify": {
2196 | "version": "2.2.0",
2197 | "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
2198 | "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
2199 | },
2200 | "react-is": {
2201 | "version": "18.2.0",
2202 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
2203 | "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
2204 | },
2205 | "redent": {
2206 | "version": "3.0.0",
2207 | "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
2208 | "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
2209 | "requires": {
2210 | "indent-string": "^4.0.0",
2211 | "strip-indent": "^3.0.0"
2212 | }
2213 | },
2214 | "regenerator-runtime": {
2215 | "version": "0.13.9",
2216 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
2217 | "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
2218 | },
2219 | "requires-port": {
2220 | "version": "1.0.0",
2221 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
2222 | "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
2223 | },
2224 | "rollup": {
2225 | "version": "2.78.1",
2226 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.1.tgz",
2227 | "integrity": "sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==",
2228 | "dev": true,
2229 | "requires": {
2230 | "fsevents": "~2.3.2"
2231 | }
2232 | },
2233 | "safer-buffer": {
2234 | "version": "2.1.2",
2235 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
2236 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
2237 | },
2238 | "saxes": {
2239 | "version": "6.0.0",
2240 | "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
2241 | "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
2242 | "requires": {
2243 | "xmlchars": "^2.2.0"
2244 | }
2245 | },
2246 | "slash": {
2247 | "version": "3.0.0",
2248 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
2249 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
2250 | },
2251 | "source-map": {
2252 | "version": "0.6.1",
2253 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2254 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
2255 | "optional": true
2256 | },
2257 | "stack-utils": {
2258 | "version": "2.0.5",
2259 | "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz",
2260 | "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==",
2261 | "requires": {
2262 | "escape-string-regexp": "^2.0.0"
2263 | }
2264 | },
2265 | "strip-indent": {
2266 | "version": "3.0.0",
2267 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
2268 | "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
2269 | "requires": {
2270 | "min-indent": "^1.0.0"
2271 | }
2272 | },
2273 | "supports-color": {
2274 | "version": "7.2.0",
2275 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
2276 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
2277 | "requires": {
2278 | "has-flag": "^4.0.0"
2279 | }
2280 | },
2281 | "symbol-tree": {
2282 | "version": "3.2.4",
2283 | "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
2284 | "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
2285 | },
2286 | "to-regex-range": {
2287 | "version": "5.0.1",
2288 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
2289 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
2290 | "requires": {
2291 | "is-number": "^7.0.0"
2292 | }
2293 | },
2294 | "tough-cookie": {
2295 | "version": "4.1.0",
2296 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.0.tgz",
2297 | "integrity": "sha512-IVX6AagLelGwl6F0E+hoRpXzuD192cZhAcmT7/eoLr0PnsB1wv2E5c+A2O+V8xth9FlL2p0OstFsWn0bZpVn4w==",
2298 | "requires": {
2299 | "psl": "^1.1.33",
2300 | "punycode": "^2.1.1",
2301 | "universalify": "^0.2.0",
2302 | "url-parse": "^1.5.3"
2303 | }
2304 | },
2305 | "tr46": {
2306 | "version": "3.0.0",
2307 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
2308 | "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
2309 | "requires": {
2310 | "punycode": "^2.1.1"
2311 | }
2312 | },
2313 | "type-check": {
2314 | "version": "0.3.2",
2315 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
2316 | "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
2317 | "requires": {
2318 | "prelude-ls": "~1.1.2"
2319 | }
2320 | },
2321 | "uglify-js": {
2322 | "version": "3.17.0",
2323 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.0.tgz",
2324 | "integrity": "sha512-aTeNPVmgIMPpm1cxXr2Q/nEbvkmV8yq66F3om7X3P/cvOXQ0TMQ64Wk63iyT1gPlmdmGzjGpyLh1f3y8MZWXGg=="
2325 | },
2326 | "universalify": {
2327 | "version": "0.2.0",
2328 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
2329 | "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg=="
2330 | },
2331 | "url-parse": {
2332 | "version": "1.5.10",
2333 | "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
2334 | "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
2335 | "requires": {
2336 | "querystringify": "^2.1.1",
2337 | "requires-port": "^1.0.0"
2338 | }
2339 | },
2340 | "w3c-hr-time": {
2341 | "version": "1.0.2",
2342 | "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
2343 | "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==",
2344 | "requires": {
2345 | "browser-process-hrtime": "^1.0.0"
2346 | }
2347 | },
2348 | "w3c-xmlserializer": {
2349 | "version": "3.0.0",
2350 | "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz",
2351 | "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==",
2352 | "requires": {
2353 | "xml-name-validator": "^4.0.0"
2354 | }
2355 | },
2356 | "webidl-conversions": {
2357 | "version": "7.0.0",
2358 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
2359 | "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="
2360 | },
2361 | "whatwg-encoding": {
2362 | "version": "2.0.0",
2363 | "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz",
2364 | "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==",
2365 | "requires": {
2366 | "iconv-lite": "0.6.3"
2367 | }
2368 | },
2369 | "whatwg-mimetype": {
2370 | "version": "3.0.0",
2371 | "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz",
2372 | "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q=="
2373 | },
2374 | "whatwg-url": {
2375 | "version": "11.0.0",
2376 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
2377 | "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
2378 | "requires": {
2379 | "tr46": "^3.0.0",
2380 | "webidl-conversions": "^7.0.0"
2381 | }
2382 | },
2383 | "word-wrap": {
2384 | "version": "1.2.3",
2385 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
2386 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="
2387 | },
2388 | "ws": {
2389 | "version": "8.8.1",
2390 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz",
2391 | "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==",
2392 | "requires": {}
2393 | },
2394 | "xml-name-validator": {
2395 | "version": "4.0.0",
2396 | "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
2397 | "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw=="
2398 | },
2399 | "xmlchars": {
2400 | "version": "2.2.0",
2401 | "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
2402 | "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="
2403 | }
2404 | }
2405 | }
2406 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "panix",
3 | "version": "1.0.0",
4 | "description": "Lightweight Virtual Dom library",
5 | "main": "./dist/panix.umd.js",
6 | "module": "./dist/panix.es.js",
7 | "unpkg": "./dist/panix.es.min.js",
8 | "jsdelivr": "./dist/panix.es.min.js",
9 | "scripts": {
10 | "test": "firefox ./tests/SpecRunner.html",
11 | "pretty": "npx prettier --write .",
12 | "minify": "node .minify.js",
13 | "prepare": "npx prettier --write . && npx rollup -c && node ./minifier.js && husky install"
14 | },
15 | "author": "Mehan alavimajd",
16 | "license": "see License in LICENSE",
17 | "devDependencies": {
18 | "husky": "^8.0.1",
19 | "prettier": "^2.3.2",
20 | "rollup": "^2.58.0"
21 | },
22 | "dependencies": {
23 | "@testing-library/dom": "^8.17.1",
24 | "@testing-library/jest-dom": "^5.16.5",
25 | "jsdom": "^20.0.0",
26 | "uglify-js": "^3.17.0"
27 | },
28 | "repository": {
29 | "type": "git",
30 | "directory": "https://github.com/mehanalavimajd/panix"
31 | },
32 | "homepage": "https://github.com/mehanalavimajd/panix",
33 | "bugs": "https://github.com/mehanalavimajd/panix/issues",
34 | "keywords": [
35 | "front-end",
36 | "virtual-dom"
37 | ]
38 | }
39 |
--------------------------------------------------------------------------------
/rollup.config.js:
--------------------------------------------------------------------------------
1 | export default {
2 | input: "./src/index.js",
3 | output: [
4 | {
5 | format: "es",
6 | file: "dist/panix.es.js",
7 | },
8 | {
9 | format: "es",
10 | file: "dist/panix.es.min.js",
11 | },
12 | {
13 | format: "umd",
14 | file: "dist/panix.umd.js",
15 | name: "panix",
16 | },
17 | {
18 | format: "umd",
19 | file: "dist/panix.umd.min.js",
20 | name: "panix",
21 | },
22 | {
23 | format: "cjs",
24 | file: "dist/panix.cjs.js",
25 | name: "panix",
26 | },
27 | {
28 | format: "cjs",
29 | file: "dist/panix.cjs.min.js",
30 | name: "panix",
31 | },
32 | ],
33 | };
34 |
--------------------------------------------------------------------------------
/src/error.js:
--------------------------------------------------------------------------------
1 | const error = (text) => {
2 | throw new Error("Panix.js has made a problem: " + text);
3 | };
4 | export default error;
5 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import error from "./error.js";
2 | let node = (tag, props, children) => {
3 | return {
4 | tag,
5 | props: !props ? {} : props,
6 | children,
7 | };
8 | };
9 | let createElement = (node) => {
10 | let el = document.createElement(node.tag);
11 | for (const key in node.props) {
12 | if (node.props.hasOwnProperty(key)) {
13 | el.setAttribute(key, node.props[key]);
14 | }
15 | }
16 | if (Array.isArray(node.children)) {
17 | node.children.forEach((child) => {
18 | el.appendChild(createElement(child));
19 | });
20 | } else if (typeof node.children == "string") {
21 | el.innerHTML = node.children;
22 | } else {
23 | error("The children argument of node should be either an array or String");
24 | }
25 | return el;
26 | };
27 | let update = (newnode, oldel) => {
28 | if (newnode.tag.toLowerCase !== oldel.tagName.toLowerCase) {
29 | oldel = createElement(newnode);
30 | } else {
31 | // props
32 | if (newnode.props.length === oldel.attributes.length) {
33 | oldel.attributes.forEach((item) => {
34 | var oldKey = item.key;
35 | var oldValue = item.value;
36 | for (const [key, value] in newnode.props) {
37 | var newKey = key;
38 | var newValue = value;
39 | }
40 | if (newKey !== oldKey) {
41 | oldKey = newKey;
42 | }
43 | if (newValue !== oldValue) {
44 | oldValue = newValue;
45 | }
46 | });
47 | } else {
48 | oldel = createElement(newnode);
49 | }
50 | // children
51 | if (Array.isArray(newnode.children)) {
52 | if (newnode.children.length === oldel.children.length) {
53 | let i = 0;
54 | newnode.forEach((child) => {
55 | if (newnode.children[i] !== oldel.children[i]) {
56 | oldel.children[i] = newnode.children[i];
57 | }
58 | i++;
59 | });
60 | } else {
61 | oldel = createElement(newnode);
62 | }
63 | } else if (typeof newnode.children == "string") {
64 | if (newnode.children !== oldel.textContent) {
65 | oldel.textContent = newnode.children;
66 | }
67 | }
68 | }
69 | return oldel;
70 | };
71 | let render = (el, cont) => {
72 | cont.appendChild(el);
73 | };
74 | export { node, createElement, update, render };
75 |
--------------------------------------------------------------------------------
/tests/SpecRunner.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |