diff --git a/package-lock.json b/package-lock.json
index 774dc3edb..495671e69 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13,13 +13,107 @@
"@babel/highlight": "^7.10.4"
}
},
+ "@babel/compat-data": {
+ "version": "7.13.15",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.15.tgz",
+ "integrity": "sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA==",
+ "dev": true
+ },
+ "@babel/core": {
+ "version": "7.13.15",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.15.tgz",
+ "integrity": "sha512-6GXmNYeNjS2Uz+uls5jalOemgIhnTMeaXo+yBUA72kC2uX/8VW6XyhVIo2L8/q0goKQA3EVKx0KOQpVKSeWadQ==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@babel/generator": "^7.13.9",
+ "@babel/helper-compilation-targets": "^7.13.13",
+ "@babel/helper-module-transforms": "^7.13.14",
+ "@babel/helpers": "^7.13.10",
+ "@babel/parser": "^7.13.15",
+ "@babel/template": "^7.12.13",
+ "@babel/traverse": "^7.13.15",
+ "@babel/types": "^7.13.14",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.1.2",
+ "semver": "^6.3.0",
+ "source-map": "^0.5.0"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz",
+ "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.12.13"
+ }
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.12.11",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz",
+ "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==",
+ "dev": true
+ },
+ "@babel/highlight": {
+ "version": "7.13.10",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz",
+ "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.12.11",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ }
+ }
+ },
+ "@babel/eslint-parser": {
+ "version": "7.13.14",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.13.14.tgz",
+ "integrity": "sha512-I0HweR36D73Ibn/FfrRDMKlMqJHFwidIUgYdMpH+aXYuQC+waq59YaJ6t9e9N36axJ82v1jR041wwqDrDXEwRA==",
+ "dev": true,
+ "requires": {
+ "eslint-scope": "^5.1.0",
+ "eslint-visitor-keys": "^1.3.0",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "dev": true
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
"@babel/generator": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz",
- "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==",
+ "version": "7.13.9",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz",
+ "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==",
"dev": true,
"requires": {
- "@babel/types": "^7.12.11",
+ "@babel/types": "^7.13.0",
"jsesc": "^2.5.1",
"source-map": "^0.5.0"
},
@@ -32,33 +126,125 @@
}
}
},
+ "@babel/helper-compilation-targets": {
+ "version": "7.13.13",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz",
+ "integrity": "sha512-q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ==",
+ "dev": true,
+ "requires": {
+ "@babel/compat-data": "^7.13.12",
+ "@babel/helper-validator-option": "^7.12.17",
+ "browserslist": "^4.14.5",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
"@babel/helper-function-name": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz",
- "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz",
+ "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==",
"dev": true,
"requires": {
- "@babel/helper-get-function-arity": "^7.12.10",
- "@babel/template": "^7.12.7",
- "@babel/types": "^7.12.11"
+ "@babel/helper-get-function-arity": "^7.12.13",
+ "@babel/template": "^7.12.13",
+ "@babel/types": "^7.12.13"
}
},
"@babel/helper-get-function-arity": {
- "version": "7.12.10",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz",
- "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz",
+ "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.12.13"
+ }
+ },
+ "@babel/helper-member-expression-to-functions": {
+ "version": "7.13.12",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz",
+ "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.13.12"
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.13.12",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz",
+ "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.13.12"
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.13.14",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz",
+ "integrity": "sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g==",
"dev": true,
"requires": {
- "@babel/types": "^7.12.10"
+ "@babel/helper-module-imports": "^7.13.12",
+ "@babel/helper-replace-supers": "^7.13.12",
+ "@babel/helper-simple-access": "^7.13.12",
+ "@babel/helper-split-export-declaration": "^7.12.13",
+ "@babel/helper-validator-identifier": "^7.12.11",
+ "@babel/template": "^7.12.13",
+ "@babel/traverse": "^7.13.13",
+ "@babel/types": "^7.13.14"
+ },
+ "dependencies": {
+ "@babel/helper-validator-identifier": {
+ "version": "7.12.11",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz",
+ "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==",
+ "dev": true
+ }
+ }
+ },
+ "@babel/helper-optimise-call-expression": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz",
+ "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.12.13"
+ }
+ },
+ "@babel/helper-replace-supers": {
+ "version": "7.13.12",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz",
+ "integrity": "sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-member-expression-to-functions": "^7.13.12",
+ "@babel/helper-optimise-call-expression": "^7.12.13",
+ "@babel/traverse": "^7.13.0",
+ "@babel/types": "^7.13.12"
+ }
+ },
+ "@babel/helper-simple-access": {
+ "version": "7.13.12",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz",
+ "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.13.12"
}
},
"@babel/helper-split-export-declaration": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz",
- "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz",
+ "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==",
"dev": true,
"requires": {
- "@babel/types": "^7.12.11"
+ "@babel/types": "^7.12.13"
}
},
"@babel/helper-validator-identifier": {
@@ -67,6 +253,23 @@
"integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
"dev": true
},
+ "@babel/helper-validator-option": {
+ "version": "7.12.17",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz",
+ "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==",
+ "dev": true
+ },
+ "@babel/helpers": {
+ "version": "7.13.10",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz",
+ "integrity": "sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.12.13",
+ "@babel/traverse": "^7.13.0",
+ "@babel/types": "^7.13.0"
+ }
+ },
"@babel/highlight": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
@@ -79,46 +282,90 @@
}
},
"@babel/parser": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz",
- "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==",
+ "version": "7.13.15",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz",
+ "integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==",
"dev": true
},
"@babel/template": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz",
- "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz",
+ "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.10.4",
- "@babel/parser": "^7.12.7",
- "@babel/types": "^7.12.7"
+ "@babel/code-frame": "^7.12.13",
+ "@babel/parser": "^7.12.13",
+ "@babel/types": "^7.12.13"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz",
+ "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.12.13"
+ }
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.12.11",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz",
+ "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==",
+ "dev": true
+ },
+ "@babel/highlight": {
+ "version": "7.13.10",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz",
+ "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.12.11",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ }
+ }
}
},
"@babel/traverse": {
- "version": "7.12.12",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz",
- "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==",
+ "version": "7.13.15",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.15.tgz",
+ "integrity": "sha512-/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.12.11",
- "@babel/generator": "^7.12.11",
- "@babel/helper-function-name": "^7.12.11",
- "@babel/helper-split-export-declaration": "^7.12.11",
- "@babel/parser": "^7.12.11",
- "@babel/types": "^7.12.12",
+ "@babel/code-frame": "^7.12.13",
+ "@babel/generator": "^7.13.9",
+ "@babel/helper-function-name": "^7.12.13",
+ "@babel/helper-split-export-declaration": "^7.12.13",
+ "@babel/parser": "^7.13.15",
+ "@babel/types": "^7.13.14",
"debug": "^4.1.0",
- "globals": "^11.1.0",
- "lodash": "^4.17.19"
+ "globals": "^11.1.0"
},
"dependencies": {
"@babel/code-frame": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz",
+ "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.12.13"
+ }
+ },
+ "@babel/helper-validator-identifier": {
"version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz",
- "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz",
+ "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==",
+ "dev": true
+ },
+ "@babel/highlight": {
+ "version": "7.13.10",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz",
+ "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==",
"dev": true,
"requires": {
- "@babel/highlight": "^7.10.4"
+ "@babel/helper-validator-identifier": "^7.12.11",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
}
},
"globals": {
@@ -130,9 +377,9 @@
}
},
"@babel/types": {
- "version": "7.12.12",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz",
- "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==",
+ "version": "7.13.14",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz",
+ "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==",
"dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.12.11",
@@ -149,9 +396,9 @@
}
},
"@eslint/eslintrc": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz",
- "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==",
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz",
+ "integrity": "sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==",
"dev": true,
"requires": {
"ajv": "^6.12.4",
@@ -161,11 +408,19 @@
"ignore": "^4.0.6",
"import-fresh": "^3.2.1",
"js-yaml": "^3.13.1",
- "lodash": "^4.17.19",
"minimatch": "^3.0.4",
"strip-json-comments": "^3.1.1"
},
"dependencies": {
+ "globals": {
+ "version": "12.4.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
+ "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.8.1"
+ }
+ },
"ignore": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
@@ -245,9 +500,9 @@
}
},
"@types/json-schema": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz",
- "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==",
+ "version": "7.0.7",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz",
+ "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==",
"dev": true
},
"@types/json5": {
@@ -257,9 +512,9 @@
"dev": true
},
"@types/minimatch": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
- "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==",
"dev": true
},
"@types/minimist": {
@@ -269,9 +524,9 @@
"dev": true
},
"@types/node": {
- "version": "14.14.19",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.19.tgz",
- "integrity": "sha512-4nhBPStMK04rruRVtVc6cDqhu7S9GZai0fpXgPXrFpcPX6Xul8xnrjSdGB4KPBVYG/R5+fXWdCM8qBoiULWGPQ==",
+ "version": "14.14.37",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.37.tgz",
+ "integrity": "sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==",
"dev": true
},
"@types/normalize-package-data": {
@@ -287,85 +542,85 @@
"dev": true
},
"@typescript-eslint/eslint-plugin": {
- "version": "4.11.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.11.1.tgz",
- "integrity": "sha512-fABclAX2QIEDmTMk6Yd7Muv1CzFLwWM4505nETzRHpP3br6jfahD9UUJkhnJ/g2m7lwfz8IlswcwGGPGiq9exw==",
+ "version": "4.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.0.tgz",
+ "integrity": "sha512-U8SP9VOs275iDXaL08Ln1Fa/wLXfj5aTr/1c0t0j6CdbOnxh+TruXu1p4I0NAvdPBQgoPjHsgKn28mOi0FzfoA==",
"dev": true,
"requires": {
- "@typescript-eslint/experimental-utils": "4.11.1",
- "@typescript-eslint/scope-manager": "4.11.1",
+ "@typescript-eslint/experimental-utils": "4.22.0",
+ "@typescript-eslint/scope-manager": "4.22.0",
"debug": "^4.1.1",
"functional-red-black-tree": "^1.0.1",
+ "lodash": "^4.17.15",
"regexpp": "^3.0.0",
"semver": "^7.3.2",
"tsutils": "^3.17.1"
}
},
"@typescript-eslint/experimental-utils": {
- "version": "4.11.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.11.1.tgz",
- "integrity": "sha512-mAlWowT4A6h0TC9F+J5pdbEhjNiEMO+kqPKQ4sc3fVieKL71dEqfkKgtcFVSX3cjSBwYwhImaQ/mXQF0oaI38g==",
+ "version": "4.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.0.tgz",
+ "integrity": "sha512-xJXHHl6TuAxB5AWiVrGhvbGL8/hbiCQ8FiWwObO3r0fnvBdrbWEDy1hlvGQOAWc6qsCWuWMKdVWlLAEMpxnddg==",
"dev": true,
"requires": {
"@types/json-schema": "^7.0.3",
- "@typescript-eslint/scope-manager": "4.11.1",
- "@typescript-eslint/types": "4.11.1",
- "@typescript-eslint/typescript-estree": "4.11.1",
+ "@typescript-eslint/scope-manager": "4.22.0",
+ "@typescript-eslint/types": "4.22.0",
+ "@typescript-eslint/typescript-estree": "4.22.0",
"eslint-scope": "^5.0.0",
"eslint-utils": "^2.0.0"
}
},
"@typescript-eslint/parser": {
- "version": "4.11.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.11.1.tgz",
- "integrity": "sha512-BJ3jwPQu1jeynJ5BrjLuGfK/UJu6uwHxJ/di7sanqmUmxzmyIcd3vz58PMR7wpi8k3iWq2Q11KMYgZbUpRoIPw==",
+ "version": "4.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.0.tgz",
+ "integrity": "sha512-z/bGdBJJZJN76nvAY9DkJANYgK3nlRstRRi74WHm3jjgf2I8AglrSY+6l7ogxOmn55YJ6oKZCLLy+6PW70z15Q==",
"dev": true,
"requires": {
- "@typescript-eslint/scope-manager": "4.11.1",
- "@typescript-eslint/types": "4.11.1",
- "@typescript-eslint/typescript-estree": "4.11.1",
+ "@typescript-eslint/scope-manager": "4.22.0",
+ "@typescript-eslint/types": "4.22.0",
+ "@typescript-eslint/typescript-estree": "4.22.0",
"debug": "^4.1.1"
}
},
"@typescript-eslint/scope-manager": {
- "version": "4.11.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.11.1.tgz",
- "integrity": "sha512-Al2P394dx+kXCl61fhrrZ1FTI7qsRDIUiVSuN6rTwss6lUn8uVO2+nnF4AvO0ug8vMsy3ShkbxLu/uWZdTtJMQ==",
+ "version": "4.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.0.tgz",
+ "integrity": "sha512-OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "4.11.1",
- "@typescript-eslint/visitor-keys": "4.11.1"
+ "@typescript-eslint/types": "4.22.0",
+ "@typescript-eslint/visitor-keys": "4.22.0"
}
},
"@typescript-eslint/types": {
- "version": "4.11.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.11.1.tgz",
- "integrity": "sha512-5kvd38wZpqGY4yP/6W3qhYX6Hz0NwUbijVsX2rxczpY6OXaMxh0+5E5uLJKVFwaBM7PJe1wnMym85NfKYIh6CA==",
+ "version": "4.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.0.tgz",
+ "integrity": "sha512-sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA==",
"dev": true
},
"@typescript-eslint/typescript-estree": {
- "version": "4.11.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.11.1.tgz",
- "integrity": "sha512-tC7MKZIMRTYxQhrVAFoJq/DlRwv1bnqA4/S2r3+HuHibqvbrPcyf858lNzU7bFmy4mLeIHFYr34ar/1KumwyRw==",
+ "version": "4.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.0.tgz",
+ "integrity": "sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "4.11.1",
- "@typescript-eslint/visitor-keys": "4.11.1",
+ "@typescript-eslint/types": "4.22.0",
+ "@typescript-eslint/visitor-keys": "4.22.0",
"debug": "^4.1.1",
"globby": "^11.0.1",
"is-glob": "^4.0.1",
- "lodash": "^4.17.15",
"semver": "^7.3.2",
"tsutils": "^3.17.1"
}
},
"@typescript-eslint/visitor-keys": {
- "version": "4.11.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.11.1.tgz",
- "integrity": "sha512-IrlBhD9bm4bdYcS8xpWarazkKXlE7iYb1HzRuyBP114mIaj5DJPo11Us1HgH60dTt41TCZXMaTCAW+OILIYPOg==",
+ "version": "4.22.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.0.tgz",
+ "integrity": "sha512-nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "4.11.1",
+ "@typescript-eslint/types": "4.22.0",
"eslint-visitor-keys": "^2.0.0"
}
},
@@ -449,18 +704,18 @@
"dev": true
},
"ansi-escapes": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
- "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
"dev": true,
"requires": {
- "type-fest": "^0.11.0"
+ "type-fest": "^0.21.3"
},
"dependencies": {
"type-fest": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
- "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
"dev": true
}
}
@@ -524,15 +779,15 @@
"dev": true
},
"array-includes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.2.tgz",
- "integrity": "sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz",
+ "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==",
"dev": true,
"requires": {
- "call-bind": "^1.0.0",
+ "call-bind": "^1.0.2",
"define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.1",
- "get-intrinsic": "^1.0.1",
+ "es-abstract": "^1.18.0-next.2",
+ "get-intrinsic": "^1.1.1",
"is-string": "^1.0.5"
}
},
@@ -584,9 +839,9 @@
},
"dependencies": {
"bn.js": {
- "version": "4.11.9",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
- "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
"dev": true
}
}
@@ -662,19 +917,6 @@
"postcss-value-parser": "^4.1.0"
},
"dependencies": {
- "browserslist": {
- "version": "4.16.3",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz",
- "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==",
- "dev": true,
- "requires": {
- "caniuse-lite": "^1.0.30001181",
- "colorette": "^1.2.1",
- "electron-to-chromium": "^1.3.649",
- "escalade": "^3.1.1",
- "node-releases": "^1.1.70"
- }
- },
"caniuse-lite": {
"version": "1.0.30001203",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001203.tgz",
@@ -690,43 +932,19 @@
"electron-to-chromium": {
"version": "1.3.693",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.693.tgz",
- "integrity": "sha512-vUdsE8yyeu30RecppQtI+XTz2++LWLVEIYmzeCaCRLSdtKZ2eXqdJcrs85KwLiPOPVc6PELgWyXBsfqIvzGZag==",
- "dev": true
+ "integrity": "sha512-vUdsE8yyeu30RecppQtI+XTz2++LWLVEIYmzeCaCRLSdtKZ2eXqdJcrs85KwLiPOPVc6PELgWyXBsfqIvzGZag=="
},
"node-releases": {
"version": "1.1.71",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz",
- "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==",
- "dev": true
- }
- }
- },
- "babel-eslint": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz",
- "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "@babel/parser": "^7.7.0",
- "@babel/traverse": "^7.7.0",
- "@babel/types": "^7.7.0",
- "eslint-visitor-keys": "^1.0.0",
- "resolve": "^1.12.0"
- },
- "dependencies": {
- "eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "dev": true
+ "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg=="
}
}
},
"balanced-match": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true
},
"base": {
@@ -797,25 +1015,25 @@
"dev": true
},
"bn.js": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz",
- "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz",
+ "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==",
"dev": true
},
"boxen": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz",
- "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.0.1.tgz",
+ "integrity": "sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA==",
"dev": true,
"requires": {
"ansi-align": "^3.0.0",
- "camelcase": "^5.3.1",
- "chalk": "^3.0.0",
- "cli-boxes": "^2.2.0",
- "string-width": "^4.1.0",
- "term-size": "^2.1.0",
- "type-fest": "^0.8.1",
- "widest-line": "^3.1.0"
+ "camelcase": "^6.2.0",
+ "chalk": "^4.1.0",
+ "cli-boxes": "^2.2.1",
+ "string-width": "^4.2.0",
+ "type-fest": "^0.20.2",
+ "widest-line": "^3.1.0",
+ "wrap-ansi": "^7.0.0"
},
"dependencies": {
"ansi-styles": {
@@ -827,10 +1045,16 @@
"color-convert": "^2.0.1"
}
},
+ "camelcase": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz",
+ "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==",
+ "dev": true
+ },
"chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
@@ -851,6 +1075,12 @@
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
+ },
+ "type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true
}
}
},
@@ -966,16 +1196,42 @@
}
},
"browserslist": {
- "version": "4.16.1",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.1.tgz",
- "integrity": "sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==",
+ "version": "4.16.6",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz",
+ "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==",
"dev": true,
"requires": {
- "caniuse-lite": "^1.0.30001173",
- "colorette": "^1.2.1",
- "electron-to-chromium": "^1.3.634",
+ "caniuse-lite": "^1.0.30001219",
+ "colorette": "^1.2.2",
+ "electron-to-chromium": "^1.3.723",
"escalade": "^3.1.1",
- "node-releases": "^1.1.69"
+ "node-releases": "^1.1.71"
+ },
+ "dependencies": {
+ "caniuse-lite": {
+ "version": "1.0.30001230",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001230.tgz",
+ "integrity": "sha512-5yBd5nWCBS+jWKTcHOzXwo5xzcj4ePE/yjtkZyUV1BTUmrBaA9MRGC+e7mxnqXSA90CmCA8L3eKLaSUkt099IQ==",
+ "dev": true
+ },
+ "colorette": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz",
+ "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==",
+ "dev": true
+ },
+ "electron-to-chromium": {
+ "version": "1.3.739",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.739.tgz",
+ "integrity": "sha512-+LPJVRsN7hGZ9EIUUiWCpO7l4E3qBYHNadazlucBfsXBbccDFNKUBAgzE68FnkWGJPwD/AfKhSzL+G+Iqb8A4A==",
+ "dev": true
+ },
+ "node-releases": {
+ "version": "1.1.72",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.72.tgz",
+ "integrity": "sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==",
+ "dev": true
+ }
}
},
"buf-compare": {
@@ -1057,13 +1313,13 @@
}
},
"call-bind": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz",
- "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
"dev": true,
"requires": {
"function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.0"
+ "get-intrinsic": "^1.0.2"
}
},
"call-me-maybe": {
@@ -1294,6 +1550,23 @@
"integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=",
"dev": true
},
+ "convert-source-map": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
+ "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.1"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ }
+ }
+ },
"copy-descriptor": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
@@ -1346,9 +1619,9 @@
},
"dependencies": {
"bn.js": {
- "version": "4.11.9",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
- "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
"dev": true
}
}
@@ -1569,9 +1842,9 @@
},
"dependencies": {
"bn.js": {
- "version": "4.11.9",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
- "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
"dev": true
}
}
@@ -1615,12 +1888,6 @@
"integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
"dev": true
},
- "electron-to-chromium": {
- "version": "1.3.635",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.635.tgz",
- "integrity": "sha512-RRriZOLs9CpW6KTLmgBqyUdnY0QNqqWs0HOtuQGGEMizOTNNn1P7sGRBxARnUeLejOsgwjDyRqT3E/CSst02ZQ==",
- "dev": true
- },
"elliptic": {
"version": "6.5.4",
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
@@ -1689,9 +1956,9 @@
}
},
"env-editor": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.1.tgz",
- "integrity": "sha512-suh+Vm00GnPQgXpmONTkcUT9LgBSL6sJrRnJxbykT0j+ONjzmIS+1U3ne467ArdZN/42/npp+GnhtwkLQ+vUjw==",
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz",
+ "integrity": "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==",
"dev": true
},
"error-ex": {
@@ -1704,23 +1971,27 @@
}
},
"es-abstract": {
- "version": "1.18.0-next.1",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz",
- "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==",
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz",
+ "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==",
"dev": true,
"requires": {
+ "call-bind": "^1.0.2",
"es-to-primitive": "^1.2.1",
"function-bind": "^1.1.1",
+ "get-intrinsic": "^1.1.1",
"has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.2.2",
- "is-negative-zero": "^2.0.0",
- "is-regex": "^1.1.1",
- "object-inspect": "^1.8.0",
+ "has-symbols": "^1.0.2",
+ "is-callable": "^1.2.3",
+ "is-negative-zero": "^2.0.1",
+ "is-regex": "^1.1.2",
+ "is-string": "^1.0.5",
+ "object-inspect": "^1.9.0",
"object-keys": "^1.1.1",
- "object.assign": "^4.1.1",
- "string.prototype.trimend": "^1.0.1",
- "string.prototype.trimstart": "^1.0.1"
+ "object.assign": "^4.1.2",
+ "string.prototype.trimend": "^1.0.4",
+ "string.prototype.trimstart": "^1.0.4",
+ "unbox-primitive": "^1.0.0"
}
},
"es-to-primitive": {
@@ -1753,13 +2024,13 @@
"dev": true
},
"eslint": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.17.0.tgz",
- "integrity": "sha512-zJk08MiBgwuGoxes5sSQhOtibZ75pz0J35XTRlZOk9xMffhpA9BTbQZxoXZzOl5zMbleShbGwtw+1kGferfFwQ==",
+ "version": "7.24.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.24.0.tgz",
+ "integrity": "sha512-k9gaHeHiFmGCDQ2rEfvULlSLruz6tgfA8DEn+rY9/oYPFFTlz55mM/Q/Rij1b2Y42jwZiK3lXvNTw6w6TXzcKQ==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.0.0",
- "@eslint/eslintrc": "^0.2.2",
+ "@babel/code-frame": "7.12.11",
+ "@eslint/eslintrc": "^0.4.0",
"ajv": "^6.10.0",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
@@ -1770,12 +2041,12 @@
"eslint-utils": "^2.1.0",
"eslint-visitor-keys": "^2.0.0",
"espree": "^7.3.1",
- "esquery": "^1.2.0",
+ "esquery": "^1.4.0",
"esutils": "^2.0.2",
- "file-entry-cache": "^6.0.0",
+ "file-entry-cache": "^6.0.1",
"functional-red-black-tree": "^1.0.1",
"glob-parent": "^5.0.0",
- "globals": "^12.1.0",
+ "globals": "^13.6.0",
"ignore": "^4.0.6",
"import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
@@ -1783,7 +2054,7 @@
"js-yaml": "^3.13.1",
"json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.4.1",
- "lodash": "^4.17.19",
+ "lodash": "^4.17.21",
"minimatch": "^3.0.4",
"natural-compare": "^1.4.0",
"optionator": "^0.9.1",
@@ -1797,6 +2068,15 @@
"v8-compile-cache": "^2.0.3"
},
"dependencies": {
+ "@babel/code-frame": {
+ "version": "7.12.11",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz",
+ "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -1839,35 +2119,25 @@
}
}
},
- "eslint-ast-utils": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/eslint-ast-utils/-/eslint-ast-utils-1.1.0.tgz",
- "integrity": "sha512-otzzTim2/1+lVrlH19EfQQJEhVJSu0zOb9ygb3iapN6UlyaDtyRq4b5U1FuW0v1lRa9Fp/GJyHkSwm6NqABgCA==",
- "dev": true,
- "requires": {
- "lodash.get": "^4.4.2",
- "lodash.zip": "^4.2.0"
- }
- },
"eslint-config-prettier": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.1.0.tgz",
- "integrity": "sha512-9sm5/PxaFG7qNJvJzTROMM1Bk1ozXVTKI0buKOyb0Bsr1hrwi0H/TzxF/COtf1uxikIK8SwhX7K6zg78jAzbeA==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz",
+ "integrity": "sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg==",
"dev": true
},
"eslint-config-xo": {
- "version": "0.34.0",
- "resolved": "https://registry.npmjs.org/eslint-config-xo/-/eslint-config-xo-0.34.0.tgz",
- "integrity": "sha512-lbpHNfVmSrEQsHsyQ44wY8VA5mEI4Jri5Dk1BJUH0jiCw6nTkj16VQeHiuWzIBJ/uf+mF2FzSqLVf3tD1cHhYA==",
+ "version": "0.35.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-xo/-/eslint-config-xo-0.35.0.tgz",
+ "integrity": "sha512-+WyZTLWUJlvExFrBU/Ldw8AB/S0d3x+26JQdBWbcqig2ZaWh0zinYcHok+ET4IoPaEcRRf3FE9kjItNVjBwnAg==",
"dev": true,
"requires": {
"confusing-browser-globals": "1.0.10"
}
},
"eslint-config-xo-typescript": {
- "version": "0.37.0",
- "resolved": "https://registry.npmjs.org/eslint-config-xo-typescript/-/eslint-config-xo-typescript-0.37.0.tgz",
- "integrity": "sha512-eFRj4xMhiMExCb+H/wyXC1OwTKJiOQ+Qd9myoZLWdyR0X8PAjtzPRfxSOyh2fkBnZvFCDY0DuqcLkPSDSe4Ybg==",
+ "version": "0.38.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-xo-typescript/-/eslint-config-xo-typescript-0.38.0.tgz",
+ "integrity": "sha512-f5z0gN1r9X84PK1qav6T6YT1zW6KcAqtsMPtmqoKBLt4ACRr6tbAddtFwqkluAEH9JvHjWxuB8vu4KJFcjuzdQ==",
"dev": true
},
"eslint-formatter-pretty": {
@@ -2218,36 +2488,36 @@
}
},
"eslint-plugin-prettier": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.0.tgz",
- "integrity": "sha512-tMTwO8iUWlSRZIwS9k7/E4vrTsfvsrcM5p1eftyuqWH25nKsz/o6/54I7jwQ/3zobISyC7wMy9ZsFwgTxOcOpQ==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.1.tgz",
+ "integrity": "sha512-Rq3jkcFY8RYeQLgk2cCwuc0P7SEFwDravPhsJZOQ5N4YI4DSg50NyqJ/9gdZHzQlHf8MvafSesbNJCcP/FF6pQ==",
"dev": true,
"requires": {
"prettier-linter-helpers": "^1.0.0"
}
},
"eslint-plugin-promise": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz",
- "integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz",
+ "integrity": "sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ==",
"dev": true
},
"eslint-plugin-unicorn": {
- "version": "25.0.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-25.0.1.tgz",
- "integrity": "sha512-MEyEWoyou/qhJH6rEER9YHACtCsQT+eewc6Fdxbi2eiTvsGrBR8JZMA6qaeof3oMQeRxOpaERoBKzU7R5c4A/w==",
+ "version": "28.0.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-28.0.2.tgz",
+ "integrity": "sha512-k4AoFP7n8/oq6lBXkdc9Flid6vw2B8j7aXFCxgzJCyKvmaKrCUFb1TFPhG9eSJQFZowqmymMPRtl8oo9NKLUbw==",
"dev": true,
"requires": {
"ci-info": "^2.0.0",
"clean-regexp": "^1.0.0",
- "eslint-ast-utils": "^1.1.0",
- "eslint-template-visitor": "^2.2.1",
+ "eslint-template-visitor": "^2.2.2",
"eslint-utils": "^2.1.0",
- "import-modules": "^2.0.0",
+ "eslint-visitor-keys": "^2.0.0",
+ "import-modules": "^2.1.0",
"lodash": "^4.17.20",
"pluralize": "^8.0.0",
"read-pkg-up": "^7.0.1",
- "regexp-tree": "^0.1.21",
+ "regexp-tree": "^0.1.22",
"reserved-words": "^0.1.2",
"safe-regex": "^2.1.1",
"semver": "^7.3.4"
@@ -2285,9 +2555,9 @@
}
},
"semver": {
- "version": "7.3.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz",
- "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==",
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
@@ -2296,9 +2566,9 @@
}
},
"eslint-rule-docs": {
- "version": "1.1.218",
- "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.218.tgz",
- "integrity": "sha512-oGT85qE8VvBEUuW1/9NjCye9+1kY5zjjiJgkzPHPDhwS3k3GwEN9NfflKW+eDM+lYB18EVuXUDiubNcdgabEQA==",
+ "version": "1.1.224",
+ "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.224.tgz",
+ "integrity": "sha512-Rq1Hn4dODLewC8HbCGlQL69VW8ifqldCHHdfhKmU+h+C+Q2wR7WeYcVgz/Wh7E5KUWlmUUKWkBfyYq0Ltrtk3g==",
"dev": true
},
"eslint-scope": {
@@ -2312,12 +2582,13 @@
}
},
"eslint-template-visitor": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-2.2.2.tgz",
- "integrity": "sha512-SkcLjzKw3JjKTWHacRDeLBa2gxb600zbCKTkXj/V97QnZ9yxkknoPL8vc8PFueqbFXP7mYNTQzjCjcMpTRdRaA==",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-2.3.2.tgz",
+ "integrity": "sha512-3ydhqFpuV7x1M9EK52BPNj6V0Kwu0KKkcIAfpUhwHbR8ocRln/oUHgfxQupY8O1h4Qv/POHDumb/BwwNfxbtnA==",
"dev": true,
"requires": {
- "babel-eslint": "^10.1.0",
+ "@babel/core": "^7.12.16",
+ "@babel/eslint-parser": "^7.12.16",
"eslint-visitor-keys": "^2.0.0",
"esquery": "^1.3.1",
"multimap": "^1.1.0"
@@ -2372,15 +2643,15 @@
"dev": true
},
"espurify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/espurify/-/espurify-2.0.1.tgz",
- "integrity": "sha512-7w/dUrReI/QbJFHRwfomTlkQOXaB1NuCrBRn5Y26HXn5gvh18/19AgLbayVrNxXQfkckvgrJloWyvZDuJ7dhEA==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/espurify/-/espurify-2.1.1.tgz",
+ "integrity": "sha512-zttWvnkhcDyGOhSH4vO2qCBILpdCMv/MX8lp4cqgRkQoDRGK2oZxi2GfWhlP2dIXmk7BaKeOTuzbHhyC68o8XQ==",
"dev": true
},
"esquery": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz",
- "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
+ "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
"dev": true,
"requires": {
"estraverse": "^5.1.0"
@@ -2424,9 +2695,9 @@
"dev": true
},
"events": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz",
- "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
"dev": true
},
"evp_bytestokey": {
@@ -2646,9 +2917,9 @@
}
},
"file-entry-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.0.tgz",
- "integrity": "sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
"dev": true,
"requires": {
"flat-cache": "^3.0.4"
@@ -2701,9 +2972,9 @@
}
},
"flatted": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz",
- "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz",
+ "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==",
"dev": true
},
"for-in": {
@@ -2764,6 +3035,12 @@
"integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
"dev": true
},
+ "gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "dev": true
+ },
"get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
@@ -2771,9 +3048,9 @@
"dev": true
},
"get-intrinsic": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz",
- "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
+ "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
"dev": true,
"requires": {
"function-bind": "^1.1.1",
@@ -2835,21 +3112,29 @@
"dev": true
},
"global-dirs": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz",
- "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz",
+ "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==",
"dev": true,
"requires": {
- "ini": "1.3.7"
+ "ini": "2.0.0"
}
},
"globals": {
- "version": "12.4.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
- "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
+ "version": "13.8.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.8.0.tgz",
+ "integrity": "sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q==",
"dev": true,
"requires": {
- "type-fest": "^0.8.1"
+ "type-fest": "^0.20.2"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true
+ }
}
},
"globby": {
@@ -2917,6 +3202,12 @@
"function-bind": "^1.1.1"
}
},
+ "has-bigints": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
+ "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==",
+ "dev": true
+ },
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
@@ -2924,9 +3215,9 @@
"dev": true
},
"has-symbols": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
+ "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
"dev": true
},
"has-value": {
@@ -3033,9 +3324,9 @@
}
},
"hosted-git-info": {
- "version": "2.8.8",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
- "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==",
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
"dev": true
},
"http-cache-semantics": {
@@ -3145,9 +3436,9 @@
"dev": true
},
"ini": {
- "version": "1.3.7",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz",
- "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
+ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
"dev": true
},
"interpret": {
@@ -3198,6 +3489,12 @@
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
"dev": true
},
+ "is-bigint": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz",
+ "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==",
+ "dev": true
+ },
"is-binary-path": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
@@ -3207,6 +3504,15 @@
"binary-extensions": "^2.0.0"
}
},
+ "is-boolean-object": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz",
+ "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0"
+ }
+ },
"is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
@@ -3214,9 +3520,9 @@
"dev": true
},
"is-callable": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz",
- "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz",
+ "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==",
"dev": true
},
"is-ci": {
@@ -3283,9 +3589,9 @@
}
},
"is-docker": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz",
- "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
"dev": true
},
"is-error": {
@@ -3332,13 +3638,13 @@
}
},
"is-installed-globally": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz",
- "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==",
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
+ "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
"dev": true,
"requires": {
- "global-dirs": "^2.0.1",
- "is-path-inside": "^3.0.1"
+ "global-dirs": "^3.0.0",
+ "is-path-inside": "^3.0.2"
}
},
"is-js-type": {
@@ -3374,6 +3680,12 @@
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true
},
+ "is-number-object": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz",
+ "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==",
+ "dev": true
+ },
"is-obj": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
@@ -3391,9 +3703,9 @@
}
},
"is-path-inside": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz",
- "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
"dev": true
},
"is-plain-obj": {
@@ -3422,11 +3734,12 @@
}
},
"is-regex": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
- "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz",
+ "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==",
"dev": true,
"requires": {
+ "call-bind": "^1.0.2",
"has-symbols": "^1.0.1"
}
},
@@ -3475,6 +3788,12 @@
"unc-path-regex": "^0.1.2"
}
},
+ "is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+ "dev": true
+ },
"is-windows": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
@@ -3567,9 +3886,9 @@
"dev": true
},
"json5": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
- "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
+ "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
"dev": true,
"requires": {
"minimist": "^1.2.5"
@@ -3675,9 +3994,15 @@
}
},
"lodash": {
- "version": "4.17.20",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
- "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "dev": true
+ },
+ "lodash.clonedeep": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
+ "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
"dev": true
},
"lodash.difference": {
@@ -3686,6 +4011,12 @@
"integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=",
"dev": true
},
+ "lodash.flatten": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
+ "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=",
+ "dev": true
+ },
"lodash.forown": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/lodash.forown/-/lodash.forown-4.4.0.tgz",
@@ -3716,19 +4047,20 @@
"integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
"dev": true
},
- "lodash.zip": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz",
- "integrity": "sha1-7GZi5IlkCO1KtsVCo5kLcswIACA=",
+ "lodash.truncate": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
+ "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=",
"dev": true
},
"log-symbols": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz",
- "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
"dev": true,
"requires": {
- "chalk": "^4.0.0"
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
},
"dependencies": {
"ansi-styles": {
@@ -3806,9 +4138,9 @@
"dev": true
},
"map-obj": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz",
- "integrity": "sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz",
+ "integrity": "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==",
"dev": true
},
"map-visit": {
@@ -3838,13 +4170,14 @@
"dev": true
},
"meow": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.0.tgz",
- "integrity": "sha512-fNWkgM1UVMey2kf24yLiccxLihc5W+6zVus3/N0b+VfnJgxV99E9u04X6NAiKdg6ED7DAQBX5sy36NM0QJZkWA==",
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz",
+ "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==",
"dev": true,
"requires": {
"@types/minimist": "^1.2.0",
"camelcase-keys": "^6.2.2",
+ "decamelize": "^1.2.0",
"decamelize-keys": "^1.1.0",
"hard-rejection": "^2.1.0",
"minimist-options": "4.1.0",
@@ -3857,23 +4190,23 @@
},
"dependencies": {
"hosted-git-info": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz",
- "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==",
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz",
+ "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
}
},
"normalize-package-data": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.0.tgz",
- "integrity": "sha512-6lUjEI0d3v6kFrtgA/lOx4zHCWULXsFNIjHolnZCKCTLA6m/G625cdn3O7eNmT0iD3jfo6HZ9cdImGZwf21prw==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.2.tgz",
+ "integrity": "sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==",
"dev": true,
"requires": {
- "hosted-git-info": "^3.0.6",
- "resolve": "^1.17.0",
- "semver": "^7.3.2",
+ "hosted-git-info": "^4.0.1",
+ "resolve": "^1.20.0",
+ "semver": "^7.3.4",
"validate-npm-package-license": "^3.0.1"
}
},
@@ -3890,9 +4223,9 @@
},
"dependencies": {
"hosted-git-info": {
- "version": "2.8.8",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
- "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==",
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
"dev": true
},
"normalize-package-data": {
@@ -3940,6 +4273,15 @@
}
}
},
+ "semver": {
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
"type-fest": {
"version": "0.18.1",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
@@ -3987,9 +4329,9 @@
},
"dependencies": {
"bn.js": {
- "version": "4.11.9",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
- "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
"dev": true
}
}
@@ -4092,9 +4434,9 @@
"dev": true
},
"nanoid": {
- "version": "3.1.22",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.22.tgz",
- "integrity": "sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==",
+ "version": "3.1.23",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz",
+ "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==",
"dev": true
},
"nanomatch": {
@@ -4161,12 +4503,6 @@
}
}
},
- "node-releases": {
- "version": "1.1.69",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.69.tgz",
- "integrity": "sha512-DGIjo79VDEyAnRlfSqYTsy+yoHd2IOjJiKUozD2MV2D85Vso6Bug56mb9tT/fY5Urt0iqk01H7x+llAruDR2zA==",
- "dev": true
- },
"normalize-package-data": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
@@ -4200,9 +4536,9 @@
"dev": true
},
"normalize-url": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
- "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==",
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
+ "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
"dev": true
},
"npm-run-path": {
@@ -4300,14 +4636,14 @@
}
},
"object.values": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz",
- "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz",
+ "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==",
"dev": true,
"requires": {
- "call-bind": "^1.0.0",
+ "call-bind": "^1.0.2",
"define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.1",
+ "es-abstract": "^1.18.0-next.2",
"has": "^1.0.3"
}
},
@@ -4330,9 +4666,9 @@
}
},
"open": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/open/-/open-7.3.0.tgz",
- "integrity": "sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==",
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
+ "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
"dev": true,
"requires": {
"is-docker": "^2.0.0",
@@ -4524,9 +4860,9 @@
"dev": true
},
"pbkdf2": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz",
- "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
+ "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
"dev": true,
"requires": {
"create-hash": "^1.1.2",
@@ -4579,13 +4915,13 @@
"dev": true
},
"postcss": {
- "version": "8.2.9",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.9.tgz",
- "integrity": "sha512-b+TmuIL4jGtCHtoLi+G/PisuIl9avxs8IZMSmlABRwNz5RLUUACrC+ws81dcomz1nRezm5YPdXiMEzBEKgYn+Q==",
+ "version": "8.2.15",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.15.tgz",
+ "integrity": "sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q==",
"dev": true,
"requires": {
"colorette": "^1.2.2",
- "nanoid": "^3.1.22",
+ "nanoid": "^3.1.23",
"source-map": "^0.6.1"
},
"dependencies": {
@@ -4696,9 +5032,9 @@
"dev": true
},
"prettier": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz",
- "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz",
+ "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==",
"dev": true
},
"prettier-linter-helpers": {
@@ -4755,9 +5091,9 @@
},
"dependencies": {
"bn.js": {
- "version": "4.11.9",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
- "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
"dev": true
}
}
@@ -4836,6 +5172,12 @@
"strip-json-comments": "~2.0.1"
},
"dependencies": {
+ "ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+ "dev": true
+ },
"strip-json-comments": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
@@ -5009,9 +5351,9 @@
}
},
"regexp-tree": {
- "version": "0.1.21",
- "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.21.tgz",
- "integrity": "sha512-kUUXjX4AnqnR8KRTCrayAo9PzYMRKmVoGgaz2tBuz0MF3g1ZbGebmtW0yFHfFK9CmBjQKeYIgoL22pFLBJY7sw==",
+ "version": "0.1.23",
+ "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.23.tgz",
+ "integrity": "sha512-+7HWfb4Bvu8Rs2eQTUIpX9I/PlQkYOuTNbRpKLJlQpSgwSkzFYh+pUj0gtvglnOZLKB6YgnIgRuJ2/IlpL48qw==",
"dev": true
},
"regexpp": {
@@ -5039,9 +5381,9 @@
}
},
"repeat-element": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
- "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz",
+ "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==",
"dev": true
},
"repeat-string": {
@@ -5069,12 +5411,12 @@
"dev": true
},
"resolve": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz",
- "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==",
+ "version": "1.20.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
+ "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
"dev": true,
"requires": {
- "is-core-module": "^2.1.0",
+ "is-core-module": "^2.2.0",
"path-parse": "^1.0.6"
}
},
@@ -5448,9 +5790,9 @@
}
},
"source-map-url": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
- "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz",
+ "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==",
"dev": true
},
"spdx-correct": {
@@ -5556,22 +5898,22 @@
}
},
"string.prototype.trimend": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz",
- "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
+ "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
"dev": true,
"requires": {
- "call-bind": "^1.0.0",
+ "call-bind": "^1.0.2",
"define-properties": "^1.1.3"
}
},
"string.prototype.trimstart": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz",
- "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
+ "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
"dev": true,
"requires": {
- "call-bind": "^1.0.0",
+ "call-bind": "^1.0.2",
"define-properties": "^1.1.3"
}
},
@@ -5638,9 +5980,9 @@
}
},
"supports-hyperlinks": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz",
- "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz",
+ "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==",
"dev": true,
"requires": {
"has-flag": "^4.0.0",
@@ -5656,21 +5998,26 @@
}
},
"table": {
- "version": "6.0.6",
- "resolved": "https://registry.npmjs.org/table/-/table-6.0.6.tgz",
- "integrity": "sha512-OInCtPmDNieVBkVFi6C8RwU2S2H0h8mF3e3TQK4nreaUNCpooQUkI+A/KuEkm5FawfhWIfNqG+qfelVVR+V00g==",
- "dev": true,
- "requires": {
- "ajv": "^7.0.2",
- "lodash": "^4.17.20",
+ "version": "6.0.9",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.0.9.tgz",
+ "integrity": "sha512-F3cLs9a3hL1Z7N4+EkSscsel3z55XT950AvB05bwayrNg5T1/gykXtigioTAjbltvbMSJvvhFCbnf6mX+ntnJQ==",
+ "dev": true,
+ "requires": {
+ "ajv": "^8.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "lodash.clonedeep": "^4.5.0",
+ "lodash.flatten": "^4.4.0",
+ "lodash.truncate": "^4.4.2",
"slice-ansi": "^4.0.0",
"string-width": "^4.2.0"
},
"dependencies": {
"ajv": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz",
- "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==",
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.1.0.tgz",
+ "integrity": "sha512-B/Sk2Ix7A36fs/ZkuGLIR86EdjbgR6fsAcbx9lOP/QBSXujDNbVmIS/U4Itz5k8fPFDeVZl/zQ/gJW4Jrq6XjQ==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
@@ -5693,12 +6040,6 @@
"integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=",
"dev": true
},
- "term-size": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz",
- "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==",
- "dev": true
- },
"text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
@@ -5795,9 +6136,9 @@
}
},
"trim-newlines": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz",
- "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
+ "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
"dev": true
},
"tsconfig-paths": {
@@ -5830,9 +6171,9 @@
"dev": true
},
"tsutils": {
- "version": "3.17.1",
- "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz",
- "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==",
+ "version": "3.21.0",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
+ "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
"dev": true,
"requires": {
"tslib": "^1.8.1"
@@ -5869,11 +6210,23 @@
}
},
"typescript": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz",
- "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz",
+ "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==",
"dev": true
},
+ "unbox-primitive": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
+ "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has-bigints": "^1.0.1",
+ "has-symbols": "^1.0.2",
+ "which-boxed-primitive": "^1.0.2"
+ }
+ },
"unc-path-regex": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
@@ -5948,23 +6301,23 @@
}
},
"update-notifier": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.0.1.tgz",
- "integrity": "sha512-BuVpRdlwxeIOvmc32AGYvO1KVdPlsmqSh8KDDBxS6kDE5VR7R8OMP1d8MdhaVBvxl4H3551k9akXr0Y1iIB2Wg==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz",
+ "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==",
"dev": true,
"requires": {
- "boxen": "^4.2.0",
+ "boxen": "^5.0.0",
"chalk": "^4.1.0",
"configstore": "^5.0.1",
"has-yarn": "^2.1.0",
"import-lazy": "^2.1.0",
"is-ci": "^2.0.0",
- "is-installed-globally": "^0.3.2",
+ "is-installed-globally": "^0.4.0",
"is-npm": "^5.0.0",
"is-yarn-global": "^0.3.0",
"latest-version": "^5.1.0",
"pupa": "^2.1.1",
- "semver": "^7.3.2",
+ "semver": "^7.3.4",
"semver-diff": "^3.1.1",
"xdg-basedir": "^4.0.0"
},
@@ -6002,13 +6355,22 @@
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
+ },
+ "semver": {
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
}
}
},
"uri-js": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz",
- "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==",
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"dev": true,
"requires": {
"punycode": "^2.1.0"
@@ -6077,9 +6439,9 @@
"dev": true
},
"v8-compile-cache": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz",
- "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
+ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
"dev": true
},
"validate-npm-package-license": {
@@ -6107,6 +6469,19 @@
"isexe": "^2.0.0"
}
},
+ "which-boxed-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+ "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "dev": true,
+ "requires": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ }
+ },
"widest-line": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
@@ -6184,20 +6559,20 @@
"dev": true
},
"xo": {
- "version": "0.37.1",
- "resolved": "https://registry.npmjs.org/xo/-/xo-0.37.1.tgz",
- "integrity": "sha512-UsD1QkITsojNJmiYaDg20GOuTEuHAYtys6Cz4JVWbral6hbCb+WU8ktt9xCTDrsr2rNPjoxp1oonoz9HkPYGnQ==",
+ "version": "0.38.2",
+ "resolved": "https://registry.npmjs.org/xo/-/xo-0.38.2.tgz",
+ "integrity": "sha512-bGDGXgyPQyiVYIiqrkbFm4S1IIwlKDrNxgWnz9xWrdT4jdbfDU9fHkW6Mwab7jGms7ymoul+aRZVa3uMhcQlTw==",
"dev": true,
"requires": {
- "@typescript-eslint/eslint-plugin": "^4.11.1",
- "@typescript-eslint/parser": "^4.11.1",
+ "@typescript-eslint/eslint-plugin": "^4.15.1",
+ "@typescript-eslint/parser": "^4.15.1",
"arrify": "^2.0.1",
"cosmiconfig": "^7.0.0",
"debug": "^4.3.1",
- "eslint": "^7.17.0",
- "eslint-config-prettier": "^7.1.0",
- "eslint-config-xo": "^0.34.0",
- "eslint-config-xo-typescript": "^0.37.0",
+ "eslint": "^7.20.0",
+ "eslint-config-prettier": "^7.2.0",
+ "eslint-config-xo": "^0.35.0",
+ "eslint-config-xo-typescript": "^0.38.0",
"eslint-formatter-pretty": "^4.0.0",
"eslint-import-resolver-webpack": "^0.13.0",
"eslint-plugin-ava": "^11.0.0",
@@ -6205,21 +6580,21 @@
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-no-use-extend-native": "^0.5.0",
"eslint-plugin-node": "^11.1.0",
- "eslint-plugin-prettier": "^3.3.0",
- "eslint-plugin-promise": "^4.2.1",
- "eslint-plugin-unicorn": "^25.0.1",
+ "eslint-plugin-prettier": "^3.3.1",
+ "eslint-plugin-promise": "^4.3.1",
+ "eslint-plugin-unicorn": "^28.0.2",
"find-cache-dir": "^3.3.1",
"find-up": "^5.0.0",
- "fs-extra": "^9.0.1",
+ "fs-extra": "^9.1.0",
"get-stdin": "^8.0.0",
"globby": "^9.2.0",
"has-flag": "^4.0.0",
"imurmurhash": "^0.1.4",
"is-path-inside": "^3.0.2",
"json-stable-stringify-without-jsonify": "^1.0.1",
- "json5": "^2.1.3",
+ "json5": "^2.2.0",
"lodash": "^4.17.20",
- "meow": "^8.1.0",
+ "meow": "^9.0.0",
"micromatch": "^4.0.2",
"open-editor": "^3.0.0",
"p-reduce": "^2.1.0",
@@ -6230,8 +6605,8 @@
"semver": "^7.3.4",
"slash": "^3.0.0",
"to-absolute-glob": "^2.0.2",
- "typescript": "^4.1.3",
- "update-notifier": "^5.0.1"
+ "typescript": "^4.1.5",
+ "update-notifier": "^5.1.0"
},
"dependencies": {
"@nodelib/fs.stat": {
@@ -6357,6 +6732,18 @@
"path-exists": "^4.0.0"
}
},
+ "fs-extra": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "dev": true,
+ "requires": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ }
+ },
"glob-parent": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
@@ -6491,9 +6878,9 @@
"dev": true
},
"semver": {
- "version": "7.3.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz",
- "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==",
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
@@ -6508,6 +6895,12 @@
"is-number": "^3.0.0",
"repeat-string": "^1.6.1"
}
+ },
+ "universalify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+ "dev": true
}
}
},
diff --git a/package.json b/package.json
index 030409d77..02a2877d5 100644
--- a/package.json
+++ b/package.json
@@ -25,10 +25,10 @@
"devDependencies": {
"autoprefixer": "^10.2.5",
"eslint-plugin-compat": "^3.9.0",
- "postcss": "^8.2.9",
+ "postcss": "^8.2.15",
"postcss-cli": "^8.3.1",
- "prettier": "2.2.1",
- "xo": "^0.37.1"
+ "prettier": "2.3.1",
+ "xo": "^0.38.2"
},
"browserslist": [
"defaults",
@@ -40,7 +40,7 @@
"endOfLine": "auto",
"printWidth": 100,
"singleQuote": false,
- "trailingComma": "none"
+ "trailingComma": "es5"
},
"xo": {
"envs": [
@@ -86,6 +86,7 @@
}
],
"unicorn/filename-case": "off",
+ "unicorn/no-array-for-each": "off",
"unicorn/no-fn-reference-in-iterator": "off",
"unicorn/no-for-loop": "off",
"unicorn/prefer-includes": "off",
diff --git a/scripts/pi-hole/js/auditlog.js b/scripts/pi-hole/js/auditlog.js
index 65b8eecca..0374d6de0 100644
--- a/scripts/pi-hole/js/auditlog.js
+++ b/scripts/pi-hole/js/auditlog.js
@@ -100,14 +100,14 @@ function add(domain, list) {
list: list,
token: token,
action: list === "audit" ? "add_audit" : "add_domain",
- comment: "Added from Audit Log"
+ comment: "Added from Audit Log",
},
success: function () {
updateTopLists();
},
error: function (jqXHR, exception) {
console.log(exception); // eslint-disable-line no-console
- }
+ },
});
}
diff --git a/scripts/pi-hole/js/customcname.js b/scripts/pi-hole/js/customcname.js
index d1a8234ea..10ebfe3b5 100644
--- a/scripts/pi-hole/js/customcname.js
+++ b/scripts/pi-hole/js/customcname.js
@@ -46,7 +46,7 @@ $(function () {
ajax: {
url: "scripts/pi-hole/php/customcname.php",
data: { action: "get", token: token },
- type: "POST"
+ type: "POST",
},
columns: [{}, {}, { orderable: false, searchable: false }],
columnDefs: [
@@ -62,12 +62,12 @@ $(function () {
'
' +
""
);
- }
- }
+ },
+ },
],
lengthMenu: [
[10, 25, 50, 100, -1],
- [10, 25, 50, 100, "All"]
+ [10, 25, 50, 100, "All"],
],
order: [[0, "asc"]],
stateSave: true,
@@ -79,7 +79,7 @@ $(function () {
},
drawCallback: function () {
$(".deleteCustomCNAME").on("click", deleteCustomCNAME);
- }
+ },
});
// Disable autocorrect in the search box
var input = document.querySelector("input[type=search]");
@@ -107,7 +107,7 @@ function addCustomCNAME() {
},
error: function () {
showAlert("error", "Error while adding this custom CNAME record");
- }
+ },
});
}
@@ -130,6 +130,6 @@ function deleteCustomCNAME() {
error: function (jqXHR, exception) {
showAlert("error", "Error while deleting this custom CNAME record");
console.log(exception); // eslint-disable-line no-console
- }
+ },
});
}
diff --git a/scripts/pi-hole/js/customdns.js b/scripts/pi-hole/js/customdns.js
index 0c9f2f74a..655357fff 100644
--- a/scripts/pi-hole/js/customdns.js
+++ b/scripts/pi-hole/js/customdns.js
@@ -46,7 +46,7 @@ $(function () {
ajax: {
url: "scripts/pi-hole/php/customdns.php",
data: { action: "get", token: token },
- type: "POST"
+ type: "POST",
},
columns: [{}, { type: "ip-address" }, { orderable: false, searchable: false }],
columnDefs: [
@@ -62,12 +62,12 @@ $(function () {
'
' +
""
);
- }
- }
+ },
+ },
],
lengthMenu: [
[10, 25, 50, 100, -1],
- [10, 25, 50, 100, "All"]
+ [10, 25, 50, 100, "All"],
],
order: [[0, "asc"]],
stateSave: true,
@@ -79,7 +79,7 @@ $(function () {
},
drawCallback: function () {
$(".deleteCustomDNS").on("click", deleteCustomDNS);
- }
+ },
});
// Disable autocorrect in the search box
var input = document.querySelector("input[type=search]");
@@ -107,7 +107,7 @@ function addCustomDNS() {
},
error: function () {
showAlert("error", "Error while adding this custom DNS entry");
- }
+ },
});
}
@@ -130,6 +130,6 @@ function deleteCustomDNS() {
error: function (jqXHR, exception) {
showAlert("error", "Error while deleting this custom DNS entry");
console.log(exception); // eslint-disable-line no-console
- }
+ },
});
}
diff --git a/scripts/pi-hole/js/db_graph.js b/scripts/pi-hole/js/db_graph.js
index 66ab5f117..ce5fd6e83 100644
--- a/scripts/pi-hole/js/db_graph.js
+++ b/scripts/pi-hole/js/db_graph.js
@@ -28,21 +28,21 @@ $(function () {
Today: [moment().startOf("day"), moment()],
Yesterday: [
moment().subtract(1, "days").startOf("day"),
- moment().subtract(1, "days").endOf("day")
+ moment().subtract(1, "days").endOf("day"),
],
"Last 7 Days": [moment().subtract(6, "days"), moment()],
"Last 30 Days": [moment().subtract(29, "days"), moment()],
"This Month": [moment().startOf("month"), moment()],
"Last Month": [
moment().subtract(1, "month").startOf("month"),
- moment().subtract(1, "month").endOf("month")
+ moment().subtract(1, "month").endOf("month"),
],
"This Year": [moment().startOf("year"), moment()],
- "All Time": [moment(0), moment()]
+ "All Time": [moment(0), moment()],
},
opens: "center",
showDropdowns: true,
- autoUpdateInput: false
+ autoUpdateInput: false,
},
function (startt, endt) {
from = moment(startt).utc().valueOf() / 1000;
@@ -166,7 +166,7 @@ $(function () {
pointRadius: 1,
pointHoverRadius: 5,
data: [],
- pointHitRadius: 5
+ pointHitRadius: 5,
},
{
label: "Permitted DNS Queries",
@@ -177,9 +177,9 @@ $(function () {
pointRadius: 1,
pointHoverRadius: 5,
data: [],
- pointHitRadius: 5
- }
- ]
+ pointHitRadius: 5,
+ },
+ ],
},
options: {
tooltips: {
@@ -267,11 +267,11 @@ $(function () {
}
return data.datasets[tooltipItems.datasetIndex].label + ": " + tooltipItems.yLabel;
- }
- }
+ },
+ },
},
legend: {
- display: false
+ display: false,
},
scales: {
xAxes: [
@@ -287,22 +287,22 @@ $(function () {
week: "MMM DD",
month: "MMM",
quarter: "MMM",
- year: "YYYY MMM"
- }
- }
- }
+ year: "YYYY MMM",
+ },
+ },
+ },
],
yAxes: [
{
stacked: true,
ticks: {
- beginAtZero: true
- }
- }
- ]
+ beginAtZero: true,
+ },
+ },
+ ],
},
- maintainAspectRatio: false
- }
+ maintainAspectRatio: false,
+ },
});
});
diff --git a/scripts/pi-hole/js/db_lists.js b/scripts/pi-hole/js/db_lists.js
index ec5358742..b8df039bf 100644
--- a/scripts/pi-hole/js/db_lists.js
+++ b/scripts/pi-hole/js/db_lists.js
@@ -30,21 +30,21 @@ $(function () {
Today: [moment().startOf("day"), moment()],
Yesterday: [
moment().subtract(1, "days").startOf("day"),
- moment().subtract(1, "days").endOf("day")
+ moment().subtract(1, "days").endOf("day"),
],
"Last 7 Days": [moment().subtract(6, "days"), moment()],
"Last 30 Days": [moment().subtract(29, "days"), moment()],
"This Month": [moment().startOf("month"), moment()],
"Last Month": [
moment().subtract(1, "month").startOf("month"),
- moment().subtract(1, "month").endOf("month")
+ moment().subtract(1, "month").endOf("month"),
],
"This Year": [moment().startOf("year"), moment()],
- "All Time": [moment(0), moment()]
+ "All Time": [moment(0), moment()],
},
opens: "center",
showDropdowns: true,
- autoUpdateInput: false
+ autoUpdateInput: false,
},
function (startt, endt) {
from = moment(startt).utc().valueOf() / 1000;
diff --git a/scripts/pi-hole/js/db_queries.js b/scripts/pi-hole/js/db_queries.js
index 2c87dc155..3e20638ce 100644
--- a/scripts/pi-hole/js/db_queries.js
+++ b/scripts/pi-hole/js/db_queries.js
@@ -48,21 +48,21 @@ $(function () {
Today: [moment().startOf("day"), moment()],
Yesterday: [
moment().subtract(1, "days").startOf("day"),
- moment().subtract(1, "days").endOf("day")
+ moment().subtract(1, "days").endOf("day"),
],
"Last 7 Days": [moment().subtract(6, "days"), moment()],
"Last 30 Days": [moment().subtract(29, "days"), moment()],
"This Month": [moment().startOf("month"), moment()],
"Last Month": [
moment().subtract(1, "month").startOf("month"),
- moment().subtract(1, "month").endOf("month")
+ moment().subtract(1, "month").endOf("month"),
],
"This Year": [moment().startOf("year"), moment()],
- "All Time": [moment(0), moment()]
+ "All Time": [moment(0), moment()],
},
opens: "center",
showDropdowns: true,
- autoUpdateInput: false
+ autoUpdateInput: false,
},
function (startt, endt) {
from = moment(startt).utc().valueOf() / 1000;
@@ -137,6 +137,12 @@ function getQueryTypes() {
queryType.push([12, 13]);
}
+ // 14 is defined above
+
+ if ($("#type_dbbusy").prop("checked")) {
+ queryType.push(15);
+ }
+
return queryType.join(",");
}
@@ -172,7 +178,7 @@ function refreshTableData() {
var APIstring = "api_db.php?getAllQueries&from=" + from + "&until=" + until;
// Check if query type filtering is enabled
var queryType = getQueryTypes();
- if (queryType !== "1,2,3,4,5,6") {
+ if (queryType !== "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15") {
APIstring += "&types=" + queryType;
}
@@ -194,7 +200,9 @@ $(function () {
tableApi = $("#all-queries").DataTable({
rowCallback: function (row, data) {
- var fieldtext, buttontext, color;
+ var fieldtext,
+ buttontext = "",
+ color;
switch (data[4]) {
case 1:
color = "red";
@@ -232,17 +240,14 @@ $(function () {
case 6:
color = "red";
fieldtext = "Blocked
(external, IP)";
- buttontext = "";
break;
case 7:
color = "red";
fieldtext = "Blocked
(external, NULL)";
- buttontext = "";
break;
case 8:
color = "red";
fieldtext = "Blocked
(external, NXRA)";
- buttontext = "";
break;
case 9:
color = "red";
@@ -265,7 +270,6 @@ $(function () {
case 12:
color = "green";
fieldtext = "Retried";
- buttontext = "";
break;
case 13:
color = "green";
@@ -278,10 +282,13 @@ $(function () {
buttontext =
'
Blacklist';
break;
+ case 15:
+ color = "text-orange";
+ fieldtext = "Blocked
(database is busy)";
+ break;
default:
color = "black";
fieldtext = "Unknown";
- buttontext = "";
}
$(row).css("color", color);
@@ -310,7 +317,7 @@ $(function () {
x[0] = x[0] * 1e6 + dataIndex++;
return x;
});
- }
+ },
},
autoWidth: false,
processing: true,
@@ -327,26 +334,26 @@ $(function () {
}
return data;
- }
+ },
},
{ width: "10%" },
{ width: "40%", render: $.fn.dataTable.render.text() },
{ width: "20%", type: "ip-address", render: $.fn.dataTable.render.text() },
{ width: "10%" },
- { width: "5%" }
+ { width: "5%" },
],
lengthMenu: [
[10, 25, 50, 100, -1],
- [10, 25, 50, 100, "All"]
+ [10, 25, 50, 100, "All"],
],
columnDefs: [
{
targets: -1,
data: null,
- defaultContent: ""
- }
+ defaultContent: "",
+ },
],
- initComplete: reloadCallback
+ initComplete: reloadCallback,
});
$("#all-queries tbody").on("click", "button", function () {
var data = tableApi.row($(this).parents("tr")).data();
diff --git a/scripts/pi-hole/js/debug.js b/scripts/pi-hole/js/debug.js
index dba012f4b..1ed17b3bf 100644
--- a/scripts/pi-hole/js/debug.js
+++ b/scripts/pi-hole/js/debug.js
@@ -20,7 +20,7 @@ function eventsource() {
$.ajax({
method: "GET",
url: "scripts/pi-hole/php/debug.php?IE&token=" + token + "&" + checked,
- async: false
+ async: false,
}).done(function (data) {
ta.show();
ta.empty();
diff --git a/scripts/pi-hole/js/footer.js b/scripts/pi-hole/js/footer.js
index 7612b8ec7..ffbf6844b 100644
--- a/scripts/pi-hole/js/footer.js
+++ b/scripts/pi-hole/js/footer.js
@@ -46,6 +46,12 @@ function countDown() {
var target = new Date(parseInt(enaT.html(), 10));
var seconds = Math.round((target.getTime() - Date.now()) / 1000);
+ //Stop and remove timer when user enabled early
+ if ($("#pihole-enable").is(":hidden")) {
+ ena.text("Enable");
+ return;
+ }
+
if (seconds > 0) {
setTimeout(countDown, 1000);
ena.text("Enable (" + secondsTimeSpanToHMS(seconds) + ")");
diff --git a/scripts/pi-hole/js/groups-adlists.js b/scripts/pi-hole/js/groups-adlists.js
index 6a5baf8af..b8af5b4f9 100644
--- a/scripts/pi-hole/js/groups-adlists.js
+++ b/scripts/pi-hole/js/groups-adlists.js
@@ -112,7 +112,7 @@ function initTable() {
ajax: {
url: "scripts/pi-hole/php/groups.php",
data: { action: "get_adlists", token: token },
- type: "POST"
+ type: "POST",
},
order: [[0, "asc"]],
columns: [
@@ -122,7 +122,7 @@ function initTable() {
{ data: "enabled", searchable: false },
{ data: "comment" },
{ data: "groups", searchable: false },
- { data: null, width: "80px", orderable: false }
+ { data: null, width: "80px", orderable: false },
],
drawCallback: function () {
$('button[id^="deleteAdlist_"]').on("click", deleteAdlist);
@@ -198,7 +198,7 @@ function initTable() {
off: "Disabled",
size: "small",
onstyle: "success",
- width: "80px"
+ width: "80px",
});
statusEl.on("change", editAdlist);
@@ -286,7 +286,7 @@ function initTable() {
"<'row'<'col-sm-5'i><'col-sm-7'p>>",
lengthMenu: [
[10, 25, 50, 100, -1],
- [10, 25, 50, 100, "All"]
+ [10, 25, 50, 100, "All"],
],
stateSave: true,
stateSaveCallback: function (settings, data) {
@@ -304,7 +304,7 @@ function initTable() {
data.columns[0].visible = false;
// Apply loaded state to table
return data;
- }
+ },
});
table.on("order.dt", function () {
@@ -368,7 +368,7 @@ function addAdlist() {
action: "add_adlist",
address: address,
comment: comment,
- token: token
+ token: token,
},
success: function (response) {
utils.enableAll();
@@ -386,7 +386,7 @@ function addAdlist() {
utils.enableAll();
utils.showAlert("error", "", "Error while adding new adlist: ", jqXHR.responseText);
console.log(exception); // eslint-disable-line no-console
- }
+ },
});
}
@@ -438,7 +438,7 @@ function editAdlist() {
comment: comment,
status: status,
groups: groups,
- token: token
+ token: token,
},
success: function (response) {
utils.enableAll();
@@ -468,7 +468,7 @@ function editAdlist() {
jqXHR.responseText
);
console.log(exception); // eslint-disable-line no-console
- }
+ },
});
}
@@ -497,6 +497,6 @@ function deleteAdlist() {
utils.enableAll();
utils.showAlert("error", "", "Error while deleting adlist with ID " + id, jqXHR.responseText);
console.log(exception); // eslint-disable-line no-console
- }
+ },
});
}
diff --git a/scripts/pi-hole/js/groups-clients.js b/scripts/pi-hole/js/groups-clients.js
index 31139d3fb..c97d88c1d 100644
--- a/scripts/pi-hole/js/groups-clients.js
+++ b/scripts/pi-hole/js/groups-clients.js
@@ -69,7 +69,7 @@ $(function () {
$("select").select2({
tags: true,
placeholder: "Select client...",
- allowClear: true
+ allowClear: true,
});
reloadClientSuggestions();
@@ -87,7 +87,7 @@ function initTable() {
ajax: {
url: "scripts/pi-hole/php/groups.php",
data: { action: "get_clients", token: token },
- type: "POST"
+ type: "POST",
},
order: [[0, "asc"]],
columns: [
@@ -95,7 +95,7 @@ function initTable() {
{ data: "ip", type: "ip-address" },
{ data: "comment" },
{ data: "groups", searchable: false },
- { data: "name", width: "80px", orderable: false }
+ { data: "name", width: "80px", orderable: false },
],
drawCallback: function () {
$('button[id^="deleteClient_"]').on("click", deleteClient);
@@ -214,7 +214,7 @@ function initTable() {
"<'row'<'col-sm-5'i><'col-sm-7'p>>",
lengthMenu: [
[10, 25, 50, 100, -1],
- [10, 25, 50, 100, "All"]
+ [10, 25, 50, 100, "All"],
],
stateSave: true,
stateSaveCallback: function (settings, data) {
@@ -232,7 +232,7 @@ function initTable() {
data.columns[0].visible = false;
// Apply loaded state to table
return data;
- }
+ },
});
// Disable autocorrect in the search box
@@ -310,7 +310,7 @@ function addClient() {
utils.enableAll();
utils.showAlert("error", "", "Error while adding new client", jqXHR.responseText);
console.log(exception); // eslint-disable-line no-console
- }
+ },
});
}
@@ -354,7 +354,7 @@ function editClient() {
id: id,
groups: groups,
token: token,
- comment: comment
+ comment: comment,
},
success: function (response) {
utils.enableAll();
@@ -378,7 +378,7 @@ function editClient() {
jqXHR.responseText
);
console.log(exception); // eslint-disable-line no-console
- }
+ },
});
}
@@ -413,6 +413,6 @@ function deleteClient() {
utils.enableAll();
utils.showAlert("error", "", "Error while deleting client with ID " + id, jqXHR.responseText);
console.log(exception); // eslint-disable-line no-console
- }
+ },
});
}
diff --git a/scripts/pi-hole/js/groups-domains.js b/scripts/pi-hole/js/groups-domains.js
index 61c057dcc..0eb1bb6f4 100644
--- a/scripts/pi-hole/js/groups-domains.js
+++ b/scripts/pi-hole/js/groups-domains.js
@@ -64,7 +64,7 @@ function initTable() {
ajax: {
url: "scripts/pi-hole/php/groups.php",
data: { action: "get_domains", showtype: showtype, token: token },
- type: "POST"
+ type: "POST",
},
order: [[0, "asc"]],
columns: [
@@ -74,7 +74,7 @@ function initTable() {
{ data: "enabled", searchable: false },
{ data: "comment" },
{ data: "groups", searchable: false, visible: showtype === "all" },
- { data: null, width: "80px", orderable: false }
+ { data: null, width: "80px", orderable: false },
],
drawCallback: function () {
$('button[id^="deleteDomain_"]').on("click", deleteDomain);
@@ -143,7 +143,7 @@ function initTable() {
off: "Disabled",
size: "small",
onstyle: "success",
- width: "80px"
+ width: "80px",
});
statusEl.on("change", editDomain);
@@ -243,7 +243,7 @@ function initTable() {
"<'row'<'col-sm-5'i><'col-sm-7'p>>",
lengthMenu: [
[10, 25, 50, 100, -1],
- [10, 25, 50, 100, "All"]
+ [10, 25, 50, 100, "All"],
],
stateSave: true,
stateSaveCallback: function (settings, data) {
@@ -275,7 +275,7 @@ function initTable() {
table.page(page).draw(false);
}
}
- }
+ },
});
// Disable autocorrect in the search box
var input = document.querySelector("input[type=search]");
@@ -360,7 +360,7 @@ function addDomain() {
domain: domain,
type: type,
comment: comment,
- token: token
+ token: token,
},
success: function (response) {
utils.enableAll();
@@ -378,7 +378,7 @@ function addDomain() {
utils.enableAll();
utils.showAlert("error", "", "Error while adding new " + domainRegex, jqXHR.responseText);
console.log(exception); // eslint-disable-line no-console
- }
+ },
});
}
@@ -450,7 +450,7 @@ function editDomain() {
comment: comment,
status: status,
groups: groups,
- token: token
+ token: token,
},
success: function (response) {
utils.enableAll();
@@ -479,7 +479,7 @@ function editDomain() {
jqXHR.responseText
);
console.log(exception); // eslint-disable-line no-console
- }
+ },
});
}
@@ -531,6 +531,6 @@ function deleteDomain() {
jqXHR.responseText
);
console.log(exception); // eslint-disable-line no-console
- }
+ },
});
}
diff --git a/scripts/pi-hole/js/groups.js b/scripts/pi-hole/js/groups.js
index 5dbfa458d..cdd621a17 100644
--- a/scripts/pi-hole/js/groups.js
+++ b/scripts/pi-hole/js/groups.js
@@ -17,7 +17,7 @@ $(function () {
ajax: {
url: "scripts/pi-hole/php/groups.php",
data: { action: "get_groups", token: token },
- type: "POST"
+ type: "POST",
},
order: [[0, "asc"]],
columns: [
@@ -25,7 +25,7 @@ $(function () {
{ data: "name" },
{ data: "enabled", searchable: false },
{ data: "description" },
- { data: null, width: "60px", orderable: false }
+ { data: null, width: "60px", orderable: false },
],
drawCallback: function () {
$('button[id^="deleteGroup_"]').on("click", deleteGroup);
@@ -56,7 +56,7 @@ $(function () {
off: "Disabled",
size: "small",
onstyle: "success",
- width: "80px"
+ width: "80px",
});
statusEl.on("change", editGroup);
@@ -83,7 +83,7 @@ $(function () {
"<'row'<'col-sm-5'i><'col-sm-7'p>>",
lengthMenu: [
[10, 25, 50, 100, -1],
- [10, 25, 50, 100, "All"]
+ [10, 25, 50, 100, "All"],
],
stateSave: true,
stateSaveCallback: function (settings, data) {
@@ -101,7 +101,7 @@ $(function () {
data.columns[0].visible = false;
// Apply loaded state to table
return data;
- }
+ },
});
// Disable autocorrect in the search box
@@ -161,7 +161,7 @@ function addGroup() {
utils.enableAll();
utils.showAlert("error", "", "Error while adding new group", jqXHR.responseText);
console.log(exception); // eslint-disable-line no-console
- }
+ },
});
}
@@ -211,7 +211,7 @@ function editGroup() {
name: name,
desc: desc,
status: status,
- token: token
+ token: token,
},
success: function (response) {
utils.enableAll();
@@ -235,7 +235,7 @@ function editGroup() {
jqXHR.responseText
);
console.log(exception); // eslint-disable-line no-console
- }
+ },
});
}
@@ -264,6 +264,6 @@ function deleteGroup() {
utils.enableAll();
utils.showAlert("error", "", "Error while deleting group with ID " + id, jqXHR.responseText);
console.log(exception); // eslint-disable-line no-console
- }
+ },
});
}
diff --git a/scripts/pi-hole/js/index.js b/scripts/pi-hole/js/index.js
index 148f82757..b2dda1710 100644
--- a/scripts/pi-hole/js/index.js
+++ b/scripts/pi-hole/js/index.js
@@ -27,7 +27,7 @@ var THEME_COLORS = [
"#8e24aa",
"#d81b60",
"#222222",
- "#d2d6de"
+ "#d2d6de",
];
var customTooltips = function (tooltip) {
@@ -244,7 +244,7 @@ function updateQueriesOverTime() {
pointHitRadius: 5,
pointHoverRadius: 5,
label: labels[i],
- cubicInterpolationMode: "monotone"
+ cubicInterpolationMode: "monotone",
});
}
@@ -399,7 +399,7 @@ function updateClientsOverTime() {
pointHitRadius: 5,
pointHoverRadius: 5,
label: labels[i],
- cubicInterpolationMode: "monotone"
+ cubicInterpolationMode: "monotone",
});
}
@@ -753,7 +753,7 @@ function updateSummaryData(runOnce) {
"dns_queries_today",
"ads_percentage_today|percentage_blocked_today",
"unique_clients",
- "domains_being_blocked"
+ "domains_being_blocked",
].forEach(function (arrayItem, idx) {
var apiElName = arrayItem.split("|");
var apiName = apiElName[0];
@@ -828,7 +828,7 @@ $(function () {
type: utils.getGraphType(),
data: {
labels: [],
- datasets: [{ data: [] }]
+ datasets: [{ data: [] }],
},
options: {
tooltips: {
@@ -868,11 +868,11 @@ $(function () {
}
return data.datasets[tooltipItems.datasetIndex].label + ": " + tooltipItems.yLabel;
- }
- }
+ },
+ },
},
legend: {
- display: false
+ display: false,
},
scales: {
xAxes: [
@@ -882,33 +882,33 @@ $(function () {
time: {
unit: "hour",
displayFormats: {
- hour: "HH:mm"
+ hour: "HH:mm",
},
- tooltipFormat: "HH:mm"
+ tooltipFormat: "HH:mm",
},
gridLines: {
- color: gridColor
+ color: gridColor,
},
ticks: {
- fontColor: ticksColor
- }
- }
+ fontColor: ticksColor,
+ },
+ },
],
yAxes: [
{
stacked: true,
ticks: {
beginAtZero: true,
- fontColor: ticksColor
+ fontColor: ticksColor,
},
gridLines: {
- color: gridColor
- }
- }
- ]
+ color: gridColor,
+ },
+ },
+ ],
},
- maintainAspectRatio: false
- }
+ maintainAspectRatio: false,
+ },
});
// Pull in data via AJAX
@@ -923,7 +923,7 @@ $(function () {
type: utils.getGraphType(),
data: {
labels: [],
- datasets: [{ data: [] }]
+ datasets: [{ data: [] }],
},
options: {
tooltips: {
@@ -946,11 +946,11 @@ $(function () {
},
label: function (tooltipItems, data) {
return data.datasets[tooltipItems.datasetIndex].label + ": " + tooltipItems.yLabel;
- }
- }
+ },
+ },
},
legend: {
- display: false
+ display: false,
},
scales: {
xAxes: [
@@ -960,36 +960,36 @@ $(function () {
time: {
unit: "hour",
displayFormats: {
- hour: "HH:mm"
+ hour: "HH:mm",
},
- tooltipFormat: "HH:mm"
+ tooltipFormat: "HH:mm",
},
gridLines: {
- color: gridColor
+ color: gridColor,
},
ticks: {
- fontColor: ticksColor
- }
- }
+ fontColor: ticksColor,
+ },
+ },
],
yAxes: [
{
ticks: {
beginAtZero: true,
- fontColor: ticksColor
+ fontColor: ticksColor,
},
stacked: true,
gridLines: {
- color: gridColor
- }
- }
- ]
+ color: gridColor,
+ },
+ },
+ ],
},
maintainAspectRatio: false,
hover: {
- animationDuration: 0
- }
- }
+ animationDuration: 0,
+ },
+ },
});
// Pull in data via AJAX
@@ -1048,16 +1048,16 @@ $(function () {
type: "doughnut",
data: {
labels: [],
- datasets: [{ data: [] }]
+ datasets: [{ data: [] }],
},
options: {
elements: {
arc: {
- borderColor: $(".box").css("background-color")
- }
+ borderColor: $(".box").css("background-color"),
+ },
},
legend: {
- display: false
+ display: false,
},
tooltips: {
enabled: false,
@@ -1068,14 +1068,14 @@ $(function () {
},
label: function (tooltipItems, data) {
return doughnutTooltip(tooltipItems, data);
- }
- }
+ },
+ },
},
animation: {
- duration: 750
+ duration: 750,
},
- cutoutPercentage: 0
- }
+ cutoutPercentage: 0,
+ },
});
// Pull in data via AJAX
@@ -1088,16 +1088,16 @@ $(function () {
type: "doughnut",
data: {
labels: [],
- datasets: [{ data: [] }]
+ datasets: [{ data: [] }],
},
options: {
elements: {
arc: {
- borderColor: $(".box").css("background-color")
- }
+ borderColor: $(".box").css("background-color"),
+ },
},
legend: {
- display: false
+ display: false,
},
tooltips: {
enabled: false,
@@ -1108,14 +1108,14 @@ $(function () {
},
label: function (tooltipItems, data) {
return doughnutTooltip(tooltipItems, data);
- }
- }
+ },
+ },
},
animation: {
- duration: 750
+ duration: 750,
},
- cutoutPercentage: 0
- }
+ cutoutPercentage: 0,
+ },
});
// Pull in data via AJAX
diff --git a/scripts/pi-hole/js/ip-address-sorting.js b/scripts/pi-hole/js/ip-address-sorting.js
index 03c15bdf4..ecc3aa5f9 100644
--- a/scripts/pi-hole/js/ip-address-sorting.js
+++ b/scripts/pi-hole/js/ip-address-sorting.js
@@ -115,5 +115,5 @@ $.extend($.fn.dataTableExt.oSort, {
"ip-address-desc": function (a, b) {
return a < b ? 1 : a > b ? -1 : 0;
- }
+ },
});
diff --git a/scripts/pi-hole/js/messages.js b/scripts/pi-hole/js/messages.js
index 37bf040b3..2f1aca3db 100644
--- a/scripts/pi-hole/js/messages.js
+++ b/scripts/pi-hole/js/messages.js
@@ -58,6 +58,7 @@ function renderMessage(data, type, row) {
);
case "HOSTNAME":
+ // eslint-disable-next-line unicorn/no-new-array
var hint = new Array(row.blob2 + row.message.length + 3).join(" ");
return (
"Hostname contains invalid character
" +
@@ -76,6 +77,17 @@ function renderMessage(data, type, row) {
case "DNSMASQ_CONFIG":
return "FTL failed to start due to " + row.message;
+ case "RATE_LIMIT":
+ return (
+ "Client " +
+ row.message +
+ " has been rate-limited (current config allows up to " +
+ parseInt(row.blob1, 10) +
+ " queries in " +
+ parseInt(row.blob2, 10) +
+ " seconds)"
+ );
+
default:
return "Unknown message type" + JSON.stringify(row) + " ";
}
@@ -87,7 +99,7 @@ $(function () {
url: "api_db.php?messages",
data: { token: token },
type: "POST",
- dataSrc: "messages"
+ dataSrc: "messages",
},
order: [[0, "asc"]],
columns: [
@@ -99,7 +111,7 @@ $(function () {
{ data: "blob2", visible: false },
{ data: "blob3", visible: false },
{ data: "blob4", visible: false },
- { data: "blob5", visible: false }
+ { data: "blob5", visible: false },
],
dom:
"<'row'<'col-sm-4'l><'col-sm-8'f>>" +
@@ -107,10 +119,10 @@ $(function () {
"<'row'<'col-sm-5'i><'col-sm-7'p>>",
lengthMenu: [
[10, 25, 50, 100, -1],
- [10, 25, 50, 100, "All"]
+ [10, 25, 50, 100, "All"],
],
language: {
- emptyTable: "No issues found."
+ emptyTable: "No issues found.",
},
stateSave: true,
stateSaveCallback: function (settings, data) {
@@ -133,6 +145,6 @@ $(function () {
// Apply loaded state to table
return data;
- }
+ },
});
});
diff --git a/scripts/pi-hole/js/network.js b/scripts/pi-hole/js/network.js
index fbe915f05..23e279260 100644
--- a/scripts/pi-hole/js/network.js
+++ b/scripts/pi-hole/js/network.js
@@ -47,7 +47,7 @@ function mixColors(ratio, rgb1, rgb2) {
return [
(1 - ratio) * rgb1[0] + ratio * rgb2[0],
(1 - ratio) * rgb1[1] + ratio * rgb2[1],
- (1 - ratio) * rgb1[2] + ratio * rgb2[2]
+ (1 - ratio) * rgb1[2] + ratio * rgb2[2],
];
}
@@ -194,7 +194,7 @@ $(function () {
}
return data;
- }
+ },
},
{
data: "lastQuery",
@@ -205,14 +205,14 @@ $(function () {
}
return data;
- }
+ },
},
{ data: "numQueries", width: "9%", render: $.fn.dataTable.render.text() },
- { data: "", width: "6%", orderable: false }
+ { data: "", width: "6%", orderable: false },
],
lengthMenu: [
[10, 25, 50, 100, -1],
- [10, 25, 50, 100, "All"]
+ [10, 25, 50, 100, "All"],
],
stateSave: true,
stateSaveCallback: function (settings, data) {
@@ -225,9 +225,9 @@ $(function () {
{
targets: -1,
data: null,
- defaultContent: ""
- }
- ]
+ defaultContent: "",
+ },
+ ],
});
// Disable autocorrect in the search box
var input = document.querySelector("input[type=search]");
diff --git a/scripts/pi-hole/js/queries.js b/scripts/pi-hole/js/queries.js
index d138d99c5..d52f95b1f 100644
--- a/scripts/pi-hole/js/queries.js
+++ b/scripts/pi-hole/js/queries.js
@@ -21,7 +21,10 @@ var replyTypes = [
"SERVFAIL",
"REFUSED",
"NOTIMP",
- "upstream error"
+ "upstream error",
+ "DNSSEC",
+ "NONE",
+ "BLOB",
];
var colTypes = ["time", "query type", "domain", "client", "status", "reply type"];
@@ -74,62 +77,69 @@ $(function () {
tableApi = $("#all-queries").DataTable({
rowCallback: function (row, data) {
+ var replyid = parseInt(data[5], 10);
// DNSSEC status
var dnssecStatus;
+ var ede = data[11] ? data[11] : "";
switch (data[6]) {
case "1":
- dnssecStatus = 'SECURE ';
+ dnssecStatus = 'SECURE';
break;
case "2":
- dnssecStatus = 'INSECURE ';
+ dnssecStatus = 'INSECURE';
break;
case "3":
- dnssecStatus = 'BOGUS ';
+ dnssecStatus = 'BOGUS';
break;
case "4":
- dnssecStatus = 'ABANDONED ';
+ dnssecStatus = 'ABANDONED';
break;
case "5":
- dnssecStatus = 'UNKNOWN ';
+ dnssecStatus = 'UNKNOWN';
break;
default:
// No DNSSEC
dnssecStatus = "";
}
+ if (dnssecStatus.length > 0) {
+ if (ede.length > 0) dnssecStatus += " (" + ede + ")";
+ else if (replyid === 7) dnssecStatus += " (refused upstream)";
+ dnssecStatus += " ";
+ }
+
// Query status
var fieldtext,
- buttontext,
- colorClass = false,
+ buttontext = "",
isCNAME = false,
regexLink = false;
switch (data[4]) {
case "1":
- colorClass = "text-red";
- fieldtext = "Blocked (gravity)";
+ fieldtext = "Blocked (gravity) ";
buttontext =
' Whitelist ';
break;
case "2":
- colorClass = "text-green";
fieldtext =
- "OK (forwarded to " +
+ replyid === 0
+ ? "OK , sent to "
+ : "OK , answered by ";
+ fieldtext +=
+ " " +
(data.length > 10 && data[10] !== "N/A" ? data[10] : "") +
- ")" +
dnssecStatus;
buttontext =
' Blacklist ';
break;
case "3":
- colorClass = "text-green";
- fieldtext = "OK (cached)" + dnssecStatus;
+ fieldtext =
+ "OK (cache)" + dnssecStatus;
buttontext =
' Blacklist ';
break;
case "4":
- colorClass = "text-red";
- fieldtext = "Blocked (regex blacklist)";
+ fieldtext = "Blocked (regex blacklist)";
if (data.length > 9 && data[9] > 0) {
regexLink = true;
@@ -139,36 +149,33 @@ $(function () {
' Whitelist ';
break;
case "5":
- colorClass = "text-red";
- fieldtext = "Blocked (exact blacklist)";
+ fieldtext = "Blocked (exact blacklist)";
buttontext =
' Whitelist ';
break;
case "6":
- colorClass = "text-red";
- fieldtext = "Blocked (external, IP)";
+ fieldtext = "Blocked (external, IP)";
buttontext = "";
break;
case "7":
- colorClass = "text-red";
- fieldtext = "Blocked (external, NULL)";
+ fieldtext =
+ "Blocked (external, NULL) ";
buttontext = "";
break;
case "8":
- colorClass = "text-red";
- fieldtext = "Blocked (external, NXRA)";
+ fieldtext =
+ "Blocked (external, NXRA) ";
buttontext = "";
break;
case "9":
- colorClass = "text-red";
- fieldtext = "Blocked (gravity, CNAME)";
+ fieldtext = "Blocked (gravity, CNAME) ";
buttontext =
' Whitelist ';
isCNAME = true;
break;
case "10":
- colorClass = "text-red";
- fieldtext = "Blocked (regex blacklist, CNAME)";
+ fieldtext =
+ "Blocked (regex blacklist, CNAME) ";
if (data.length > 9 && data[9] > 0) {
regexLink = true;
@@ -179,39 +186,40 @@ $(function () {
isCNAME = true;
break;
case "11":
- colorClass = "text-red";
- fieldtext = "Blocked (exact blacklist, CNAME)";
+ fieldtext =
+ "Blocked (exact blacklist, CNAME) ";
buttontext =
' Whitelist ';
isCNAME = true;
break;
case "12":
- colorClass = "text-green";
- fieldtext = "Retried";
- buttontext = "";
+ fieldtext = "Retried ";
break;
case "13":
- colorClass = "text-green";
- fieldtext = "Retried (ignored)";
- buttontext = "";
+ fieldtext = "Retried (ignored)";
break;
case "14":
- colorClass = "text-green";
- fieldtext = "OK (already forwarded)" + dnssecStatus;
+ fieldtext =
+ "OK (already forwarded)" +
+ dnssecStatus;
buttontext =
' Blacklist ';
break;
+ case "15":
+ fieldtext =
+ "Blocked (database is busy) ";
+ break;
default:
- colorClass = false;
fieldtext = "Unknown (" + parseInt(data[4], 10) + ")";
- buttontext = "";
}
- fieldtext += ' ';
+ // Add EDE here if available and not included in dnssecStatus
+ if (ede.length > 0 && dnssecStatus.length === 0) fieldtext += " (" + ede + ")";
- if (colorClass !== false) {
- $(row).addClass(colorClass);
- }
+ // Cannot block internal queries of this type
+ if ((data[1] === "DNSKEY" || data[1] === "DS") && data[3] === "pi.hole") buttontext = "";
+
+ fieldtext += ' ';
$("td:eq(4)", row).html(fieldtext);
$("td:eq(6)", row).html(buttontext);
@@ -251,7 +259,6 @@ $(function () {
}
// Check for existence of sixth column and display only if not Pi-holed
- var replyid = data[5];
var replytext =
replyid >= 0 && replyid < replyTypes.length ? replyTypes[replyid] : "? (" + replyid + ")";
@@ -259,7 +266,8 @@ $(function () {
$("td:eq(5)", row).html(replytext);
- if (data.length > 7) {
+ // Show response time only when reply is not N/A
+ if (data.length > 7 && replyid !== 0) {
var content = $("td:eq(5)", row).html();
$("td:eq(5)", row).html(content + " (" + (0.1 * data[7]).toFixed(1) + "ms)");
}
@@ -282,7 +290,7 @@ $(function () {
x[6] = dnssec;
return x;
});
- }
+ },
},
autoWidth: false,
processing: true,
@@ -298,18 +306,18 @@ $(function () {
}
return data;
- }
+ },
},
{ width: "4%" },
{ width: "36%", render: $.fn.dataTable.render.text() },
{ width: "8%", type: "ip-address", render: $.fn.dataTable.render.text() },
{ width: "14%", orderData: 4 },
{ width: "8%", orderData: 5 },
- { width: "10%", orderData: 4 }
+ { width: "10%", orderData: 4 },
],
lengthMenu: [
[10, 25, 50, 100, -1],
- [10, 25, 50, 100, "All"]
+ [10, 25, 50, 100, "All"],
],
stateSave: true,
stateSaveCallback: function (settings, data) {
@@ -322,8 +330,8 @@ $(function () {
{
targets: -1,
data: null,
- defaultContent: ""
- }
+ defaultContent: "",
+ },
],
initComplete: function () {
var api = this.api();
@@ -416,7 +424,7 @@ $(function () {
input.attr("spellcheck", false);
input.attr("placeholder", "Type / Domain / Client");
}
- }
+ },
});
resetColumnsFilters();
diff --git a/scripts/pi-hole/js/queryads.js b/scripts/pi-hole/js/queryads.js
index 6330e61aa..e97578e73 100644
--- a/scripts/pi-hole/js/queryads.js
+++ b/scripts/pi-hole/js/queryads.js
@@ -40,7 +40,7 @@ function eventsource() {
$.ajax({
method: "GET",
url: "scripts/pi-hole/php/queryads.php?domain=" + domain.toLowerCase() + "&" + exact + "&IE",
- async: false
+ async: false,
}).done(function (data) {
ta.show();
ta.empty();
diff --git a/scripts/pi-hole/js/settings.js b/scripts/pi-hole/js/settings.js
index 6853e0c75..02f5b5a28 100644
--- a/scripts/pi-hole/js/settings.js
+++ b/scripts/pi-hole/js/settings.js
@@ -33,7 +33,7 @@ $(".confirm-poweroff").confirm({
post: true,
confirmButtonClass: "btn-danger",
cancelButtonClass: "btn-success",
- dialogClass: "modal-dialog"
+ dialogClass: "modal-dialog",
});
$(".confirm-reboot").confirm({
text: "Are you sure you want to send a reboot command to your Pi-hole?",
@@ -49,7 +49,7 @@ $(".confirm-reboot").confirm({
post: true,
confirmButtonClass: "btn-danger",
cancelButtonClass: "btn-success",
- dialogClass: "modal-dialog"
+ dialogClass: "modal-dialog",
});
$(".confirm-restartdns").confirm({
@@ -66,7 +66,7 @@ $(".confirm-restartdns").confirm({
post: true,
confirmButtonClass: "btn-danger",
cancelButtonClass: "btn-success",
- dialogClass: "modal-dialog"
+ dialogClass: "modal-dialog",
});
$(".confirm-flushlogs").confirm({
@@ -83,7 +83,7 @@ $(".confirm-flushlogs").confirm({
post: true,
confirmButtonClass: "btn-danger",
cancelButtonClass: "btn-success",
- dialogClass: "modal-dialog"
+ dialogClass: "modal-dialog",
});
$(".confirm-flusharp").confirm({
@@ -100,7 +100,7 @@ $(".confirm-flusharp").confirm({
post: true,
confirmButtonClass: "btn-warning",
cancelButtonClass: "btn-success",
- dialogClass: "modal-dialog"
+ dialogClass: "modal-dialog",
});
$(".confirm-disablelogging-noflush").confirm({
@@ -117,12 +117,11 @@ $(".confirm-disablelogging-noflush").confirm({
post: true,
confirmButtonClass: "btn-warning",
cancelButtonClass: "btn-success",
- dialogClass: "modal-dialog"
+ dialogClass: "modal-dialog",
});
$(".api-token").confirm({
- text:
- "Make sure that nobody else can scan this code around you. They will have full access to the API without having to know the password. Note that the generation of the QR code will take some time.",
+ text: "Make sure that nobody else can scan this code around you. They will have full access to the API without having to know the password. Note that the generation of the QR code will take some time.",
title: "Confirmation required",
confirm: function () {
window.open("scripts/pi-hole/php/api_token.php");
@@ -135,7 +134,7 @@ $(".api-token").confirm({
post: true,
confirmButtonClass: "btn-danger",
cancelButtonClass: "btn-success",
- dialogClass: "modal-dialog"
+ dialogClass: "modal-dialog",
});
$("#DHCPchk").click(function () {
@@ -184,7 +183,7 @@ $(function () {
},
stateLoadCallback: function () {
return utils.stateLoadCallback("activeDhcpLeaseTable");
- }
+ },
});
}
@@ -203,7 +202,7 @@ $(function () {
},
stateLoadCallback: function () {
return utils.stateLoadCallback("staticDhcpLeaseTable");
- }
+ },
});
}
@@ -300,7 +299,7 @@ $('button[id="removedynamic"]').on("click", function () {
dataType: "json",
data: {
delete_lease: ipaddr,
- token: token
+ token: token,
},
success: function (response) {
utils.enableAll();
@@ -326,6 +325,6 @@ $('button[id="removedynamic"]').on("click", function () {
utils.enableAll();
utils.showAlert("error", "Error while deleting DHCP lease for " + ipname, jqXHR.responseText);
console.log(exception); // eslint-disable-line no-console
- }
+ },
});
});
diff --git a/scripts/pi-hole/js/utils.js b/scripts/pi-hole/js/utils.js
index 468fb4417..cad119759 100644
--- a/scripts/pi-hole/js/utils.js
+++ b/scripts/pi-hole/js/utils.js
@@ -14,7 +14,7 @@ function escapeHtml(text) {
"<": "<",
">": ">",
'"': """,
- "'": "'"
+ "'": "'",
};
if (text === null) return null;
@@ -30,7 +30,7 @@ function unescapeHtml(text) {
"<": "<",
">": ">",
""": '"',
- "'": "'"
+ "'": "'",
};
if (text === null) return null;
@@ -72,7 +72,7 @@ function showAlert(type, icon, title, message) {
type: "info",
icon: "far fa-clock",
title: title,
- message: message
+ message: message,
};
info = $.notify(opts);
break;
@@ -81,7 +81,7 @@ function showAlert(type, icon, title, message) {
type: "success",
icon: icon,
title: title,
- message: message
+ message: message,
};
if (info) {
info.update(opts);
@@ -95,7 +95,7 @@ function showAlert(type, icon, title, message) {
type: "warning",
icon: "fas fa-exclamation-triangle",
title: title,
- message: message
+ message: message,
};
if (info) {
info.update(opts);
@@ -109,7 +109,7 @@ function showAlert(type, icon, title, message) {
type: "danger",
icon: "fas fa-times",
title: " Error, something went wrong! ",
- message: message
+ message: message,
};
if (info) {
info.update(opts);
@@ -284,7 +284,7 @@ function addFromQueryLog(domain, list) {
list: list,
token: token,
action: "replace_domain",
- comment: "Added from Query Log"
+ comment: "Added from Query Log",
},
success: function (response) {
alProcessing.hide();
@@ -314,7 +314,7 @@ function addFromQueryLog(domain, list) {
setTimeout(function () {
alertModal.modal("hide");
}, 8000);
- }
+ },
});
});
@@ -346,6 +346,6 @@ window.utils = (function () {
getGraphType: getGraphType,
validateMAC: validateMAC,
validateHostname: validateHostname,
- addFromQueryLog: addFromQueryLog
+ addFromQueryLog: addFromQueryLog,
};
})();
diff --git a/scripts/pi-hole/php/auth.php b/scripts/pi-hole/php/auth.php
index 21a25c460..16a7390e8 100644
--- a/scripts/pi-hole/php/auth.php
+++ b/scripts/pi-hole/php/auth.php
@@ -47,7 +47,12 @@ function check_cors() {
$virtual_host = getenv('VIRTUAL_HOST');
if (! empty($virtual_host))
array_push($AUTHORIZED_HOSTNAMES, $virtual_host);
-
+
+ # Allow user set CORS
+ $cors_hosts = getenv('CORS_HOSTS');
+ if (! empty($cors_hosts))
+ array_push($AUTHORIZED_HOSTNAMES, ...explode(",", $cors_hosts));
+
// Since the Host header is easily manipulated, we can only check if it's wrong and can't use it
// to validate that the client is authorized, only unauthorized.
$server_host = $_SERVER['HTTP_HOST'];
@@ -121,7 +126,7 @@ function check_csrf($token) {
function check_domain(&$domains) {
foreach($domains as &$domain)
{
- $validDomain = is_valid_domain_name($domain);
+ $validDomain = validDomain($domain);
if(!$validDomain){
log_and_die(htmlspecialchars($domain. ' is not a valid domain'));
}
diff --git a/scripts/pi-hole/php/footer.php b/scripts/pi-hole/php/footer.php
index 43988ff9e..2837d0bb2 100644
--- a/scripts/pi-hole/php/footer.php
+++ b/scripts/pi-hole/php/footer.php
@@ -93,7 +93,7 @@
- To install updates, run pihole -up .
+ To install updates, run pihole -up
.
diff --git a/scripts/pi-hole/php/func.php b/scripts/pi-hole/php/func.php
index a3e82eb12..4d79872b1 100644
--- a/scripts/pi-hole/php/func.php
+++ b/scripts/pi-hole/php/func.php
@@ -6,11 +6,86 @@
* This file is copyright under the latest version of the EUPL.
* Please see LICENSE file for your rights under this license. */
-function is_valid_domain_name($domain_name)
+// Credit: http://stackoverflow.com/a/4694816/2087442
+// Modified because of https://github.com/pi-hole/AdminLTE/pull/533
+ini_set("pcre.recursion_limit", 1500);
+function validDomain($domain_name, &$message = NULL)
{
- return (preg_match("/^((-|_)*[a-z\d]((-|_)*[a-z\d])*(-|_)*)(\.(-|_)*([a-z\d]((-|_)*[a-z\d])*))*$/i", $domain_name) && // Valid chars check
- preg_match("/^.{1,253}$/", $domain_name) && // Overall length check
- preg_match("/^[^\.]{1,63}(\.[^\.]{1,63})*$/", $domain_name)); // Length of each label
+ if(!preg_match("/^((-|_)*[a-z\d]((-|_)*[a-z\d])*(-|_)*)(\.(-|_)*([a-z\d]((-|_)*[a-z\d])*))*$/i", $domain_name)) {
+ if($message !== NULL)
+ $message = "it contains invalid characters";
+ return false;
+ }
+ if(!preg_match("/^.{1,253}$/", $domain_name)) {
+ if($message !== NULL)
+ $message = "its length is invalid";
+ return false;
+ }
+ if(!preg_match("/^[^\.]{1,63}(\.[^\.]{1,63})*$/", $domain_name)) {
+ if($message !== NULL)
+ $message = "at least one label is of invalid length";
+ return false;
+ }
+
+ // everything is okay
+ return true;
+}
+
+function validDomainWildcard($domain_name)
+{
+ // There has to be either no or at most one "*" at the beginning of a line
+ $validChars = preg_match("/^((\*\.)?[_a-z\d](-*[_a-z\d])*)(\.([_a-z\d](-*[a-z\d])*))*(\.([_a-z\d])*)*$/i", $domain_name);
+ $lengthCheck = preg_match("/^.{1,253}$/", $domain_name);
+ $labelLengthCheck = preg_match("/^[^\.]{1,63}(\.[^\.]{1,63})*$/", $domain_name);
+ return ( $validChars && $lengthCheck && $labelLengthCheck ); //length of each label
+}
+
+function validIP($address){
+ if (preg_match('/[.:0]/', $address) && !preg_match('/[1-9a-f]/', $address)) {
+ // Test if address contains either `:` or `0` but not 1-9 or a-f
+ return false;
+ }
+ return !filter_var($address, FILTER_VALIDATE_IP) === false;
+}
+
+function validCIDRIP($address){
+ // This validation strategy has been taken from ../js/groups-common.js
+ $isIPv6 = strpos($address, ":") !== false;
+ if($isIPv6) {
+ // One IPv6 element is 16bit: 0000 - FFFF
+ $v6elem = "[0-9A-Fa-f]{1,4}";
+ // CIDR for IPv6 is any multiple of 4 from 4 up to 128 bit
+ $v6cidr = "(4";
+ for ($i=8; $i <= 128; $i+=4) {
+ $v6cidr .= "|$i";
+ }
+ $v6cidr .= ")";
+ $validator = "/^(((?:$v6elem))((?::$v6elem))*::((?:$v6elem))((?::$v6elem))*|((?:$v6elem))((?::$v6elem)){7})\/$v6cidr$/";
+ return preg_match($validator, $address);
+ } else {
+ // One IPv4 element is 8bit: 0 - 256
+ $v4elem = "(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]?|0)";
+ // Note that rev-server accepts only /8, /16, /24, and /32
+ $allowedv4cidr = "(8|16|24|32)";
+ $validator = "/^$v4elem\.$v4elem\.$v4elem\.$v4elem\/$allowedv4cidr$/";
+ return preg_match($validator, $address);
+ }
+}
+
+function validMAC($mac_addr)
+{
+ // Accepted input format: 00:01:02:1A:5F:FF (characters may be lower case)
+ return !filter_var($mac_addr, FILTER_VALIDATE_MAC) === false;
+}
+
+function validEmail($email)
+{
+ return filter_var($email, FILTER_VALIDATE_EMAIL)
+ // Make sure that the email does not contain special characters which
+ // may be used to execute shell commands, even though they may be valid
+ // in an email address. If the escaped email does not equal the original
+ // email, it is not safe to store in setupVars.
+ && escapeshellcmd($email) === $email;
}
function get_ip_type($ip)
@@ -145,7 +220,7 @@ function addCustomDNSEntry($ip="", $domain="", $json=true)
if (empty($domain))
return returnError("Domain must be set", $json);
- if (!is_valid_domain_name($domain))
+ if (!validDomain($domain))
return returnError("Domain must be valid", $json);
// Only check for duplicates if adding new records from the web UI (not through Teleporter)
@@ -302,13 +377,13 @@ function addCustomCNAMEEntry($domain="", $target="", $json=true)
if (empty($target))
return returnError("Target must be set", $json);
- if (!is_valid_domain_name($target))
+ if (!validDomain($target))
return returnError("Target must be valid", $json);
// Check if each submitted domain is valid
$domains = array_map('trim', explode(",", $domain));
foreach ($domains as $d) {
- if (!is_valid_domain_name($d))
+ if (!validDomain($d))
return returnError("Domain '$d' is not valid", $json);
}
@@ -397,6 +472,7 @@ function returnSuccess($message = "", $json = true)
function returnError($message = "", $json = true)
{
+ $message = htmlentities($message) ;
if ($json) {
return [ "success" => false, "message" => $message ];
} else {
diff --git a/scripts/pi-hole/php/groups.php b/scripts/pi-hole/php/groups.php
index 04ae82918..49a8d51c0 100644
--- a/scripts/pi-hole/php/groups.php
+++ b/scripts/pi-hole/php/groups.php
@@ -203,9 +203,45 @@ function JSON_error($message = null)
throw new Exception('While executing network table statement: ' . $db->lastErrorMsg());
}
- // There will always be a result. Unknown host names are NULL
+ // Check if got a hostname from the database. This may not be the case if the client is
+ // specified by MAC address, a hostname or via a more general selector like an interface.
$name_result = $result->fetchArray(SQLITE3_ASSOC);
- $res['name'] = $name_result['name'];
+ if(!is_bool($name_result))
+ {
+ $res['name'] = $name_result['name'];
+ error_log("IP: ".$name_result['name']);
+ }
+ else
+ {
+ // Check if we can get a host name from the database when looking up the MAC
+ // address of this client instead.
+ $stmt = $FTLdb->prepare('SELECT name FROM network n JOIN network_addresses na ON na.network_id = n.id WHERE hwaddr=:hwaddr COLLATE NOCASE AND name IS NOT NULL;');
+ if (!$stmt) {
+ throw new Exception('Error while preparing network table statement: ' . $db->lastErrorMsg());
+ }
+
+ if (!$stmt->bindValue(':hwaddr', $res['ip'], SQLITE3_TEXT)) {
+ throw new Exception('While binding to network table statement: ' . $db->lastErrorMsg());
+ }
+
+ $result = $stmt->execute();
+ if (!$result) {
+ throw new Exception('While executing network table statement: ' . $db->lastErrorMsg());
+ }
+
+ // Check if we found a result. There may be multiple entries for
+ // this client in the network_addresses table. We use the first
+ // hostname we find for the sake of simplicity.
+ $name_result = $result->fetchArray(SQLITE3_ASSOC);
+ if(!is_bool($name_result))
+ {
+ $res['name'] = $name_result['name'];
+ }
+ else
+ {
+ $res['name'] = null;
+ }
+ }
$groups = array();
while ($gres = $group_query->fetchArray(SQLITE3_ASSOC)) {
@@ -613,15 +649,16 @@ function JSON_error($message = null)
{
// If adding to the exact lists, we convert the domain lower case and check whether it is valid
$domain = strtolower($domain);
- if(filter_var($domain, FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME) === false)
+ $msg = "";
+ if(!validDomain($domain, $msg))
{
// This is the case when idn_to_ascii() modified the string
if($input !== $domain && strlen($domain) > 0)
- $errormsg = 'Domain ' . htmlentities($input) . ' (converted to "' . htmlentities(utf8_encode($domain)) . '") is not a valid domain.';
+ $errormsg = 'Domain ' . htmlentities($input) . ' (converted to "' . htmlentities(utf8_encode($domain)) . '") is not a valid domain because ' . $msg . '.';
elseif($input !== $domain)
- $errormsg = 'Domain ' . htmlentities($input) . ' is not a valid domain.';
+ $errormsg = 'Domain ' . htmlentities($input) . ' is not a valid domain because ' . $msg . '.';
else
- $errormsg = 'Domain ' . htmlentities(utf8_encode($domain)) . ' is not a valid domain.';
+ $errormsg = 'Domain ' . htmlentities(utf8_encode($domain)) . ' is not a valid domain because ' . $msg . '.';
throw new Exception($errormsg . '
Added ' . $added . " out of ". $total . " domains");
}
}
diff --git a/scripts/pi-hole/php/header.php b/scripts/pi-hole/php/header.php
index 9e04a38b3..2aa067bbc 100644
--- a/scripts/pi-hole/php/header.php
+++ b/scripts/pi-hole/php/header.php
@@ -181,7 +181,13 @@ function pidofFTL()