diff --git a/dist/download/release.php b/dist/download/release.php deleted file mode 100644 index 4cffaa7c81..0000000000 --- a/dist/download/release.php +++ /dev/null @@ -1,63 +0,0 @@ - 0) return true; -} - -function getLibVersionDate($f) { - $handle = fopen($f, 'r'); - $line = fgets($handle); - fclose($handle); - preg_match('/v([^ ]*) /', $line, $matches); - $v = $matches[1]; - preg_match('/v[^ ]* ([^ ]* [^ ]* [^ ]*) /', $line, $matches); - $d = $matches[1]; - return array($v, $d); -} - -function updateFiles() { - global $lib_version; - $r = 'https://raw.githubusercontent.com/lmccart/p5.js-release/master/lib'; - download($r.'/p5.min.js', '../assets/js/p5.min.js'); - download($r.'/addons/p5.dom.min.js', '../assets/js/p5.dom.min.js'); - download($r.'/addons/p5.sound.min.js', '../assets/js/p5.sound.min.js'); -} - -function updateAll() { - updateFiles(); - - $v = getLibVersionDate('../assets/js/p5.min.js'); - $lib_version = $v[0]; - $lib_date = $v[1]; - - $contents = array('version'=>$lib_version, 'date'=>$lib_date); - file_put_contents('version.json', json_encode($contents)); - - unlink('package.json'); - echo 'updated library version to v'.$lib_version.' ('.$lib_date.')
'; -} - -updateAll(); -?> \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index d1e98119fb..868283ff34 100644 --- a/package-lock.json +++ b/package-lock.json @@ -89,18 +89,18 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", - "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", + "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", - "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -126,32 +126,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/@eslint/eslintrc/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/@eslint/eslintrc/node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -180,12 +154,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@eslint/eslintrc/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/@eslint/eslintrc/node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -195,22 +163,10 @@ "node": ">=4" } }, - "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@eslint/js": { - "version": "8.44.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz", - "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz", + "integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -226,9 +182,9 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", - "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", + "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -239,29 +195,6 @@ "node": ">=10.10.0" } }, - "node_modules/@humanwhocodes/config-array/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", @@ -290,29 +223,6 @@ "debug": "^4.1.1" } }, - "node_modules/@kwsites/file-exists/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@kwsites/file-exists/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/@kwsites/promise-deferred": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", @@ -345,7 +255,7 @@ "node": ">= 8" } }, - "node_modules/@nodelib/fs.scandir/node_modules/@nodelib/fs.stat": { + "node_modules/@nodelib/fs.stat": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", @@ -354,15 +264,6 @@ "node": ">= 8" } }, - "node_modules/@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", @@ -392,9 +293,9 @@ "dev": true }, "node_modules/@types/q": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", - "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==", + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.6.tgz", + "integrity": "sha512-IKjZ8RjTSwD4/YG+2gtj7BPFRB/lNbWKTiSj3M7U/TD2B7HfYCxvp2Zz6xA2WIY7pAuL1QOUPw8gQRbUrrq4fQ==", "dev": true }, "node_modules/abab": { @@ -423,9 +324,9 @@ } }, "node_modules/acorn": { - "version": "5.7.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", - "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -456,6 +357,15 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, "node_modules/acorn-walk": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", @@ -508,25 +418,27 @@ "dev": true }, "node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "optional": true, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/aproba": { @@ -868,14 +780,14 @@ } }, "node_modules/array.prototype.reduce": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz", - "integrity": "sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz", + "integrity": "sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-array-method-boxes-properly": "^1.0.0", "is-string": "^1.0.7" }, @@ -886,6 +798,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/arrayify-compact": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/arrayify-compact/-/arrayify-compact-0.1.1.tgz", @@ -957,9 +890,9 @@ } }, "node_modules/async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha512-l6ToIJIotphWahxxHyzK9bnLR6kM4jJIIgLShZeqLY7iboHoGkdgFl7W2/Ivi4SkMJYGKqW8vSuk0uKUj6qsSw==", "dev": true }, "node_modules/async-array-reduce": { @@ -1264,6 +1197,15 @@ "node": ">=0.10.0" } }, + "node_modules/benchmarked/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/benchmarked/node_modules/extend-shallow": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", @@ -1417,6 +1359,48 @@ "node": ">=6" } }, + "node_modules/bin-version/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-version/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bin-version/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bin-version/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/bin-wrapper": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-4.1.0.tgz", @@ -1732,6 +1716,21 @@ "responselike": "1.0.2" } }, + "node_modules/cacheable-request/node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true + }, + "node_modules/cacheable-request/node_modules/keyv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", + "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, "node_modules/cacheable-request/node_modules/lowercase-keys": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", @@ -1789,146 +1788,41 @@ "node": ">=0.8" } }, - "node_modules/calculate-assets/node_modules/argparse": { - "version": "0.1.16", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", - "integrity": "sha512-LjmC2dNpdn2L4UzyoaIr11ELYoLn37ZFy9zObrQFHsSuOepeUEMKnM8w5KL4Tnrp2gy88rRuQt6Ky8Bjml+Baw==", + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, "dependencies": { - "underscore": "~1.7.0", - "underscore.string": "~2.4.0" + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/calculate-assets/node_modules/async": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.6.2.tgz", - "integrity": "sha512-fWbn+CMBgn1KOL/UvYdsmH+gMN/fW+lzAoadt4VUFvB/t0pB4aY9RfRCCvhoA58jocHyYm5TGbeuZsPc9i1Cpg==", + "node_modules/call-me-maybe": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", "dev": true }, - "node_modules/calculate-assets/node_modules/esprima": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", - "integrity": "sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==", + "node_modules/caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "dependencies": { + "callsites": "^2.0.0" }, "engines": { - "node": ">=0.4.0" + "node": ">=4" } }, - "node_modules/calculate-assets/node_modules/fs-utils": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/fs-utils/-/fs-utils-0.4.3.tgz", - "integrity": "sha512-8QI7+QjKfm5RZPkAEEwKZsltqlbUTPIgtPljVLr0ijTy62W3j8I/znThOpwMnj8pfFyPB8YAkj6Bx5dy7gYHUg==", - "dev": true, - "dependencies": { - "async": "~0.6.2", - "globule": "~0.2.0", - "graceful-fs": "~2.0.3", - "js-yaml": "~3.0.2", - "lodash": "~2.4.1", - "mkdirp": "~0.3.5", - "rimraf": "~2.2.6" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/calculate-assets/node_modules/graceful-fs": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz", - "integrity": "sha512-hcj/NTUWv+C3MbqrVb9F+aH6lvTwEHJdx2foBxlrVq5h6zE8Bfu4pv4CAAqbDcZrw/9Ak5lsRXlY9Ao8/F0Tuw==", - "deprecated": "please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/calculate-assets/node_modules/js-yaml": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.0.2.tgz", - "integrity": "sha512-8PVwV1480dnAPMj8FCW3I/mZZ+gvtOoMAZFWJKagkFq2eWv5kcyzWTR+6MloV0SY57t6jSIaKc7DIz86K9ZCfA==", - "dev": true, - "dependencies": { - "argparse": "~ 0.1.11", - "esprima": "~ 1.0.2" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/calculate-assets/node_modules/lodash": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", - "integrity": "sha512-Kak1hi6/hYHGVPmdyiZijoQyz5x2iGVzs6w9GYB/HiXEtylY7tIoYEROMjvM1d9nXJqPOrG2MNPMn01bJ+S0Rw==", - "dev": true, - "engines": [ - "node", - "rhino" - ] - }, - "node_modules/calculate-assets/node_modules/mkdirp": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz", - "integrity": "sha512-8OCq0De/h9ZxseqzCH8Kw/Filf5pF/vMI6+BH7Lu0jXz2pqYCjTAQRolSxRIi+Ax+oCCjlxoJMP0YQ4XlrQNHg==", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", - "dev": true - }, - "node_modules/calculate-assets/node_modules/rimraf": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", - "integrity": "sha512-R5KMKHnPAQaZMqLOsyuyUmcIjSeDm+73eoqQpaXA7AZ22BL+6C+1mcUscgOsNd8WVlJuvlgAPsegcx7pjlV0Dg==", - "dev": true, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/calculate-assets/node_modules/underscore.string": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz", - "integrity": "sha512-yxkabuCaIBnzfIvX3kBxQqCs0ar/bfJwDnFEHJUm/ZrRVhT3IItdRF5cZjARLzEnyQYtIUhsZ2LG2j3HidFOFQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-me-maybe": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", - "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", - "dev": true - }, - "node_modules/caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", - "dev": true, - "dependencies": { - "callsites": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", + "node_modules/caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", "dev": true, "dependencies": { "caller-callsite": "^2.0.0" @@ -1993,9 +1887,9 @@ } }, "node_modules/caniuse-api/node_modules/browserslist": { - "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", "dev": true, "funding": [ { @@ -2012,10 +1906,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -2025,9 +1919,9 @@ } }, "node_modules/caniuse-api/node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { @@ -2055,15 +1949,15 @@ } }, "node_modules/caniuse-db": { - "version": "1.0.30001512", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001512.tgz", - "integrity": "sha512-3jrB5o/RE6lelLBT+nZfETsKipBvW0klSzelBGiTskXA6Wz+zFcMdfZGctWYC09KWycC1cQsqZxenaa+aBrW7Q==", + "version": "1.0.30001547", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001547.tgz", + "integrity": "sha512-Hm2NVMIqz7GUsEYcqMZAOYrOVg//iCnsVjid1qMi/s1ECeHK8+etrg++Sct9jVOZxX/omjRFV0KWVAWbvIsH/Q==", "dev": true }, "node_modules/caniuse-lite": { - "version": "1.0.30001512", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001512.tgz", - "integrity": "sha512-2S9nK0G/mE+jasCUsMPlARhRCts1ebcp2Ji8Y8PWi4NDE1iRdLCnEPHkEfeBrGC45L4isBx5ur3IQ6yTE2mRZw==", + "version": "1.0.30001547", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001547.tgz", + "integrity": "sha512-W7CrtIModMAxobGhz8iXmDfuJiiKg1WADMO/9x7/CLNin5cpSbuBjooyoIUVB5eyCc36QuTVlkVa1iB2S5+/eA==", "dev": true, "funding": [ { @@ -2124,17 +2018,19 @@ } }, "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/chownr": { @@ -2185,12 +2081,6 @@ "node": "*" } }, - "node_modules/cli/node_modules/lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha512-WpibWJ60c3AgAz8a2iYErDrcT2C7OmKnsWhIcHOjkUHFjkXncJhtLxNSqUmxRxRunpb5I8Vprd7aNSd2NtksJQ==", - "dev": true - }, "node_modules/cli/node_modules/minimatch": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", @@ -2263,6 +2153,77 @@ "node": ">= 4.0" } }, + "node_modules/coa/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/coa/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/coa/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/coa/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", @@ -2311,18 +2272,21 @@ } }, "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/color-string": { @@ -2335,6 +2299,21 @@ "simple-swizzle": "^0.2.2" } }, + "node_modules/color/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, "node_modules/colors": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", @@ -2568,14 +2547,17 @@ } }, "node_modules/cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" } }, "node_modules/css-color-names": { @@ -3029,12 +3011,6 @@ "rhino" ] }, - "node_modules/cwd/node_modules/lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha512-WpibWJ60c3AgAz8a2iYErDrcT2C7OmKnsWhIcHOjkUHFjkXncJhtLxNSqUmxRxRunpb5I8Vprd7aNSd2NtksJQ==", - "dev": true - }, "node_modules/cwd/node_modules/minimatch": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", @@ -3144,14 +3120,28 @@ } }, "node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { - "ms": "^2.1.1" + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, + "node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", @@ -3364,12 +3354,27 @@ "node": ">=0.10.0" } }, - "node_modules/define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "dependencies": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" }, @@ -3587,15 +3592,6 @@ "node": ">=8" } }, - "node_modules/dot-prop/node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/download": { "version": "6.2.5", "resolved": "https://registry.npmjs.org/download/-/download-6.2.5.tgz", @@ -3692,9 +3688,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.451", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.451.tgz", - "integrity": "sha512-YYbXHIBxAHe3KWvGOJOuWa6f3tgow44rBW+QAuwVp2DvGqNZeE//K2MowNdWS7XE8li5cgQDrX1LdBr41LufkA==", + "version": "1.4.553", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.553.tgz", + "integrity": "sha512-HiRdtyKS2+VhiXvjhMvvxiMC33FJJqTA5EB2YHgFZW6v7HkK4Q9Ahv2V7O2ZPgAjw+MyCJVMQvigj13H8t+wvA==", "dev": true }, "node_modules/encodeurl": { @@ -3746,18 +3742,19 @@ } }, "node_modules/es-abstract": { - "version": "1.21.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", - "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", + "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.1", "get-symbol-description": "^1.0.0", "globalthis": "^1.0.3", "gopd": "^1.0.1", @@ -3772,19 +3769,23 @@ "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", + "is-typed-array": "^1.1.12", "is-weakref": "^1.0.2", "object-inspect": "^1.12.3", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", "typed-array-length": "^1.0.4", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" + "which-typed-array": "^1.1.11" }, "engines": { "node": ">= 0.4" @@ -3846,12 +3847,15 @@ "dev": true }, "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "engines": { - "node": ">=0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/escodegen": { @@ -3876,6 +3880,54 @@ "source-map": "~0.6.1" } }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/escodegen/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -3886,28 +3938,40 @@ "node": ">=0.10.0" } }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/eslint": { - "version": "8.44.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.44.0.tgz", - "integrity": "sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz", + "integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.1.0", - "@eslint/js": "8.44.0", - "@humanwhocodes/config-array": "^0.11.10", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.51.0", + "@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.6.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -3917,7 +3981,6 @@ "globals": "^13.19.0", "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", @@ -3929,7 +3992,6 @@ "natural-compare": "^1.4.0", "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "bin": { @@ -3974,9 +4036,9 @@ } }, "node_modules/eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -3989,19 +4051,10 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4010,566 +4063,251 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/eslint/node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" + "argparse": "^2.0.1" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": ">=7.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { - "node": ">= 8" + "node": ">=4" } }, - "node_modules/eslint/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "dependencies": { - "ms": "2.1.2" + "estraverse": "^5.1.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=0.10" } }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "estraverse": "^5.2.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=4.0" } }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4.0" } }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, "engines": { - "node": ">=10.13.0" + "node": ">=0.10.0" } }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "dev": true, "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/eslint/node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "node_modules/eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ==", + "dev": true + }, + "node_modules/events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==", "dev": true, "engines": { - "node": ">= 4" + "node": ">=0.4.x" } }, - "node_modules/eslint/node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/eslint/node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/eslint/node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/exec-buffer": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/exec-buffer/-/exec-buffer-3.2.0.tgz", + "integrity": "sha512-wsiD+2Tp6BWHoVv3B+5Dcx6E7u5zky+hUwOHjuH2hKSLR3dvRmX8fk8UD8uqQixHs4Wk6eDmiegVrMPjKj7wpA==", "dev": true, + "optional": true, "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" + "execa": "^0.7.0", + "p-finally": "^1.0.0", + "pify": "^3.0.0", + "rimraf": "^2.5.4", + "tempfile": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, "engines": { "node": ">=4" } }, - "node_modules/eslint/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/exec-buffer/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "optional": true, "dependencies": { - "ansi-regex": "^5.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" + "node": "*" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/eslint/node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "node_modules/exec-buffer/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, + "optional": true, "engines": { - "node": ">= 0.8.0" + "node": ">=4" } }, - "node_modules/eslint/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "node_modules/exec-buffer/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, + "optional": true, "dependencies": { - "isexe": "^2.0.0" + "glob": "^7.1.3" }, "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" + "rimraf": "bin.js" } }, - "node_modules/espree": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.0.tgz", - "integrity": "sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==", + "node_modules/execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==", "dev": true, "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree/node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/espree/node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" }, "engines": { "node": ">=4" } }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "node_modules/execa/node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", "dev": true, "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "node_modules/execa/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ==", - "dev": true - }, - "node_modules/events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==", - "dev": true, - "engines": { - "node": ">=0.4.x" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, - "node_modules/exec-buffer": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/exec-buffer/-/exec-buffer-3.2.0.tgz", - "integrity": "sha512-wsiD+2Tp6BWHoVv3B+5Dcx6E7u5zky+hUwOHjuH2hKSLR3dvRmX8fk8UD8uqQixHs4Wk6eDmiegVrMPjKj7wpA==", + "node_modules/execa/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dev": true, - "optional": true, "dependencies": { - "execa": "^0.7.0", - "p-finally": "^1.0.0", - "pify": "^3.0.0", - "rimraf": "^2.5.4", - "tempfile": "^2.0.0" + "shebang-regex": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/exec-buffer/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "node_modules/execa/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "dev": true, - "optional": true, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==", + "node_modules/execa/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "dependencies": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "isexe": "^2.0.0" }, - "engines": { - "node": ">=4" + "bin": { + "which": "bin/which" } }, "node_modules/executable": { @@ -4900,6 +4638,15 @@ "node": ">=4.0.0" } }, + "node_modules/fast-glob/node_modules/@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-glob/node_modules/braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", @@ -4949,6 +4696,28 @@ "node": ">=0.10.0" } }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/fast-glob/node_modules/is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", @@ -5071,18 +4840,18 @@ "dev": true }, "node_modules/fast-xml-parser": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", - "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.2.tgz", + "integrity": "sha512-rmrXUXwbJedoXkStenj1kkljNF7ugn5ZjR9FJcwmCfcCbtOMDghPajbc+Tck6vE6F5XsDmx+Pr2le9fw8+pXBg==", "dev": true, "funding": [ - { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" - }, { "type": "github", "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" } ], "optional": true, @@ -5123,6 +4892,28 @@ "pend": "~1.2.0" } }, + "node_modules/figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -5357,6 +5148,18 @@ "node": ">=0.10.0" } }, + "node_modules/find-file-up/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/find-pkg": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-0.1.2.tgz", @@ -5370,15 +5173,19 @@ } }, "node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { - "locate-path": "^3.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/find-versions": { @@ -5443,57 +5250,23 @@ } }, "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", + "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", "dev": true, "dependencies": { - "flatted": "^3.1.0", + "flatted": "^3.2.9", + "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flat-cache/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=12.0.0" } }, "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", "dev": true }, "node_modules/for-each": { @@ -5642,19 +5415,18 @@ } }, "node_modules/fs-utils": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/fs-utils/-/fs-utils-0.3.10.tgz", - "integrity": "sha512-gqxBrZ8rHBUgFxiKdE/bwy16poSxcNrPh+rc7+48RLMfvj2Z8oUggAAaKMnFQOa/Z2G9fybOppje24sTy6ePfw==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/fs-utils/-/fs-utils-0.4.3.tgz", + "integrity": "sha512-8QI7+QjKfm5RZPkAEEwKZsltqlbUTPIgtPljVLr0ijTy62W3j8I/znThOpwMnj8pfFyPB8YAkj6Bx5dy7gYHUg==", "dev": true, "dependencies": { - "async": "~0.2.10", + "async": "~0.6.2", "globule": "~0.2.0", "graceful-fs": "~2.0.3", "js-yaml": "~3.0.2", "lodash": "~2.4.1", "mkdirp": "~0.3.5", - "rimraf": "~2.2.6", - "template": "~0.1.5" + "rimraf": "~2.2.6" }, "engines": { "node": ">= 0.8.0" @@ -5670,6 +5442,12 @@ "underscore.string": "~2.4.0" } }, + "node_modules/fs-utils/node_modules/async": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.6.2.tgz", + "integrity": "sha512-fWbn+CMBgn1KOL/UvYdsmH+gMN/fW+lzAoadt4VUFvB/t0pB4aY9RfRCCvhoA58jocHyYm5TGbeuZsPc9i1Cpg==", + "dev": true + }, "node_modules/fs-utils/node_modules/esprima": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", @@ -5748,21 +5526,24 @@ "dev": true }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" @@ -5807,34 +5588,6 @@ "node": ">=0.10.0" } }, - "node_modules/gauge/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "optional": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dev": true, - "optional": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/gauge/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -6081,20 +5834,66 @@ "strip-eof": "^1.0.0" }, "engines": { - "node": ">=6" + "node": ">=6" + } + }, + "node_modules/gifsicle/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "optional": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/gifsicle/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/gifsicle/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "optional": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gifsicle/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/gifsicle/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "node_modules/gifsicle/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "optional": true, "dependencies": { - "pump": "^3.0.0" + "isexe": "^2.0.0" }, - "engines": { - "node": ">=6" + "bin": { + "which": "bin/which" } }, "node_modules/github-from-package": { @@ -6164,25 +5963,15 @@ } }, "node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", - "dev": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "dependencies": { - "is-extglob": "^2.1.0" + "is-glob": "^4.0.3" }, "engines": { - "node": ">=0.10.0" + "node": ">=10.13.0" } }, "node_modules/glob-path-regex": { @@ -6230,28 +6019,28 @@ "node": ">=0.10.0" } }, - "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" + "isexe": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "which": "bin/which" } }, - "node_modules/globals/node_modules/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==", + "node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6310,6 +6099,12 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/globby/node_modules/ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, "node_modules/globby/node_modules/pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", @@ -6370,12 +6165,6 @@ "rhino" ] }, - "node_modules/globule/node_modules/lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha512-WpibWJ60c3AgAz8a2iYErDrcT2C7OmKnsWhIcHOjkUHFjkXncJhtLxNSqUmxRxRunpb5I8Vprd7aNSd2NtksJQ==", - "dev": true - }, "node_modules/globule/node_modules/minimatch": { "version": "0.2.14", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", @@ -6440,84 +6229,21 @@ "dev": true }, "node_modules/gray-matter": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-0.2.8.tgz", - "integrity": "sha512-aP0QY4lR0JJyjpDcY7fC7OXg8f1+m355zQ01KYJBWLKORZ7GMUwPuU/iVOWPF15keMqjqPQUTkxR2Wox5yXfnA==", - "dev": true, - "dependencies": { - "coffee-script": "~1.6.3", - "delims": "~0.1.0", - "fs-utils": "~0.1.6", - "js-yaml": "~3.0.1", - "lodash": "~2.4.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/gray-matter/node_modules/argparse": { - "version": "0.1.16", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", - "integrity": "sha512-LjmC2dNpdn2L4UzyoaIr11ELYoLn37ZFy9zObrQFHsSuOepeUEMKnM8w5KL4Tnrp2gy88rRuQt6Ky8Bjml+Baw==", - "dev": true, - "dependencies": { - "underscore": "~1.7.0", - "underscore.string": "~2.4.0" - } - }, - "node_modules/gray-matter/node_modules/esprima": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", - "integrity": "sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/gray-matter/node_modules/fs-utils": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/fs-utils/-/fs-utils-0.1.11.tgz", - "integrity": "sha512-RaoMU1DK18nKG6JSNJXLNGtIytb4G6ofl+DACmO9beJf5o1Ax0ZBPeXm5BwWOig8yRzb4Nq5p94YH2kw5pTs5g==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-0.4.2.tgz", + "integrity": "sha512-NWdECVsb4ROsdeZxiG4phxVms7vedZWFo4cVLmBSkphGDXUGll2e9Hkm6PcjMnIm/+5A3E+gd4W1FypIj+BU2g==", "dev": true, "dependencies": { - "async": "~0.2.9", - "globule": "~0.2.0", - "iconv-lite": "~0.2.11", - "js-yaml": "~3.0.1", - "lodash": "~2.4.1", - "mkdirp": "~0.3.5", - "rimraf": "~2.2.6" + "delims": "^0.1.4", + "fs-utils": "^0.4.3", + "js-yaml": "^3.0.2", + "lodash": "^2.4.1", + "verbalize": "^0.1.2" }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/gray-matter/node_modules/iconv-lite": { - "version": "0.2.11", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz", - "integrity": "sha512-KhmFWgaQZY83Cbhi+ADInoUQ8Etn6BG5fikM9syeOjQltvR45h7cRKJ/9uvQEuD61I3Uju77yYce0/LhKVClQw==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/gray-matter/node_modules/js-yaml": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.0.2.tgz", - "integrity": "sha512-8PVwV1480dnAPMj8FCW3I/mZZ+gvtOoMAZFWJKagkFq2eWv5kcyzWTR+6MloV0SY57t6jSIaKc7DIz86K9ZCfA==", - "dev": true, - "dependencies": { - "argparse": "~ 0.1.11", - "esprima": "~ 1.0.2" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/gray-matter/node_modules/lodash": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", @@ -6528,31 +6254,6 @@ "rhino" ] }, - "node_modules/gray-matter/node_modules/mkdirp": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz", - "integrity": "sha512-8OCq0De/h9ZxseqzCH8Kw/Filf5pF/vMI6+BH7Lu0jXz2pqYCjTAQRolSxRIi+Ax+oCCjlxoJMP0YQ4XlrQNHg==", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", - "dev": true - }, - "node_modules/gray-matter/node_modules/rimraf": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", - "integrity": "sha512-R5KMKHnPAQaZMqLOsyuyUmcIjSeDm+73eoqQpaXA7AZ22BL+6C+1mcUscgOsNd8WVlJuvlgAPsegcx7pjlV0Dg==", - "dev": true, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/gray-matter/node_modules/underscore.string": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz", - "integrity": "sha512-yxkabuCaIBnzfIvX3kBxQqCs0ar/bfJwDnFEHJUm/ZrRVhT3IItdRF5cZjARLzEnyQYtIUhsZ2LG2j3HidFOFQ==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/grunt": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.6.1.tgz", @@ -6609,35 +6310,7 @@ "lodash": "~2.4.1" } }, - "node_modules/grunt-assemble-i18n/node_modules/lodash": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", - "integrity": "sha512-Kak1hi6/hYHGVPmdyiZijoQyz5x2iGVzs6w9GYB/HiXEtylY7tIoYEROMjvM1d9nXJqPOrG2MNPMn01bJ+S0Rw==", - "dev": true, - "engines": [ - "node", - "rhino" - ] - }, - "node_modules/grunt-assemble-permalinks": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/grunt-assemble-permalinks/-/grunt-assemble-permalinks-0.1.1.tgz", - "integrity": "sha512-NvgPRKY7fGwOhkqmgt3yIYwDfsFEFFFrBwdoIq0w3WwD1zrnNTiUk0cupR9NR4wxoK9kMc5chx5Xkfs0Yd6+nQ==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "async-each": "^1.0.0", - "calculate-assets": "^0.1.2", - "helper-slugify": "^0.2.0", - "mixin-deep": "^1.1.3", - "object.omit": "^2.0.0", - "permalinks": "~0.2.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/grunt-assemble/node_modules/argparse": { + "node_modules/grunt-assemble-i18n/node_modules/argparse": { "version": "0.1.16", "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", "integrity": "sha512-LjmC2dNpdn2L4UzyoaIr11ELYoLn37ZFy9zObrQFHsSuOepeUEMKnM8w5KL4Tnrp2gy88rRuQt6Ky8Bjml+Baw==", @@ -6647,13 +6320,13 @@ "underscore.string": "~2.4.0" } }, - "node_modules/grunt-assemble/node_modules/async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha512-l6ToIJIotphWahxxHyzK9bnLR6kM4jJIIgLShZeqLY7iboHoGkdgFl7W2/Ivi4SkMJYGKqW8vSuk0uKUj6qsSw==", + "node_modules/grunt-assemble-i18n/node_modules/async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ==", "dev": true }, - "node_modules/grunt-assemble/node_modules/esprima": { + "node_modules/grunt-assemble-i18n/node_modules/esprima": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", "integrity": "sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==", @@ -6666,31 +6339,26 @@ "node": ">=0.4.0" } }, - "node_modules/grunt-assemble/node_modules/fs-utils": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/fs-utils/-/fs-utils-0.4.3.tgz", - "integrity": "sha512-8QI7+QjKfm5RZPkAEEwKZsltqlbUTPIgtPljVLr0ijTy62W3j8I/znThOpwMnj8pfFyPB8YAkj6Bx5dy7gYHUg==", + "node_modules/grunt-assemble-i18n/node_modules/fs-utils": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/fs-utils/-/fs-utils-0.3.10.tgz", + "integrity": "sha512-gqxBrZ8rHBUgFxiKdE/bwy16poSxcNrPh+rc7+48RLMfvj2Z8oUggAAaKMnFQOa/Z2G9fybOppje24sTy6ePfw==", "dev": true, "dependencies": { - "async": "~0.6.2", + "async": "~0.2.10", "globule": "~0.2.0", "graceful-fs": "~2.0.3", "js-yaml": "~3.0.2", "lodash": "~2.4.1", "mkdirp": "~0.3.5", - "rimraf": "~2.2.6" + "rimraf": "~2.2.6", + "template": "~0.1.5" }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/grunt-assemble/node_modules/fs-utils/node_modules/async": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.6.2.tgz", - "integrity": "sha512-fWbn+CMBgn1KOL/UvYdsmH+gMN/fW+lzAoadt4VUFvB/t0pB4aY9RfRCCvhoA58jocHyYm5TGbeuZsPc9i1Cpg==", - "dev": true - }, - "node_modules/grunt-assemble/node_modules/graceful-fs": { + "node_modules/grunt-assemble-i18n/node_modules/graceful-fs": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz", "integrity": "sha512-hcj/NTUWv+C3MbqrVb9F+aH6lvTwEHJdx2foBxlrVq5h6zE8Bfu4pv4CAAqbDcZrw/9Ak5lsRXlY9Ao8/F0Tuw==", @@ -6700,23 +6368,50 @@ "node": ">=0.4.0" } }, - "node_modules/grunt-assemble/node_modules/gray-matter": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-0.4.2.tgz", - "integrity": "sha512-NWdECVsb4ROsdeZxiG4phxVms7vedZWFo4cVLmBSkphGDXUGll2e9Hkm6PcjMnIm/+5A3E+gd4W1FypIj+BU2g==", + "node_modules/grunt-assemble-i18n/node_modules/gray-matter": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-0.2.8.tgz", + "integrity": "sha512-aP0QY4lR0JJyjpDcY7fC7OXg8f1+m355zQ01KYJBWLKORZ7GMUwPuU/iVOWPF15keMqjqPQUTkxR2Wox5yXfnA==", "dev": true, "dependencies": { - "delims": "^0.1.4", - "fs-utils": "^0.4.3", - "js-yaml": "^3.0.2", - "lodash": "^2.4.1", - "verbalize": "^0.1.2" + "coffee-script": "~1.6.3", + "delims": "~0.1.0", + "fs-utils": "~0.1.6", + "js-yaml": "~3.0.1", + "lodash": "~2.4.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/grunt-assemble-i18n/node_modules/gray-matter/node_modules/fs-utils": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/fs-utils/-/fs-utils-0.1.11.tgz", + "integrity": "sha512-RaoMU1DK18nKG6JSNJXLNGtIytb4G6ofl+DACmO9beJf5o1Ax0ZBPeXm5BwWOig8yRzb4Nq5p94YH2kw5pTs5g==", + "dev": true, + "dependencies": { + "async": "~0.2.9", + "globule": "~0.2.0", + "iconv-lite": "~0.2.11", + "js-yaml": "~3.0.1", + "lodash": "~2.4.1", + "mkdirp": "~0.3.5", + "rimraf": "~2.2.6" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 0.8.0" + } + }, + "node_modules/grunt-assemble-i18n/node_modules/iconv-lite": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz", + "integrity": "sha512-KhmFWgaQZY83Cbhi+ADInoUQ8Etn6BG5fikM9syeOjQltvR45h7cRKJ/9uvQEuD61I3Uju77yYce0/LhKVClQw==", + "dev": true, + "engines": { + "node": ">=0.4.0" } }, - "node_modules/grunt-assemble/node_modules/js-yaml": { + "node_modules/grunt-assemble-i18n/node_modules/js-yaml": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.0.2.tgz", "integrity": "sha512-8PVwV1480dnAPMj8FCW3I/mZZ+gvtOoMAZFWJKagkFq2eWv5kcyzWTR+6MloV0SY57t6jSIaKc7DIz86K9ZCfA==", @@ -6729,7 +6424,7 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/grunt-assemble/node_modules/lodash": { + "node_modules/grunt-assemble-i18n/node_modules/lodash": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", "integrity": "sha512-Kak1hi6/hYHGVPmdyiZijoQyz5x2iGVzs6w9GYB/HiXEtylY7tIoYEROMjvM1d9nXJqPOrG2MNPMn01bJ+S0Rw==", @@ -6739,14 +6434,14 @@ "rhino" ] }, - "node_modules/grunt-assemble/node_modules/mkdirp": { + "node_modules/grunt-assemble-i18n/node_modules/mkdirp": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz", "integrity": "sha512-8OCq0De/h9ZxseqzCH8Kw/Filf5pF/vMI6+BH7Lu0jXz2pqYCjTAQRolSxRIi+Ax+oCCjlxoJMP0YQ4XlrQNHg==", "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", "dev": true }, - "node_modules/grunt-assemble/node_modules/rimraf": { + "node_modules/grunt-assemble-i18n/node_modules/rimraf": { "version": "2.2.8", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", "integrity": "sha512-R5KMKHnPAQaZMqLOsyuyUmcIjSeDm+73eoqQpaXA7AZ22BL+6C+1mcUscgOsNd8WVlJuvlgAPsegcx7pjlV0Dg==", @@ -6755,7 +6450,7 @@ "rimraf": "bin.js" } }, - "node_modules/grunt-assemble/node_modules/underscore.string": { + "node_modules/grunt-assemble-i18n/node_modules/underscore.string": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz", "integrity": "sha512-yxkabuCaIBnzfIvX3kBxQqCs0ar/bfJwDnFEHJUm/ZrRVhT3IItdRF5cZjARLzEnyQYtIUhsZ2LG2j3HidFOFQ==", @@ -6764,6 +6459,34 @@ "node": "*" } }, + "node_modules/grunt-assemble-permalinks": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/grunt-assemble-permalinks/-/grunt-assemble-permalinks-0.1.1.tgz", + "integrity": "sha512-NvgPRKY7fGwOhkqmgt3yIYwDfsFEFFFrBwdoIq0w3WwD1zrnNTiUk0cupR9NR4wxoK9kMc5chx5Xkfs0Yd6+nQ==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "async-each": "^1.0.0", + "calculate-assets": "^0.1.2", + "helper-slugify": "^0.2.0", + "mixin-deep": "^1.1.3", + "object.omit": "^2.0.0", + "permalinks": "~0.2.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/grunt-assemble/node_modules/lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha512-Kak1hi6/hYHGVPmdyiZijoQyz5x2iGVzs6w9GYB/HiXEtylY7tIoYEROMjvM1d9nXJqPOrG2MNPMn01bJ+S0Rw==", + "dev": true, + "engines": [ + "node", + "rhino" + ] + }, "node_modules/grunt-cli": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.3.tgz", @@ -6818,6 +6541,38 @@ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", "dev": true }, + "node_modules/grunt-contrib-clean/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/grunt-contrib-clean/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, "node_modules/grunt-contrib-compress": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/grunt-contrib-compress/-/grunt-contrib-compress-1.6.0.tgz", @@ -6871,6 +6626,15 @@ "node": ">=0.10.0" } }, + "node_modules/grunt-contrib-compress/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/grunt-contrib-compress/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -6942,6 +6706,15 @@ "node": ">=0.10.0" } }, + "node_modules/grunt-contrib-concat/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/grunt-contrib-concat/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -7042,6 +6815,15 @@ "node": ">=0.10.0" } }, + "node_modules/grunt-contrib-copy/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/grunt-contrib-copy/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -7085,6 +6867,65 @@ "imagemin-svgo": "^7.0.0" } }, + "node_modules/grunt-contrib-imagemin/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/grunt-contrib-imagemin/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/grunt-contrib-imagemin/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/grunt-contrib-imagemin/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/grunt-contrib-imagemin/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/grunt-contrib-imagemin/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/grunt-contrib-imagemin/node_modules/pretty-bytes": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", @@ -7097,6 +6938,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/grunt-contrib-imagemin/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/grunt-contrib-requirejs": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/grunt-contrib-requirejs/-/grunt-contrib-requirejs-1.0.0.tgz", @@ -7164,6 +7017,15 @@ "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", "dev": true }, + "node_modules/grunt-contrib-uglify/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/grunt-contrib-uglify/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -7310,76 +7172,6 @@ "node": ">=10" } }, - "node_modules/grunt-legacy-log-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/grunt-legacy-log-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/grunt-legacy-log-utils/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/grunt-legacy-log-utils/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/grunt-legacy-log-utils/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/grunt-legacy-log-utils/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/grunt-legacy-util": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-2.0.1.tgz", @@ -7404,43 +7196,60 @@ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", "dev": true }, - "node_modules/grunt-legacy-util/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "node_modules/grunt-newer": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/grunt-newer/-/grunt-newer-1.3.0.tgz", + "integrity": "sha512-HEbcE3pTueSx2IT/WR9F/pJaGioy1+bDu0RPS1JZn8cPHaAGc8BIkcbEHato9Bhoy6ip1R43wY4gfgO6d7utnA==", "dev": true, "dependencies": { - "isexe": "^2.0.0" + "async": "^1.5.2", + "rimraf": "^2.5.2" }, - "bin": { - "node-which": "bin/node-which" + "engines": { + "node": ">= 0.8.0" + }, + "peerDependencies": { + "grunt": ">=0.4.1" + } + }, + "node_modules/grunt-newer/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "dev": true + }, + "node_modules/grunt-newer/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">= 8" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/grunt-newer": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/grunt-newer/-/grunt-newer-1.3.0.tgz", - "integrity": "sha512-HEbcE3pTueSx2IT/WR9F/pJaGioy1+bDu0RPS1JZn8cPHaAGc8BIkcbEHato9Bhoy6ip1R43wY4gfgO6d7utnA==", + "node_modules/grunt-newer/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "dependencies": { - "async": "^1.5.2", - "rimraf": "^2.5.2" - }, - "engines": { - "node": ">= 0.8.0" + "glob": "^7.1.3" }, - "peerDependencies": { - "grunt": ">=0.4.1" + "bin": { + "rimraf": "bin.js" } }, - "node_modules/grunt-newer/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", - "dev": true - }, "node_modules/grunt-postcss": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/grunt-postcss/-/grunt-postcss-0.9.0.tgz", @@ -7458,6 +7267,65 @@ "grunt": ">=0.4.5" } }, + "node_modules/grunt-postcss/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/grunt-postcss/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/grunt-postcss/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/grunt-postcss/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/grunt-postcss/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/grunt-postcss/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/grunt-postcss/node_modules/postcss": { "version": "6.0.23", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", @@ -7481,6 +7349,18 @@ "node": ">=0.10.0" } }, + "node_modules/grunt-postcss/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/grunt-shell": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/grunt-shell/-/grunt-shell-3.0.1.tgz", @@ -7507,6 +7387,65 @@ "node": ">=6" } }, + "node_modules/grunt-shell/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/grunt-shell/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/grunt-shell/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/grunt-shell/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/grunt-shell/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/grunt-shell/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/grunt-shell/node_modules/strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", @@ -7519,6 +7458,18 @@ "node": ">=6" } }, + "node_modules/grunt-shell/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/grunt-uncss": { "version": "0.8.6", "resolved": "https://registry.npmjs.org/grunt-uncss/-/grunt-uncss-0.8.6.tgz", @@ -7536,6 +7487,77 @@ "grunt": ">=0.4.0" } }, + "node_modules/grunt-uncss/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/grunt-uncss/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/grunt-uncss/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/grunt-uncss/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/grunt-uncss/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/grunt-uncss/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/grunt-uncss/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/grunt/node_modules/glob": { "version": "7.1.7", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", @@ -7593,13 +7615,13 @@ } }, "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, "dependencies": { "minimist": "^1.2.5", - "neo-async": "^2.6.0", + "neo-async": "^2.6.2", "source-map": "^0.6.1", "wordwrap": "^1.0.0" }, @@ -7854,13 +7876,10 @@ } }, "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, "engines": { "node": ">= 0.4.0" } @@ -7905,12 +7924,12 @@ } }, "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/has-glob": { @@ -8398,10 +8417,13 @@ ] }, "node_modules/ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } }, "node_modules/iltorb": { "version": "2.4.5", @@ -8473,25 +8495,11 @@ "dev": true, "dependencies": { "execa": "^4.0.0", - "is-jpg": "^2.0.0", - "mozjpeg": "^7.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/imagemin-mozjpeg/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "is-jpg": "^2.0.0", + "mozjpeg": "^7.0.0" }, "engines": { - "node": ">= 8" + "node": ">=10" } }, "node_modules/imagemin-mozjpeg/node_modules/execa": { @@ -8544,15 +8552,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/imagemin-mozjpeg/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/imagemin-mozjpeg/node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -8565,66 +8564,6 @@ "node": ">=8" } }, - "node_modules/imagemin-mozjpeg/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imagemin-mozjpeg/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/imagemin-mozjpeg/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/imagemin-mozjpeg/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/imagemin-mozjpeg/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/imagemin-optipng": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/imagemin-optipng/-/imagemin-optipng-6.0.0.tgz", @@ -8656,20 +8595,6 @@ "node": ">=10" } }, - "node_modules/imagemin-pngquant/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/imagemin-pngquant/node_modules/execa": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", @@ -8729,15 +8654,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/imagemin-pngquant/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/imagemin-pngquant/node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -8750,66 +8666,6 @@ "node": ">=8" } }, - "node_modules/imagemin-pngquant/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imagemin-pngquant/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/imagemin-pngquant/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/imagemin-pngquant/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/imagemin-pngquant/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/imagemin-svgo": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/imagemin-svgo/-/imagemin-svgo-7.1.0.tgz", @@ -8858,6 +8714,19 @@ "node": ">=0.8.19" } }, + "node_modules/indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", + "dev": true, + "optional": true, + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/index-of": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/index-of/-/index-of-0.2.0.tgz", @@ -9061,9 +8930,9 @@ } }, "node_modules/is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -9195,13 +9064,16 @@ } }, "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", "dev": true, "optional": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, "node_modules/is-gif": { @@ -9305,12 +9177,12 @@ } }, "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/is-object": { @@ -9503,16 +9375,12 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "which-typed-array": "^1.1.11" }, "engines": { "node": ">= 0.4" @@ -9643,82 +9511,12 @@ "node": ">=10" } }, - "node_modules/jake/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/jake/node_modules/async": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", "dev": true }, - "node_modules/jake/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jake/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jake/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jake/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jake/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-docblock": { "version": "21.2.0", "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", @@ -9803,6 +9601,18 @@ "xml-name-validator": "^3.0.0" } }, + "node_modules/jsdom/node_modules/acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/jshint": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.8.0.tgz", @@ -9853,10 +9663,10 @@ "node": ">=0.8.0" } }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, "node_modules/json-parse-better-errors": { @@ -9917,12 +9727,12 @@ } }, "node_modules/keyv": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", - "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, "dependencies": { - "json-buffer": "3.0.0" + "json-buffer": "3.0.1" } }, "node_modules/kind-of": { @@ -9969,13 +9779,13 @@ "dev": true }, "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, "engines": { "node": ">= 0.8.0" @@ -10101,16 +9911,18 @@ } }, "node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { @@ -10188,20 +10000,6 @@ "node": ">=0.10.0" } }, - "node_modules/logalot/node_modules/figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", - "dev": true, - "optional": true, - "dependencies": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/logging-helpers": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/logging-helpers/-/logging-helpers-0.4.0.tgz", @@ -10248,6 +10046,15 @@ "node": ">=0.10.0" } }, + "node_modules/logging-helpers/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/logging-helpers/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -10410,28 +10217,11 @@ "node": ">=0.10.0" } }, - "node_modules/lpad-align/node_modules/indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", - "dev": true, - "optional": true, - "dependencies": { - "repeating": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha512-WpibWJ60c3AgAz8a2iYErDrcT2C7OmKnsWhIcHOjkUHFjkXncJhtLxNSqUmxRxRunpb5I8Vprd7aNSd2NtksJQ==", + "dev": true }, "node_modules/make-dir": { "version": "1.3.0", @@ -10635,6 +10425,18 @@ "node": ">=0.10.0" } }, + "node_modules/matched/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/math-random": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", @@ -10690,17 +10492,13 @@ "node": ">=0.10.0" } }, - "node_modules/maxmin/node_modules/figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", + "node_modules/maxmin/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=0.8.0" } }, "node_modules/maxmin/node_modules/pretty-bytes": { @@ -10822,6 +10620,15 @@ "node": ">= 0.6" } }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", @@ -11003,9 +10810,9 @@ } }, "node_modules/nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", + "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", "dev": true, "optional": true }, @@ -11180,9 +10987,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz", - "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", "dev": true }, "node_modules/noop-logger": { @@ -11281,6 +11088,15 @@ "node": ">=4" } }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", @@ -11441,15 +11257,15 @@ } }, "node_modules/object.getownpropertydescriptors": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz", - "integrity": "sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz", + "integrity": "sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==", "dev": true, "dependencies": { - "array.prototype.reduce": "^1.0.5", + "array.prototype.reduce": "^1.0.6", "call-bind": "^1.0.2", "define-properties": "^1.2.0", - "es-abstract": "^1.21.2", + "es-abstract": "^1.22.1", "safe-array-concat": "^1.0.0" }, "engines": { @@ -11540,14 +11356,14 @@ } }, "node_modules/object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -11586,6 +11402,21 @@ "wrappy": "1" } }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/opn": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", @@ -11599,17 +11430,17 @@ } }, "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" }, "engines": { "node": ">= 0.8.0" @@ -11689,6 +11520,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ow/node_modules/type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-cancelable": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", @@ -11729,30 +11572,33 @@ } }, "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "dependencies": { - "p-limit": "^2.0.0" + "p-limit": "^3.0.2" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-map": { @@ -11954,12 +11800,12 @@ "dev": true }, "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/path-is-absolute": { @@ -11972,12 +11818,12 @@ } }, "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/path-parse": { @@ -12102,37 +11948,98 @@ "node": ">=6" } }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "dependencies": { - "pinkie": "^2.0.0" + "p-limit": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, - "dependencies": { - "find-up": "^3.0.0" - }, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/plur": { @@ -12171,20 +12078,6 @@ "node": ">=10" } }, - "node_modules/pngquant-bin/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/pngquant-bin/node_modules/execa": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", @@ -12235,15 +12128,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pngquant-bin/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/pngquant-bin/node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -12256,66 +12140,6 @@ "node": ">=8" } }, - "node_modules/pngquant-bin/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pngquant-bin/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pngquant-bin/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pngquant-bin/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pngquant-bin/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/portscanner": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", @@ -12429,9 +12253,9 @@ } }, "node_modules/postcss-colormin/node_modules/browserslist": { - "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", "dev": true, "funding": [ { @@ -12448,10 +12272,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -12493,9 +12317,9 @@ } }, "node_modules/postcss-colormin/node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { @@ -12808,9 +12632,9 @@ } }, "node_modules/postcss-merge-rules/node_modules/browserslist": { - "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", "dev": true, "funding": [ { @@ -12827,10 +12651,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -12886,9 +12710,9 @@ } }, "node_modules/postcss-merge-rules/node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { @@ -13025,9 +12849,9 @@ } }, "node_modules/postcss-minify-params/node_modules/browserslist": { - "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", "dev": true, "funding": [ { @@ -13044,10 +12868,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -13089,9 +12913,9 @@ } }, "node_modules/postcss-minify-params/node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { @@ -13470,9 +13294,9 @@ } }, "node_modules/postcss-normalize-unicode/node_modules/browserslist": { - "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", "dev": true, "funding": [ { @@ -13489,10 +13313,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -13534,9 +13358,9 @@ } }, "node_modules/postcss-normalize-unicode/node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { @@ -13717,9 +13541,9 @@ } }, "node_modules/postcss-reduce-initial/node_modules/browserslist": { - "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", "dev": true, "funding": [ { @@ -13736,10 +13560,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -13781,9 +13605,9 @@ } }, "node_modules/postcss-reduce-initial/node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { @@ -14011,6 +13835,15 @@ "node": ">=0.8.0" } }, + "node_modules/postcss/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/postcss/node_modules/has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", @@ -14075,9 +13908,9 @@ } }, "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, "engines": { "node": ">= 0.8.0" @@ -14297,6 +14130,16 @@ "rc": "cli.js" } }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", @@ -14438,45 +14281,6 @@ "node": ">=0.10.0" } }, - "node_modules/redent/node_modules/get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redent/node_modules/indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", - "dev": true, - "optional": true, - "dependencies": { - "repeating": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redent/node_modules/strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", - "dev": true, - "optional": true, - "dependencies": { - "get-stdin": "^4.0.1" - }, - "bin": { - "strip-indent": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/regex-cache": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", @@ -14528,14 +14332,14 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", - "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", - "functions-have-names": "^1.2.3" + "set-function-name": "^2.0.0" }, "engines": { "node": ">= 0.4" @@ -14715,12 +14519,12 @@ } }, "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "dependencies": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -14790,12 +14594,6 @@ "node": ">=0.10.0" } }, - "node_modules/resolve-dep/node_modules/async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha512-l6ToIJIotphWahxxHyzK9bnLR6kM4jJIIgLShZeqLY7iboHoGkdgFl7W2/Ivi4SkMJYGKqW8vSuk0uKUj6qsSw==", - "dev": true - }, "node_modules/resolve-dep/node_modules/braces": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", @@ -14835,6 +14633,15 @@ "ms": "2.0.0" } }, + "node_modules/resolve-dep/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/resolve-dep/node_modules/expand-brackets": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", @@ -15208,15 +15015,18 @@ } }, "node_modules/rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/rimraf/node_modules/glob": { @@ -15263,13 +15073,13 @@ } }, "node_modules/safe-array-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", - "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", + "get-intrinsic": "^1.2.1", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, @@ -15367,9 +15177,9 @@ "dev": true }, "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "bin": { "semver": "bin/semver" @@ -15621,6 +15431,20 @@ "dev": true, "optional": true }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/set-getter": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.1.tgz", @@ -15661,24 +15485,24 @@ "dev": true }, "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "dependencies": { - "shebang-regex": "^1.0.0" + "shebang-regex": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/shelljs": { @@ -15779,9 +15603,9 @@ } }, "node_modules/simple-git": { - "version": "3.19.1", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.19.1.tgz", - "integrity": "sha512-Ck+rcjVaE1HotraRAS8u/+xgTvToTuoMkT9/l9lvuP5jftwnYUp6DwuJzsKErHgfyRk8IB8pqGHWEbM3tLgV1w==", + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.20.0.tgz", + "integrity": "sha512-ozK8tl2hvLts8ijTs18iFruE+RoqmC/mqZhjs/+V7gS5W68JpJ3+FCTmLVqmR59MaUQ52MfGQuWsIqfsTbbJ0Q==", "dev": true, "dependencies": { "@kwsites/file-exists": "^1.1.1", @@ -15793,29 +15617,6 @@ "url": "https://github.com/steveukx/git-js?sponsor=1" } }, - "node_modules/simple-git/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/simple-git/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", @@ -16043,9 +15844,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", "dev": true, "optional": true }, @@ -16144,6 +15945,16 @@ "node": ">=0.10.0" } }, + "node_modules/squeak/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/squeak/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -16286,28 +16097,52 @@ "dev": true }, "node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "optional": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, "optional": true, "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "ansi-regex": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, "node_modules/string.prototype.trim": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", - "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -16317,28 +16152,28 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -16385,16 +16220,15 @@ } }, "node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "optional": true, "dependencies": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/strip-bom": { @@ -16446,16 +16280,44 @@ "node": ">=6" } }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "node_modules/strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", + "dev": true, + "optional": true, + "dependencies": { + "get-stdin": "^4.0.1" + }, + "bin": { + "strip-indent": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-indent/node_modules/get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", "dev": true, "optional": true, "engines": { "node": ">=0.10.0" } }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/strip-outer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", @@ -16468,6 +16330,15 @@ "node": ">=0.10.0" } }, + "node_modules/strip-outer/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/striptags": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/striptags/-/striptags-2.2.1.tgz", @@ -16496,9 +16367,9 @@ } }, "node_modules/stylehacks/node_modules/browserslist": { - "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", "dev": true, "funding": [ { @@ -16515,10 +16386,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -16574,9 +16445,9 @@ } }, "node_modules/stylehacks/node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { @@ -16604,15 +16475,15 @@ } }, "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -16655,6 +16526,77 @@ "node": ">=4.0.0" } }, + "node_modules/svgo/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/svgo/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/svgo/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/svgo/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -16710,146 +16652,67 @@ "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "dev": true, - "dependencies": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/temp-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", - "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/tempfile": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz", - "integrity": "sha512-ZOn6nJUgvgC09+doCEF3oB+r3ag7kUvlsXEGX069QRD60p+P3uP7XG9N2/at+EyIRGSN//ZY3LyEotA1YpmjuA==", - "dev": true, - "dependencies": { - "temp-dir": "^1.0.0", - "uuid": "^3.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/template": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/template/-/template-0.1.8.tgz", - "integrity": "sha512-jnn/HU8vWut+LYJuuGjOWrmwPEw71QEBYoH2Zcv3pZPHSyvdVPTVlcj+tezbln1GaT07cT4rr8ATHMJWvy+Kgw==", - "dev": true, - "dependencies": { - "delims": "~0.1.4", - "fs-utils": "~0.4.1", - "lodash": "~2.4.1", - "underscore.string": "~2.3.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/template/node_modules/argparse": { - "version": "0.1.16", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", - "integrity": "sha512-LjmC2dNpdn2L4UzyoaIr11ELYoLn37ZFy9zObrQFHsSuOepeUEMKnM8w5KL4Tnrp2gy88rRuQt6Ky8Bjml+Baw==", - "dev": true, - "dependencies": { - "underscore": "~1.7.0", - "underscore.string": "~2.4.0" - } - }, - "node_modules/template/node_modules/argparse/node_modules/underscore.string": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz", - "integrity": "sha512-yxkabuCaIBnzfIvX3kBxQqCs0ar/bfJwDnFEHJUm/ZrRVhT3IItdRF5cZjARLzEnyQYtIUhsZ2LG2j3HidFOFQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/template/node_modules/async": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.6.2.tgz", - "integrity": "sha512-fWbn+CMBgn1KOL/UvYdsmH+gMN/fW+lzAoadt4VUFvB/t0pB4aY9RfRCCvhoA58jocHyYm5TGbeuZsPc9i1Cpg==", - "dev": true - }, - "node_modules/template/node_modules/esprima": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", - "integrity": "sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" }, "engines": { - "node": ">=0.4.0" + "node": ">=6" } }, - "node_modules/template/node_modules/fs-utils": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/fs-utils/-/fs-utils-0.4.3.tgz", - "integrity": "sha512-8QI7+QjKfm5RZPkAEEwKZsltqlbUTPIgtPljVLr0ijTy62W3j8I/znThOpwMnj8pfFyPB8YAkj6Bx5dy7gYHUg==", + "node_modules/tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", "dev": true, "dependencies": { - "async": "~0.6.2", - "globule": "~0.2.0", - "graceful-fs": "~2.0.3", - "js-yaml": "~3.0.2", - "lodash": "~2.4.1", - "mkdirp": "~0.3.5", - "rimraf": "~2.2.6" + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/template/node_modules/graceful-fs": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz", - "integrity": "sha512-hcj/NTUWv+C3MbqrVb9F+aH6lvTwEHJdx2foBxlrVq5h6zE8Bfu4pv4CAAqbDcZrw/9Ak5lsRXlY9Ao8/F0Tuw==", - "deprecated": "please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js", + "node_modules/temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", "dev": true, "engines": { - "node": ">=0.4.0" + "node": ">=4" } }, - "node_modules/template/node_modules/js-yaml": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.0.2.tgz", - "integrity": "sha512-8PVwV1480dnAPMj8FCW3I/mZZ+gvtOoMAZFWJKagkFq2eWv5kcyzWTR+6MloV0SY57t6jSIaKc7DIz86K9ZCfA==", + "node_modules/tempfile": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz", + "integrity": "sha512-ZOn6nJUgvgC09+doCEF3oB+r3ag7kUvlsXEGX069QRD60p+P3uP7XG9N2/at+EyIRGSN//ZY3LyEotA1YpmjuA==", "dev": true, "dependencies": { - "argparse": "~ 0.1.11", - "esprima": "~ 1.0.2" + "temp-dir": "^1.0.0", + "uuid": "^3.0.1" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=4" + } + }, + "node_modules/template": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/template/-/template-0.1.8.tgz", + "integrity": "sha512-jnn/HU8vWut+LYJuuGjOWrmwPEw71QEBYoH2Zcv3pZPHSyvdVPTVlcj+tezbln1GaT07cT4rr8ATHMJWvy+Kgw==", + "dev": true, + "dependencies": { + "delims": "~0.1.4", + "fs-utils": "~0.4.1", + "lodash": "~2.4.1", + "underscore.string": "~2.3.3" + }, + "engines": { + "node": ">= 0.8.0" } }, "node_modules/template/node_modules/lodash": { @@ -16862,22 +16725,6 @@ "rhino" ] }, - "node_modules/template/node_modules/mkdirp": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz", - "integrity": "sha512-8OCq0De/h9ZxseqzCH8Kw/Filf5pF/vMI6+BH7Lu0jXz2pqYCjTAQRolSxRIi+Ax+oCCjlxoJMP0YQ4XlrQNHg==", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", - "dev": true - }, - "node_modules/template/node_modules/rimraf": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", - "integrity": "sha512-R5KMKHnPAQaZMqLOsyuyUmcIjSeDm+73eoqQpaXA7AZ22BL+6C+1mcUscgOsNd8WVlJuvlgAPsegcx7pjlV0Dg==", - "dev": true, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/template/node_modules/underscore.string": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz", @@ -16961,17 +16808,13 @@ "node": ">=0.10.0" } }, - "node_modules/time-grunt/node_modules/figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", + "node_modules/time-grunt/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=0.8.0" } }, "node_modules/time-grunt/node_modules/strip-ansi": { @@ -17045,6 +16888,15 @@ "qs": "^6.4.0" } }, + "node_modules/tiny-lr/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, "node_modules/to-buffer": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", @@ -17269,6 +17121,15 @@ "node": ">=0.10.0" } }, + "node_modules/trim-repeated/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -17288,29 +17149,80 @@ "dev": true }, "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "dependencies": { - "prelude-ls": "~1.1.2" + "prelude-ls": "^1.2.1" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/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.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, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typed-array-length": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", @@ -17414,6 +17326,47 @@ "node": ">=6.0" } }, + "node_modules/uncss/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/uncss/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/uncss/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/uncss/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, "node_modules/uncss/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -17432,6 +17385,15 @@ "node": ">=4" } }, + "node_modules/uncss/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/uncss/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -17452,6 +17414,24 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/uncss/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/uncss/node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/uncss/node_modules/postcss": { "version": "6.0.23", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", @@ -17489,6 +17469,18 @@ "node": ">=0.10.0" } }, + "node_modules/uncss/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/underscore": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", @@ -17509,9 +17501,9 @@ } }, "node_modules/underscore.string/node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", "dev": true }, "node_modules/union-value": { @@ -17654,13 +17646,13 @@ "dev": true }, "node_modules/url": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.1.tgz", - "integrity": "sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA==", + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", + "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", "dev": true, "dependencies": { "punycode": "^1.4.1", - "qs": "^6.11.0" + "qs": "^6.11.2" } }, "node_modules/url-parse-lax": { @@ -18005,15 +17997,18 @@ } }, "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { "isexe": "^2.0.0" }, "bin": { - "which": "bin/which" + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, "node_modules/which-boxed-primitive": { @@ -18043,17 +18038,16 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -18082,9 +18076,9 @@ } }, "node_modules/word-wrap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", - "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -18139,9 +18133,9 @@ "dev": true }, "node_modules/yaml": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", - "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz", + "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==", "dev": true, "engines": { "node": ">= 14" diff --git a/src/data/en.yml b/src/data/en.yml index 3556c4850a..bd220a0c83 100644 --- a/src/data/en.yml +++ b/src/data/en.yml @@ -33,6 +33,7 @@ tagline5: Processing community times JavaScript community tagline6: the power of Processing times the reach of JavaScript tagline7: The p5.js community stands in solidarity with Black Lives Matter. home: + search-bar: Search p5js.org start-creating: Start creating with the p5 Editor! p1xh1: Hello! p1x1: >- @@ -310,21 +311,21 @@ download: support-31: Bicoastal p5.js meetup at UCLA DMA and NYU ITP support-32: The Processing Foundation support-33: ' was founded in 2012 after more than a decade of work with the original Processing software. The Foundation’s mission is to promote software literacy within the visual arts, and visual literacy within technology-related fields — and to make these fields accessible to diverse communities. Our goal is to empower people of all interests and backgrounds to learn how to program and make creative work with code, especially those who might not otherwise have access to these tools and resources.' - support-17-alt: '' - support-18-alt: '' - support-19-alt: '' - support-20-alt: '' - support-21-alt: '' - support-22-alt: '' - support-23-alt: '' - support-24-alt: '' - support-25-alt: '' - support-26-alt: '' - support-27-alt: '' - support-28-alt: '' - support-29-alt: '' - support-30-alt: '' - support-31-alt: '' + support-17-alt: p5.js Contributors Conference at CMU STUDIO for Creative Inquiry in Pittsburgh + support-18-alt: Processing Fellow Saskia Freeke organizing Code Liberation x Processing workshops in London + support-19-alt: Learning to Teach, Teaching to Learn conference with SFPC + support-20-alt: Processing Foundation Fellow Cassie Tarakajian's workshop at Code Art Miami + support-21-alt: Taeyoon Choi and ASL interpretor at Signing Coders p5.js workshop + support-22-alt: Google Summer of Code kickoff participants + support-23-alt: Processing Foundation Fellow Cassie Tarakajian's workshop at Code Art Miami + support-24-alt: Luisa Pereira and Yeseul Song facilitate a sign language based p5.js workshop + support-25-alt: p5.js Contributors Conference at CMU STUDIO for Creative Inquiry in Pittsburgh + support-26-alt: Processing Fellow Digital Citizens Lab panel on STEM teaching at the International Center of Photography + support-27-alt: Participants at p5.js workshop in Santiago, Chile + support-28-alt: Claire Kearney-Volpe helping facilitate a sign language based p5.js workshop + support-29-alt: Processing Foundation Fellow DIY Girls run a creative coding program in Los Angeles + support-30-alt: Processing Fellow Digital Citizens Lab + support-31-alt: Bicoastal p5.js meetup at UCLA DMA and NYU ITP learn: learn-title: Learn teach-title2: Teach @@ -358,135 +359,135 @@ learn: labeling-canvases-intro-3: functions in your code so your canvases are readible by screen readers and other assistive technology. labeling-canvases-what-is-labeling: What is screen reader labeling? labeling-canvases-what-is-labeling-1: >- - The canvas HTML element compresses the visuals created by your p5 code into a bitmap (a rastered graphic composed of pixels). This - bitmap on its own doesn't provide any significant meaning or description about its contents to - screen readers. That’s why the p5.js describe(), - describeElement(), gridOutput(), + The canvas HTML element compresses the visuals created by your p5 code into a bitmap (a rastered graphic composed of pixels). This + bitmap on its own doesn't provide any significant meaning or description about its contents to + screen readers. That’s why the p5.js describe(), + describeElement(), gridOutput(), and textOutput() - functions exist— these allow you to manually add screen reader-accessible descriptions to your + functions exist— these allow you to manually add screen reader-accessible descriptions to your code so that screen reader technologies can describe the canvas’ content in a meaningful way. labeling-canvases-what-is-labeling-2: >- - Because a screen reader cannot naturally interpret the contents of a canvas bitmap, these functions + Because a screen reader cannot naturally interpret the contents of a canvas bitmap, these functions add labels into your code that instruct the screen reader on how to describe certain elements within your canvas. labeling-canvases-what-is-labeling-3: >- - For more information about p5.js screen reader accessibility, please read + For more information about p5.js screen reader accessibility, please read labeling-canvases-available-labels: Screen reader labels for p5.js labeling-canvases-available-labels-1: p5.js offers four different functions for labeling your canvas labeling-canvases-available-labels-li-1: >- - describe() provides an overall description of the canvas contents. This function's parameters include: text, + describe() provides an overall description of the canvas contents. This function's parameters include: text, which affords a string of text for the label; and display, an optional parameter to set the visibility of the label. - labeling-canvases-available-labels-li-2: >- - describeElement() describes a specific element or a specific grouping of elements in a canvas. - This function's parameters include: name, which affords a string naming the element described; text, which affords a string of text as the label description; + labeling-canvases-available-labels-li-2: >- + describeElement() describes a specific element or a specific grouping of elements in a canvas. + This function's parameters include: name, which affords a string naming the element described; text, which affords a string of text as the label description; and display, an optional parameter to set the visibility of the label. labeling-canvases-available-labels-li-3: >- - textOutput() generates a list providing a canvas description and its visual elements, including the canvas' size, - canvas color, as well as each visual element’s color, position, and the amount of area the element covers within the canvas. This function's only parameter is display, which is an optional + textOutput() generates a list providing a canvas description and its visual elements, including the canvas' size, + canvas color, as well as each visual element’s color, position, and the amount of area the element covers within the canvas. This function's only parameter is display, which is an optional parameter to set the visibility of the label. labeling-canvases-available-labels-li-4: >- - gridOutput(), like textOutput(), generates a list of the canvas and its (visual) elements, only this function - arranges its output in a HTML table that plots the spatial location of each shape within the canvas. It also provides a basic - description of the canvas, including the canvas' size, canvas color, the number of visual elements, and the different visual element types inside the canvas. This function's only parameter is display, which is an optional + gridOutput(), like textOutput(), generates a list of the canvas and its (visual) elements, only this function + arranges its output in a HTML table that plots the spatial location of each shape within the canvas. It also provides a basic + description of the canvas, including the canvas' size, canvas color, the number of visual elements, and the different visual element types inside the canvas. This function's only parameter is display, which is an optional parameter to set the visibility of the label. labeling-canvases-best-practices: Labeling best practices labeling-canvases-best-practices-what-requires-labeling: What requires labeling? labeling-canvases-best-practices-what-requires-labeling-1: >- - As a good rule of thumb, any visual element that is important to the overall context or purpose + As a good rule of thumb, any visual element that is important to the overall context or purpose of the canvas should be mentioned by the describe() and/or describeElement() functions. labeling-canvases-best-practices-what-requires-labeling-2: >- - Consider the overall purpose of the p5.js canvas and its contents in question, and label them in a way that makes - sense for the message, functionality, and/or purpose of the canvas and its elements. In the code block below, a heart is made within the canvas by placing two circles on top of a triangle. - Instead of individually labeling each shape used to make the heart, you should use one describeElement() function to describe + Consider the overall purpose of the p5.js canvas and its contents in question, and label them in a way that makes + sense for the message, functionality, and/or purpose of the canvas and its elements. In the code block below, a heart is made within the canvas by placing two circles on top of a triangle. + Instead of individually labeling each shape used to make the heart, you should use one describeElement() function to describe the overall shape you made. labeling-canvases-best-practices-what-requires-labeling-3: >- - If, at any point, an element in your canvas undergoes a change or alteration in its visual appearance (and this change is - important to the overall meaning and context of the canvas), it’s best to also update the describeElement() label when that + If, at any point, an element in your canvas undergoes a change or alteration in its visual appearance (and this change is + important to the overall meaning and context of the canvas), it’s best to also update the describeElement() label when that change occurs. labeling-canvases-best-practices-what-requires-labeling-4: >- - The canvas HTML element will also rasterize any text within it. Use the describeElement() function to translate any significant + The canvas HTML element will also rasterize any text within it. Use the describeElement() function to translate any significant text within your canvas. labeling-canvases-best-practices-what-requires-labeling-5: In short, any significant visual, textual, or animated information within the canvas should be labeled with a screen reader label. labeling-canvases-best-practices-dont-label: What DOESN'T need labeling labeling-canvases-best-practices-dont-label-1: >- - Individual interactive elements, such as HTML buttons, dropdowns, or inputs, do not need to be labeled. + Individual interactive elements, such as HTML buttons, dropdowns, or inputs, do not need to be labeled. In the DOM, these elements are built outside of the p5.js canvas, and therefore can be interpreted by screen readers. labeling-canvases-best-practices-dont-label-2: >- - This means the gridOutput() and textOutput() functions will not provide any information about these interactive inputs in their + This means the gridOutput() and textOutput() functions will not provide any information about these interactive inputs in their reports of the canvas, should you use them. labeling-canvases-best-practices-using-labels: How to use labels labeling-canvases-best-practices-using-labels-all-canvases: For all canvases labeling-canvases-best-practices-using-labels-all-canvases-1: >- - No matter the canvas’ purpose or contents, you should always use a label to supply an overall summary of the canvas. Most often, + No matter the canvas’ purpose or contents, you should always use a label to supply an overall summary of the canvas. Most often, you’ll use the describe() function for this summary. labeling-canvases-best-practices-using-labels-all-canvases-2: >- The summary should provide a general understanding of the visuals inside the canvas. labeling-canvases-best-practices-using-labels-simple: For simple, non-animated canvases labeling-canvases-best-practices-using-labels-simple-1: >- - For canvases without any changing, moving, or interactive elements, you may use either the describeElement(), - gridOutput(), or textOutput() - functions to label the canvas’ visual content. However, keep in mind that gridOutput() and textOutput() generate their information based on - the rudimentary code of the visual element, such as its size, color, and shape. These functions won’t be able to interpret your + For canvases without any changing, moving, or interactive elements, you may use either the describeElement(), + gridOutput(), or textOutput() + functions to label the canvas’ visual content. However, keep in mind that gridOutput() and textOutput() generate their information based on + the rudimentary code of the visual element, such as its size, color, and shape. These functions won’t be able to interpret your intention in using such a shape within a larger visual built using multiple shapes. labeling-canvases-best-practices-using-labels-simple-2: >- - Keep in mind the context and objective of the canvas’ contents when choosing which function(s) to use. Is it better to describe the flower - as eight circles and a rectangle, or as a flower with red petals and a green stem? What kind of labeling will provide the best + Keep in mind the context and objective of the canvas’ contents when choosing which function(s) to use. Is it better to describe the flower + as eight circles and a rectangle, or as a flower with red petals and a green stem? What kind of labeling will provide the best description of your canvas? labeling-canvases-best-practices-using-labels-simple-3: >- - If you are creating larger, multi-shaped visuals, then it would be best to use describeElement() to define each visual grouping + If you are creating larger, multi-shaped visuals, then it would be best to use describeElement() to define each visual grouping present within the canvas. labeling-canvases-best-practices-using-labels-interactive: For interactive or animated canvases labeling-canvases-best-practices-using-labels-interactive-1: >- - If your canvas contains any animated elements or elements that change their visual form via user input (the click of a button, a - dropdown selection, etc.), be sure that any descriptions of such elements update with their changes or animations. If you are using - textOutput() or gridOutput() to describe the contents of your canvas, so long as these functions are placed within the draw() function, they - will automatically update with the shape’s new information. If you are using describeElement(), use concatenation or another form of + If your canvas contains any animated elements or elements that change their visual form via user input (the click of a button, a + dropdown selection, etc.), be sure that any descriptions of such elements update with their changes or animations. If you are using + textOutput() or gridOutput() to describe the contents of your canvas, so long as these functions are placed within the draw() function, they + will automatically update with the shape’s new information. If you are using describeElement(), use concatenation or another form of variable input to update the element’s description. labeling-canvases-best-practices-using-labels-interactive-2: >- - If this interaction or animation is crucial to the overall purpose and/or message of the canvas, be sure to mention in either the describe() + If this interaction or animation is crucial to the overall purpose and/or message of the canvas, be sure to mention in either the describe() label or the individual element’s label that this element is (or can be) animated. labeling-canvases-best-practices-using-labels-interactive-3: >- - Naturally-interactive HTML elements, such as buttons or inputs, do not need to have a label. Instead, follow the proper role and ID - syntax for these elements when possible. For more information about how to properly label and ID HTML + Naturally-interactive HTML elements, such as buttons or inputs, do not need to have a label. Instead, follow the proper role and ID + syntax for these elements when possible. For more information about how to properly label and ID HTML interactive elements, visit Mozilla’s HTML: A good basis for accessibility. labeling-canvases-best-practices-using-labels-complex: For complex canvases labeling-canvases-best-practices-using-labels-complex-1: >- - The p5 functions listed above do not afford the more complicated features of ARIA labeling, such as aria-live or aria-atomic. - For advanced canvases, using vanilla ARIA labeling and custom-built fallback content might better convey the canvas’ - information to screen readers. Some cases where the canvas’ content cannot be accurately described (or represented) through p5.js’ supplied + The p5 functions listed above do not afford the more complicated features of ARIA labeling, such as aria-live or aria-atomic. + For advanced canvases, using vanilla ARIA labeling and custom-built fallback content might better convey the canvas’ + information to screen readers. Some cases where the canvas’ content cannot be accurately described (or represented) through p5.js’ supplied screen reader labels include: labeling-canvases-best-practices-using-labels-complex-ul-1: Canvases with content that changes extensively via external interactive elements. labeling-canvases-best-practices-using-labels-complex-ul-2: >- - Canvases with content that requires the user’s attention if it is changed or altered by another element, especially if that element is not + Canvases with content that requires the user’s attention if it is changed or altered by another element, especially if that element is not embedded in the canvas’ code. labeling-canvases-best-practices-using-labels-complex-ul-3: >- - Canvases with complex element layouts that cannot be accurately represented using the describe(), describeElement(), + Canvases with complex element layouts that cannot be accurately represented using the describe(), describeElement(), textOutput(), or gridOutput() functions. labeling-canvases-best-practices-using-labels-complex-2: >- - For more information about fallback content, visit W3C’s Wiki. For more information about complex ARIA labeling, + For more information about fallback content, visit W3C’s Wiki. For more information about complex ARIA labeling, visit Mozilla’s ARIA states and properties. labeling-canvases-how-not-to-use-labels: How NOT to use labels labeling-canvases-how-not-to-use-labels-sub: As a substitution for poorly organized code labeling-canvases-how-not-to-use-labels-sub-1: >- - Screen reader labels should not be used as a way of commenting your code. These labels + Screen reader labels should not be used as a way of commenting your code. These labels should only be used to summarize the resulting visual elements within a canvas. labeling-canvases-how-not-to-use-labels-info-overkill: As information overkill labeling-canvases-how-not-to-use-labels-info-overkill-1: If you overuse screen reader labels in your code, you may end up overly complicating the screen reader’s interpretation of the canvas rather than helping it. labeling-canvases-how-not-to-use-labels-info-overkill-2: Within reason, less is more with screen reader labeling. Be concise, accurate, and short with your label descriptions. labeling-canvases-how-not-to-use-labels-info-overkill-3: >- - Do not use both the textOutput() and gridOutput() functions in the same canvas. You only need to use one or the other to describe the canvas elements. - Using both will cause redundancy in the screen readers’ translation of your code. This also pertains to using textOutput() or + Do not use both the textOutput() and gridOutput() functions in the same canvas. You only need to use one or the other to describe the canvas elements. + Using both will cause redundancy in the screen readers’ translation of your code. This also pertains to using textOutput() or gridOutput() with additional describeElement() labels. It’s best to choose one strategy of labeling for your entire canvas, and stick with it. labeling-canvases-testing-labels: Testing labels during development labeling-canvases-testing-labels-1: >- - All these functions have a display parameter that either keeps its output only available to screen readers (FALLBACK) or presents the output as text + All these functions have a display parameter that either keeps its output only available to screen readers (FALLBACK) or presents the output as text adjacent to the canvas (LABEL). If you would like to see the output during development, add LABEL as the last parameter for the function. FALLBACK is the default parameter. labeling-canvases-testing-labels-2: >- - When testing your labels, consider the following questions: Do your canvas labels provide enough information for someone to understand its purpose? If this canvas + When testing your labels, consider the following questions: Do your canvas labels provide enough information for someone to understand its purpose? If this canvas exists on a website, or among any other content, would someone have a good understanding of how the canvas’ content interacts and/or pertains to the surrounding context? labeling-canvases-testing-labels-3: >- - In order to reduce redundancy, be sure to reset the display parameter to FALLBACK once you’ve tested the output. With LABEL active, screen readers will read the fallback text + In order to reduce redundancy, be sure to reset the display parameter to FALLBACK once you’ve tested the output. With LABEL active, screen readers will read the fallback text and the visible label text when focused on the canvas. labeling-canvases-note: Notice any errors or typos? Please let us know. If you would like to contribute to this tutorial, feel free to issue a pull request! using-local-server: 'How to set up a local server on Mac OSX, Windows, or Linux.' @@ -512,43 +513,43 @@ learn: getting-started-in-webgl-glossary-title: Glossary getting-started-in-webgl-coords-and-transform-title: Coordinates and Transformations getting-started-in-webgl-coords-and-transform: Basics of 3D setup, coordinates, and transformations - getting-started-in-webgl-coords-and-transform-p1x1: >- + getting-started-in-webgl-coords-and-transform-p1x1: >- p5.js is a powerful tool for creating 2D graphics but it's also capable of 3D graphics. This tutorial will introduce new concepts for creating 3D sketches with p5.js. - getting-started-in-webgl-coords-and-transform-toc-title: Table of Contents + getting-started-in-webgl-coords-and-transform-toc-title: Table of Contents getting-started-in-webgl-coords-and-transform-heading1: What is WebGL? - getting-started-in-webgl-coords-and-transform-p2x1: >- + getting-started-in-webgl-coords-and-transform-p2x1: >- WebGL is a library that gives us the tools we need to create 3D graphics within a web browser. To put it simply, it allows us to do all kinds of math to help arrange and display objects in 3D. p5.js makes it easier to work with WebGL through its special WebGL mode. - getting-started-in-webgl-coords-and-transform-p3x1: >- + getting-started-in-webgl-coords-and-transform-p3x1: >- Working in 3D introduces a lot of complexity, especially when a sketch involves motion, texture, lighting, and more. Luckily for us, computers have special hardware that is particularly well suited to performing those calculations, the graphics processing unit (GPU). The GPU is capable of processing many things simultaneously, which is especially important when we're dealing with pixels and many shapes in space. - getting-started-in-webgl-coords-and-transform-p4x1: >- + getting-started-in-webgl-coords-and-transform-p4x1: >- Let's get started by setting up the p5.js to use WebGL, by passing WEBGL as a third parameter into createCanvas(). getting-started-in-webgl-coords-and-transform-heading2: >- 3D Coordinate Space: Positioning in 3D getting-started-in-webgl-coords-and-transform-info1x1: >- - If coordinates systems aren't making sense it might be helpful to revisit the tutorial titled + If coordinates systems aren't making sense it might be helpful to revisit the tutorial titled getting-started-in-webgl-coords-and-transform-info1x2: >- Coordinate System and Shapes - getting-started-in-webgl-coords-and-transform-p5x1: >- + getting-started-in-webgl-coords-and-transform-p5x1: >- One of the most fundamental differences between working in 2D and working in 3D is the most obvious: there is one more dimension to work with. In addition to the horizontal and vertical position (x and y axes) of an - element in our drawing, 3D adds depth, the z-axis. - getting-started-in-webgl-coords-and-transform-p6x1: >- + element in our drawing, 3D adds depth, the z-axis. + getting-started-in-webgl-coords-and-transform-p6x1: >- When drawing in 2D, the point (0,0) is located at the top left corner of the screen. In WebGL mode, the origin of the sketch (0,0,0) is located in the middle of the screen. By default, the x-axis goes left-to-right, y-axis goes up-to-down, and the z-axis goes from further-to-closer. getting-started-in-webgl-coords-and-transform-heading3: >- Transformations: Position and Size of 3D Shapes getting-started-in-webgl-coords-and-transform-p7x1: >- - p5.js has a few methods, - getting-started-in-webgl-coords-and-transform-p7x2: >- - and - getting-started-in-webgl-coords-and-transform-p7x3: >- + p5.js has a few methods, + getting-started-in-webgl-coords-and-transform-p7x2: >- + and + getting-started-in-webgl-coords-and-transform-p7x3: >- that we can use to position and orient objects within space. Each of these methods affect what is known as the model matrix. Collectively these are known as the transformation of an object. These methods are available for both 2D and 3D drawing. @@ -567,10 +568,10 @@ learn: drawn after it. getting-started-in-webgl-coords-and-transform-p10x1: >- There are a few methods that can be used to rotate an object in 3D. Most of the time it's easiest to call - methods like + methods like getting-started-in-webgl-coords-and-transform-p10x2: >- - and - getting-started-in-webgl-coords-and-transform-p10x3: >- + and + getting-started-in-webgl-coords-and-transform-p10x3: >- , which each allow for rotation around a specific axis. Each of these methods accept a single argument specifying the angle of rotation. Try moving the sliders in the example above to see how rotation is performed on each axis. The code below shows each of these methods @@ -580,8 +581,8 @@ learn: angle. To use degrees, either convert degrees to radians using radians(), or use angleMode(DEGREES). getting-started-in-webgl-coords-and-transform-info2x1: >- - You can also use - getting-started-in-webgl-coords-and-transform-info2x2: >- + You can also use + getting-started-in-webgl-coords-and-transform-info2x2: >- , which allows you to specify which axis you'd like to rotate around using a vector as the second argument. getting-started-in-webgl-coords-and-transform-subheading3: >- @@ -594,7 +595,7 @@ learn: getting-started-in-webgl-coords-and-transform-p13x1: >- Something that can feel unpredictable at first is the order of transformations. Each transformation always affects the next one. For example, if rotate() is called, followed by translate(), the direction of that translation will - be affected by the rotation. The entire coordinate system is rotating and moving, not just the shape itself. + be affected by the rotation. The entire coordinate system is rotating and moving, not just the shape itself. getting-started-in-webgl-coords-and-transform-p14x1: >- Transformations can be performed in any order, but using translate, rotate, and then scale will be the most intuitive. Translation, followed by rotation, produces the effect of moving the shape and then rotating around that new location. @@ -603,22 +604,22 @@ learn: class="code">rotateY() and see how it affects where the object is drawn. getting-started-in-webgl-coords-and-transform-p16x1: >- - p5.js also has some methods that can control when transformations are applied: + p5.js also has some methods that can control when transformations are applied: getting-started-in-webgl-coords-and-transform-p16x2: >- and getting-started-in-webgl-coords-and-transform-p16x3: >- . push() and pop() make it easier to move objects - individually. The push() method saves the current transformations and - style settings. Then, after performing new transformations, the pop() method is used to restore us to the the original transformations. The result is that + individually. The push() method saves the current transformations and + style settings. Then, after performing new transformations, the pop() method is used to restore us to the the original transformations. The result is that whatever transformations or styling changes that are made between push() - and pop() are isolated to that portion of the code. If you don’t + and pop() are isolated to that portion of the code. If you don’t use push() and pop(), you have to keep track of whatever transformations have already taken place, which can get complicated and difficult to follow. Consider this following example, which places two boxes in our sketch. To position the second box - without push() and pop(), you have to account for the first transformation. This - can be a lot to keep track of in a more complex 3D scene. + without push() and pop(), you have to account for the first transformation. This + can be a lot to keep track of in a more complex 3D scene. getting-started-in-webgl-coords-and-transform-p17x1: >- Now, let's try the same code with push() and pop(). Now we can just translate the object where we want it, without @@ -634,29 +635,29 @@ learn: getting-started-in-webgl-coords-and-transform-p18x1: >- In the below example, try removing push() and pop() to see how the transformations affect the second object - that is drawn. + that is drawn. getting-started-in-webgl-coords-and-transform-heading5: >- Basic Shapes in 3D - getting-started-in-webgl-coords-and-transform-p19x1: >- + getting-started-in-webgl-coords-and-transform-p19x1: >- So far we have only been using box() but p5.js has seven different predefined geometries that you can use in your sketch. These basic predefined geometries are often referred to as 'primitives'. - getting-started-in-webgl-coords-and-transform-p20x1: >- - These primitive shape methods are: + getting-started-in-webgl-coords-and-transform-p20x1: >- + These primitive shape methods are: getting-started-in-webgl-coords-and-transform-p20x2: >- and - getting-started-in-webgl-coords-and-transform-p21x1: >- + getting-started-in-webgl-coords-and-transform-p21x1: >- It is also possible to create custom geometry, either from scratch or from 3D models created in another program. - More information about custom geometry can be found in the - getting-started-in-webgl-coords-and-transform-p21x2: >- - Custom Geometry tutorial + More information about custom geometry can be found in the + getting-started-in-webgl-coords-and-transform-p21x2: >- + Custom Geometry tutorial getting-started-in-webgl-coords-and-transform-heading6: >- Conclusion getting-started-in-webgl-coords-and-transform-p22x1: >- - By having basic control over a 3D coordinate space, transformations, + By having basic control over a 3D coordinate space, transformations, and basic shapes, you should be able to begin creating basic scenes in 3D. The tutorials that follow this in the Getting Started in WebGL series - will introduce custom geometries, allow you to tweak the appearance of + will introduce custom geometries, allow you to tweak the appearance of the scene, and introduce you to some basic shader programming to push your sketches further. getting-started-in-webgl-coords-and-transform-glossary-term1-title: GPU @@ -682,18 +683,18 @@ learn: is also capable of rendering complex custom geometry, both from 3D model files or from code. This tutorial will walk through how to import 3D models into p5.js, as well as how to create geometry from scratch. getting-started-in-webgl-custom-geometry-info1x1: >- - If you are new to 3D check out the - getting-started-in-webgl-custom-geometry-info1x2: >- + If you are new to 3D check out the + getting-started-in-webgl-custom-geometry-info1x2: >- tutorial. - getting-started-in-webgl-custom-geometry-toc-title: Table of Contents + getting-started-in-webgl-custom-geometry-toc-title: Table of Contents getting-started-in-webgl-custom-geometry-heading1: Loading 3D Models from File getting-started-in-webgl-custom-geometry-p2x1: >- Custom geometry can be imported into p5.js using either OBJ or STL files. These files are usually generated in a 3D modeling tool like Blender, which offers much more control when constructing a 3D scene. This is done using - the - getting-started-in-webgl-custom-geometry-p2x2: >- - method, which should be used within preload(). Then you can use the - getting-started-in-webgl-custom-geometry-p2x3: >- + the + getting-started-in-webgl-custom-geometry-p2x2: >- + method, which should be used within preload(). Then you can use the + getting-started-in-webgl-custom-geometry-p2x3: >- function to draw the model, as demonstrated in the example below. getting-started-in-webgl-custom-geometry-p3x1: >- A common issue that can come up with custom models is scaling. Depending on how the model is constructed, it @@ -702,10 +703,10 @@ learn: p5.js. getting-started-in-webgl-custom-geometry-info2x1: >- Note that there is currently no support for STL files with color, although you - can add color using materials or textures, which you can learn about in the - getting-started-in-webgl-custom-geometry-info2x2: >- - Styling and Appearance - getting-started-in-webgl-custom-geometry-info2x3: >- + can add color using materials or textures, which you can learn about in the + getting-started-in-webgl-custom-geometry-info2x2: >- + Styling and Appearance + getting-started-in-webgl-custom-geometry-info2x3: >- tutorial. getting-started-in-webgl-custom-geometry-heading2: Creating Basic Procedural Geometry getting-started-in-webgl-custom-geometry-p4x1: >- @@ -715,15 +716,15 @@ learn: getting-started-in-webgl-custom-geometry-p5x1: >- There are other methods that offer greater control of the geometry. A shape can be defined point-by-point using getting-started-in-webgl-custom-geometry-p5x2: >- - and + and getting-started-in-webgl-custom-geometry-p5x3: >- This following example shows how these methods can be used to construct a 3D shape mathematically. getting-started-in-webgl-custom-geometry-p6x1: >- - There is also a powerful class, - getting-started-in-webgl-custom-geometry-p6x1_: >- + There is also a powerful class, + getting-started-in-webgl-custom-geometry-p6x1_: >- , which p5.js uses internally for loadModel() but can also be used to - define custom geometry, offering tools that can be helpful in calculating faces and normals. + define custom geometry, offering tools that can be helpful in calculating faces and normals. getting-started-in-webgl-custom-geometry-p6x2: >- In 3D, a face refers to a collection of three or four points that make up a surface, giving our geometry the appearance of being solid. A normal is the direction that is perpendicular to the face, which helps p5.js calculate lighting across the surface. @@ -741,16 +742,16 @@ learn: getting-started-in-webgl-custom-geometry-glossary-term2-definition: A representation of geometry. getting-started-in-webgl-custom-geometry-glossary-term3-title: STL getting-started-in-webgl-custom-geometry-glossary-term3-definition: >- - STL (most often standing for "standard tesselation language") is a file format for 3D models. + STL (most often standing for "standard tesselation language") is a file format for 3D models. It only stores information about the geometry. getting-started-in-webgl-custom-geometry-glossary-term4-title: OBJ - getting-started-in-webgl-custom-geometry-glossary-term4-definition: >- + getting-started-in-webgl-custom-geometry-glossary-term4-definition: >- OBJ is an open file format that stores geometry data as well as some material and texture data. In p5.js, we are limited to its geometry, although an image can still be mapped to the surface using textures. getting-started-in-webgl-custom-geometry-glossary-term5-title: Faces getting-started-in-webgl-custom-geometry-glossary-term5-definition: The solid surface that is generated between three points. getting-started-in-webgl-custom-geometry-glossary-term6-title: Normals - getting-started-in-webgl-custom-geometry-glossary-term6-definition: The direction that is perpendicular to a face, which is often needed when calculating lighting or using materials. + getting-started-in-webgl-custom-geometry-glossary-term6-definition: The direction that is perpendicular to a face, which is often needed when calculating lighting or using materials. getting-started-in-webgl-custom-geometry-glossary-term7-title: Normalization getting-started-in-webgl-custom-geometry-glossary-term7-definition: Changing something so that it fits within a standard range. getting-started-in-webgl-appearance-title: Styling and Appearance @@ -759,20 +760,20 @@ learn: Creating in 3D is about more than just geometry. Cameras, lights, and materials are an important part of creating a visually interesting 3D scene. p5.js has a number of tools that make it possible to transform the appearance of our geometry. - getting-started-in-webgl-appearance-toc-title: Table of Contents + getting-started-in-webgl-appearance-toc-title: Table of Contents getting-started-in-webgl-appearance-heading1: Camera and View getting-started-in-webgl-appearance-p1x1: >- The camera is an essential piece of a 3D scene; it gives us the sense of space and dimension that we are often looking for in 3D. In p5.js, the WebGL mode provides us with a perspective camera by default, but we can - change this using - getting-started-in-webgl-appearance-p1x2: >- - or + change this using + getting-started-in-webgl-appearance-p1x2: >- + or getting-started-in-webgl-appearance-p2x1: >- A perspective camera skews objects so they appear to get smaller as they get further away, vanishing - at a single point in the distance. This is in contrast to an orthographic camera, where the - geometry stays the same size as it gets further away and has no vanishing point. + at a single point in the distance. This is in contrast to an orthographic camera, where the + geometry stays the same size as it gets further away and has no vanishing point. getting-started-in-webgl-appearance-p3x1: >- - One setting that we can change with a perspective camera is the field-of-view, or FOV. This is the + One setting that we can change with a perspective camera is the field-of-view, or FOV. This is the term that is used to describe how much our camera can see, measured as an angle. In simple examples it might appear to have a zoom-like effect, but it also affects the way that shapes change size in the distance. getting-started-in-webgl-appearance-p4x1: >- @@ -783,8 +784,8 @@ learn: of selectively including geometry is sometimes referred to as 'clipping'. getting-started-in-webgl-appearance-p5x1: >- Cameras can be moved by passing arguments to camera(), but constantly moving and adjusting the camera in code can be tedious, especially when you are experimenting with - ideas. p5.js has a special camera method, - getting-started-in-webgl-appearance-p5x2: >- + ideas. p5.js has a special camera method, + getting-started-in-webgl-appearance-p5x2: >- , that can be used to zoom, pan, and position the camera using the mouse. getting-started-in-webgl-appearance-p6x1: >- @@ -814,7 +815,7 @@ learn: when you want flat, unshaded geometry. getting-started-in-webgl-appearance-p8x1: >- These lights should be used within draw(). Up to 5 lights can be used in a scene - simultaneously, allowing you to compose a scene with varied and complex lighting sources. + simultaneously, allowing you to compose a scene with varied and complex lighting sources. Try checking and unchecking the boxes in the following interactive example to see how lighting can be blended together. For each active light source there are visual indicators of their position or direction, just know that these are here for illustrative purposes! @@ -827,21 +828,21 @@ learn: varied, making objects shiny, rough, or even textured with images. getting-started-in-webgl-appearance-p11x1: >- In this interactive example, try selecting each of the different materials to see how they - affect the appearance of the geometry. You can move your mouse and see the effect that a directional light has on the material. + affect the appearance of the geometry. You can move your mouse and see the effect that a directional light has on the material. getting-started-in-webgl-appearance-p12x1: >- Try commenting and uncommenting the different lights in this example: getting-started-in-webgl-appearance-p13x1: >- More custom materials can be achieved through using texture(). In short, these are images that can be mapped onto the surface of a geometry. These textures can be imported from an image and can even be - generated within code using shaders. To map a texture to your geometry, use loadImage() + generated within code using shaders. To map a texture to your geometry, use loadImage() within preload(), then call texture() before drawing your shape. getting-started-in-webgl-appearance-info1x1: >- - While they are useful for changing the appearance of your geometry, shaders are a bit beyond the scope of this - tutorial, so make sure to check out the - getting-started-in-webgl-appearance-info1x2: >- + While they are useful for changing the appearance of your geometry, shaders are a bit beyond the scope of this + tutorial, so make sure to check out the + getting-started-in-webgl-appearance-info1x2: >- Introduction to Shaders - getting-started-in-webgl-appearance-info1x3: >- - page when you are ready. + getting-started-in-webgl-appearance-info1x3: >- + page when you are ready. getting-started-in-webgl-appearance-heading4: Conclusion getting-started-in-webgl-appearance-p14x1: >- Being able to have control over the camera, lighting, and materials will give you much more flexibility @@ -873,9 +874,9 @@ learn: things. They take advantage of the GPU to process many pixels at once, making them fast and particularly well suited for certain tasks, like generating noise, applying filters like blur, or shading polygons. Shader programming can feel daunting at - first, requiring a different approach than the 2D drawing of p5.js. This document will outline the basics + first, requiring a different approach than the 2D drawing of p5.js. This document will outline the basics of shader programming and point you towards other resources. - getting-started-in-webgl-shaders-toc-title: Table of Contents + getting-started-in-webgl-shaders-toc-title: Table of Contents getting-started-in-webgl-shaders-heading1: Setup getting-started-in-webgl-shaders-p1x1: >- p5.js is a great tool for working with shaders because it handles a lot of the WebGL setup so you can focus on @@ -915,7 +916,7 @@ learn: with the shader. This attribute is a vec3, meaning it contains a value for x, y, and z. Attributes are special variable types that are - only used in the vertex shader and are typically provided by p5.js. When you use p5.js methods like rect() or + only used in the vertex shader and are typically provided by p5.js. When you use p5.js methods like rect() or vertex(), p5.js passes the vertex information to the shader automatically. getting-started-in-webgl-shaders-p8x1: >- All vertex shaders require a function, main(), within which we position our vertices. In @@ -1376,7 +1377,7 @@ learn: curves-bezier-curves-title: 'Bézier Curves' curves-bezier-curves-p1x1: >- Though better than arcs, spline curves don’t seem to have those graceful, swooping curves that say “art.” For those, you need to draw Bézier curves with the bezier() function. - As with spline curves, the bezier() function has eight parameters, but the order is different. The first two and last two parameters are the start and end points while middle + As with spline curves, the bezier() function has eight parameters, but the order is different. The first two and last two parameters are the start and end points while middle four points are the control points. curves-bezier-curves-p2x1: ' bezier(x1, y1, cpx1, cpy1, cpx2, cpy2, x2, y2); ' curves-bezier-curves-p3x1: >- @@ -1423,7 +1424,7 @@ libraries: p5.collide2D provides tools for calculating collision detection for 2D geometry with p5.js. CO2Budget.js: >- - This library opens up the idea of the CO2-Countdown to creative communities of + This library opens up the idea of the CO2-Countdown to creative communities of coders, designers and artists associated with p5*js and JavaScript. p5.createloop: Create animation loops with noise and GIF exports in one line of code. p5.dimensions: >- @@ -1448,7 +1449,7 @@ libraries: p5.js sketches. p5.gui: p5.gui generates a graphical user interface for your p5.js sketches. p5.j5: >- - The full Johnny-Five.io Nodebots/robotics library for Arduino and other + The full Johnny-Five.io Nodebots/robotics library for Arduino and other microcontrollers made to work directly in browser with WebSerial or WebUSB. p5.localmessage: >- p5.localmessage provides a simple interface to send messages locally from @@ -1462,7 +1463,7 @@ libraries: learning algorithms and models in the browser. numero: A friendly and intuitive math library for p5.js. pdl.library: >- - A set of functions and classes to create interactive diagrams for teaching + A set of functions and classes to create interactive diagrams for teaching and learning physics. p5play: >- p5play is for creating interactive art and games with the Box2D physics engine. @@ -1472,7 +1473,7 @@ libraries: that are defined through user structures or JSON input and user-draw functions. p5.party: >- - p5.party is a library for easily creating networked multiuser games, apps, + p5.party is a library for easily creating networked multiuser games, apps, and sketches. p5.Polar: >- p5.Polar provides mathematical abstractions making it easy to create @@ -1502,7 +1503,7 @@ libraries: p5.shape.js: A library built to add more simple shapes to the p5.js framework. P5.slides: p5.slides is a presentation platform written in p5.js. p5snap: >- - p5snap is a command-line interface that creates and saves snapshots + p5snap is a command-line interface that creates and saves snapshots of a p5 sketch on an interval. p5.speech: >- p5.speech provides simple, clear access to the Web Speech and Speech @@ -1513,7 +1514,7 @@ libraries: p5.tiledmap provides drawing and helper functions to include maps in your sketches. TiledPlay: >- - A small library to bridge the functionality of p5.js, p5.play.js and + A small library to bridge the functionality of p5.js, p5.play.js and p5.tiled.js to easily create 2D platformer games using javascript. p5.touchgui: A multi-touch and mouse GUI Library for p5.js. tramontana: >- @@ -1521,10 +1522,10 @@ libraries: tramontana Board, ...) to create interactive environments, interactive spaces or just prototype experiences at scale and in space. TurtleGFX: >- - TurtleGFX allows to code with Turtle Graphics in JavaScript. + TurtleGFX allows to code with Turtle Graphics in JavaScript. Great for education and creative coding. p5.tween: >- - With p5.tween you can create easily animations as tween for your objects and + With p5.tween you can create easily animations as tween for your objects and shapes. vida: >- Vida is a simple library that adds camera (or video) based motion detection @@ -1533,37 +1534,37 @@ libraries: p5.voronoi provides a set of tools to draw and utilize voronoi diagrams in your p5.js sketches. p5.wasm: >- - p5.wasm is an addon library written in Rust and compiled to WebAssembly that + p5.wasm is an addon library written in Rust and compiled to WebAssembly that implements common functions found in p5.js. p5.xr: A library for creating VR and AR sketches with p5. p5.3D: 3D Text and Images in WebGL. WEBMIDI.js: Easily send and receive MIDI messages from p5. p5.buttons: A library that aims to de-complicate scripting buttons. p5.button: >- - Small one function library to design and render simple or styled buttons + Small one function library to design and render simple or styled buttons directly in p5.js canvas. p5.math.js: >- - The mathematical operations of JavaScript have been converted into simple + The mathematical operations of JavaScript have been converted into simple human language so that they can understand really quickly. p5LiveMedia: Real time audio, video, canvas, and data sharing. P5.Create: >- - P5.Create is a library which provides save, animation, collision and tag + P5.Create is a library which provides save, animation, collision and tag functions designed for efficient game creation. p5.quadrille.js: p5.js quadrille library. p5.animS: p5.animS animates p5.js shapes by rendering their drawing processes. I_AM_UI: A UserInterface library. simple.js: Helper functions and defaults for young and new coders. p5.timer: >- - This library performs asynchronous timing functions like countdowns, - one-shot timers, % time elapsed and encapsulates the millis() function and - other related calculations that often clog up your code. + This library performs asynchronous timing functions like countdowns, + one-shot timers, % time elapsed and encapsulates the millis() function and + other related calculations that often clog up your code. c2.js: >- - c2.js is a JavaScript library for creative coding based on computational + c2.js is a JavaScript library for creative coding based on computational geometry, physics simulation, evolutionary algorithm and other modules. Concave Hull: Calculate a Concave Hull from a set of points in 2D space. p5.joystick: Connect and play with physical joysticks p5.webserial: >- - A library for interacting with Serial devices from within the browser, + A library for interacting with Serial devices from within the browser, based on Web Serial API (available on Chrome and Edge). p5.pattern: A pattern drawing library for p5.js. p5.jacdac: Plug-and-play micro-controllers for p5js @@ -1572,23 +1573,23 @@ libraries: p5.filterRenderer: >- A library for p5.js WebGL mode to draw with depth blur and shadows. p5.capture: >- - p5.capture provides a simple GUI to easily record p5.js animations and output + p5.capture provides a simple GUI to easily record p5.js animations and output video files in various formats (webm, gif, mp4, png, jpg, and webp). p5.input: Adds more key support for p5.js. p5.web-serial: >- - A p5.js library for using the Web Serial API to access devices like Arduino, + A p5.js library for using the Web Serial API to access devices like Arduino, no setup required. p5.wasm.core: A web assembly core for p5.js. p5.videorecorder: Record your canvas as a video file with audio. p5.mapper: >- - p5.mapper is a projection mapping library for p5.js. This library makes it + p5.mapper is a projection mapping library for p5.js. This library makes it easy to code and keystone interactive, algorithmic sketches. p5.teach: >- - A beginner friendly math animation library for p5.js. Created with mentorship + A beginner friendly math animation library for p5.js. Created with mentorship from Nick McIntyre and Jithin KS. p5.fab: p5.fab controls digital fabrication machines from p5.js. p5.utils: >- - A set of utilities and additional features for my creative coding class aiming + A set of utilities and additional features for my creative coding class aiming to help students. using-a-library-title: Using a library using-a-library1: >- @@ -1858,16 +1859,16 @@ community: p5js-community-event-title: p5.js Community Events 2022-p5js-access-day-title: p5.js Access Day 2022 2022-p5js-access-day-date: May 21, 2022 - 2022-p5js-access-day-organizer: Organizer and curator - 2022-p5js-access-day-coordinator: Event Coordinator and Video Producer + 2022-p5js-access-day-organizer: Organizer and curator + 2022-p5js-access-day-coordinator: Event Coordinator and Video Producer 2022-p5js-access-day-description: >- - The p5.js Access Day is a virtual conference to talk about access in - open-source software for the arts (OSSTA) and greater issues beyond the software. - The day-long online event features four themed-sessions — Critical Web - Accessibility, Disability Arts, Access & Community Building, and Access - via Translation. It provides space for contributors of p5.js and experienced - practitioners from outside OSSTA projects to share their knowledge, perspectives, - and dreams for building greater access to technical and arts spaces. + The p5.js Access Day is a virtual conference to talk about access in + open-source software for the arts (OSSTA) and greater issues beyond the software. + The day-long online event features four themed-sessions — Critical Web + Accessibility, Disability Arts, Access & Community Building, and Access + via Translation. It provides space for contributors of p5.js and experienced + practitioners from outside OSSTA projects to share their knowledge, perspectives, + and dreams for building greater access to technical and arts spaces. 2022-p5js-access-day-recap-video: p5.js Access Day 2022 Recap Video 2022-p5js-access-day-recap-video-asl: p5.js Access Day 2022 Recap Video with ASL Interpretation 2022-p5js-access-day-moderator: Moderator @@ -1967,6 +1968,7 @@ examples: Arrays: Arrays Control: Control Image: Image + Image_Processing: Image Processing Color: Color Math: Math Simulate: Simulate @@ -2369,7 +2371,7 @@ teach: teach-case3-content4: education teach-case3-content5: 'Syllabus' teach-case4-title: Calculadora de IMC - teach-case4-lead-name: Dayana + teach-case4-lead-name: Dayana teach-case4-content1: 'Youtube' teach-case4-content1-1: '00h: 30min' teach-case4-content2: Inscritos no canal do youtube, houveram 18 vizializações. @@ -2381,13 +2383,13 @@ teach: teach-case5-image-alt: Screen shot of the teacher is teaching on p5.js web editor online teach-case5-content1: 'https://www.twitch.tv/snowflakeFede' teach-case5-content1-1: 'every saturday 19:00-20:30PM (timezone: GMT-3)' - teach-case5-content2: Soy yo nada más, pero me gusta invitar personas para programar en vivo cuando puedo. + teach-case5-content2: Soy yo nada más, pero me gusta invitar personas para programar en vivo cuando puedo. teach-case5-content3: ' Elementary' teach-case5-content4: Hacer que más personas aprendan sobre el arte creativo y, a su vez, poder ir acercandolas al mundo de la matemática, todo en español. El curso está fuertemente inspirado en "The coding train" pero con acercamiento que va a la matemática y el arte creativo en su conjunto. teach-case5-content5: 'Sólo una colección de p5js donde subo los ejemplos que se hacen en vivo, acá:' teach-case6-title: '50+ CODING CLUB: MY VERY FIRST CODE ART WITH HANDY(🖐) AND FAMILY(👩‍👧‍👦)' teach-case6-lead-name: Inhwa Yeom - teach-case6-image-alt: In-class photo + teach-case6-image-alt: In-class photo teach-case6-content1: 'Asia Culture Center, Gwangju, South Korea' teach-case6-content1-1: '27/11/2020~ 12/2020 every Friday and Saturday 2:00-4:00' teach-case6-content2: People who identify themselves as older adults (average age = 62.54), and their companions of all ages. @@ -2403,7 +2405,7 @@ teach: teach-case7-content3: ' Elementary' teach-case7-content4: get to know p5js and its functionalities (dom, audio, webgl etc.) teach-case7-content5: 'github readme : this a text tutorial to read in French.' - teach-case8-title: I am starting a new one - + teach-case8-title: I am starting a new one - teach-case8-lead-name: Brinder Soin teach-case8-content1: 'New Jersey' teach-case8-content1-1: '12/28 - 12/30' @@ -2413,7 +2415,7 @@ teach: teach-case8-content5: 'Teacher created notes and worksheets and IDE p5 web editor' teach-case9-title: Programación Aplicada al Arte Visual e Interactivo teach-case9-lead-name: Sebastián Zavatarelli - teach-case9-image-alt: A zoom class sharing p5.js web editor + teach-case9-image-alt: A zoom class sharing p5.js web editor teach-case9-content1: 'Buenos Aires, Argentina. Plataforma ZOOM' teach-case9-content1-1: '15/09/2020 ~ 14/10/2020 every Wednesday 6:30-9:00PM)' teach-case9-content2: Alrededor de 10 personas. La mayoría mujeres. @@ -2424,7 +2426,7 @@ teach: teach-case10-lead-name: Andreas Refsgaard teach-case10-content1: 'Copenhagen, Denmark' teach-case10-content1-1: '22/02/2020' - teach-case10-content2: Participants were people . A wide range of people from + teach-case10-content2: Participants were people . A wide range of people from teach-case10-content3: ' Intermediate' teach-case10-content4: Get creatives, designers, artists and other people who don't typically use code introduced to p5.js teach-case10-content5: 'Website, p5.js editor' @@ -2436,16 +2438,16 @@ teach: teach-case11-content2: Deaf and Hard of Hearing students age 10~50 who live in NYC. teach-case11-content3: ' Elementary' teach-case11-content4: To help Deaf and Hard of Hearing students learn about computer programming through playful exercises. To make ASL tutorial of basic coding concepts. - teach-case11-content5: 'We used p5.js Web editor and code examples on the website. + teach-case11-content5: 'We used p5.js Web editor and code examples on the website. We also used dice, playing cards and various paper tools to help students learn about coding concepts. ' teach-case12-title: Digital Weaving & Physical Computing Workshop Series teach-case12-lead-name: Qianqian Ye teach-case12-image-alt: In-class photo teach-case12-content1: 'Women’s Center for Creative Work, Los Angeles, CA, US' teach-case12-content1-1: '19/10/2019 ~ 02/11/2019, every Saturday 3-6pm' - teach-case12-content2: 15 women and non-binary artists, designer, makers, programers. + teach-case12-content2: 15 women and non-binary artists, designer, makers, programers. teach-case12-content3: ' Elementary' - teach-case12-content4: Over the course of three workshops, we’ll draw and create patterns using p5.js, an open-source graphical library; we’ll learn and apply computational concepts to transform patterns and finally, we’ll bring a weaving to life with electronic microcontrollers. + teach-case12-content4: Over the course of three workshops, we’ll draw and create patterns using p5.js, an open-source graphical library; we’ll learn and apply computational concepts to transform patterns and finally, we’ll bring a weaving to life with electronic microcontrollers. teach-case12-content5: 'Materials: Slides, p5.js web editor, pen and paper to draw pattern, physical pattern weaving tool Methods: small team session' teach-case12-content5-1: "Slides we used for the workshop:" diff --git a/src/data/es.yml b/src/data/es.yml index f8cebfeab5..9070100b0f 100644 --- a/src/data/es.yml +++ b/src/data/es.yml @@ -33,6 +33,7 @@ tagline5: la comunidad de Processing x la comunidad de JavaScript tagline6: el poder de procesamiento de Processing x el alcance de JavaScript tagline7: La comunidad de p5.jS se solidariza con Black Lives Matter. home: + search-bar: Buscar en p5js.org start-creating: ¡Empieza a crear con el Editor de p5! p1xh1: ¡Hola! p1x1: >- @@ -269,7 +270,7 @@ download: support-title: ¡Apoya a p5.js! support-options: Opciones de apoyo support-1: >- - ¡Necesitamos tu ayuda! p5.js es un software gratuito y de código abierto. + ¡Necesitamos tu ayuda! p5.js es un software gratuito y de código abierto. Queremos hacer nuestra comunidad lo más abierta e inclusiva posible. Puedes apoyar nuestro trabajo haciendo una donación a support-2: >- @@ -323,21 +324,33 @@ download: support-31: Junta bicostal de p5.js entre UCLA DMA y NYU ITP support-32: The Processing Foundation support-33: ' fue fundada en 2012 después de más de de una década de trabajo con el software original de Processing. La misión de la fundación es promover la alfabetización de software dentro de las artes visuales, y la alfabetización visual dentro de las disciplinas relacionadas a la tecnología - y hacer estas disciplinas accesibles a comunidades más diversas. Nuestra meta es empoderar a gente de diversos intereses para que aprenda a programar y que realice trabajo creativo con código, especialmente aquellos que de otra forma no hubieran tenido acceso a estas herramientas y recursos.' - support-17-alt: '' - support-18-alt: '' - support-19-alt: '' - support-20-alt: '' - support-21-alt: '' - support-22-alt: '' - support-23-alt: '' - support-24-alt: '' - support-25-alt: '' - support-26-alt: '' - support-27-alt: '' - support-28-alt: '' - support-29-alt: '' - support-30-alt: '' - support-31-alt: '' + support-17-alt: >- + p5.js Contributors Conference at CMU STUDIO for Creative Inquiry in + Pittsburgh + support-18-alt: >- + Processing Fellow Saskia Freeke organizing Code Liberation x Processing + workshops in London + support-19-alt: 'Learning to Teach, Teaching to Learn conference with SFPC' + support-20-alt: Processing Foundation Fellow Cassie Tarakajian's workshop at Code Art Miami + support-21-alt: Taeyoon Choi and ASL interpretor at Signing Coders p5.js workshop + support-22-alt: Google Summer of Code kickoff participants + support-23-alt: Processing Foundation Fellow Cassie Tarakajian's workshop at Code Art Miami + support-24-alt: >- + Luisa Pereira and Yeseul Song facilitate a sign language based p5.js + workshop + support-25-alt: >- + p5.js Contributors Conference at CMU STUDIO for Creative Inquiry in + Pittsburgh + support-26-alt: >- + Processing Fellow Digital Citizens Lab panel on STEM teaching at the + International Center of Photography + support-27-alt: 'Participants at p5.js workshop in Santiago, Chile' + support-28-alt: Claire Kearney-Volpe helping facilitate a sign language based p5.js workshop + support-29-alt: >- + Processing Foundation Fellow DIY Girls run a creative coding program in Los + Angeles + support-30-alt: Processing Fellow Digital Citizens Lab + support-31-alt: Bicoastal p5.js meetup at UCLA DMA and NYU ITP learn: learn-title: Aprender teach-title2: Enseñar @@ -425,7 +438,7 @@ learn: href="https://p5js.org/reference/#/p5/textOutput">textOutput(), generates a list of the canvas and its (visual) elements, only this function arranges its output in a HTML table that plots the spatial - location of each shape within the canvas. It also provides a basic + location of each shape within the canvas. It also provides a basic description of the canvas, including the canvas' size, canvas color, the number of visual elements, and the different visual element types inside the canvas. This function's only parameter is gridOutput() and textOutput() functions - will not provide any information about these interactive inputs in their + will not provide any information about these interactive inputs in their reports of the canvas, should you use them. labeling-canvases-best-practices-using-labels: How to use labels labeling-canvases-best-practices-using-labels-all-canvases: For all canvases @@ -492,15 +505,14 @@ learn: labeling-canvases-best-practices-using-labels-simple-1: >- For canvases without any changing, moving, or interactive elements, you may use either the describeElement(), + href="https://p5js.org/reference/#/p5/describeElement">describeElement(), gridOutput(), or textOutput() - functions to label the canvas’ visual content. However, keep in mind that gridOutput() and textOutput() functions + to label the canvas’ visual content. However, keep in mind that gridOutput() + and textOutput() generate their information based on the rudimentary code of the visual element, such as its size, color, and shape. These functions won’t be able to interpret @@ -550,7 +562,7 @@ learn: The p5 functions listed above do not afford the more complicated features of ARIA labeling, such as aria-live or aria-atomic. For advanced canvases, using vanilla ARIA - labeling and custom-built fallback content might better convey the canvas’ + labeling and custom-built fallback content might better convey the canvas’ information to screen readers. Some cases where the canvas’ content cannot be accurately described (or represented) through p5.js’ supplied screen reader labels include: @@ -566,7 +578,7 @@ learn: using the describe(), describeElement(), + href="https://p5js.org/reference/#/p5/describeElement">describeElement(), textOutput(), or - Asegúrese de que el tema elegido no haya sido cubierto previamente. writing-a-tutorial-how-start-2: Revisar los recursos disponibles. + Comprueba que el tema que hayas propuesto no haya sido cubierto antes. + Puedes encontrar writing-a-tutorial-how-start-3: >- Si su tema ya está en progreso, considere contribuir al trabajo existente y ayudar a prepararlo para su publicación. No dude en comunicarse con nosotros para obtener orientación. writing-a-tutorial-how-start-4: >- @@ -1450,9 +1464,7 @@ learn: provienen de la página con extensión .eps con todo el contenido del tutorial. En su lugar, van a estar localizados en la página html que está procesando tu bosquejo (en este caso se llama embed.html). - writing-a-tutorial-iframe-11: >- - Más información sobre cómo incorporar bosquejos de p5.js se pueden - encontrar + writing-a-tutorial-iframe-11: Más información sobre cómo incorporar bosquejos de p5.js se pueden encontrar writing-a-tutorial-embed-iframe-12: aquí. writing-a-tutorial-finishing-title: Los últimos detalles writing-a-tutorial-finishing-1: >- @@ -1482,9 +1494,9 @@ learn: , que define el color del lienzo en nuestra pantalla. A continuación hay un ejemplo. color-code1: |- - background(255); // Define el color del lienzo como blanco - stroke(0); // Define el contorno de la forma (stroke) como negro - fill(150); // Define el interior de la forma (fill) como gris + background(255); // Define el color del lienzo como blanco + stroke(0); // Define el contorno de la forma (stroke) como negro + fill(150); // Define el interior de la forma (fill) como gris rect(50,50,75,100); // Dibuja un rectángulo color-p3x1: >- Tanto el contorno como el interior de la forma pueden ser eliminados con las @@ -1519,8 +1531,8 @@ learn: Lo anterior presupone que los colores son tan brillantes como sea posible, pero por supuesto, hay un rango de color disponible, por lo que un poco de rojo más un poco de verde y azul genera gris, mientras que un poco de rojo - más un poco de azul genera púrpura oscuro. - Si bien puede tomar tiempo acostumbrarte a esto, mientras más programes y experimentes con color RGB, más rápido se hará instintivo, como mezclar pintura con los dedos. + más un poco de azul genera púrpura oscuro. + Si bien puede tomar tiempo acostumbrarte a esto, mientras más programes y experimentes con color RGB, más rápido se hará instintivo, como mezclar pintura con los dedos. Y por supuesto no puedes decir "Mezcla un poco de de rojo con un poco de azul", debes proveer una cantidad. Así como en la escala de grises, los elementos de color son expresados en rangos desde 0 (ausencia del color) hasta 255 (presencia máxima del color), y son listados en orden R (rojo), G (verde) y B (azul). Obtendrás el resultado de mezclar color RGB por experimentación, pero en adelante cubriremos mediante ejercicios colores más comunes. color-transparency-title: Transparencia color-transparency-p1x1: >- @@ -1813,7 +1825,7 @@ libraries: algoritmos de inteligencia artificial y machine learning desde el navegador. numero: Una biblioteca matemática fácil e intuitiva para p5.js pdl.library: >- - Un conjunto de funciones y clases para crear diagramas interactivos para + Un conjunto de funciones y clases para crear diagramas interactivos para enseñar y aprender fisica. p5play: >- p5play es para crear arte interactivo y video juegos con el motor de física @@ -1824,7 +1836,7 @@ libraries: controlados por datos que son definidos a través de estructuras de usuario o entrada JSON y funciones de usuario para dibujar. p5.party: >- - p5.party es una librería para la facil creación de juegos multiusuario + p5.party es una librería para la facil creación de juegos multiusuario conectados en red, aplicaciones y bocetos. p5.Polar: >- p5.Polar provee abstracciones matematicas haciendo más facil crear hermosos, @@ -1850,7 +1862,7 @@ libraries: Dibujar primitivas 2D con una apariencia poco acabada. Creada por Janneck Wullschleger, basada en un puerto de la biblioteca original de Processing. p5.serialport: >- - p5.serial habilita la comunicación serial entre dispositivos que soporten + p5.serial habilita la comunicación serial entre dispositivos que soporten serial (RS-232) y a los bocetos p5 correr en el navegador. Shape5: >- Shape5 es una libreria primitiva de graficos 2D para estudiante de primaria @@ -2217,12 +2229,8 @@ community: access 2019cc_11: Mujer al micrófono habla con participantes en un aula 2019cc_12: Hombre al micrófono habla con participantes - 2019cc_13: >- - Participantes sentados en un aula escuchando atentamente a quienes - presentan - 2019cc_14: >- - Participantes sentados en un aula escuchando atentamente a quienes - presentan + 2019cc_13: Participantes sentados en un aula escuchando atentamente a quienes presentan + 2019cc_14: Participantes sentados en un aula escuchando atentamente a quienes presentan 2019cc_15: >- Mujer al micrófono habla con participantes sobre los límites sagrados del en proyecto detrás suyo @@ -2254,7 +2262,7 @@ community: 2022-p5js-access-day-organizer: Organizer and curator 2022-p5js-access-day-coordinator: Event Coordinator and Video Producer 2022-p5js-access-day-description: >- - The p5.js Access Day is a virtual conference to talk about access in + The p5.js Access Day is a virtual conference to talk about access in open-source software for the arts (OSSTA) and greater issues beyond the software. The day-long online event features four themed-sessions — Critical Web Accessibility, Disability Arts, Access & Community Building, @@ -2362,6 +2370,7 @@ examples: Arrays: Arreglos Control: Control Image: Imagen + Image_Processing: Procesamiento de imagen Color: Color Math: Matemática Simulate: Simulación diff --git a/src/data/examples/assets/sea.jpg b/src/data/examples/assets/sea.jpg new file mode 100644 index 0000000000..f7e251d85b Binary files /dev/null and b/src/data/examples/assets/sea.jpg differ diff --git a/src/data/examples/assets/uniforms.frag b/src/data/examples/assets/uniforms.frag index bf2ad1bc5d..b344fe7cd8 100644 --- a/src/data/examples/assets/uniforms.frag +++ b/src/data/examples/assets/uniforms.frag @@ -54,7 +54,7 @@ vec4 poly(float x, float y, float size, float sides, float rotation, vec3 col){ void main() { - vec2 center = resolution * 1.0; // draw the shape at the center of the screen + vec2 center = resolution * 0.5; // draw the shape at the center of the screen float size = resolution.y * 0.5; // make the shape a quarter of the screen height float sides = mod(floor(mouse), 7.0) + 3.0; // slowly increase the sides, when it reaches 10 sides, go back down to 3 float rotation = time; // rotation is in radians, but for time it doesnt really matter diff --git a/src/data/examples/build_examples/package-lock.json b/src/data/examples/build_examples/package-lock.json index 620ad20777..97f06013fe 100644 --- a/src/data/examples/build_examples/package-lock.json +++ b/src/data/examples/build_examples/package-lock.json @@ -863,4 +863,4 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" } } -} +} \ No newline at end of file diff --git a/src/data/examples/en/06_Image_Processing/00_ Pixel_Array.js b/src/data/examples/en/06_Image_Processing/00_ Pixel_Array.js new file mode 100644 index 0000000000..221a1bc42f --- /dev/null +++ b/src/data/examples/en/06_Image_Processing/00_ Pixel_Array.js @@ -0,0 +1,44 @@ +/* + * @name Pixel Array + * @description Click and drag the mouse up and down to control the signal + * and press and hold any key to see the current pixel being read. + * This program sequentially reads the color of every pixel of an image + * and displays this color to fill the window. + */ + +let img; +let direction = 1; +let signal = 0; + +function setup() { + createCanvas(640, 360); + noFill(); + stroke(255); + frameRate(30); + img = loadImage('assets/sea.jpg'); +} + +function draw() { + if (signal > img.width * img.height - 1 || signal < 0) { + direction = direction * -1; + } + + if (mouseIsPressed) { + let mx = constrain(mouseX, 0, img.width - 1); + let my = constrain(mouseY, 0, img.height - 1); + signal = my * img.width + mx; + } else { + signal += 0.33 * direction; + } + + let sx = int(signal) % img.width; + let sy = int(signal) / img.width; + if (keyIsPressed) { + set(0, 0, img); // fast way to draw an image + point(sx, sy); + rect(sx - 5, sy - 5, 10, 10); + } else { + let c = img.get(sx, sy); + background(c); + } +} \ No newline at end of file diff --git a/src/data/examples/en/08_Math/22_trigonometryAndParticles.js b/src/data/examples/en/08_Math/22_trigonometryAndParticles.js new file mode 100644 index 0000000000..12a9de43d0 --- /dev/null +++ b/src/data/examples/en/08_Math/22_trigonometryAndParticles.js @@ -0,0 +1,65 @@ +/* + * @name Trigonometry and Particles + * @arialabel multiple white dot moving in pattern following trigonometry function + * @description Creative particle movement using cos(), sin() and tan(). You can sort + * through the different functions. + */ + +let f = 0; +let value = 0; +let clicked = 0; +let x = 0; +let y = 0; +function Super_Tornado() { + ratio = frameCount * 0.01; + points = []; + fill(255); + for (let i = 0; i <= 360; i += 0.1) { + let theta = radians(i * ratio); + if (value == 0) { + x = cos(theta) * i; + y = sin(theta) * i; + } + if (value == 1) { + x = cos(1 / theta) * i * tan(i); + y = sin(1 / theta) * i * tan(i); + } + if (value == 2) { + x = cos(theta) * log(i) * tan(i); + y = sin(1 / theta) * log(i) * tan(i); + } + if (value == 3) { + x = cos(theta) * i * tan(i); + y = sin(log(theta)) * i / tan(i); + } + if (value == 4) { + x = cos(theta) * i / 3 * sin(theta) * tan(f + 1); + y = sin(1 / theta) * i / 3 * log(i) * tan(i); + } + ellipse(x, y, 3, 3); + points.push({ + 'x': x, + 'y': y + }) + } +} +function setup() { + createCanvas(400, 400); + noStroke(); +} +function draw() { + background(30); + translate(width / 2, height / 2); + ratio = frameCount * 0.01; + points = []; + Super_Tornado(); +} +function mouseClicked() { + if (clicked < 5) { + clicked++; + value++; + } else { + clicked = 0; + value = 0; + } +} \ No newline at end of file diff --git a/src/data/examples/en/20_3D/00_geometries.js b/src/data/examples/en/20_3D/00_geometries.js index 09afb9a92e..2f9fac4ea3 100644 --- a/src/data/examples/en/20_3D/00_geometries.js +++ b/src/data/examples/en/20_3D/00_geometries.js @@ -1,61 +1,74 @@ /* * @name Geometries - * @arialabel Six 3D shapes in neon gradient rotating on a white background. Shapes include cube, cylinder, ring, pyramid, sphere, and a plane. - * @description There are six 3D primitives in p5 now. + * @arialabel Seven 3D shapes in neon gradient rotating on a white background. Shapes include cube, cylinder, ring, pyramid, sphere, plane, and ellipsoid. + * @description There are seven 3D primitives in p5 now. */ + function setup() { createCanvas(710, 400, WEBGL); + + describe( + 'a 3d example containing seven primitive objects, a plane, box, cylinder, cone, torus, sphere, and ellipsoid.' + ); } function draw() { background(250); - translate(-240, -100, 0); normalMaterial(); push(); + translate(-240, -100, 0); rotateZ(frameCount * 0.01); rotateX(frameCount * 0.01); rotateY(frameCount * 0.01); plane(70); pop(); - translate(240, 0, 0); push(); + translate(0, -100, 0); rotateZ(frameCount * 0.01); rotateX(frameCount * 0.01); rotateY(frameCount * 0.01); box(70, 70, 70); pop(); - translate(240, 0, 0); push(); + translate(240, -100, 0); rotateZ(frameCount * 0.01); rotateX(frameCount * 0.01); rotateY(frameCount * 0.01); cylinder(70, 70); pop(); - translate(-240 * 2, 200, 0); push(); + translate(-250, 100, 0); + rotateZ(frameCount * 0.01); + rotateX(frameCount * 0.01); + rotateY(frameCount * 0.01); + cone(50, 70); + pop(); + + push(); + translate(-75, 100, 0); rotateZ(frameCount * 0.01); rotateX(frameCount * 0.01); rotateY(frameCount * 0.01); - cone(70, 70); + torus(50, 20); pop(); - translate(240, 0, 0); push(); + translate(100, 100, 0); rotateZ(frameCount * 0.01); rotateX(frameCount * 0.01); rotateY(frameCount * 0.01); - torus(70, 20); + sphere(50); pop(); - translate(240, 0, 0); push(); + translate(275, 100, 0); rotateZ(frameCount * 0.01); rotateX(frameCount * 0.01); rotateY(frameCount * 0.01); - sphere(70); + ellipsoid(30, 40, 40); pop(); } diff --git a/src/data/examples/en/20_3D/02_multiple_lights.js b/src/data/examples/en/20_3D/02_multiple_lights.js index 7a9689965e..889d65f9d4 100644 --- a/src/data/examples/en/20_3D/02_multiple_lights.js +++ b/src/data/examples/en/20_3D/02_multiple_lights.js @@ -5,6 +5,10 @@ */ function setup() { createCanvas(710, 400, WEBGL); + + describe( + 'a 3d example containing a spinning box and a sphere, each lit with a number of different lights, including ambient (gray), directional (red), spotlight (green), and point (blue).' + ); } function draw() { @@ -13,8 +17,13 @@ function draw() { let locX = mouseX - height / 2; let locY = mouseY - width / 2; + // ambient light is gray ambientLight(50); + // directional light is red directionalLight(255, 0, 0, 0.25, 0.25, 0); + // spotlight is green + spotLight(0, 255, 0, 150, 0, 250, 0, 0, -1); + // point light is blue pointLight(0, 0, 255, locX, locY, 250); push(); @@ -27,5 +36,5 @@ function draw() { translate(width / 4, 0, 0); ambientMaterial(250); - sphere(120, 64); + sphere(120, 24); } diff --git a/src/data/examples/en/20_3D/10_passing_shader_uniforms.js b/src/data/examples/en/20_3D/10_passing_shader_uniforms.js index c01ea5da83..a4fef05fac 100644 --- a/src/data/examples/en/20_3D/10_passing_shader_uniforms.js +++ b/src/data/examples/en/20_3D/10_passing_shader_uniforms.js @@ -17,6 +17,8 @@ // shaders require WEBGL mode to work createCanvas(710, 400, WEBGL); noStroke(); + + describe('a 2d example containing a sage green polygon, rotating in the middle of the sketch. As the mouse moves horizontally, the number of sides for the polygon change.') } function draw() { @@ -24,8 +26,9 @@ shader(theShader); // lets send the resolution, mouse, and time to our shader + // the mouse x position will change the number of sides // before sending mouse + time we modify the data so it's more easily usable by the shader - theShader.setUniform('resolution', [width, height]); + theShader.setUniform('resolution', [width * displayDensity(), height * displayDensity()]); theShader.setUniform('mouse', map(mouseX, 0, width, 0, 7)); theShader.setUniform('time', frameCount * 0.01); diff --git a/src/data/examples/en/20_3D/12_simple_feedback.js b/src/data/examples/en/20_3D/12_simple_feedback.js new file mode 100644 index 0000000000..7cc66de477 --- /dev/null +++ b/src/data/examples/en/20_3D/12_simple_feedback.js @@ -0,0 +1,56 @@ +/* + * @name Simple Feedback + * @arialabel An example of a simple feedback effect using two buffers. + * @description A simple feedback effect that is achieved by using two WebGL graphics buffers. + * This effect works by drawing the previous frame to a second + * createGraphics() buffer, which can be blended with the current frame. This + * takes advantage of texture mapping in WebGL. + */ + +let pg, swap; + +function setup() { + createCanvas(710, 400); + + // this will hold the previous frame + pg = createGraphics(710, 400, WEBGL); + // this will hold our main graphic + swap = createGraphics(710, 400, WEBGL); + + describe( + 'a slowly oscillating, radiating white sphere that fades into a dark gray background through a feedback visual effect' + ); +} + +function draw() { + // clears and resets the p5.Graphics so that 3D objects draw correctly + pg.reset(); + + // draw the previous frame + pg.texture(swap); + pg.noStroke(); + pg.plane(width, height); + + // draw our sphere on top + pg.push(); + // slowly move the sphere in a circle + pg.translate(sin(millis() / 200) * 5, cos(millis() / 200) * 5, 0); + pg.fill(255); + pg.sphere(90); + pg.pop(); + + // draw a slightly scaled up copy of the texture + swap.push(); + swap.scale(1.1, 1.1); + swap.texture(pg); + swap.noStroke(); + swap.plane(width, height); + swap.pop(); + + // an opaque rectangle is drawn over top to control the feedback decay + swap.fill(0, 50); + swap.rect(-width / 2, -height / 2, width, height); + + // draw the output to the screen + image(swap, 0, 0); +} diff --git a/src/data/examples/es/06_Image_Processing/00_ Pixel_Array.js b/src/data/examples/es/06_Image_Processing/00_ Pixel_Array.js new file mode 100644 index 0000000000..221a1bc42f --- /dev/null +++ b/src/data/examples/es/06_Image_Processing/00_ Pixel_Array.js @@ -0,0 +1,44 @@ +/* + * @name Pixel Array + * @description Click and drag the mouse up and down to control the signal + * and press and hold any key to see the current pixel being read. + * This program sequentially reads the color of every pixel of an image + * and displays this color to fill the window. + */ + +let img; +let direction = 1; +let signal = 0; + +function setup() { + createCanvas(640, 360); + noFill(); + stroke(255); + frameRate(30); + img = loadImage('assets/sea.jpg'); +} + +function draw() { + if (signal > img.width * img.height - 1 || signal < 0) { + direction = direction * -1; + } + + if (mouseIsPressed) { + let mx = constrain(mouseX, 0, img.width - 1); + let my = constrain(mouseY, 0, img.height - 1); + signal = my * img.width + mx; + } else { + signal += 0.33 * direction; + } + + let sx = int(signal) % img.width; + let sy = int(signal) / img.width; + if (keyIsPressed) { + set(0, 0, img); // fast way to draw an image + point(sx, sy); + rect(sx - 5, sy - 5, 10, 10); + } else { + let c = img.get(sx, sy); + background(c); + } +} \ No newline at end of file diff --git a/src/data/examples/es/08_Math/22_trigonometryAndParticles.js b/src/data/examples/es/08_Math/22_trigonometryAndParticles.js new file mode 100644 index 0000000000..ef88097d37 --- /dev/null +++ b/src/data/examples/es/08_Math/22_trigonometryAndParticles.js @@ -0,0 +1,70 @@ +/* + * @name Trigonometry and Particles + * @arialabel multiple white dot moving in pattern following trigonometry function + * @description Creative particle movement using cos(), sin() and tan(). You can sort + * through the different functions. + */ +let f = 0; +let value = 0; +let clicked = 0; +let x = 0; +let y = 0; + +function Super_Tornado() { + ratio = frameCount * 0.01; + points = []; + fill(255); + for (let i = 0; i <= 360; i += 0.1) { + let theta = radians(i * ratio); + if (value == 0) { + x = cos(theta) * i; + y = sin(theta) * i; + } + if (value == 1) { + x = cos(1 / theta) * i * tan(i); + y = sin(1 / theta) * i * tan(i); + } + if (value == 2) { + x = cos(theta) * log(i) * tan(i); + y = sin(1 / theta) * log(i) * tan(i); + } + if (value == 3) { + x = cos(theta) * i * tan(i); + y = sin(log(theta)) * i / tan(i); + } + if (value == 4) { + x = cos(theta) * i / 3 * sin(theta) * tan(f + 1); + y = sin(1 / theta) * i / 3 * log(i) * tan(i); + } + + ellipse(x, y, 3, 3); + + points.push({ + 'x': x, + 'y': y + }) + } +} + +function setup() { + createCanvas(400, 400); + noStroke(); +} + +function draw() { + background(30); + translate(width / 2, height / 2); + ratio = frameCount * 0.01; + points = []; + Super_Tornado(); +} + +function mouseClicked() { + if (clicked < 5) { + clicked++; + value++; + } else { + clicked = 0; + value = 0; + } +} \ No newline at end of file diff --git a/src/data/examples/hi/08_Math/22_trigonometryAndParticles.js b/src/data/examples/hi/08_Math/22_trigonometryAndParticles.js new file mode 100644 index 0000000000..ef88097d37 --- /dev/null +++ b/src/data/examples/hi/08_Math/22_trigonometryAndParticles.js @@ -0,0 +1,70 @@ +/* + * @name Trigonometry and Particles + * @arialabel multiple white dot moving in pattern following trigonometry function + * @description Creative particle movement using cos(), sin() and tan(). You can sort + * through the different functions. + */ +let f = 0; +let value = 0; +let clicked = 0; +let x = 0; +let y = 0; + +function Super_Tornado() { + ratio = frameCount * 0.01; + points = []; + fill(255); + for (let i = 0; i <= 360; i += 0.1) { + let theta = radians(i * ratio); + if (value == 0) { + x = cos(theta) * i; + y = sin(theta) * i; + } + if (value == 1) { + x = cos(1 / theta) * i * tan(i); + y = sin(1 / theta) * i * tan(i); + } + if (value == 2) { + x = cos(theta) * log(i) * tan(i); + y = sin(1 / theta) * log(i) * tan(i); + } + if (value == 3) { + x = cos(theta) * i * tan(i); + y = sin(log(theta)) * i / tan(i); + } + if (value == 4) { + x = cos(theta) * i / 3 * sin(theta) * tan(f + 1); + y = sin(1 / theta) * i / 3 * log(i) * tan(i); + } + + ellipse(x, y, 3, 3); + + points.push({ + 'x': x, + 'y': y + }) + } +} + +function setup() { + createCanvas(400, 400); + noStroke(); +} + +function draw() { + background(30); + translate(width / 2, height / 2); + ratio = frameCount * 0.01; + points = []; + Super_Tornado(); +} + +function mouseClicked() { + if (clicked < 5) { + clicked++; + value++; + } else { + clicked = 0; + value = 0; + } +} \ No newline at end of file diff --git a/src/data/examples/ko/08_Math/22_trigonometryAndParticles.js b/src/data/examples/ko/08_Math/22_trigonometryAndParticles.js new file mode 100644 index 0000000000..ef88097d37 --- /dev/null +++ b/src/data/examples/ko/08_Math/22_trigonometryAndParticles.js @@ -0,0 +1,70 @@ +/* + * @name Trigonometry and Particles + * @arialabel multiple white dot moving in pattern following trigonometry function + * @description Creative particle movement using cos(), sin() and tan(). You can sort + * through the different functions. + */ +let f = 0; +let value = 0; +let clicked = 0; +let x = 0; +let y = 0; + +function Super_Tornado() { + ratio = frameCount * 0.01; + points = []; + fill(255); + for (let i = 0; i <= 360; i += 0.1) { + let theta = radians(i * ratio); + if (value == 0) { + x = cos(theta) * i; + y = sin(theta) * i; + } + if (value == 1) { + x = cos(1 / theta) * i * tan(i); + y = sin(1 / theta) * i * tan(i); + } + if (value == 2) { + x = cos(theta) * log(i) * tan(i); + y = sin(1 / theta) * log(i) * tan(i); + } + if (value == 3) { + x = cos(theta) * i * tan(i); + y = sin(log(theta)) * i / tan(i); + } + if (value == 4) { + x = cos(theta) * i / 3 * sin(theta) * tan(f + 1); + y = sin(1 / theta) * i / 3 * log(i) * tan(i); + } + + ellipse(x, y, 3, 3); + + points.push({ + 'x': x, + 'y': y + }) + } +} + +function setup() { + createCanvas(400, 400); + noStroke(); +} + +function draw() { + background(30); + translate(width / 2, height / 2); + ratio = frameCount * 0.01; + points = []; + Super_Tornado(); +} + +function mouseClicked() { + if (clicked < 5) { + clicked++; + value++; + } else { + clicked = 0; + value = 0; + } +} \ No newline at end of file diff --git a/src/data/examples/zh-Hans/06_Image_Processing/00_ Pixel_Array.js b/src/data/examples/zh-Hans/06_Image_Processing/00_ Pixel_Array.js new file mode 100644 index 0000000000..221a1bc42f --- /dev/null +++ b/src/data/examples/zh-Hans/06_Image_Processing/00_ Pixel_Array.js @@ -0,0 +1,44 @@ +/* + * @name Pixel Array + * @description Click and drag the mouse up and down to control the signal + * and press and hold any key to see the current pixel being read. + * This program sequentially reads the color of every pixel of an image + * and displays this color to fill the window. + */ + +let img; +let direction = 1; +let signal = 0; + +function setup() { + createCanvas(640, 360); + noFill(); + stroke(255); + frameRate(30); + img = loadImage('assets/sea.jpg'); +} + +function draw() { + if (signal > img.width * img.height - 1 || signal < 0) { + direction = direction * -1; + } + + if (mouseIsPressed) { + let mx = constrain(mouseX, 0, img.width - 1); + let my = constrain(mouseY, 0, img.height - 1); + signal = my * img.width + mx; + } else { + signal += 0.33 * direction; + } + + let sx = int(signal) % img.width; + let sy = int(signal) / img.width; + if (keyIsPressed) { + set(0, 0, img); // fast way to draw an image + point(sx, sy); + rect(sx - 5, sy - 5, 10, 10); + } else { + let c = img.get(sx, sy); + background(c); + } +} \ No newline at end of file diff --git a/src/data/examples/zh-Hans/08_Math/22_trigonometryAndParticles.js b/src/data/examples/zh-Hans/08_Math/22_trigonometryAndParticles.js new file mode 100644 index 0000000000..ef88097d37 --- /dev/null +++ b/src/data/examples/zh-Hans/08_Math/22_trigonometryAndParticles.js @@ -0,0 +1,70 @@ +/* + * @name Trigonometry and Particles + * @arialabel multiple white dot moving in pattern following trigonometry function + * @description Creative particle movement using cos(), sin() and tan(). You can sort + * through the different functions. + */ +let f = 0; +let value = 0; +let clicked = 0; +let x = 0; +let y = 0; + +function Super_Tornado() { + ratio = frameCount * 0.01; + points = []; + fill(255); + for (let i = 0; i <= 360; i += 0.1) { + let theta = radians(i * ratio); + if (value == 0) { + x = cos(theta) * i; + y = sin(theta) * i; + } + if (value == 1) { + x = cos(1 / theta) * i * tan(i); + y = sin(1 / theta) * i * tan(i); + } + if (value == 2) { + x = cos(theta) * log(i) * tan(i); + y = sin(1 / theta) * log(i) * tan(i); + } + if (value == 3) { + x = cos(theta) * i * tan(i); + y = sin(log(theta)) * i / tan(i); + } + if (value == 4) { + x = cos(theta) * i / 3 * sin(theta) * tan(f + 1); + y = sin(1 / theta) * i / 3 * log(i) * tan(i); + } + + ellipse(x, y, 3, 3); + + points.push({ + 'x': x, + 'y': y + }) + } +} + +function setup() { + createCanvas(400, 400); + noStroke(); +} + +function draw() { + background(30); + translate(width / 2, height / 2); + ratio = frameCount * 0.01; + points = []; + Super_Tornado(); +} + +function mouseClicked() { + if (clicked < 5) { + clicked++; + value++; + } else { + clicked = 0; + value = 0; + } +} \ No newline at end of file diff --git a/src/data/hi.yml b/src/data/hi.yml index a62846c9ab..4a77508723 100644 --- a/src/data/hi.yml +++ b/src/data/hi.yml @@ -33,6 +33,7 @@ tagline5: प्रोसेसिंग का समुदाय गुणा tagline6: प्रोसेसिंग की शक्ति गुणा जावास्क्रिप्ट की पहुंच tagline7: The p5.js community stands in solidarity with Black Lives Matter. home: + search-bar: p5js.org खोजें start-creating: P5 संपादक के साथ बनाना शुरू करें! p1xh1: नमस्ते! p1x1: >- @@ -313,21 +314,33 @@ download: support-31: UCLA DMA और NYU ITP में Bicoastal p5.js मीटअप support-32: प्रोसेसिंग फाउंडेशन support-33: ' मूल प्रोसेसिंग सॉफ्टवेयर के साथ एक दशक से अधिक काम करने के बाद 2012 में स्थापित किया गया था। फाउंडेशन का मिशन दृश्य कला के भीतर सॉफ्टवेयर साक्षरता को बढ़ावा देना है, और प्रौद्योगिकी से संबंधित क्षेत्रों के भीतर दृश्य साक्षरता - और इन क्षेत्रों को विविध समुदायों के लिए सुलभ बनाना है। हमारा लक्ष्य सभी हितों और पृष्ठभूमि के लोगों को सशक्त बनाना है कि कैसे कोड के साथ रचनात्मक कार्य करना सीखें और विशेष रूप से उन लोगों के लिए, जिनके पास अन्यथा इन उपकरणों और संसाधनों तक पहुंच नहीं है।' - support-17-alt: '' - support-18-alt: '' - support-19-alt: '' - support-20-alt: '' - support-21-alt: '' - support-22-alt: '' - support-23-alt: '' - support-24-alt: '' - support-25-alt: '' - support-26-alt: '' - support-27-alt: '' - support-28-alt: '' - support-29-alt: '' - support-30-alt: '' - support-31-alt: '' + support-17-alt: >- + p5.js Contributors Conference at CMU STUDIO for Creative Inquiry in + Pittsburgh + support-18-alt: >- + Processing Fellow Saskia Freeke organizing Code Liberation x Processing + workshops in London + support-19-alt: 'Learning to Teach, Teaching to Learn conference with SFPC' + support-20-alt: Processing Foundation Fellow Cassie Tarakajian's workshop at Code Art Miami + support-21-alt: Taeyoon Choi and ASL interpretor at Signing Coders p5.js workshop + support-22-alt: Google Summer of Code kickoff participants + support-23-alt: Processing Foundation Fellow Cassie Tarakajian's workshop at Code Art Miami + support-24-alt: >- + Luisa Pereira and Yeseul Song facilitate a sign language based p5.js + workshop + support-25-alt: >- + p5.js Contributors Conference at CMU STUDIO for Creative Inquiry in + Pittsburgh + support-26-alt: >- + Processing Fellow Digital Citizens Lab panel on STEM teaching at the + International Center of Photography + support-27-alt: 'Participants at p5.js workshop in Santiago, Chile' + support-28-alt: Claire Kearney-Volpe helping facilitate a sign language based p5.js workshop + support-29-alt: >- + Processing Foundation Fellow DIY Girls run a creative coding program in Los + Angeles + support-30-alt: Processing Fellow Digital Citizens Lab + support-31-alt: Bicoastal p5.js meetup at UCLA DMA and NYU ITP learn: learn-title: सीखना teach-title2: Teach @@ -2279,6 +2292,7 @@ examples: Arrays: Arrays Control: नियंत्रण Image: छवि + Image_Processing: Image Processing Color: रंग Math: गणित Simulate: सिम्यलट diff --git a/src/data/it.yml b/src/data/it.yml index bc53f088c4..cd3609415d 100644 --- a/src/data/it.yml +++ b/src/data/it.yml @@ -27,6 +27,7 @@ tagline5: la community di Processing x la community di JavaScript tagline6: il potere di Processing x la portata di JavaScript tagline7: La p5.js community esprime solidarietà con il movimento Black Lives Matter. home: + search-bar: Cerca su p5js.org blmnamelistending: 'e tanti altri, troppi da elencare qui...' blmstatement1: >- Questo sito è attualmente offline, come piccolo segno di rispetto e di diff --git a/src/data/ko.yml b/src/data/ko.yml index aa904e427e..d09e71da3b 100644 --- a/src/data/ko.yml +++ b/src/data/ko.yml @@ -33,6 +33,7 @@ tagline5: 프로세싱 커뮤니티에 자바스크립트 커뮤니티를 곱하 tagline6: 프로세싱의 강력함에 자바스크립트의 범용성을 곱하다* tagline7: p5.js 커뮤니티는 Black Lives Matter와 연대합니다. home: + search-bar: p5js.org 검색 start-creating: p5 에디터로 프로젝트 시작하기 p1xh1: 안녕하세요! p1x1: >- @@ -263,21 +264,33 @@ download: 사명은 시각 예술계에서의 소프트웨어 리터러시 및 기술 관련 분야에서의 시각적 리터러시를 증진하고, 나아가 이 두 분야에 대한 보다 많은 사람들의 접근성을 향상하는 데에 있습니다. 우리는 다양한 이해 관계와 배경을 가진 사람들, 특히 코딩 학습 툴이나 자원에 대한 접근성이 없는 이들의 크리에이티브 코딩 교육을 돕는 것을 목표로 삼습니다. - support-17-alt: '' - support-18-alt: '' - support-19-alt: '' - support-20-alt: '' - support-21-alt: '' - support-22-alt: '' - support-23-alt: '' - support-24-alt: '' - support-25-alt: '' - support-26-alt: '' - support-27-alt: '' - support-28-alt: '' - support-29-alt: '' - support-30-alt: '' - support-31-alt: '' + support-17-alt: >- + p5.js Contributors Conference at CMU STUDIO for Creative Inquiry in + Pittsburgh + support-18-alt: >- + Processing Fellow Saskia Freeke organizing Code Liberation x Processing + workshops in London + support-19-alt: 'Learning to Teach, Teaching to Learn conference with SFPC' + support-20-alt: Processing Foundation Fellow Cassie Tarakajian's workshop at Code Art Miami + support-21-alt: Taeyoon Choi and ASL interpretor at Signing Coders p5.js workshop + support-22-alt: Google Summer of Code kickoff participants + support-23-alt: Processing Foundation Fellow Cassie Tarakajian's workshop at Code Art Miami + support-24-alt: >- + Luisa Pereira and Yeseul Song facilitate a sign language based p5.js + workshop + support-25-alt: >- + p5.js Contributors Conference at CMU STUDIO for Creative Inquiry in + Pittsburgh + support-26-alt: >- + Processing Fellow Digital Citizens Lab panel on STEM teaching at the + International Center of Photography + support-27-alt: 'Participants at p5.js workshop in Santiago, Chile' + support-28-alt: Claire Kearney-Volpe helping facilitate a sign language based p5.js workshop + support-29-alt: >- + Processing Foundation Fellow DIY Girls run a creative coding program in Los + Angeles + support-30-alt: Processing Fellow Digital Citizens Lab + support-31-alt: Bicoastal p5.js meetup at UCLA DMA and NYU ITP learn: learn-title: 배우기 teach-title2: 가르치기 @@ -2023,6 +2036,7 @@ examples: Arrays: 배열 Control: 컨트롤 Image: 이미지 + Image_Processing: Image Processing Color: 색상 Math: 수학 Simulate: 시뮬레이션 diff --git a/src/data/zh-Hans.yml b/src/data/zh-Hans.yml index 1afb7a812b..c4ccb8f7ef 100644 --- a/src/data/zh-Hans.yml +++ b/src/data/zh-Hans.yml @@ -33,6 +33,7 @@ tagline5: Processing 的社群结合 JavaScript 的社群 tagline6: Processing 的力量结合 JavaScript 的范围 tagline7: P5.js 社区与 Black Lives Matter 站在一起,表达团结和支持。 home: + search-bar: 搜寻 p5js.org start-creating: 使用 p5 编辑器开始创作! p1xh1: 你好! p1x1: >- @@ -243,21 +244,33 @@ download: 在原本的 Processing 软件多过十年的工作后成立于 2012 年。Processing Foundation 原旨为提升视觉艺术界的软件素养及提升科技界的视觉素养 — 并让这些领域更加接近不同的社群。我们的目标是赋予来自不同兴趣及背景的人学习编程与用编程制作创意作品的权利,尤其是那些可能无法得到这些工具及资源的人。 - support-17-alt: '' - support-18-alt: '' - support-19-alt: '' - support-20-alt: '' - support-21-alt: '' - support-22-alt: '' - support-23-alt: '' - support-24-alt: '' - support-25-alt: '' - support-26-alt: '' - support-27-alt: '' - support-28-alt: '' - support-29-alt: '' - support-30-alt: '' - support-31-alt: '' + support-17-alt: >- + p5.js Contributors Conference at CMU STUDIO for Creative Inquiry in + Pittsburgh + support-18-alt: >- + Processing Fellow Saskia Freeke organizing Code Liberation x Processing + workshops in London + support-19-alt: 'Learning to Teach, Teaching to Learn conference with SFPC' + support-20-alt: Processing Foundation Fellow Cassie Tarakajian's workshop at Code Art Miami + support-21-alt: Taeyoon Choi and ASL interpretor at Signing Coders p5.js workshop + support-22-alt: Google Summer of Code kickoff participants + support-23-alt: Processing Foundation Fellow Cassie Tarakajian's workshop at Code Art Miami + support-24-alt: >- + Luisa Pereira and Yeseul Song facilitate a sign language based p5.js + workshop + support-25-alt: >- + p5.js Contributors Conference at CMU STUDIO for Creative Inquiry in + Pittsburgh + support-26-alt: >- + Processing Fellow Digital Citizens Lab panel on STEM teaching at the + International Center of Photography + support-27-alt: 'Participants at p5.js workshop in Santiago, Chile' + support-28-alt: Claire Kearney-Volpe helping facilitate a sign language based p5.js workshop + support-29-alt: >- + Processing Foundation Fellow DIY Girls run a creative coding program in Los + Angeles + support-30-alt: Processing Fellow Digital Citizens Lab + support-31-alt: Bicoastal p5.js meetup at UCLA DMA and NYU ITP learn: learn-title: 学习 teach-title2: Teach @@ -339,7 +352,7 @@ learn: href="https://p5js.org/reference/#/p5/textOutput">textOutput(), generates a list of the canvas and its (visual) elements, only this function arranges its output in a HTML table that plots the spatial - location of each shape within the canvas. It also provides a basic + location of each shape within the canvas. It also provides a basic description of the canvas, including the canvas' size, canvas color, the number of visual elements, and the different visual element types inside the canvas. This function's only parameter is gridOutput() and textOutput() functions - will not provide any information about these interactive inputs in their + will not provide any information about these interactive inputs in their reports of the canvas, should you use them. labeling-canvases-best-practices-using-labels: How to use labels labeling-canvases-best-practices-using-labels-all-canvases: For all canvases @@ -406,15 +419,14 @@ learn: labeling-canvases-best-practices-using-labels-simple-1: >- For canvases without any changing, moving, or interactive elements, you may use either the describeElement(), + href="https://p5js.org/reference/#/p5/describeElement">describeElement(), gridOutput(), or textOutput() - functions to label the canvas’ visual content. However, keep in mind that gridOutput() and textOutput() functions + to label the canvas’ visual content. However, keep in mind that gridOutput() + and textOutput() generate their information based on the rudimentary code of the visual element, such as its size, color, and shape. These functions won’t be able to interpret @@ -464,7 +476,7 @@ learn: The p5 functions listed above do not afford the more complicated features of ARIA labeling, such as aria-live or aria-atomic. For advanced canvases, using vanilla ARIA - labeling and custom-built fallback content might better convey the canvas’ + labeling and custom-built fallback content might better convey the canvas’ information to screen readers. Some cases where the canvas’ content cannot be accurately described (or represented) through p5.js’ supplied screen reader labels include: @@ -480,7 +492,7 @@ learn: using the describe(), describeElement(), + href="https://p5js.org/reference/#/p5/describeElement">describeElement(), textOutput(), or - 相机是 3D 场景的基本组成部分;它为我们提供 3D 所特有的空间和维度感。 在 p5.js 中,WebGL 模式默认提供透视相机,但我们可以使用 perspective() 或 + class="code" href="{{root}}/reference/#/p5/perspective">perspective() 或 ortho() 来更改这一点。 getting-started-in-webgl-appearance-p1x2: '或 ' getting-started-in-webgl-appearance-p2x1: 透视相机会使对象倾斜,因此它们随着远离视角点的距离而变小,在远处消失。 这与正交相机形成对比,后者的几何形状随着距离增加而保持相同大小,并且没有消失点。 @@ -1284,7 +1296,7 @@ libraries: grafica.js: grafica.js 让您在您的 p5.js 绘图中添加简单但高度可配置的 2D 图表。 p5.gui: p5.gui 提供您的 p5.js 绘图一系列图形用户界面。 p5.j5: >- - The full Johnny-Five.io Nodebots/robotics library for Arduino and other + The full Johnny-Five.io Nodebots/robotics library for Arduino and other microcontrollers made to work directly in browser with WebSerial or WebUSB. p5.localmessage: p5.localmessage 提供一个简易的界面以在不同绘图之间传递信息并使同时使用多个视窗制作绘图更容易! marching: 光栅到向量转换,等值面。 @@ -1292,12 +1304,12 @@ libraries: ml5.js: 建在Tensorflow.js的基础之上,ml5.js提供更简单的网页中使用机器学习算法和模型的方法。 numero: A friendly and intuitive math library for p5.js. pdl.library: >- - A set of functions and classes to create interactive diagrams for teaching + A set of functions and classes to create interactive diagrams for teaching and learning physics. p5play: p5play 提供图像、动画、输入及碰撞检测功能以方便制作游戏或游戏类程式。 p5.particle: Particle 及 Fountain 物件可以用以制作数据驱动效果,该数据可来自使用者互动或 JSON 文件。 p5.party: >- - p5.party is a library for easily creating networked multiuser games, apps, + p5.party is a library for easily creating networked multiuser games, apps, and sketches. p5.Polar: p5.Polar 提供了数学抽象,使得创建美丽、万花筒式、径向图案变得容易。 react-p5: This library lets you integrate p5 Sketches into your React App. @@ -1316,13 +1328,13 @@ libraries: P5.slides: p5.slides is a presentation platform written in p5.js. p5snap: >- p5snap is a command-line interface that creates and saves snapshots of a p5 - sketchp5snap is a command-line interface that creates and saves snapshots - of a p5 sketch on an interval. + sketchp5snap is a command-line interface that creates and saves snapshots of + a p5 sketch on an interval. p5.speech: p5.speech 提供简单易用的 Web Speech 及语音识别的 API,使制作能说能听的绘图更加容易。 p5.start2d.js: 使用像素、毫米、厘米或英寸为单位来制作 2D 静态艺术的 p5 附加程式库。 p5.tiledmap: p5.tiledmap 提供绘图及便利功能以在您的绘图中加入地图。 TiledPlay: >- - A small library to bridge the functionality of p5.js, p5.play.js and + A small library to bridge the functionality of p5.js, p5.play.js and p5.tiled.js to easily create 2D platformer games using javascript. p5.touchgui: p5.js 多点触控及鼠标图形用户界面程式库。 tramontana: >- @@ -1638,6 +1650,7 @@ examples: Arrays: 数组 Control: 控制 Image: 图像 + Image_Processing: 图像处理 Color: 颜色 Math: 数学 Simulate: 模拟 diff --git a/src/templates/pages/download/support.hbs b/src/templates/pages/download/support.hbs index d7c9931e5e..059efd7f2b 100644 --- a/src/templates/pages/download/support.hbs +++ b/src/templates/pages/download/support.hbs @@ -18,65 +18,65 @@ slug: download/

{{#i18n "support-32"}}{{/i18n}}{{#i18n "support-33"}}{{/i18n}}

-
+
- support-17-alt + {{#i18n

{{#i18n "support-17"}}{{/i18n}}

- support-18-alt + {{#i18n

{{#i18n "support-18"}}{{/i18n}}

- support-19-alt + {{#i18n

{{#i18n "support-19"}}{{/i18n}}

- support-20-alt + {{#i18n

{{#i18n "support-20"}}{{/i18n}}

- support-21-alt -

{{#i18n "support-21"}}{{/i18n}}

+ {{#i18n +

{{#i18n "support-21"}}{{/i18n}}

- support-22-alt + {{#i18n

{{#i18n "support-22"}}{{/i18n}}

- support-23-alt + {{#i18n

{{#i18n "support-23"}}{{/i18n}}

- support-24-alt + {{#i18n

{{#i18n "support-24"}}{{/i18n}}

- support-25-alt + {{#i18n

{{#i18n "support-25"}}{{/i18n}}

- support-26-alt + {{#i18n

{{#i18n "support-26"}}{{/i18n}}

- support-27-alt + {{#i18n

{{#i18n "support-27"}}{{/i18n}}

- support-28-alt + {{#i18n

{{#i18n "support-28"}}{{/i18n}}

- support-29-alt + {{#i18n

{{#i18n "support-29"}}{{/i18n}}

- support-30-alt + {{#i18n

{{#i18n "support-30"}}{{/i18n}}

- support-31-alt + {{#i18n

{{#i18n "support-31"}}{{/i18n}}

diff --git a/src/templates/pages/index.hbs b/src/templates/pages/index.hbs index 61dbe1bd25..44279ed5f1 100644 --- a/src/templates/pages/index.hbs +++ b/src/templates/pages/index.hbs @@ -10,7 +10,7 @@ slug: / diff --git a/src/templates/pages/learn/debugging.hbs b/src/templates/pages/learn/debugging.hbs index a100229df1..892c90eedc 100644 --- a/src/templates/pages/learn/debugging.hbs +++ b/src/templates/pages/learn/debugging.hbs @@ -14,7 +14,7 @@ slug: learn/
This tutorial was made by the Education Working Group, during the p5.js contributor conference at the Frank-Ratchye Studio for Creative Inquiry, Carnegie Mellon University in May of 2015. The contributors to this tutorial include Jason Alderman, Tega Brain, Taeyoon Choi and Luisa Pereira.
- + Black and white illustration containing the text 'a field guide to debugging!'

This is a field guide for debugging for everyone—whether you are beginning to code or whether you have been coding for a long time, this guide breaks down the mysterious process of solving problems. @@ -26,15 +26,15 @@ slug: learn/

A bug is a gap between what you think your system is doing, and what it is actually doing. Clay Shirky aptly describes a bug as "the moment when there is both a technical problem with your code as well as a problem with your mental picture of what is happening in your code."

- + Two-panel black-and-white comic. First panel contains a person pointing at a mouse with the text, 'You think you moved the mouse to the circle.' Second panel contains a computer with a hand pointing to a mouse with the text, 'But the computer is actually giving instructions to move the mouse away from the circle.'

You think you are telling the computer one thing, but it is doing something else. It may also be crashing or throwing errors. In order to close the gap, you must investigate.

When you are working on a project, you may play many different roles. You are an architect when designing and planning your program, an engineer when you are developing it. Then you will be an explorer, discovering the problems and errors and testing it in all the situations in which it needs to run. You are trying to find out where it might break. Finally, when debugging you are a detective, trying to figure out how and why things broke.

- - - - + Illustration of an architect with a blueprint for a house looking at an open plot of land. + Illustration of an engineer lowering a roof onto a house. + Illustration of a person being surprised when the door to a house falls to the ground. + Illustration of a detective with a magnifying glass examining the house.

So how can you become a good detective and debug your program? Here are the ten steps that can help you become a good code sleuth.

@@ -45,36 +45,36 @@ slug: learn/

When you encounter a bug that you do not know how to solve, stop, pause and take a deep breath. Stand up, say hi to the dog, take a walk or if it's late go get some sleep. When you are frustrated, tired and upset, you are not in a good frame of mind to learn or solve a problem.

To find your errors you will need to change perspectives and become the detective. The goal is to find out what the program IS doing, rather than why it's not doing what it's supposed to. We need to get the computer to show us what it's doing.

The clues are in the values of variables and flow of program.

- + Illustration of a person with binoculars, with a speech bubble above their containing a fluctuating chart line.

2. Observe the problem

Walk someone through the issue even if they themselves do not know how to program. If no one is around, draft an email explaining what you have done and breaking down what the problem is.

- + Illustration of a person typing their programming issue on a computer.

You probably won't need to actually send this email as often the act of writing it will help you to locate and identify what you need to do next. Some programmers have even been known to explain their problem to a friendly inanimate object like a rubber ducky.

- + Illustration of a person verbalizing their programming issue to a rubber duck.

This is also a good time to add comments to your code that tell you exactly what each of your functions is doing. Some coders also print out their code (or a section of it) and go through it line by line, tracing the path of variables and making notes.

- + Illustration of a person reviewing code printed on sheets of paper.

3. Before you start...

Before doing anything, save a copy of your code that you can go back to. While debugging you are likely to introduce other problems, break things or accidentally delete good work.

- + Illustration of a person exchanging save files from a safe.

You don't want to make bigger bugs in the process of debugging.

- + Illustration of a bug saying 'Hello!' hiding behind a present.

If you make a mistake or your problem gets more worse, you can always UNDO or revert back to your saved file.

- + Illustration of a confused person looking at an empty plot of land.

You can try version control such as GitHub.

- + Illustration of the text 'You can use git version control if you are a wizard!'

Write a list of what you are trying, so you can keep track of what still needs to be checked. Be methodical, it will save you a lot of time in the long run.

Only ever change one thing at a time. - + Illustration of two people, one turning switches off and on and the other examining a series of lights connected to the switches. As you debug, you will be turning parts of your code on and off. Every time you make a change, test your program. If you make multiple changes before testing, you will not know which change has what effect and are likely to break things further.

@@ -90,36 +90,36 @@ slug: learn/
  • Are there any typos in your paths?
  • Check your server? etc.
  • - - - + Two-panel comic strip. First panel contains a person saying, 'Why isn't my robot bringing me lemonade?' Second panel contains a person and a robot, the perseon saying, 'Oh. It's because I forgot to attach the left arm!' Text beneath the comic strip saying 'check your file dependencies.' + Two-panel comic strip. First panel contains a person on the phone saying, 'Why isn't my robot bringing me lemonade?' Second panel contains person and a robot, the person saying, 'Oh. It's because I was calling its office phone and not its mobile number!' Text beneath the comic strip saying 'Are you testing the right file?' + Two-panel comic strip. First panel contains a person with a remote controller saying, 'Why isn't my robot bringing me lemonade?' Second panel contains a robot, a person drinking lemonade, and a person with a remote controller saying 'Oh. It's because I was accidentally telling Erica's robot to deliver lemonade!' Text beneath the comic strip saying 'Are you editing/saving the correct file?'

    5. Black boxes

    A black box describes any part of your system you do not understand the inner workings of. For example, a library or perhaps a function that you have not written for yourself. Systematically take out each black box one-by-one and run your program. This will help to see if these parts of the program contain the error.

    - - + Illustration of two people examining two boxes. + Illustration of one person snipping the string connecting one box to two others.

    6. Add error reporting

    - + Illustration of a car facing a road, with one person at one of the road's exits. Error reporting is how your program tells you what it is doing. p5.js comes with some built-in error reporting that will tell you if you have made specific syntax errors.

    It is also useful to add in your own error reporting using the console.log() function. - + Illustration of a car navigating a road and reaching one of its exits. To check your program flow, add in console.log() statements to the parts of your code. Then when you look at your console you can see the order that things happen and where you encounter problems.

    It is also useful to add in console.log()s to print out values of variables so that you can see what they are doing. - + Illustration of a person examining a console log.

    @@ -136,14 +136,14 @@ slug: learn/
  • First chapter of Bocoup's and Rebecca Murphey's interactive textbook, jQuery Fundamentals.
  • Mozilla's JavaScript Guide and JavaScript Reference (this is really helpful for finding all of the built-in methods for, say a String).
  • - + Illustration of four people conversing.

    8. Ask people

    Still not working? - + Illustration of two people collaborating while working on computers. You can also ask people for help! They might be delighted to help you.

    @@ -163,7 +163,7 @@ slug: learn/

    ALSO: start with small problems! Do one thing at a time. It's ok to make smaller sketches to test one thing (draw a star! check twitter!) and then voltron them together into a bigger sketch (draw a star that turns red when you have a notification on twitter!)

    - + Illustration of a person having a conversation with an anthropomorphized computer.

    10. More resources

    diff --git a/src/templates/pages/learn/tutorial-guide.hbs b/src/templates/pages/learn/tutorial-guide.hbs index dccbe309db..bdc93a8220 100755 --- a/src/templates/pages/learn/tutorial-guide.hbs +++ b/src/templates/pages/learn/tutorial-guide.hbs @@ -41,7 +41,7 @@ slug: learn/ {{#i18n "writing-a-tutorial-how-prepare-2"}}{{/i18n}}{{#i18n "writing-a-tutorial-how-prepare-3"}}{{/i18n}} {{#i18n "writing-a-tutorial-how-prepare-4"}}{{/i18n}}

    - Screenshot + Screenshot of example header for the file referenced in previous paragraph.

    {{#i18n "writing-a-tutorial-how-prepare-5"}}{{/i18n}}{{#i18n "writing-a-tutorial-how-prepare-6"}}{{/i18n}} @@ -55,7 +55,7 @@ slug: learn/

    {{#i18n "writing-a-tutorial-how-prepare-11"}}{{/i18n}}

    - Screenshot + Screenshot of a GitHub page showing the file path referenced in previous paragraph.

    {{#i18n "writing-a-tutorial-how-prepare-12"}}{{/i18n}}

    @@ -85,16 +85,16 @@ Your code here!

    {{#i18n "writing-a-tutorial-iframe-1"}}{{/i18n}}

    - tutorialFileStructure + Illustration of a p5.js iframe embedded within a HTML page.

    {{#i18n "writing-a-tutorial-iframe-2"}}{{/i18n}}

    - Screenshot + Screenshot of a GitHub page showing an example file path for tutorial photos.

    {{#i18n "writing-a-tutorial-iframe-3"}}{{/i18n}}

    -Screenshot +Screenshot of a GitHub page showing an example of an embed.html file for a tutorial sketch.

    {{#i18n "writing-a-tutorial-iframe-4"}}{{/i18n}}

    {{#i18n "writing-a-tutorial-iframe-5"}}{{/i18n}}

    diff --git a/src/templates/pages/reference/index.hbs b/src/templates/pages/reference/index.hbs index d178aac0d2..42fe0dced3 100644 --- a/src/templates/pages/reference/index.hbs +++ b/src/templates/pages/reference/index.hbs @@ -61,19 +61,11 @@ slug: reference/ } }); - function removePlaceholder() { - $('#search input').attr('placeholder', ''); - } - function updateLanguage() { if (translations) { // reference title $('h1').html(translations['h1']); $('#search input').attr('placeholder', translations['reference-search']); - $('#search input').on('focus', removePlaceholder); - $('#search input').focusout(function () { - $('#search input').attr('placeholder', translations['reference-search']); - }) $('#search input').attr('title', translations['reference-search']); // reference description $('#reference-description1').html(translations['reference-description1']);